藍橋杯微控制器CT107D ds1302驅動

2021-09-11 03:11:25 字數 1634 閱讀 2147

藍橋杯微控制器ctd107 ds13020

比賽時官方提供用驅動函式,但是不能直接使用,需要修改相應的.c和.**件,

第一步:修改包含的標頭檔案

將.c檔案包含的標頭檔案 #include 和 #include 改為 #include 「ds1302.h」

在.**件新增 #include 「common.h」

第二步:新增內容 寫位址和讀位址,初始化時間

uint8 write_addr=; //寫時分秒

uint8 read_addr=; //讀時分秒

uint8 time[3]=; //初始化時間

第三步:寫ds1302_init() 和 ds1302_readtime()

void ds1302_init() 

write_ds1302(0x8e, 0x80); //開啟寫保護

}void ds1302_readtime()

}

以下為完整的.**件

#ifndef __ds1302_h

#define __ds1302_h

#include "common.h"

extern uint8 time[3];

void write_ds1302_byte(unsigned char temp);

void write_ds1302( unsigned char address,unsigned char dat );

unsigned char read_ds1302 ( unsigned char address );

void ds1302_init();

void ds1302_readtime();

#endif

以下為完整的.c檔案

#include "ds1302.h"

sbit sck=p1^7;

sbit sda=p2^3;

sbit rst = p1^3;

//以下為自己新增部分

uint8 write_addr=;

uint8 read_addr=;

uint8 time[3]=;

void ds1302_init()

write_ds1302(0x8e, 0x80);

}void ds1302_readtime()

}//以上為自己新增部分

void write_ds1302_byte(unsigned char temp)

}

void write_ds1302( unsigned char address,unsigned char dat )

unsigned char read_ds1302 ( unsigned char address )

rst=0;

_nop_();

rst=0;

sck=0;

_nop_();

sck=1;

_nop_();

sda=0;

_nop_();

sda=1;

_nop_();

return (temp);

}

工程模板:

藍橋杯微控制器CT107D ds18b20驅動

藍橋杯微控制器ctd107 ds18b20 比賽時官方提供用驅動函式,但是不完整,需要修改相應的.c和.件,第一步 修改單匯流排延時函式,只需要在延時函式中新增一行即可 void delay onewire unsigned int t 第二步 修改.件,將 include reg52.h 改為 i...

藍橋杯微控制器CT107D ADC

adc轉換需要寫入pcf8591三個位元組 1 0x90,器件位址及寫控制位 2 0x01光敏電阻 0x03電位器 選擇輸入控制位 3 0x91,器件位址及讀控制位 固定位址部分為 1001 可程式設計位址部分為a2 a1 a0為 000 位址 讀 1001 0001 即 0x91 位址 寫 100...

藍橋杯微控制器CT107D 底層驅動基礎

這兩個 檔案是其他底層驅動 的基礎 包含了控制138573 間接控制數碼管led和蜂鳴器等 delay延時函式 ct107開發板上點初始化 基礎 ct107.h 標頭檔案 ifndef ct107 h define ct107 h include define uint unsigned int d...