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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

  [復(fù)制鏈接]
回帖獎勵 10 黑幣 回復(fù)本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:293363 發(fā)表于 2019-5-20 16:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 陳潤源home 于 2019-5-20 19:42 編輯

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


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




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

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



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

  12. #include <reg51.h>                            //調(diào)用含有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;                 //液晶指令/數(shù)據(jù)輸入控制
  20. sbit en=P3^4;                 //液晶使能端

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

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

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

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

  61. /**************液晶初始化函數(shù)**********************/
  62. void lcd_init()
  63. {
  64.         write_1602com(0x38);         //設(shè)置液晶工作模式,
  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. /***************寫數(shù)據(jù)********************/
  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. /******************讀數(shù)據(jù)********************/
  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芯片寫函數(shù),指定寫入地址,數(shù)據(jù)*********/
  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讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來源地址*******/
  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碼轉(zhuǎn)十進制函數(shù),輸入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);
復(fù)制代碼

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

評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

寫錯了
回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

23#
ID:463339 發(fā)表于 2019-8-21 01:04 | 只看該作者
學(xué)習(xí)了,學(xué)習(xí)了,向大神學(xué)習(xí)。
回復(fù)

使用道具 舉報

24#
ID:610572 發(fā)表于 2019-9-11 16:57 來自手機 | 只看該作者
有沒有PCB原理圖啊
回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

30#
ID:415088 發(fā)表于 2019-11-8 14:29 | 只看該作者
正在學(xué)習(xí)數(shù)碼管加LCD1602,謝謝分享
回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

感謝分享
回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

37#
ID:664337 發(fā)表于 2019-12-16 12:30 | 只看該作者
感謝分享,向大佬們學(xué)習(xí)!
回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频福利 | 日韩欧美高清 | 日韩在线免费 | 日韩成人影院 | 国产一级片91 | 久久久久久久久久久成人 | 日日夜夜狠狠操 | 一区二区视频在线 | 国产一区免费视频 | 午夜影院黄 | 国产1区2区在线观看 | 亚洲视频在线看 | 国产精品久久久久婷婷二区次 | 久久中文字幕一区 | 在线免费国产视频 | 国产精品视频播放 | 91麻豆精品国产91久久久更新资源速度超快 | 午夜小视频在线观看 | 久久人体视频 | 成人精品鲁一区一区二区 | 国产精品久久欧美久久一区 | 中文亚洲视频 | 久久精品小视频 | www.五月天婷婷.com | 日日做夜夜爽毛片麻豆 | 日韩视频精品在线 | 黄色av免费网站 | 天久久 | 国产视频久久久 | 亚洲精品aⅴ | 亚洲一区二区在线 | 99re6在线 | 欧美精品在线一区二区三区 | 欧美精品tv| 国产精品高 | 毛片av免费在线观看 | 人人叉| 久久婷婷av| 久久精品在线播放 | 亚洲精品一二三区 | 久久久噜噜噜久久中文字幕色伊伊 |