wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10557|回復: 10
打印 上一主題 下一主題
收起左側

單片機+Ds1302+lcd1602萬年歷,可設置時間

  [復制鏈接]
跳轉到指定樓層
樓主
單片機萬年歷1602仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. //此為主程序,查看完成下載附件,包含仿真,可運行
  2. #include "reg52.h"
  3. #include "main.h"
  4. #include "LCD1602.h"  //顯示模塊函數在LCD1602.c文件中
  5. //屏幕中第一行和第二行顯示的框架
  6. code char lcd_line[2][16]={
  7. "Date 20__-__-__ ",        //顯示日期
  8. "Time  __:__:__  ",        //顯示時間
  9. };
  10. //按鍵
  11. sbit S1 = P3^1;  //設置
  12. sbit S2 = P3^5;  //加
  13. sbit S3 = P3^6;  //減
  14. //當前時間
  15. char time_hour=23;
  16. char time_min=59;
  17. char time_sec=55;

  18. char time_year=18;
  19. char time_month=6;
  20. char time_day=30;
  21. uchar mode = 0;                 //當前模式


  22. //STC89系列單片機延時1ms
  23. void delay_ms(unsigned int x)
  24. {
  25.         char j=0;
  26.         while(x--)
  27.                 for(j=0;j<125;j++)
  28.                         ;
  29. }
  30. //讀取時間數據
  31. void read_ds1302_all()
  32. {
  33.         time_hour = ds1302_read_hour();//讀取小時
  34.         time_min = ds1302_read_min();//分鐘
  35.         time_sec = ds1302_read_sec();        //秒鐘
  36.         time_year = ds1302_read_year();
  37.         time_month = ds1302_read_month();
  38.         time_day = ds1302_read_day();

  39. }      
  40. //顯示
  41. void display_time()
  42. {
  43.         //時分秒
  44.         lcd_write_char(6,1,time_hour/10+'0');
  45.         lcd_write_char(7,1,time_hour%10+'0');
  46.         lcd_write_char(9,1,time_min/10+'0');
  47.         lcd_write_char(10,1,time_min%10+'0');
  48.         lcd_write_char(12,1,time_sec/10+'0');
  49.         lcd_write_char(13,1,time_sec%10+'0');
  50.         //年月日
  51.         lcd_write_char(7,0,time_year/10+'0');
  52.         lcd_write_char(8,0,time_year%10+'0');
  53.         lcd_write_char(10,0,time_month/10+'0');
  54.         lcd_write_char(11,0,time_month%10+'0');
  55.         lcd_write_char(13,0,time_day/10+'0');
  56.         lcd_write_char(14,0,time_day%10+'0');
  57. }                 
  58. //按鍵掃描
  59. char key_scan()
  60. {
  61.         if(S1==0 || S2==0 || S3==0)                                        // 如果按下了
  62.         {
  63.                 delay_ms(5);                                                                                                                   //去抖動
  64.                 if(S1==0 || S2==0 || S3==0)                           //確實按下了
  65.                 {
  66.                         if(S1==0){while(S1==0); return 1;}          //按鍵1確實按下了。依此類推。
  67.                         if(S2==0){while(S2==0); return 2;}          //
  68.                         if(S3==0){while(S3==0); return 3;}          //
  69.                 }
  70.         }
  71.         return 0;                                                                          //沒有按鍵按下
  72. }

  73. //按鍵動作
  74. void key_action()
  75. {
  76.         char key=0;
  77.         key=key_scan();
  78.     if(key == 0) return;

  79.         if(key==1)
  80.         {
  81.                 mode++;
  82.                 if(mode > 6)
  83.                 {
  84.                         mode = 0;
  85.                         lcd_write(0,0x0c);//顯示器開,光標關,字符不閃爍
  86.                 }
  87.         }
  88.         switch(mode)
  89.         {
  90.                 case 1:                 //秒
  91.                 {
  92.                        
  93.                         lcd_write(0,0x0f);                 //光標閃爍      
  94.                         lcd_write(0,0x80+0x40+13);        //位置      
  95.                         if(key==2){time_sec++;}         //秒++
  96.                         if(key==3){time_sec--;}         //秒--
  97.                         if(time_sec>=60){time_sec=0;}
  98.                         if(time_sec<0){time_sec=59;}
  99.                         lcd_write_char(12,1,time_sec/10+'0'); //顯示
  100.                     lcd_write_char(13,1,time_sec%10+'0');
  101.                         lcd_write(0,0x80+0x40+13);        //回到原位
  102.                         ds1302_set_sec(time_sec );
  103.                        
  104.                 }
  105.                 break;
  106.                 case 2:                         //分
  107.                 {
  108.                        
  109.                         lcd_write(0,0x0f);                 //光標閃爍      
  110.                         lcd_write(0,0x80+0x40+10);        //定位      
  111.                         if(key==2){time_min++;}         //分++
  112.                         if(key==3){time_min--;}         //分--
  113.                         if(time_min>=60){time_min=0;}
  114.                         if(time_min<0){time_min=59;}
  115.                         lcd_write_char(9,1,time_min/10+'0'); //顯示
  116.                         lcd_write_char(10,1,time_min%10+'0');
  117.                         lcd_write(0,0x80+0x40+10);        //回到原位
  118.                         ds1302_set_min(time_min );
  119.                 }
  120.                 break;
  121.                 case 3:                   //時
  122.                 {
  123.                        
  124.                         lcd_write(0,0x0f);                 //光標閃爍      
  125.                         lcd_write(0,0x80+0x40+7);        //定位      
  126.                         if(key==2){time_hour++;}         //時++
  127.                         if(key==3){time_hour--;}         //時--
  128.                         if(time_hour>=24){time_hour=0;}
  129.                         if(time_hour<0){time_hour=23;}
  130.                         lcd_write_char(6,1,time_hour/10+'0'); //顯示
  131.                         lcd_write_char(7,1,time_hour%10+'0');
  132.                         lcd_write(0,0x80+0x40+7);        //回到原位
  133.                         ds1302_set_hour(time_hour);
  134.                 }
  135.                 break;
  136.                 case 4:                         //年
  137.                 {
  138.                        
  139.                         lcd_write(0,0x0f);                        
  140.                         lcd_write(0,0x80+8);               
  141.                         if(key==2){time_year++;}         
  142.                         if(key==3){time_year--;}
  143.                         lcd_write_char(7,0,time_year/10+'0');
  144.                         lcd_write_char(8,0,time_year%10+'0');
  145.                         lcd_write(0,0x80+8);        //回到原位         
  146.                         ds1302_set_year(time_year);
  147.                 }
  148.                 break;
  149.                 case 5:                         //月
  150.                 {
  151.                        
  152.                         lcd_write(0,0x0f);                        
  153.                         lcd_write(0,0x80+11);               
  154.                         if(key==2){time_month++;}         
  155.                         if(key==3){time_month--;}      
  156.                         if(time_month>12){time_month=1;}
  157.                         if(time_month<0){time_month=12;}
  158.                         lcd_write_char(10,0,time_month/10+'0');
  159.                         lcd_write_char(11,0,time_month%10+'0');
  160.                         lcd_write(0,0x80+11);        //回到原位
  161.                         ds1302_set_month(time_month);
  162.                 }
  163.                 break;
  164.                 case 6:                        //日
  165.                 {
  166.                        
  167.                         lcd_write(0,0x0f);               
  168.                         lcd_write(0,0x80+14);      
  169.                         if(key==2){time_day++;}         
  170.                         if(key==3){time_day--;}
  171.                         //判斷28天30天或31天
  172.                         if(time_min==2)          //2月28天
  173.                         {
  174.                         if(time_day>28){time_day=0;}
  175.                         if(time_day<0){time_day=28;}
  176.                         }
  177.                         if(time_month==4 || time_month==6  || time_month==9  || time_month==11)          //30天
  178.                         {
  179.                         if(time_day>30){time_day=0;}
  180.                         if(time_day<0){time_day=30;}
  181.                         }
  182.                         if(time_month==1 || time_month==3  || time_month==5  || time_month==7  || time_month==8  || time_month==10  || time_month==12 )          //31天
  183.                         {
  184.                         if(time_day>31){time_day=0;}
  185.                         if(time_day<0){time_day=31;}
  186.                         }                       
  187.                         lcd_write_char(13,0,time_day/10+'0');
  188.                         lcd_write_char(14,0,time_day%10+'0');
  189.                         lcd_write(0,0x80+14);        //回到原位         
  190.                         ds1302_set_day(time_day);
  191.                 }
  192.                 break;               
  193.         }

  194. }                        
  195. //主程序
  196. void main()
  197. {
  198.         lcd_init();//LCD1602液晶顯示屏初始化
  199.         ds1302_init();
  200.         lcd_write_line(0,lcd_line[0]);//屏幕顯示第一行框架        
  201.         lcd_write_line(1,lcd_line[1]);//屏幕顯示第二行框架
  202.         ds1302_set_sec(time_sec);
  203.         ds1302_set_min(time_min);      
  204.         ds1302_set_hour(time_hour);
  205.         //
  206.         ds1302_set_day(time_day);
  207.         ds1302_set_month(time_month);
  208.         ds1302_set_year(time_year);
  209.         //主循環
  210.         while(1)
  211.         {      
  212.                 key_action();
  213.                
  214.                 if(!mode)                   //沒有進入設定時間
  215.                 {
  216.                          read_ds1302_all();           //顯示年月日時分秒
  217.                         display_time();                   //顯示
  218.                 }
  219.                 else  //讀回設定時間
  220.                 {
  221.                         ds1302_set_sec(time_sec);
  222.                         ds1302_set_min(time_min);      
  223.                         ds1302_set_hour(time_hour);
  224.                         //
  225.                         ds1302_set_day(time_day);
  226.                         ds1302_set_month(time_month);
  227.                         ds1302_set_year(time_year);      
  228.                 }
  229.                
  230.         }
  231. }
  232. ////////////////////////////////////
復制代碼


所有資料51hei提供下載:
ds1302萬年歷.rar (107.16 KB, 下載次數: 488)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂1 踩
回復

使用道具 舉報

12#
無效樓層,該帖已經被刪除
11#
ID:249808 發表于 2020-9-28 09:57 | 只看該作者
仿真了一下!還可以!可以用老版本軟件仿真!
回復

使用道具 舉報

10#
ID:732301 發表于 2020-5-3 19:53 | 只看該作者
想請問一下作者在LCD那里RW為什么不用連接,直接接地?
回復

使用道具 舉報

9#
ID:654855 發表于 2020-4-14 16:57 | 只看該作者
很強,剛學看的有點吃力
回復

使用道具 舉報

8#
ID:617682 發表于 2020-3-22 16:40 | 只看該作者
這萬年歷 代碼可以解析嗎?
回復

使用道具 舉報

7#
ID:684962 發表于 2020-1-11 12:33 | 只看該作者
真棒太感謝了
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
5#
ID:408289 發表于 2018-10-15 10:54 | 只看該作者
萬年歷、加油!
回復

使用道具 舉報

地板
ID:253741 發表于 2018-9-27 17:56 | 只看該作者
正在學習  加油!
回復

使用道具 舉報

板凳
ID:400537 發表于 2018-9-20 17:46 | 只看該作者
感謝分享,對比著試下
回復

使用道具 舉報

沙發
ID:345157 發表于 2018-9-19 17:55 | 只看該作者
謝謝,正在學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产91精品不卡视频| 久久精品色妇熟妇丰满人妻| 国产精品偷伦免费视频观看的| 欧美精品在线一区二区| 久久久久久久久久久久久久久99| 色偷偷综合网| 亚洲成人看片| 欧美在线一卡| 韩国福利一区| 国产精品视频在线观看免费| 五月婷婷婷婷婷| 亚洲黄色a v| 相泽南亚洲一区二区在线播放 | 伊人国产在线| 91国在线产| www.久久精品.com| 国产一级大片在线观看| 成年人小视频在线观看| 人妻av无码专区| 黄色国产精品一区二区三区| 欧美在线视频观看| 一本色道久久88亚洲综合88| 欧美久久一二区| 成人欧美一区二区三区白人| 高清不卡一二三区| 麻豆久久精品| 亚洲欧美亚洲| 精品视频免费| 亚洲**毛片| 国产成人亚洲一区二区三区| av黄在线观看| 毛片网站在线| 国产香蕉视频在线观看| 九九热免费视频| 久久国产精品1区2区3区网页| 99精品久久久久久中文字幕| 午夜毛片在线观看| 久久久久久久久艹| 网爆门在线观看| 少妇户外露出[11p]| 性生生活大片免费看视频| 裸体裸乳免费看| 日本在线观看不卡| 国产精品视频入口| 91影视免费在线观看| 国产成人精品日本亚洲专区61| 免费97视频在线精品国自产拍| 亚洲欧美中文日韩在线v日本| 欧美一级理论片| 欧美少妇一区二区| 色欧美片视频在线观看在线视频| 亚洲一区二区三区自拍| 国产精品成人免费在线| 欧美国产乱子伦| 国产三级三级三级精品8ⅰ区| 国产高清在线观看免费不卡| 国产真实精品久久二三区| 日韩福利电影在线| 日韩黄色免费电影| 亚洲欧美久久| 三级在线观看一区二区| 日韩成人一区二区| 奇米影视一区二区三区| 蜜桃久久精品一区二区| 久久国产福利国产秒拍| 国产乱码精品一区二区三区忘忧草 | 深夜福利在线观看直播| 白白色视频在线| 国产导航在线| 在线免费av网址| 天堂a√中文在线| 免费动漫网站在线观看| 国产系列在线观看| av在线首页| av毛片在线| 精精国产xxxx视频在线播放| 亚洲精品动漫| 欧洲精品一区二区三区| 久久久精品一区二区毛片免费看| 另类一区二区| 超碰97久久| 一区三区在线欧| 日韩专区精品| 亚洲区国产区| 精品午夜久久福利影院| 国产盗摄一区二区三区| 久久综合九色综合97_久久久| 久久午夜免费电影| 亚洲伦在线观看| 精品日本美女福利在线观看| 欧美日韩极品在线观看一区| 精品国产一区二区三区不卡 | 欧美成人一区二区在线观看| 九九视频精品在线观看| 四虎精品一区二区| 九一在线免费观看| 69精品久久久| 国产成人三级一区二区在线观看一| 风流少妇一区二区三区91| 欧美人乱大交xxxxx| jizz18日本| 美女做暖暖视频免费在线观看全部网址91| 日本天堂在线观看| 午夜无码国产理论在线| 久久香蕉网站| 亚洲激情视频| 成人黄色国产精品网站大全在线免费观看| 国产日产欧美一区二区视频| 午夜精品久久久久影视| 日韩免费视频一区| 久久99国产综合精品女同| 国产精品第3页| 欧美乱偷一区二区三区在线| 国产精品va在线观看无码| 精品国产午夜福利在线观看| www.xxxx日本| 精品国产亚洲av麻豆| 91高清视频| 视频福利在线| 成人福利片在线| 日韩在线第七页| 国产一区啦啦啦在线观看| 中文字幕制服丝袜成人av| 精品视频一区三区九区| 久久激情五月丁香伊人| 97碰碰视频| 欧美色图色综合| 欧美人妻一区二区三区| 国产一区二区女内射| 国产精品久久久精品a级小说| 色网在线视频| 欧美精品资源| 国精品一区二区三区| 99久久久久久99| 欧美日高清视频| 国内免费精品永久在线视频| 欧美日韩一区在线播放| 伊人色在线视频| 日韩免费视频网站| 欧美性活一级视频| 欧美视频综合| 国产aa精品| 亚洲一区二区网站| 亚洲精品国产精华液| 日韩理论片久久| 96sao精品视频在线观看| 男女啪啪免费视频网站| 香蕉成人在线视频| 天天操天天射天天| 欧美变态视频| 欧美日韩国产一区二区在线观看| 午夜在线一区二区| 亚洲国产aⅴ天堂久久| 有码中文亚洲精品| 久久精品女人的天堂av| 亚洲黄色小说在线观看| 国产99久久久久久免费看| 免费又爽又黄禁片视频1000片| 欧美极品另类| 欧美日韩性在线观看| 暴力调教一区二区三区| 这里只有精品视频在线观看| 国产精品88a∨| 日韩欧美xxxx| 欧美日韩乱国产| a级毛片免费| 91精品影视| 日本人妖一区二区| 在线一区二区视频| 日产日韩在线亚洲欧美| 日批视频在线免费看| 国产精品6666| eeuss影院130020部| 伊人色综合一区二区三区影院视频| 亚洲最大av| 亚洲在线免费播放| 久久久中文字幕| 国产资源在线视频| 亚洲欧美日韩激情| 少妇高潮露脸国语对白| 国产在线播放精品| 2021国产精品久久精品| 亚洲精品一区在线观看香蕉| 欧美一区二区三区电影在线观看 | 69国产精品视频| 91麻豆精品国产综合久久久| 狠狠色丁香婷婷综合| 精品日韩欧美一区二区| 久久人人九九| 小早川怜子一区二区的演员表| 91国在线产| 国产精品原创视频| 国产精品亚洲а∨天堂免在线| 精品国产成人在线影院| 免费成人av网站| av片在线免费看| 九九热在线视频免费观看| 伊人久久精品| 成人网在线播放| 亚洲一级免费视频| 自拍亚洲欧美老师丝袜| 久久久久成人网站| 污视频网站免费看| 欧美激情在线精品一区二区三区| 亚洲特级片在线| 日本欧美中文字幕| 色诱av手机版| 亚洲日韩色图| 二区三区不卡| av一本久道久久综合久久鬼色| 最近2019中文免费高清视频观看www99 | 91精品久久久久久久91蜜桃| 国产亚洲福利社区| 欧美手机在线观看| 黑粗硬长欧美在线视频免费的| 亚洲性视频大全| 亚洲图片欧美一区| 91免费观看网站| 日韩av片在线免费观看| avlululu| 国产精品久久久乱弄| 欧美视频一区二| 日韩精品久久一区二区三区| 国产精品视频免费播放| 国自产拍在线网站网址视频| 99精品国产99久久久久久福利| 日韩一区二区在线播放| 一级特黄妇女高潮| 亚洲图片在线播放| 午夜dj在线观看高清视频完整版| 九九国产精品视频| 久久国产精品久久精品| 免费成人黄色大片| 成人午夜国产福到在线| 日韩mv欧美mv国产网站| 精品久久久一区| 久久综合九色欧美狠狠| 久久久久久久久黄色| 黄色精品在线观看| 国产宾馆实践打屁股91| 午夜精品久久久久久99热软件| 亚洲天堂av网站| 涩涩视频免费网站| 欧美不卡在线| 日韩av影视综合网| 天天影视综合色| 2023国产在线观看| 欧美一级淫片| 日韩欧美亚洲国产另类| 国产一区二区视频播放| 男人看的污网站| 久草在线综合| 欧美日韩久久久一区| 国产一级大片免费看| 先锋影音男人| 精品久久97| 欧美日韩一区二区三区高清| 国产视频在线观看网站| 中文先锋资源| 九九亚洲视频| 精品乱人伦小说| 亚洲欧美在线精品| h版电影在线播放视频网站| 91久久高清国语自产拍| 亚洲国产精品推荐| av噜噜在线观看| 老司机在线免费视频| 亚洲一区二区三区免费在线观看| 久久精品视频99| 亚洲人成人无码网www国产| 在线成年人视频| 国产91在线|亚洲| 91精品久久久久久久久中文字幕| 日韩福利片在线观看| 精精国产xxx在线视频app| 亚洲视频资源在线| 水蜜桃亚洲精品| 男女猛烈无遮挡午夜视频| 免费av一区| 日韩精品视频免费在线观看| 亚洲午夜精品在线观看| 国产女王在线**视频| 国产成人综合在线播放| 成人在线激情视频| 国产www在线| 色老太综合网| 欧美在线一区二区| 久久精品午夜福利| 高清一级毛片视频| 国产不卡在线视频| 春色成人在线视频| 天天摸天天干天天操| 日韩dvd碟片| 日韩日本欧美亚洲| 成熟的女同志hd| 伊人久久综合一区二区| 色又黄又爽网站www久久| 国产精品99久久免费黑人人妻| 影音先锋男人看片资源| av在线资源| 欧美午夜激情在线| 天天爱天天操天天干| 三级ai视频| 91毛片在线观看| 色大师av一区二区三区| 久热国产在线视频| 午夜在线观看免费一区| 国产精品久久久久久久久借妻 | 久久丫精品国产亚洲av不卡| 成年人视频在线免费观看| 国产精品久久久久久久久快鸭 | 精品偷拍激情视频在线观看| 99亚洲视频| 国产日产欧美精品| 亚洲成人一级片| 欧美永久精品| 青青在线视频一区二区三区| 亚欧洲精品在线视频免费观看| 久久国产精品1区2区3区网页 | 韩国三级成人在线| 亚洲国产中文字幕在线观看| 亚洲一级中文字幕| a√中文在线观看| 欧美另类z0zxhd电影| 男男做爰猛烈叫床爽爽小说 | 爱爱网站免费| 国产传媒一区在线| 神马影院一区二区| 18以下岁禁止1000部免费| 成人精品免费看| 亚洲精品成人自拍| 日日夜夜天天操| 久久蜜臀中文字幕| 黄页网站在线观看视频| 亚洲综合图片| 亚洲第一狼人社区| 一起草最新网址| a级网站在线播放| 欧美日韩国产大片| 国产精品成人在线视频| 未满十八勿进黄网站一区不卡| 亚洲国内精品视频| 成人精品在线看| 精品一区电影| 97精品一区二区三区| 国产夫妻性生活视频| 91久久黄色| 狠狠色噜噜狠狠色综合久| 看全色黄大色黄大片免责看的| 成人免费视频app| 亚洲熟妇无码一区二区三区导航| 在线中文字幕视频| 精品久久久免费| 30一40一50老女人毛片| 国产乱子精品一区二区在线观看| 亚洲天堂第二页| 亚洲视频在线免费播放| 影音国产精品| 久久精品二区| 福利在线免费| 偷窥国产亚洲免费视频| 日韩中文字幕电影| 亚洲专区**| 日本精品久久电影| 九色porny丨精品自拍视频| 国产成人在线视频免费播放| 性欧美大战久久久久久久| h网站在线免费观看| 777午夜精品免费视频| 久久精品久久国产| 亚洲国产精品日韩专区av有中文| 粉嫩av一区二区三区免费观看 | 欧美黄色一级视频| 国产精品日韩欧美一区二区三区| 女人在下体塞跳蛋在线观看| 国产精品成人在线观看| 亚洲欧美激情一区二区三区| 免费污视频在线一区| 欧美尺度大的性做爰视频| 亚洲 另类 春色 国产| 国产精选一区二区三区| 日本在线观看a| 黄色视屏在线免费观看| 在线视频国产日韩| 日韩一级片免费在线观看| 国产大陆a不卡| 毛片毛片毛片毛| 国产精品久久久久久久久久辛辛| 91成人福利在线| 午放福利视频在线播放| 亚洲欧美日韩久久精品| 美国黑人一级大黄| 精品国产中文字幕第一页 | 亚洲91网站| 国产免费久久av| 美女视频免费观看网站在线| 在线免费精品视频| av片免费观看| 日本一区中文字幕| 情侣黄网站免费看|