单片机 时钟(Singlechip clock).docVIP

  • 5
  • 0
  • 约4.95千字
  • 约 16页
  • 2017-10-06 发布于河南
  • 举报
单片机 时钟(Singlechip clock)

单片机 时钟(Singlechip clock) #包括 reg51. H #包括 absacc。h //定义绝对地址访问 #包括信息。” #定义unsigned char函数 # unsigned int定义单元 公司t_clk = P1 ^ 3;// DS1302时钟线引脚 公司t_io = P1 ^ 4;// DS1302数据线引脚 公司t_rst = P1 ^ 2;// DS1302复位线引脚 普通RS = P1 ^ 7;/ /定义液晶的控制线 公司^ RW = P1 6; 普通EN = P1 ^ 5; P3 ^普通KEY0 = 0;//定义按键 公司^ key1 = P3 1; 公司^ KEY2 = P3 2; 公司acc7 = ACC ^ 7; 了ACC ^ ACC0 = 0; 函数datechar [ ] = {“日期:”}; 函数timechar [ ] = {“时间”}; 函数datebuffer [ 8 ] = { 0,0,0x2d,0,0,0x2d,0,0 };//定义日历显示缓冲区 函数timebuffer [ 8 ] = { 0,0,0x3a,0,0,0x3a,0,0 };//定义时间显示缓冲区 函数数据时间[ 3 ] = { 0x00,0x00,0x00 };//分别为秒、分和小时的值 函数数据数据[ 3 ] = { 0x00,0x00,0x00 };//分别为年、月、日 / /往DS1302写入1byte数据 无效writeb(UCHAR UCDA) { 我的函数; ACC = UCDA; 对于(i = 8;i 0;i…) { t_io = ACC0;/ /相当于汇编中的RRC t_clk = 1; t_clk = 0; ACC = 1; } } / /从DS1302读取1byte数据 uchar ReadB(void) { 我的函数; 对于(i = 8;i 0;i…) { ACC = 1; acc7 = t_io;t_clk = 1;t_clk = 0;//相当于汇编中的RRC } 返回(ACC); } / / DS1302单字节写,向指定单元写命令/数据,ucaddr:DS1302地址、熊去氧胆酸:要写的命令/数据 无效v_w1302(函数的函数ucaddr,UCDA) { t_rst = 0; t_clk = 0; _nop_();_nop_(); t_rst = 1; _nop_();_nop_(); writeb(ucaddr);/*地址,命令*/ writeb(UCDA);/*写1byte数据*/ t_clk = 1; t_rst = 0; } / / DS1302单字节读,从指定地址单元读出的数据 uc_r1302函数(函数ucaddr) { UCHAR UCDA = 0; t_rst = 0;t_clk = 0; t_rst = 1; writeb(ucaddr);/ * * /写地址 UCDA = readb();/*读1byte命令/数据*/ t_clk = 1;t_rst = 0; 返回(UCDA); } / /液晶检查忙函数 无效fbusy() { P2 = 0xff; RS=0; RW = 1; EN=1; EN=0; 而((P2和0x80)) { EN=0; EN=1; } } / /液晶写命令函数 wc51r(void函数J) { fbusy(); EN=0; RS=0; RW = 0; EN=1; P2 = j; EN=0; } / /液晶写数据函数 wc51ddr(void函数J) { fbusy();/ /读状态; EN=0; RS=1; RW = 0; EN=1; P2 = j; EN=0; } 无效()// LCD1602初始化 { wc51r(0x01);/ /清屏 wc51r(0X38);/ /使用8位数据,显示两行,使用5×7的字型 wc51r(0x0c);/ /显示器开,光标开,字符不闪烁 wc51r(0x06);/ /字符不动,光标自动右移一格 } / / ************延时函数************ 延时(个我)/延时函数 {单位Y,J; 对于(j = 0;j i;j + +){ 为(y = 0;Y<0xff;Y + +){;} } } 空主(空) { 我设置的函数; 数据温度的函数; SP = 0x50; 延迟(10); (); wc51r(0x80); 为(i = 0;i 5;i++)wc51ddr(datechar [我]);//第一行开始显示数据: wc51r(0xC0); 为(i = 0;i 5;i++)wc51ddr(timechar [我]);//第二行开始显示时间: (1) { P3 = 0xff; 如果(KE

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档