18B20测温 1302时钟程序.docVIP

  • 4
  • 0
  • 约1.48万字
  • 约 17页
  • 2018-04-10 发布于江西
  • 举报
18B20测温 1302时钟程序.doc

#includereg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #includestdio.h #define KeyPort P3 //定义按键端口 #define DataPort P0 //1602端口 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_hr_add 0x84 //时数据地址 #define ds1302_date_add 0x86 //日数据地址 #define ds1302_month_add 0x88 //月数据地址 #define ds1302_day_add 0x8a //星期数据地址 #define ds1302_year_add 0x8c //年数据地址 #define ds1302_control_add 0x8e //控制数据地址 #define ds1302_charger_add 0x90 #define ds1302_clkburst_add 0xbe bit ReadTempFlag;//1820定义读时间标志 sbit DQ=P1^3; //18B20信号端 sbit bz=P1^2; //喇叭 sbit led1=P1^0; sbit led2=P1^1; sbit SCK=P1^4; //DS1302控制端 sbit SDA=P1^5; sbit RST=P1^6; sbit RS = P2^4; //1602控制端定义端口 sbit RW = P2^5; sbit EN = P2^6; //使能信号 bit ReadTimeFlags;//1302定义读时间标志 bit SetFlag; //更新时间标志位 void Init_Timer0(void);//定时器初始化 void Init_Timer1(void);//定时器初始化 unsigned char KeyScan(void);//键盘扫描 #define RS_CLR RS=0 #define RS_SET RS=1 #define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0 #define EN_SET EN=1 //复位脚 #define RST_CLR RST=0//电平置低 #define RST_SET RST=1//电平置高 //双向数据 #define IO_CLR SDA=0//电平置低 #define IO_SET SDA=1//电平置高 #define IO_R SDA //电平读取 //时钟信号 #define SCK_CLR SCK=0//时钟信号 #define SCK_SET SCK=1//电平置高 unsigned char time_buf2[16]; unsigned char time_buf[8] = {20,10,6,5,12,55,00,6};//空年月日时分秒周 unsigned char time_buf1[8] ; //空年月日时分秒周 void DelayUs2x(unsigned char t) { while(--t); } /*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) { while(t--) //大致延时1mS { DelayUs2x(245); DelayUs2x(245); } } /*------------------------------------------------ 判忙函数 ------------------------------------------------*/ bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; EN_SET; retu

文档评论(0)

1亿VIP精品文档

相关文档