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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機+LCD12864的萬年歷Proteus仿真

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:493549 發(fā)表于 2019-6-11 10:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
原理圖如下



部分程序如下


單片機源程序如下:
  1. #include <reg51.h>
  2. #include "DS18B20.h"
  3. #include "DS1302.h"
  4. #include "LCD12864.h"

  5. char a;
  6. sbit KEY1=P3^4;
  7. sbit KEY2=P3^5;
  8. sbit KEY3=P3^6;

  9. bit  flag=1; //進入/退出設(shè)置標志
  10. uchar  choose=0x01; //切換標志
  11. void delay10(void) //延時10ms
  12. {
  13.         unsigned char i,j;
  14.         for(i=0;i<255;i++)
  15.         for(j=0;j<200;j++);
  16. }
  17. void delay5ms(void)   //誤差 0us
  18. {
  19.     unsigned char a,b;
  20.     for(b=19;b>0;b--)
  21.         for(a=130;a>0;a--);
  22. }

  23. //設(shè)置時ds1302寄存器值循環(huán) 如秒寄存器59時加一變?yōu)?0
  24. unsigned char conver(unsigned char a,unsigned char b,unsigned char c)
  25. {        

  26.         if((a&0x0f)==0x0a) a=a+6;
  27.           if(a==b)  a=c;
  28.         return a;  
  29. }

  30. void digplay() {

  31.         //時間
  32.                 ShowNumber16_32(2,0,TIME[2]>>4&0x03); //時 十位
  33.                 ShowNumber16_32(2,16, TIME[2]&0x0f);//時  個位
  34.                  ShowNumber16_32(2,48,TIME[1]>>4&0x07);//分  十位
  35.                 ShowNumber16_32(2,64, TIME[1]&0x0f);//分  個位
  36.                 ShowNumber16_32(2,96,TIME[0]>>4&0x07);//秒 十位
  37.                 ShowNumber16_32(2,112, TIME[0]&0x0f);//秒  個位
  38.                
  39.                
  40.                 //日期
  41.                 ShowNumber(0,0,2);
  42.                 ShowNumber(0,8,0);
  43.     ShowNumber(0,16,TIME[6]>>4&0x0f);
  44.           ShowNumber(0,24, TIME[6]&0x0f);//年
  45.                
  46.           ShowNumber(0,40,TIME[4]>>4&0x01);
  47.           ShowNumber(0,48, TIME[4]&0x0f);//月
  48.                
  49.                 ShowNumber(0,64,TIME[3]>>4&0x03);
  50.                 ShowNumber(0,72, TIME[3]&0x0f);//日

  51.           ShowChina(0,112,(TIME[5]&0x07)-1);//周
  52. }
  53. void wendu() {
  54.                 //溫度
  55.                 a=Read_Temperature();          //讀取DS18B20的溫度
  56.                 if(a<0)                                          //處理溫度正負
  57.                 {        
  58.                                 a = (-1)*a;         // 取補
  59.                                 ShowNumber(6,88,11);          //溫度計圖標—
  60.                  }
  61.                  else
  62.                 {
  63.                                          ShowNumber(6,88,12);//溫度計圖標+
  64.                  }
  65.                         ShowNumber(6,96,a/10%10);  //顯示溫度中位
  66.            
  67.                 ShowNumber(6,104,a%10);           //顯示溫度低位

  68. }

  69. void digplaystart() {//開機顯示
  70.         uchar i=0;
  71.                 ShowChina(2,64-16*1.5,19);
  72.                 ShowChina(2,64-16*0.5,20);
  73.                 ShowChina(2,64+16*0.5,21);
  74.                 ShowChina(2,64+16*1.5,22);
  75.         for (i=0;i<10;i++) {
  76.         ShowNumber(4,32+8*i,16);           
  77.                 delay5ms();
  78.                 delay5ms();
  79.         }
  80.         ClearScreen(0);//清屏
  81. }

  82. void main(void)
  83. {        
  84.         uchar i;
  85.         InitLCD();          //初始化LCD12864
  86.         digplaystart();
  87.         delay5ms();
  88.         Ds1302Init();//Ds1302初始化,并且附上設(shè)定的默認時間
  89.         a=Read_Temperature();          //讀取DS18B20的溫度
  90.                         ShowNumber(0,32,11);//-
  91.                 ShowNumber(0,56,11);//-
  92.                 ShowChina(0,96,7);//漢字周
  93.           ShowNumber16_32(2,32,10);//:
  94.                 ShowNumber16_32(2,80,10);//:
  95.                 ShowChina(6,112,8);//℃
  96.         while(1)
  97.         {
  98.                 wendu();//溫度顯示
  99.                 if(flag==1)
  100.                                 Ds1302ReadTime();               
  101.                                         //讀取DS1302的時間
  102.                 else  
  103.                 Ds1302WriteTime();

  104. if(KEY1==0)                                  //按鍵1--處理設(shè)定時間和返回
  105.                 {
  106.                         delay10();
  107.                         if(KEY1==1)
  108.                         {
  109.                                 delay10();
  110.                                 flag=~flag;        
  111.                                 
  112.                                 if(flag==0) {
  113.                                 ShowChina(6,48,9);
  114.                                 ShowChina(6,0,16);
  115.                                 ShowChina(6,16,17);
  116.                                 ShowNumber(6,32,10);
  117.                                 }
  118.                                 if(flag==1) {
  119.                                                 for( i=0;i<8;i++) {
  120.                                                         ShowNumber(6,8*i,15);
  121.                                         }
  122.                                 }
  123.                         }
  124.                 }

  125.                 if(KEY2==0)                                  //按鍵2--處理選擇設(shè)定時間的項目
  126.                 {
  127.                         delay10();
  128.                         if(KEY2==1)
  129.                         {
  130.                                 delay10();
  131.                                 choose++;
  132.                                 ShowChina(6,48,8+choose);
  133.                                         if(choose==7)
  134.                                         choose=0x00;
  135.                         }        
  136.                 }

  137.                 if(KEY3==0)                                  //按鍵3--處理設(shè)定時間和返回
  138.                 {        delay10();
  139.                         if(KEY3==1)
  140.                         {
  141.                                 delay10();
  142.                                 switch(choose)
  143.                                 {
  144.                                         case 1:        TIME[6]++; TIME[6]=conver(TIME[6],0xa0,0x00);break;//年
  145.                                         case 2:        TIME[5]++; TIME[5]=conver(TIME[5],0x08,0x01);break;//周
  146. ……………………

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

所有資料51hei提供下載:
萬年歷 .rar (108.45 KB, 下載次數(shù): 619)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:323076 發(fā)表于 2019-6-22 15:00 | 只看該作者
仿真圖呢?
回復(fù)

使用道具 舉報

板凳
ID:685868 發(fā)表于 2020-1-14 23:21 | 只看該作者
很好的資料
回復(fù)

使用道具 舉報

地板
ID:285291 發(fā)表于 2020-1-15 15:35 來自手機 | 只看該作者
好好學(xué)習(xí),增加海量智慧
回復(fù)

使用道具 舉報

5#
ID:468209 發(fā)表于 2020-1-24 23:26 來自手機 | 只看該作者
學(xué)習(xí)中 感謝!
回復(fù)

使用道具 舉報

6#
ID:86450 發(fā)表于 2020-2-7 16:29 | 只看該作者
很好的資料
回復(fù)

使用道具 舉報

7#
ID:535242 發(fā)表于 2020-2-18 15:14 | 只看該作者
最近在看12864方面的資料 一起學(xué)習(xí)
回復(fù)

使用道具 舉報

8#
ID:695147 發(fā)表于 2020-2-19 15:10 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

9#
ID:711624 發(fā)表于 2020-3-19 15:31 | 只看該作者
有仿真圖嗎
回復(fù)

使用道具 舉報

10#
ID:315554 發(fā)表于 2020-3-19 16:15 | 只看該作者
謝謝樓主分享,很好的時鐘,有時鐘芯片,應(yīng)該準確,
回復(fù)

使用道具 舉報

11#
ID:228788 發(fā)表于 2020-3-19 17:25 | 只看該作者
非常好的時鐘。感謝分享!
回復(fù)

使用道具 舉報

12#
ID:790464 發(fā)表于 2020-6-27 19:38 | 只看該作者
多謝樓主,感謝分享
回復(fù)

使用道具 舉報

13#
ID:801957 發(fā)表于 2020-7-12 22:53 | 只看該作者
非常有用,找了好久,太感謝了
回復(fù)

使用道具 舉報

14#
ID:925221 發(fā)表于 2021-5-22 05:36 | 只看該作者
感謝分享無私奉獻
回復(fù)

使用道具 舉報

15#
ID:541982 發(fā)表于 2021-5-26 11:52 | 只看該作者
非常有用,找了好久,非常不錯的教程。
回復(fù)

使用道具 舉報

16#
ID:321836 發(fā)表于 2021-6-16 10:45 | 只看該作者
提供附件有仿真圖的,可以放心下載。。。
回復(fù)

使用道具 舉報

17#
ID:935610 發(fā)表于 2021-6-16 21:13 | 只看該作者
這個不錯,學(xué)習(xí)一下!
回復(fù)

使用道具 舉報

18#
ID:983759 發(fā)表于 2021-12-1 17:10 | 只看該作者
已使用,謝謝樓主
回復(fù)

使用道具 舉報

19#
ID:1122928 發(fā)表于 2024-6-13 16:13 | 只看該作者

感謝樓主,資料很有用
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品日韩精品 | 久久精品二区亚洲w码 | 精品国产乱码久久久久久蜜退臀 | 国产一区二区电影网 | 91丨九色丨国产在线 | 青青久久| 亚洲一区二区免费视频 | 国产a级黄色录像 | 成人1区| 国产亚洲精品精品国产亚洲综合 | 亚洲欧美在线一区 | 亚洲精品视频免费 | 国产91久久精品一区二区 | 高清视频一区 | 精品一区二区三区四区外站 | 亚洲成人精品在线 | 亚洲乱码国产乱码精品精的特点 | 91原创视频| 欧美伦理一区 | 欧美天堂一区 | 国产精品不卡视频 | 亚洲成人网在线 | 中文字幕亚洲一区二区三区 | 午夜视频一区二区 | 国产欧美在线播放 | 久久久日韩精品一区二区三区 | 精品免费国产一区二区三区 | 久久精品一 | 久久精品国产久精国产 | 国产主播第一页 | 又爽又黄axxx片免费观看 | 天堂中文在线观看 | 中文字幕一区二区三区四区 | 成人福利网站 | 中文字幕一区二区三区四区 | 日韩精品一区二区三区中文在线 | 国产乱码精品一区二区三区中文 | 中文字幕免费在线观看 | 一级黄色录像片子 | 日本不卡一二三 | 日韩av中文|