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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 19970|回復(fù): 62
收起左側(cè)

DS1302+LCD1602顯示日期、星期、時(shí)間Proteus仿真+單片機(jī)程序

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:293363 發(fā)表于 2019-5-20 16:16 | 顯示全部樓層 |閱讀模式
本帖最后由 陳潤(rùn)源home 于 2019-5-20 19:42 編輯

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


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




附件還內(nèi)附DS1302資料+標(biāo)準(zhǔn)程序,需要的小伙伴請(qǐng)下載

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

仿真圖.jpg 0.png

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

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

  15. #define yh 0x80       //LCD第一行的初始位置,因?yàn)長(zhǎng)CD1602字符地址首位D7恒定為1(100000000=80)
  16. #define er 0x80+0x40 //LCD第二行初始位置(因?yàn)榈诙械谝粋(gè)字符位置地址是0x40)

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

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

  21. sbit sda=P1^1;             //數(shù)據(jù)線
  22. sbit clk=P1^0;             //時(shí)鐘線
  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)整確認(rèn)鍵

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

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

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

  50. /********************液晶寫(xiě)入數(shù)據(jù)函數(shù)***************/
  51. void write_1602dat(uchar dat)
  52. {
  53.         rs=1;               //數(shù)據(jù)/指令選擇置為數(shù)據(jù)
  54.         rw=0;               //讀寫(xiě)選擇置為寫(xiě)
  55.         P0=dat;             //送入數(shù)據(jù)
  56.         delay(1);
  57.         en=1;               //en置高電平,為制造下降沿做準(zhǔn)備
  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);         //開(kāi)顯示不顯示光標(biāo)
  66.         write_1602com(0x06);         //整屏不移動(dòng),光標(biāo)自動(dòng)右移
  67.         write_1602com(0x01);         //清顯示

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

  78. }

  79. /***************寫(xiě)數(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芯片寫(xiě)函數(shù),指定寫(xiě)入地址,數(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ù)來(lái)源地址*******/
  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)十進(jìn)制函數(shù),輸入BCD,返回十進(jìn)制*******/
  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); //允許寫(xiě),禁止寫(xiě)保護(hù)
  142. delay(50);
復(fù)制代碼

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

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2019-5-20 19:38 | 顯示全部樓層
自古一樓是樓主
回復(fù)

使用道具 舉報(bào)

ID:335647 發(fā)表于 2019-5-23 11:16 | 顯示全部樓層
為什么壓縮包格式損壞?
回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2019-6-1 23:14 | 顯示全部樓層
沒(méi)損壞啊,我這下載能打開(kāi)
回復(fù)

使用道具 舉報(bào)

ID:554789 發(fā)表于 2019-6-4 15:59 | 顯示全部樓層
真好,剛剛好能用到,感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:519597 發(fā)表于 2019-6-5 19:16 | 顯示全部樓層
感謝樓主!
回復(fù)

使用道具 舉報(bào)

ID:559289 發(fā)表于 2019-6-10 19:50 | 顯示全部樓層
感謝樓主,51黑有你更精彩。。
回復(fù)

使用道具 舉報(bào)

ID:469510 發(fā)表于 2019-6-11 14:53 | 顯示全部樓層
感謝樓主,51黑有你更精彩。!
回復(fù)

使用道具 舉報(bào)

ID:560786 發(fā)表于 2019-6-12 12:46 | 顯示全部樓層
謝謝樓主了哈~
回復(fù)

使用道具 舉報(bào)

ID:560786 發(fā)表于 2019-6-12 12:49 | 顯示全部樓層
謝謝樓主了哈~
回復(fù)

使用道具 舉報(bào)

ID:560816 發(fā)表于 2019-6-12 13:27 | 顯示全部樓層
感謝樓主,51黑有你更精彩,愛(ài)你么么噠
回復(fù)

使用道具 舉報(bào)

ID:425846 發(fā)表于 2019-6-13 08:54 | 顯示全部樓層
TMOd=0x11,工作模式怎么會(huì)是三?
回復(fù)

使用道具 舉報(bào)

ID:425846 發(fā)表于 2019-6-13 08:57 | 顯示全部樓層
樓主看來(lái)還沒(méi)學(xué)懂,tmod=0x11,是兩個(gè)定時(shí)器都工作在方式1,居然備注解釋是工作方式3,我也是醉了
回復(fù)

使用道具 舉報(bào)

ID:425846 發(fā)表于 2019-6-13 09:15 | 顯示全部樓層
從你這程序來(lái)看,tmod應(yīng)該是工作模式三,自動(dòng)重裝,因?yàn)闆](méi)看到重新設(shè)初值,也就是256vs掃描顯示一次
回復(fù)

使用道具 舉報(bào)

ID:560725 發(fā)表于 2019-6-13 16:28 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:480987 發(fā)表于 2019-6-18 14:44 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:82043 發(fā)表于 2019-6-18 23:54 | 顯示全部樓層
漂亮,有你更精彩。!
回復(fù)

使用道具 舉報(bào)

ID:409545 發(fā)表于 2019-6-20 16:05 來(lái)自手機(jī) | 顯示全部樓層
哈哈哈,這個(gè)沒(méi)記錯(cuò)的話是課本上的叭,某些人闊以直接抄了
回復(fù)

使用道具 舉報(bào)

ID:293363 發(fā)表于 2019-6-28 11:10 | 顯示全部樓層
wqwqw111 發(fā)表于 2019-6-13 09:15
從你這程序來(lái)看,tmod應(yīng)該是工作模式三,自動(dòng)重裝,因?yàn)闆](méi)看到重新設(shè)初值,也就是256vs掃描顯示一次

寫(xiě)錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:580058 發(fā)表于 2019-7-8 16:13 | 顯示全部樓層
謝謝大佬
回復(fù)

使用道具 舉報(bào)

ID:247623 發(fā)表于 2019-8-8 14:26 | 顯示全部樓層
有2個(gè)問(wèn)題
第一:星期顯示不對(duì),不能做到實(shí)時(shí)顯示,比如2019/8/8,顯示卻是星期五;
第二:在調(diào)整時(shí)間的時(shí)候,光標(biāo)不會(huì)閃爍
回復(fù)

使用道具 舉報(bào)

ID:577423 發(fā)表于 2019-8-19 19:22 | 顯示全部樓層
這個(gè)程序經(jīng)測(cè)試以通過(guò),謝謝大神,希望大神們多出佳作
回復(fù)

使用道具 舉報(bào)

ID:463339 發(fā)表于 2019-8-21 01:04 | 顯示全部樓層
學(xué)習(xí)了,學(xué)習(xí)了,向大神學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:610572 發(fā)表于 2019-9-11 16:57 來(lái)自手機(jī) | 顯示全部樓層
有沒(méi)有PCB原理圖啊
回復(fù)

使用道具 舉報(bào)

ID:612406 發(fā)表于 2019-9-17 09:50 | 顯示全部樓層
謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:91721 發(fā)表于 2019-9-19 10:50 | 顯示全部樓層
看著心癢癢呀,好想成為大神這樣的。
回復(fù)

使用道具 舉報(bào)

ID:484951 發(fā)表于 2019-9-21 17:34 | 顯示全部樓層
真的可以用,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:622486 發(fā)表于 2019-10-11 19:22 | 顯示全部樓層
好難啊,不過(guò)還是謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:625482 發(fā)表于 2019-10-17 11:26 | 顯示全部樓層
感謝樓主!
回復(fù)

使用道具 舉報(bào)

ID:415088 發(fā)表于 2019-11-8 14:29 | 顯示全部樓層
正在學(xué)習(xí)數(shù)碼管加LCD1602,謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:639253 發(fā)表于 2019-11-11 19:39 | 顯示全部樓層
這個(gè)要顯示溫度怎么做,調(diào)試了好久都不成功
回復(fù)

使用道具 舉報(bào)

ID:640789 發(fā)表于 2019-11-13 08:08 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:638682 發(fā)表于 2019-11-20 17:10 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:626677 發(fā)表于 2019-11-22 22:17 | 顯示全部樓層

感謝分享
回復(fù)

使用道具 舉報(bào)

ID:446113 發(fā)表于 2019-11-23 10:33 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:639253 發(fā)表于 2019-12-1 14:27 | 顯示全部樓層
這東西為什么星期數(shù)不對(duì),總是多一
回復(fù)

使用道具 舉報(bào)

ID:664337 發(fā)表于 2019-12-16 12:30 | 顯示全部樓層
感謝分享,向大佬們學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

ID:671627 發(fā)表于 2019-12-24 18:54 | 顯示全部樓層
有沒(méi)有51單片機(jī)和LCD的數(shù)字鐘,不要顯示溫度
回復(fù)

使用道具 舉報(bào)

ID:671627 發(fā)表于 2019-12-24 18:55 | 顯示全部樓層
感謝大佬
回復(fù)

使用道具 舉報(bào)

ID:671627 發(fā)表于 2019-12-24 19:01 | 顯示全部樓層
為什么我回復(fù)不了,大佬幫幫我
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线一 | 91av导航 | 日韩在线免费视频 | 亚洲视频免费观看 | 久久久久久久一区 | 伊人伊人 | aaa天堂| 欧美成人一区二区 | 日韩av一区二区在线观看 | 人人擦人人干 | 日韩成人免费av | 国产精品久久久久久婷婷天堂 | 国产高清在线视频 | 国产精品激情在线 | 欧美日韩国产一区二区三区 | 久久99精品久久久久久秒播九色 | 911网站大全在线观看 | 国产真实精品久久二三区 | 免费毛片网站在线观看 | 中文字幕在线视频精品 | 亚洲一区二区三区视频 | 成人网在线看 | 成人三区四区 | 热re99久久精品国99热观看 | 国产免费一区二区三区网站免费 | 亚洲精品在线免费 | 久久夜夜| 久久国产视频播放 | 国产精品高潮呻吟久久 | 日本精品久久 | 一区二区三区高清 | 欧美在线观看网站 | 久久天堂 | 97久久精品午夜一区二区 | 国色天香综合网 | 黄色片免费看视频 | 久久久精品| 国产成人小视频 | 日韩精品久久久久 | 毛片网络 | 久久久国产一区二区三区 |