久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1738|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)問(wèn)這個(gè)單片機(jī)代碼有錯(cuò)誤嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


要達(dá)到的效果:


  1. #include <reg52.h>
  2. #include <string.h>
  3. #include <intrins.h>
  4. typedef unsigned char u8;

  5. u8 time[]="time:--:--:--";
  6. u8 dates[]="date:--------(-)";
  7. sbit        RS=P0^7;
  8. sbit        RW=P0^6;
  9. sbit        EN=P0^5;


  10. sbit RST=P0^0;
  11. sbit IO=P0^1;
  12. sbit SCLK=P0^2;


  13. void delay(u8 t)
  14. {
  15.         while(t--);
  16. }

  17. bit lcd1602_read_status()
  18. {
  19.         u8 k;
  20.         RW=1;
  21.         delay(2);
  22.         RS=0;
  23.         delay(2);
  24.         EN=1;
  25.         delay(2);
  26.         k=P2;
  27.         delay(2);
  28.         EN=0;
  29.         delay(2);
  30.         return (bit)(k&0x80);
  31. }

  32. void lcd1602_write_cmd(u8 cmd)
  33. {
  34.         while(lcd1602_read_status()!=0);
  35.         RW=0;
  36.         delay(2);
  37.         RS=0;
  38.         delay(2);
  39.         EN=1;
  40.         delay(2);
  41.         P2=cmd;
  42.         delay(2);
  43.         EN=0;
  44.         delay(2);
  45. }

  46. void lcd1602_write_dat(u8 dat)
  47. {
  48.         while(lcd1602_read_status()!=0);
  49.         RW=0;
  50.         delay(2);
  51.         RS=1;
  52.         delay(2);
  53.         EN=1;
  54.         delay(2);
  55.         P2=dat;
  56.         delay(2);
  57.         EN=0;
  58.         delay(2);
  59. }

  60. void lcd1602_init()
  61. {
  62.         lcd1602_write_cmd(0x38);
  63.         lcd1602_write_cmd(0x0c);
  64.         lcd1602_write_cmd(0x01);
  65.         lcd1602_write_cmd(0x04);
  66.         delay(200);
  67. }
  68. u8 ds1302_read_data(u8 cmd)
  69. {
  70.         u8 i,tempbit,tempdata;
  71.         RST=0;
  72.         SCLK=0;
  73.         RST=1;
  74.         for(i=0;i<8;i++)
  75.         {
  76.                 if(cmd&0x01)
  77.                         IO=1;
  78.                 else
  79.                         IO=0;
  80.                 cmd=cmd>>1;
  81.                 SCLK=0;
  82.         }
  83.         for(i=0;i<8;i++)
  84.         {
  85.                 if(IO==1)
  86.                         tempbit=0x80;
  87.                 else
  88.                         tempbit=0;
  89.                 tempdata=tempdata>>1|tempbit;
  90.                 SCLK=1;
  91.                 _nop_();
  92.                 SCLK=0;
  93.         }
  94.         RST=0;
  95.         return tempdata;
  96. }

  97. void ds1302_write_data(u8 cmd,u8 dat)
  98. {
  99.         u8 i;
  100.         RST=0;
  101.         SCLK=0;
  102.         RST=1;
  103.         for(i=0;i<8;i++)
  104.         {
  105.                 if(cmd&0x01)
  106.                         IO=1;
  107.                 else
  108.                         IO=0;
  109.                 cmd=cmd>>1;
  110.                 SCLK=1;
  111.                 _nop_();
  112.                 SCLK=0;
  113.         }
  114.         for(i=0;i<8;i++)
  115.         {
  116.                 if(dat&0x01)
  117.                         IO=1;
  118.                 else
  119.                         IO=0;
  120.                 dat=dat>>1;
  121.                 SCLK=1;
  122.                 _nop_();
  123.                 SCLK=0;
  124.         }
  125.         RST=0;
  126. }

  127. void ds1302_init()
  128. {
  129.         ds1302_write_data(0x8e,0x00);
  130.         ds1302_write_data(0x80,0x24);
  131.         ds1302_write_data(0x82,0x57);
  132.         ds1302_write_data(0x84,0x18);
  133.         
  134.         ds1302_write_data(0x86,0x01);
  135.         ds1302_write_data(0x88,0x12);
  136.         ds1302_write_data(0x8a,0x01);
  137.         ds1302_write_data(0x8c,0x15);
  138.         
  139.         ds1302_write_data(0x8e,0x80);
  140. }

  141. void ds1302_read_time()
  142. {
  143.         u8 s,m,h;
  144.         
  145.         u8 year,month,date,week;
  146.         s=ds1302_read_data(0x81);
  147.         m=ds1302_read_data(0x83);
  148.         h=ds1302_read_data(0x85);
  149.         date=ds1302_read_data(0x87);
  150.         month=ds1302_read_data(0x89);
  151.         week=ds1302_read_data(0x8b);
  152.         year=ds1302_read_data(0x8d);
  153.         
  154.         time[11]=(s>>4)+'0';
  155.         time[12]=(s&0x0f)+'0';
  156.         time[8]=(m>>4)+'0';
  157.         time[9]=(m&0x0f)+'0';
  158.         time[5]=(h>>4)+'0';
  159.         time[6]=(h&0x0f)+'0';
  160.         
  161.         dates[11]=(date>>4)+'0';
  162.         dates[12]=(date&0x0f)+'0';
  163.         dates[8]=(month>>4)+'0';
  164.         dates[9]=(month&0x0f)+'0';
  165.         dates[5]=(year>>4)+'0';
  166.         dates[6]=(year&0x0f)+'0';
  167.         dates[14]=(week&0x0f)+'0';
  168. }
  169. void main()
  170. {
  171.         u8 i;        
  172.         delay(200);
  173.         lcd1602_init();
  174.         ds1302_init();
  175.         while(1)
  176.         {
  177.                 ds1302_read_time();
  178.                 lcd1602_write_cmd(0x80);
  179.                 for(i=0;i<strlen(time);i++)
  180.                         lcd1602_write_dat(time[i]);
  181.                 lcd1602_write_cmd(0xc0);
  182.                 for(i=0;i<strlen(dates);i++)
  183.                         lcd1602_write_dat(dates[i]);
  184.         }
  185. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产电影一区二区 | 一区二区中文字幕 | 亚洲欧美日韩久久 | 日韩免费一区二区 | 国内精品久久精品 | 夜久久 | 中文亚洲字幕 | 一级aaaa毛片| 久久久av中文字幕 | 一区二区三区欧美 | 亚洲最大的成人网 | 天天弄 | 国产黄色精品在线观看 | 91污在线 | 亚洲综合一区二区三区 | 一本一道久久a久久精品蜜桃 | 欧美精品一区在线 | 中文字幕在线欧美 | av在线免费网 | 日韩精品一区二区三区中文在线 | 天天色图 | 日韩在线精品视频 | 91在线精品一区二区 | 国产精品久久久久久久久图文区 | a级毛片国产 | 999re5这里只有精品 | 免费久草 | 精品网站999 | 国产精品爱久久久久久久 | 国产午夜精品久久久久 | 成年人在线| 中文字幕精 | 人人干人人玩 | 久久久久久久久久久久久久国产 | 国产成人精品一区二区三区在线观看 | 日韩av一区二区在线观看 | 夜夜草| 99日韩| 日韩欧美视频在线 | 日韩欧美国产精品一区 | 久久久av |