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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DS1302+LCD1602顯示日期、星期、時間Proteus仿真+單片機程序

  [復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
本帖最后由 陳潤源home 于 2019-5-20 19:42 編輯

說明:開機顯示當前計算機時間(若下載到開發板上請手動調節時間)
       第1次按下MODE鍵,如果此時按下 S+ /S-,則秒的值 +1/ -1,按下yes保存設定值
       第2次按下MODE鍵,如果此時按下 S+ /S-,則分的值 +1/ -1,按下yes保存設定值
       第3次按下MODE鍵,如果此時按下 S+ /S-,則時的值 +1/ -1,按下yes保存設定值
       第4次按下MODE鍵,如果此時按下 S+ /S-,則天的值 +1/ -1,按下yes保存設定值
       第5次按下MODE鍵,如果此時按下 S+ /S-,則月的值 +1/ -1,按下yes保存設定值
       第6次按下MODE鍵,如果此時按下 S+ /S-,則周的值 +1/ -1,按下yes保存設定值
       第7次按下MODE鍵,如果此時按下 S+ /S-,則年的值 +1/ -1,按下yes保存設定值
       第8次按下MODE鍵,開始正常計時。


本程序已通過“清翔電子”開發板完美驗證,請壇友放心下載。用其他開發板的童鞋請自行修改端口。




附件還內附DS1302資料+標準程序,需要的小伙伴請下載

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



單片機源程序如下:
  1. //說明:開機顯示當前PC時間
  2. //     第1次按下MODE鍵,如果此時按下 S+ /S-,則秒的值 +1/ -1,按下yes保存設定值
  3. //     第2次按下MODE鍵,如果此時按下 S+ /S-,則分的值 +1/ -1,按下yes保存設定值
  4. //     第3次按下MODE鍵,如果此時按下 S+ /S-,則時的值 +1/ -1,按下yes保存設定值
  5. //     第4次按下MODE鍵,如果此時按下 S+ /S-,則天的值 +1/ -1,按下yes保存設定值
  6. //     第5次按下MODE鍵,如果此時按下 S+ /S-,則月的值 +1/ -1,按下yes保存設定值
  7. //     第6次按下MODE鍵,如果此時按下 S+ /S-,則周的值 +1/ -1,按下yes保存設定值
  8. //     第7次按下MODE鍵,如果此時按下 S+ /S-,則年的值 +1/ -1,按下yes保存設定值
  9. //     第8次按下MODE鍵,開始正常計時。
  10. //      
  11. //------------------------------------------------------------------------

  12. #include <reg51.h>                            //調用含有51專用寄存器的頭文件
  13. #define uchar unsigned char            //用uchar代替unsigned char
  14. #define uint unsigned int                //用uint代替unsigned int

  15. #define yh 0x80       //LCD第一行的初始位置,因為LCD1602字符地址首位D7恒定為1(100000000=80)
  16. #define er 0x80+0x40 //LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)

  17. char a,sec,min,hour,day,mouth,week,year,temp,n;                 //定義變量

  18. sbit rw=P3^6;                 //液晶讀寫端
  19. sbit rs=P3^5;                 //液晶指令/數據輸入控制
  20. sbit en=P3^4;                 //液晶使能端

  21. sbit sda=P1^1;             //數據線
  22. sbit clk=P1^0;             //時鐘線
  23. sbit rst=P1^2;             //使能

  24. sbit mode=P3^0;      //設置鍵
  25. sbit s1  =P3^1;      //加鍵
  26. sbit s2  =P3^2;      //減鍵
  27. sbit yes =P3^3;             //調整確認鍵

  28. sbit ACC0=ACC^0;         //累加器A低位
  29. sbit ACC7=ACC^7;         //累加器A高位

  30. uchar code tab1[]={"20  -  -   "};    //年顯示的固定字符
  31. uchar code tab2[]={"  :  :  "};       //時間顯示的固定字符

  32. /***********************延時子程序********************/
  33. void delay(uint xms)
  34. {
  35.         uint x,y;
  36.         for(x=xms;x>0;x--)
  37.          for(y=110;y>0;y--);
  38. }

  39. /****************液晶寫入指令函數*******************/
  40. void write_1602com(uchar com)
  41. {
  42.         rs=0;                //數據/指令選擇置為指令
  43.         rw=0;                //讀寫選擇置為寫
  44.         P0=com;              //送入數據
  45.         delay(1);
  46.         en=1;                //拉高使能端,為制造有效的下降沿做準備
  47.         delay(1);
  48.         en=0;                //en由高變低,產生下降沿,液晶執行命令
  49. }

  50. /********************液晶寫入數據函數***************/
  51. void write_1602dat(uchar dat)
  52. {
  53.         rs=1;               //數據/指令選擇置為數據
  54.         rw=0;               //讀寫選擇置為寫
  55.         P0=dat;             //送入數據
  56.         delay(1);
  57.         en=1;               //en置高電平,為制造下降沿做準備
  58.         delay(1);
  59.         en=0;               //en由高變低,產生下降沿,液晶執行命令
  60. }

  61. /**************液晶初始化函數**********************/
  62. void lcd_init()
  63. {
  64.         write_1602com(0x38);         //設置液晶工作模式,
  65.         write_1602com(0x0c);         //開顯示不顯示光標
  66.         write_1602com(0x06);         //整屏不移動,光標自動右移
  67.         write_1602com(0x01);         //清顯示

  68.         write_1602com(yh+1);         //日歷顯示固定符號從第一行第1個位置之后開始顯示
  69.         for(a=0;a<14;a++)
  70.         {
  71.         write_1602dat(tab1[a]);      //向液晶屏寫日歷顯示的固定符號部分
  72.         }
  73.         write_1602com(er+2);         //時間顯示固定符號寫入位置,從第2個位置后開始顯示
  74.         for(a=0;a<8;a++)
  75.         {
  76.         write_1602dat(tab2[a]);      //寫顯示時間固定符號,兩個冒號
  77.         }

  78. }

  79. /***************寫數據********************/
  80. void write_byte(uchar dat)
  81. {
  82.         ACC=dat;
  83.         rst=1;
  84.         for(a=8;a>0;a--)
  85.         {
  86.          sda=ACC0;
  87.          clk=0;
  88.          clk=1;
  89.          ACC=ACC>>1;
  90.         }
  91. }

  92. /******************讀數據********************/
  93. uchar read_byte()
  94. {
  95.         rst=1;
  96.         for(a=8;a>0;a--)
  97.         {
  98.          ACC7=sda;
  99.          clk=1;
  100.          clk=0;
  101.          ACC=ACC>>1;
  102.         }
  103.         return (ACC);
  104. }

  105. /*********向1302芯片寫函數,指定寫入地址,數據*********/
  106. void write_1302(uchar add,uchar dat)
  107. {
  108.         rst=0;
  109.         clk=0;
  110.         rst=1;
  111.         write_byte(add);
  112.         write_byte(dat);
  113.         clk=1;
  114.         rst=0;
  115. }

  116. /*********從1302讀數據函數,指定讀取數據來源地址*******/
  117. uchar read_1302(uchar add)
  118. {
  119.         uchar temp;
  120.         rst=0;
  121.         clk=0;
  122.         rst=1;
  123.         write_byte(add);
  124.         temp=read_byte();
  125.         clk=1;
  126.         rst=0;
  127.         return(temp);
  128. }

  129. /****************BCD碼轉十進制函數,輸入BCD,返回十進制*******/
  130. uchar BCD(uchar m)
  131. {
  132. uchar x;
  133. x=m>>4;
  134. return(x=x*10+(m&=0x0f));
  135. }

  136. /********1302芯片初始化子函********/
  137. void ds1302_init()
  138. {
  139. rst=0;
  140. clk=0;
  141. write_1302(0x8e,0x00); //允許寫,禁止寫保護
  142. delay(50);
復制代碼

所有資料51hei提供下載:
DS1302 1602液晶.rar (600.95 KB, 下載次數: 706)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:293363 發表于 2019-5-20 19:38 | 只看該作者
自古一樓是樓主
回復

使用道具 舉報

板凳
ID:335647 發表于 2019-5-23 11:16 | 只看該作者
為什么壓縮包格式損壞?
回復

使用道具 舉報

地板
ID:293363 發表于 2019-6-1 23:14 | 只看該作者
沒損壞啊,我這下載能打開
回復

使用道具 舉報

5#
ID:554789 發表于 2019-6-4 15:59 | 只看該作者
真好,剛剛好能用到,感謝樓主
回復

使用道具 舉報

6#
ID:519597 發表于 2019-6-5 19:16 | 只看該作者
感謝樓主!
回復

使用道具 舉報

7#
ID:559289 發表于 2019-6-10 19:50 | 只看該作者
感謝樓主,51黑有你更精彩!!!
回復

使用道具 舉報

8#
ID:469510 發表于 2019-6-11 14:53 | 只看該作者
感謝樓主,51黑有你更精彩!!!
回復

使用道具 舉報

9#
ID:560786 發表于 2019-6-12 12:46 | 只看該作者
謝謝樓主了哈~
回復

使用道具 舉報

10#
ID:560786 發表于 2019-6-12 12:49 | 只看該作者
謝謝樓主了哈~
回復

使用道具 舉報

11#
ID:560816 發表于 2019-6-12 13:27 | 只看該作者
感謝樓主,51黑有你更精彩,愛你么么噠
回復

使用道具 舉報

12#
ID:425846 發表于 2019-6-13 08:54 | 只看該作者
TMOd=0x11,工作模式怎么會是三?
回復

使用道具 舉報

13#
ID:425846 發表于 2019-6-13 08:57 | 只看該作者
樓主看來還沒學懂,tmod=0x11,是兩個定時器都工作在方式1,居然備注解釋是工作方式3,我也是醉了
回復

使用道具 舉報

14#
ID:425846 發表于 2019-6-13 09:15 | 只看該作者
從你這程序來看,tmod應該是工作模式三,自動重裝,因為沒看到重新設初值,也就是256vs掃描顯示一次
回復

使用道具 舉報

15#
ID:560725 發表于 2019-6-13 16:28 | 只看該作者
感謝樓主
回復

使用道具 舉報

16#
ID:480987 發表于 2019-6-18 14:44 | 只看該作者
感謝樓主
回復

使用道具 舉報

17#
ID:82043 發表于 2019-6-18 23:54 | 只看該作者
漂亮,有你更精彩!!!
回復

使用道具 舉報

18#
ID:409545 發表于 2019-6-20 16:05 來自觸屏版 | 只看該作者
哈哈哈,這個沒記錯的話是課本上的叭,某些人闊以直接抄了
回復

使用道具 舉報

19#
ID:293363 發表于 2019-6-28 11:10 | 只看該作者
wqwqw111 發表于 2019-6-13 09:15
從你這程序來看,tmod應該是工作模式三,自動重裝,因為沒看到重新設初值,也就是256vs掃描顯示一次

寫錯了
回復

使用道具 舉報

20#
ID:580058 發表于 2019-7-8 16:13 | 只看該作者
謝謝大佬
回復

使用道具 舉報

21#
ID:247623 發表于 2019-8-8 14:26 | 只看該作者
有2個問題
第一:星期顯示不對,不能做到實時顯示,比如2019/8/8,顯示卻是星期五;
第二:在調整時間的時候,光標不會閃爍
回復

使用道具 舉報

22#
ID:577423 發表于 2019-8-19 19:22 | 只看該作者
這個程序經測試以通過,謝謝大神,希望大神們多出佳作
回復

使用道具 舉報

23#
ID:463339 發表于 2019-8-21 01:04 | 只看該作者
學習了,學習了,向大神學習。
回復

使用道具 舉報

24#
ID:610572 發表于 2019-9-11 16:57 來自觸屏版 | 只看該作者
有沒有PCB原理圖啊
回復

使用道具 舉報

25#
ID:612406 發表于 2019-9-17 09:50 | 只看該作者
謝謝分享!
回復

使用道具 舉報

26#
ID:91721 發表于 2019-9-19 10:50 | 只看該作者
看著心癢癢呀,好想成為大神這樣的。
回復

使用道具 舉報

27#
ID:484951 發表于 2019-9-21 17:34 | 只看該作者
真的可以用,謝謝樓主
回復

使用道具 舉報

28#
ID:622486 發表于 2019-10-11 19:22 | 只看該作者
好難啊,不過還是謝謝樓主
回復

使用道具 舉報

29#
ID:625482 發表于 2019-10-17 11:26 | 只看該作者
感謝樓主!
回復

使用道具 舉報

30#
ID:415088 發表于 2019-11-8 14:29 | 只看該作者
正在學習數碼管加LCD1602,謝謝分享
回復

使用道具 舉報

31#
ID:639253 發表于 2019-11-11 19:39 | 只看該作者
這個要顯示溫度怎么做,調試了好久都不成功
回復

使用道具 舉報

32#
ID:640789 發表于 2019-11-13 08:08 | 只看該作者
感謝分享
回復

使用道具 舉報

33#
ID:638682 發表于 2019-11-20 17:10 | 只看該作者
感謝分享
回復

使用道具 舉報

34#
ID:626677 發表于 2019-11-22 22:17 | 只看該作者

感謝分享
回復

使用道具 舉報

35#
ID:446113 發表于 2019-11-23 10:33 | 只看該作者
感謝分享
回復

使用道具 舉報

36#
ID:639253 發表于 2019-12-1 14:27 | 只看該作者
這東西為什么星期數不對,總是多一
回復

使用道具 舉報

37#
ID:664337 發表于 2019-12-16 12:30 | 只看該作者
感謝分享,向大佬們學習!
回復

使用道具 舉報

38#
ID:671627 發表于 2019-12-24 18:54 | 只看該作者
有沒有51單片機和LCD的數字鐘,不要顯示溫度
回復

使用道具 舉報

39#
ID:671627 發表于 2019-12-24 18:55 | 只看該作者
感謝大佬
回復

使用道具 舉報

40#
ID:671627 發表于 2019-12-24 19:01 | 只看該作者
為什么我回復不了,大佬幫幫我
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 男人阁久久 | av色在线| 欧美一区免费 | 国产精品激情在线 | 日韩在线免费视频 | 99综合网 | 亚洲网站在线 | 久久综合九九 | 国产精品资源在线观看 | 中文字幕韩在线第一页 | 日韩二区 | 国产精品一区二区福利视频 | 天天草夜夜骑 | av中文天堂 | 一区二区在线不卡 | 特级生活片 | 97精品久久| 我爱操| 亚洲一区二区不卡在线观看 | 欧美片网站免费 | 亚洲一区中文 | 久久88 | 天天操夜夜操 | 亚洲国产精品精华素 | 国产精品福利网站 | 中文字幕在线免费观看 | 婷婷桃色网 | 日韩精品免费 | 久久久女女女女999久久 | 亚洲在线 | 国产乱码精品一区二区三区中文 | 久久久久久中文字幕 | 久久国 | 欧美性一区二区三区 | 免费国产一区 | 免费成人高清 | 日韩三级在线观看 | 欧美一级www片免费观看 | 日日摸夜夜添夜夜添精品视频 | 国产精品一级在线观看 | 免费国产一区二区视频 |