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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)驅(qū)動(dòng)19264液晶大數(shù)字時(shí)鐘程序,DS12CR887和DS1302,帶Proteus仿真

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
弄了個(gè)簡(jiǎn)單的19264液晶時(shí)鐘,采用大數(shù)字顯示,用DS1302和ds12cr887時(shí)鐘芯片,分別兩個(gè)對(duì)應(yīng)程序。只有時(shí)、分、秒和溫度顯示。

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


單片機(jī)源程序如下:
  1. /*系統(tǒng)頭文件--------------------------------------------------------------------*/
  2. #include <reg52.h>
  3. #include <absacc.h>
  4. /*包含的文件--------------------------------------------------------------------*/
  5. #include "MODEL.h"
  6. #include "LCD19264.h"
  7. #include "DS12CR887.h"
  8. #include "DS18B20.h"
  9. /*定義變量名--------------------------------------------------------------------*/
  10. #define uchar unsigned char
  11. #define uint  unsigned int
  12. /*定義變量----------------------------------------------------------------------*/
  13. bit  q=0,w=0;     //調(diào)時(shí)標(biāo)志位
  14. /*定義時(shí)間變量——————————————————————————————————————————————————————————————————*/
  15. uchar sec,min,hour;
  16. /*定義按鍵----------------------------------------------------------------------*/
  17. sbit K1  = P1^7;  //按鍵K1-設(shè)置
  18. sbit K2  = P1^4;  //按鍵K2-確認(rèn)、返回
  19. sbit K3  = P1^6;  //按鍵K3-加
  20. sbit K4  = P1^5;  //按鍵K4-減
  21. sbit K5  = P1^3;  //液晶背光控制按鍵,按一下亮,再按一下滅
  22. sbit BEEP= P1^2;  //蜂鳴器
  23. sbit BLA = P1^0;  //液晶背光控制輸出,低電平有效,PNP三極管控制。
  24. /*顯示時(shí)、分、秒————————————————————————————————————————————————————————————————*/
  25. void displaytime(void)
  26. {
  27. //往液晶屏填寫"小時(shí)"數(shù)據(jù)-----------------------------------------------
  28.         hour=ds_read(4);         //讀取DS12CR887的小時(shí)數(shù)據(jù)
  29.         if((hour/10)==0){Show3264(0,0,11);}
  30.                 else        {Show3264(0,0,(hour/10));} //小時(shí)十位
  31.         Show3264(0,1,(hour%10)); //小時(shí)個(gè)位
  32.         Show3264(0,2,10);        //時(shí)鐘分隔符":"
  33. //往液晶屏填寫"分鐘"數(shù)據(jù)-----------------------------------------------
  34.         min=ds_read(2);          //讀取DS12CR887的分?jǐn)?shù)據(jù)
  35.         Show3264(0,3,(min/10));         //分鐘十位
  36.         Show3264(0,4,(min%10));         //分鐘個(gè)位                                       
  37. //往液晶屏填寫"秒"數(shù)據(jù)-------------------------------------------------
  38.         sec=ds_read(0);          //讀取DS12CR887的秒數(shù)據(jù)
  39.         Show1632(2,10,(sec/10)); //秒鐘十位
  40.         Show1632(2,11,(sec%10)); //秒鐘個(gè)位                                       
  41. }
  42. /*設(shè)置日期、時(shí)間函數(shù)------------------------------------------------------------*/
  43. void Set_time(uchar sel)  
  44. {
  45.         signed char address,item;
  46.         signed char max,mini;
  47.         ds_write(0x0a,0x00);     //開始調(diào)時(shí),DS12CR887關(guān)閉時(shí)鐘振蕩器         
  48.         ShowHZ(0,10,0);          //顯示"設(shè)"
  49.         ShowHZ(0,11,1);          //顯示"置"
  50.         if(sel==2) {ShowHZ(1,10,6);ShowHZ(1,11,3);address=0; max=59;mini=0;}//秒鐘         
  51.         if(sel==1) {ShowHZ(1,10,2);ShowHZ(1,11,3);address=2; max=59;mini=0;}//分鐘
  52.         if(sel==0) {ShowHZ(1,10,4);ShowHZ(1,11,5);address=4; max=23;mini=0;}//小時(shí)                  
  53.         item=ds_read(address);         //讀取DS12CR887某地址上的數(shù)值賦給item
  54.         if(K3 == 0) {item++;}    //K3-加數(shù):1
  55.         if(K4 == 0) {item--;}    //K4-減數(shù):1
  56.         if(item>max) item=mini;  //限制數(shù)值最大有效范圍   
  57.         if(item<mini) item=max;         //限制數(shù)值最小有效范圍           
  58.         ds_write(address,item);         //將調(diào)整好的item值寫入DS12CR887
  59.         displaytime();                         //顯示時(shí)間
  60. }
  61. /*主函數(shù)------------------------------------------------------------------------*/
  62. void main()
  63. {
  64.         uchar e=0;
  65.         K1=1;K2=1;K3=1;K4=1;K5=1;           //按健復(fù)位
  66.         BLA=0;                                           //打開液晶、按鍵背光
  67.         BEEP=0;                                                   //蜂鳴器響50毫秒
  68.         DelayM(50);
  69.         BEEP=1;
  70.         ds_int();                                           //DS12CR887初始化
  71.         InitLCD();                                           //液晶屏初始化
  72.         while(1)
  73.         {
  74.                 if(w==0)
  75.                 {
  76.                         displaytime();        
  77.                         read_temp();                  //讀取溫度
  78.                     ds1820disp();                 //顯示溫度
  79.                 }   //正常走時(shí)
  80.                 else {}                    //否則啟動(dòng)調(diào)時(shí)
  81. //設(shè)置鍵------------------------------------------------------------------------               
  82.                 if (K1 == 0)               // 設(shè)置時(shí)間
  83.                 {
  84.                         DelayM(20);                   //按鍵消抖
  85.                         if(K1 == 0 && w == 1)  //當(dāng)是調(diào)時(shí)狀態(tài) 本鍵用于調(diào)整下一項(xiàng)
  86.                         {
  87.                                 e++;
  88.                                 if (e >= 3 ){e = 0;}
  89.                                 Set_time(e);       //調(diào)整                                
  90.                         }                        
  91.                         if(K1 == 0 && w == 0)  //當(dāng)是正常狀態(tài)時(shí)就進(jìn)入調(diào)時(shí)狀態(tài)
  92.                         {
  93.                                 ClearScreen(0);
  94.                                 ClearScreen(1);
  95.                                 ClearScreen(2);    //清除左中右屏顯示
  96.                                 w=1;                   //進(jìn)入調(diào)時(shí)                                
  97.                                 Set_time(e);       //調(diào)整
  98.                         }
  99.                            while(K1 == 0);        //等待鍵松開
  100.                 }
  101. //確認(rèn),返回鍵-------------------------------------------------------------------               
  102.                 if (K2 == 0)               //在調(diào)時(shí)狀態(tài)時(shí)就退出調(diào)時(shí)
  103.                 {
  104.                         DelayM(20);            //按鍵消抖
  105.                         if(K2 == 0 && w == 1)
  106.                         {                                
  107.                                 w = 0;                   //退出調(diào)時(shí)
  108.                                 e = 0;                       //"下一項(xiàng)"計(jì)數(shù)器清0                                                               
  109.                         }
  110.                         if(K2 == 0 && w == 0)
  111.                         {                                
  112.                                 ClearScreen(0);
  113.                                 ClearScreen(1);
  114.                                 ClearScreen(2);           //清除左中右屏顯示                                
  115.                                 while(K2 == 0);   
  116.                         }
  117.                         ClearScreen(0);
  118.                         ClearScreen(1);
  119.                         ClearScreen(2);        //清除左中右屏顯示      
  120.                         ds_write(0x0a,0x20);   //調(diào)時(shí)完成,DS12CR887開啟時(shí)鐘振蕩器
  121.                         displaytime();                   //顯示時(shí)間
  122.                         read_temp();                  //讀取溫度
  123.                     ds1820disp();                 //顯示溫度
  124.                         while(K2 == 0);  
  125.                 }
  126. //加調(diào)整------------------------------------------------------------------------               
  127.                 if (K3 == 0 && w == 1)
  128.                 {
  129.                         DelayM(20);
  130.                         if(K3 == 0 && w == 1) {        Set_time(e); }
  131.                         while(K3 == 0);
  132.                 }
  133. //減調(diào)整------------------------------------------------------------------------               
  134.                 if (K4 == 0 && w == 1)
  135.                 {               
  136.                         DelayM(20);
  137.                         if(K4 == 0 && w == 1) { Set_time(e); }
  138.                         while(K4 == 0);
  139.                 }
  140. //液晶背光控制,按一下亮,再按一下滅--------------------------------------------
  141.                 if(K5 == 0)        
  142.                 {
  143.                         DelayM(20); q = ~q;      //標(biāo)志位取反
  144.                          if(q){BLA = BLA | 1;}   
  145.                                  else {BLA = BLA & 0;}   
  146.                         while(K5 == 0);           
  147.                 }
  148.         }
  149. ……………………

  150. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei下載:
1302的版本(只能用Proteus7.5 不然屏幕會(huì)顯示空白 需要自行安裝幾個(gè)庫): LCM19264_DS1302.rar (243.19 KB, 下載次數(shù): 202)
887版本 同上只能用Proteus7.5打開 其他版本測(cè)試是空白顯示: 19264液晶時(shí)鐘.rar (259.69 KB, 下載次數(shù): 208)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:116400 發(fā)表于 2019-8-4 14:28 | 只看該作者
老哥,你這個(gè)咋仿真出來顯示器上什么也不顯示?
回復(fù)

使用道具 舉報(bào)

板凳
ID:44037 發(fā)表于 2019-9-23 17:12 | 只看該作者
我用的Proteus8.8   仿真不顯示   把顯示模塊從左上角移動(dòng)到原點(diǎn)   顯示!!!
回復(fù)

使用道具 舉報(bào)

地板
ID:44066 發(fā)表于 2020-1-24 00:27 | 只看該作者
很不錯(cuò)的程序,下來侃侃。
回復(fù)

使用道具 舉報(bào)

5#
ID:501116 發(fā)表于 2020-1-31 12:32 | 只看該作者
在找19264資料學(xué)習(xí)下,謝謝分享!
回復(fù)

使用道具 舉報(bào)

6#
ID:419034 發(fā)表于 2020-2-13 10:43 | 只看該作者

在找19264資料學(xué)習(xí)下,謝謝分享![
回復(fù)

使用道具 舉報(bào)

7#
ID:84536 發(fā)表于 2020-2-15 14:34 | 只看該作者
在找19264資料學(xué)習(xí)下,謝謝分享!
回復(fù)

使用道具 舉報(bào)

8#
ID:532330 發(fā)表于 2020-5-14 11:56 | 只看該作者
不錯(cuò),感謝!借鑒借鑒!
回復(fù)

使用道具 舉報(bào)

9#
ID:79544 發(fā)表于 2020-6-10 09:43 | 只看該作者
樓主在嗎?程序怎么顯示不出來,亂碼。
回復(fù)

使用道具 舉報(bào)

10#
ID:242298 發(fā)表于 2021-2-20 23:37 | 只看該作者
仿真到是可以運(yùn)行,可是做好的實(shí)物卻是什么都不顯示,難道數(shù)據(jù)口D0-D7只能P2.0口?讀寫選片只能P0.1口???我就改了下端口,這就不顯示了,是不是液晶屏驅(qū)動(dòng)程序的問題???我的是JXL19264-1液晶屏,聽說要什么 NT7107C 控制器 、、、、求解啊@@@@
回復(fù)

使用道具 舉報(bào)

11#
ID:323213 發(fā)表于 2021-3-19 16:56 | 只看該作者
那位兄弟用個(gè)這個(gè)屏MS19264C-3,能分享下,謝謝!
回復(fù)

使用道具 舉報(bào)

12#
ID:28992 發(fā)表于 2021-3-20 04:33 | 只看該作者
您的無私奉獻(xiàn),讓人感動(dòng)不已,太感謝了。
回復(fù)

使用道具 舉報(bào)

13#
ID:323213 發(fā)表于 2021-4-7 23:46 | 只看該作者
也沒顯示,是CSA & CSB 兩個(gè)片選,二拾淘回來的

1617810137135.jpg (4.59 MB, 下載次數(shù): 122)

1617810137135.jpg
回復(fù)

使用道具 舉報(bào)

14#
ID:134271 發(fā)表于 2022-6-26 20:35 | 只看該作者
無論怎么搞,實(shí)物白屏。
回復(fù)

使用道具 舉報(bào)

15#
ID:1009425 發(fā)表于 2022-10-6 11:02 | 只看該作者
仿真程序可以,實(shí)物運(yùn)行沒反應(yīng)。實(shí)物運(yùn)行可以,仿真程序不行。我早試過了,就不知道問題在哪里?
回復(fù)

使用道具 舉報(bào)

16#
ID:1044094 發(fā)表于 2022-10-8 18:39 來自手機(jī) | 只看該作者
liu2454004961 發(fā)表于 2022-10-6 11:02
仿真程序可以,實(shí)物運(yùn)行沒反應(yīng)。實(shí)物運(yùn)行可以,仿真程序不行。我早試過了,就不知道問題在哪里?

兄弟,你仿真的液晶屏可以顯示嗎,怎么我的液晶屏沒反應(yīng)
回復(fù)

使用道具 舉報(bào)

17#
ID:190577 發(fā)表于 2022-10-8 21:54 | 只看該作者
1069481779 發(fā)表于 2022-10-8 18:39
兄弟,你仿真的液晶屏可以顯示嗎,怎么我的液晶屏沒反應(yīng)

好像自帶的hex 可以運(yùn)行,自己編譯生成的新的hex就行運(yùn)行不了,估計(jì)源程序有問題
回復(fù)

使用道具 舉報(bào)

18#
ID:1130823 發(fā)表于 2024-8-22 20:56 | 只看該作者
在找19264資料學(xué)習(xí)下,謝謝分享!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.9191.com | 精品中文字幕一区二区三区 | 精品一区二区三 | 青青草在线视频免费观看 | 国产免费一区 | 成人国产免费观看 | av中文在线 | 综合久久综合久久 | 极品粉嫩国产48尤物在线播放 | 最新高清无码专区 | 久久久久久久电影 | 综合网伊人 | 日本不卡一区 | 欧美视频免费在线 | 久久久久免费精品国产小说色大师 | 国产国产精品久久久久 | 国产一级片免费看 | 免费看一级毛片 | 在线视频 中文字幕 | 欧美性另类 | 人人干在线视频 | 中文字幕视频在线观看 | 玖玖精品视频 | 爱爱视频在线观看 | 国产一二三区电影 | 久久精品亚洲精品 | 亚洲精品区 | 这里有精品| 天天干狠狠| 亚洲国产精品久久久 | 国产精品无码久久久久 | 国外成人在线视频网站 | 国产精品亚洲一区二区三区在线 | 天天综合永久入口 | 日日夜夜视频 | 国产在线观看一区二区三区 | 国产成人jvid在线播放 | 久久久久久亚洲精品 | 国产免费高清 | 久久综合久色欧美综合狠狠 | 欧美成人精品一区二区男人看 |