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

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

QQ登錄

只需一步,快速開始

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

proteus仿真萬年歷加溫度顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
proteus仿真萬年歷加溫度顯示,12864顯示,DS1302和DS18B20



單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <DS18B20.H>
  3. #include <DS1302.H>
  4. #include <LCD12864.H>

  5. unsigned char j[8];
  6. sbit KEY1=P3^2;
  7. sbit KEY2=P3^3;
  8. sbit KEY3=P3^4;
  9. sbit LED1=P3^5;
  10. sbit LED2=P3^6;
  11. sbit LED3=P3^7;

  12. uchar time0_count;         //time0計(jì)數(shù)器

  13. void delay10(void)
  14. {
  15.         unsigned char i,j;
  16.         for(i=0;i<255;i++)
  17.         for(j=0;j<200;j++);
  18. }

  19. unsigned char conver(unsigned char a,unsigned char b,unsigned char c)
  20. {       

  21.         if((a&0x0f)==0x0a) a=a+6;
  22.           if(a==b)  a=c;
  23.         return a;
  24. }





  25. main()
  26. {       
  27.         bit flag_2=1;
  28.         bit flag_3=1;
  29.         bit flag_4=1;
  30.         int i;                 
  31.         char a;          
  32.         unsigned  char  choose=0x01;

  33.         InitLCD();          //初始化LCD12864
  34.         for(i=0;i<9;i++)
  35.                 {
  36.                  ShowNumber(6,i*8+32,i+14);
  37.                  }
  38.         Show32x32(0,0,0);
  39.         ShowChina(4,0,7);
  40.         ShowChina(4,16,8);
  41.         ShowChina(4,32,9);
  42.         ShowChina(4,48,10);
  43.         ShowNumber(4,64,10);          //顯示溫度高位

  44.                 read_serial(j);                          //讀取DS1302的時(shí)間


  45.                    ShowNumber(2,32,j[2]>>4&0x03);
  46.                 ShowNumber(2,40, j[2]&0x0f);
  47.                 ShowChina(2,48,3);
  48.                 ShowNumber(2,64,j[1]>>4&0x07);
  49.                 ShowNumber(2,72, j[1]&0x0f);
  50.                 ShowChina(2,80,4);
  51.                 ShowNumber(2,96,j[0]>>4&0x07);
  52.                 ShowNumber(2,104, j[0]&0x0f);
  53.                 ShowChina(2,112,5);


  54.                    ShowNumber(0,32,j[6]>>4&0x0f);
  55.                 ShowNumber(0,40, j[6]&0x0f);
  56.                 ShowChina(0,48,0);
  57.                 ShowNumber(0,64,j[4]>>4&0x01);
  58.                 ShowNumber(0,72, j[4]&0x0f);
  59.                 ShowChina(0,80,1);
  60.                 ShowNumber(0,96,j[3]>>4&0x03);
  61.                 ShowNumber(0,104, j[3]&0x0f);
  62.                 ShowChina(0,112,2);

  63.                 ShowChina(4,104,6);
  64.                 ShowNumber(4,120,j[5]-1&0x07);
  65.                




  66.         while(1)
  67.         {
  68.             //send_char_com(0x31);

  69.                 if(flag_2==1)
  70.                 read_serial(j);                          //讀取DS1302的時(shí)間
  71.                 else
  72.                 write_date_time(j);



  73.                 a=Read_Temperature();          //讀取DS18B20的溫度
  74.                 if(a<0)                                          //處理溫度正負(fù)
  75.                 {       
  76.                                 a = (-1)*a;         // 取補(bǔ)
  77.                                 ShowNumber(4,72,11);          //顯示溫度正負(fù)
  78.                  }
  79.                 else
  80.                 {
  81.                                 ShowNumber(4,72,12);          //顯示溫度正負(fù)
  82.                 }

  83.                 ShowNumber(4,80,a/100);          //顯示溫度高位
  84.    
  85.                 ShowNumber(4,88,a/10%10);  //顯示溫度中位
  86.           
  87.                 ShowNumber(4,96,a%10);           //顯示溫度低位

  88.                 LED3=1;LED2=0;LED1=1;
  89.                 if(a>40){LED3=0;LED2=1;LED1=1;}
  90.                 if(a<30){LED3=1;LED2=1;LED1=0;}

  91.   


  92.                 if(KEY1==0)                                  //按鍵1--處理設(shè)定時(shí)間和返回
  93.                 {
  94.                         delay10();
  95.                         if(KEY1==1)
  96.                         {
  97.                                 delay10();
  98.                                 flag_2=~flag_2;       
  99.                         }
  100.                 }

  101.                 if(KEY2==0)                                  //按鍵2--處理選擇設(shè)定時(shí)間的項(xiàng)目
  102.                 {
  103.                         delay10();
  104.                         if(KEY2==1)
  105.                         {
  106.                                 delay10();
  107.                                 choose++;
  108.                                 if(choose==8)
  109.                                 choose=0x01;
  110.                         }       
  111.                 }


  112.                 if(KEY3==0)                                  //按鍵3--處理設(shè)定時(shí)間和返回
  113.                 {        delay10();
  114.                         if(KEY3==1)
  115.                         {
  116.                                 delay10();
  117.                                 switch(choose)
  118.                                 {
  119.                                         case 1:        j[6]++; j[6]=conver(j[6],0xa0,0x00);break;//年
  120.                                         case 2:        j[5]++; j[5]=conver(j[5],0x07,0x00);break;//周
  121.                                         case 3:        j[4]++;        j[4]=conver(j[4],0x13,0x01);break;//月
  122.                                         case 4:        j[3]++;        j[3]=conver(j[3],0x32,0x01);break;//日
  123.                                         case 5:        j[2]++;        j[2]=conver(j[2],0x24,0x00);break;//時(shí)
  124.                                         case 6:        j[1]++;        j[1]=conver(j[1],0x60,0x00);break;//分
  125.                                         case 7:        j[0]++;        j[0]=conver(j[0],0x60,0x00);break;//秒
  126.                                 }
  127.                         }       
  128.                 }

  129.                 if(flag_2==1)
  130.                 read_serial(j);                          //讀取DS1302的時(shí)間
  131.                 else
  132.                 write_date_time(j);

  133.                    ShowNumber(2,32,j[2]>>4&0x03);
  134.                 ShowNumber(2,40, j[2]&0x0f);
  135.                 ShowChina(2,48,3);
  136.                 ShowNumber(2,64,j[1]>>4&0x07);
  137.                 ShowNumber(2,72, j[1]&0x0f);
  138. ……………………

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

所有資料51hei提供下載:
基于單片機(jī)萬年歷 溫度 LCD12864 proteus仿真.zip (53.89 KB, 下載次數(shù): 26)


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

使用道具 舉報(bào)

沙發(fā)
ID:271725 發(fā)表于 2018-1-9 21:54 | 只看該作者
有錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费在线 | 国产精品99久| 国产欧美一区二区三区在线看 | 成人精品免费视频 | aaa精品| 国产日韩精品一区二区 | 精品国产免费人成在线观看 | cao在线 | 视频在线观看一区 | 欧美午夜剧场 | 成人毛片视频免费 | 国产美女精品 | 一级黄在线观看 | 免费高潮视频95在线观看网站 | 精品一二三区 | 日韩精品视频网 | 国产色网站 | 久久精品毛片 | 国产一区二区观看 | aa级毛片毛片免费观看久 | 日韩一区二区视频 | av官网在线 | 污污免费网站 | 人人看人人爽 | 黄色一级视频 | 中文在线一区二区 | 免费看黄色片 | 伊人久久成人 | 日韩精品区 | 国产一区二区三区在线免费 | 日韩精品一 | 亚洲精品电影网在线观看 | 免费久久久 | 欧美成年视频 | 国产aaaaav久久久一区二区 | 久久久久久久一区 | 99热播放| 日本一区二区高清视频 | 天天操天天插 | 国内精品伊人久久久久网站 | 精品视频一区二区三区在线观看 |