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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6454|回復: 5
收起左側

基于C51的數字溫度計設計(帶protues仿真)

[復制鏈接]
ID:212515 發表于 2017-6-19 12:17 | 顯示全部樓層 |閱讀模式
C51的數字溫度計仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
0.png 0.png

單片機源程序如下:
  1. #include<reg52.h>
  2. #include"1602.h"
  3. #include"ds18b20.h"
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. sbit speaker=P2^4;
  7. sbit red=P2^5;
  8. sbit green=P2^6;
  9. sbit key1=P3^0;
  10. sbit key2=P3^1;

  11. uint tem;
  12. int htem,ltem;
  13. uchar mode;
  14. uchar code t3[]={" high temp:  . C"};
  15. uchar code t4[]={" low temp:  . C "};

  16. void display(uint dat,uchar add)
  17. {
  18. uchar bai,shi ,ge;
  19. bai=dat/100;
  20. shi=dat%100/10;
  21. ge=dat%10;                                                                                   
  22. writelcd_cmd(add);
  23. writelcd_dat(bai+0x30);
  24. writelcd_dat(shi+0x30);
  25. writelcd_cmd(add+3);
  26. writelcd_dat(ge+0x30);
  27. }
  28. void keyscan()
  29. {  uchar i,j;
  30.    writelcd_cmd(0x80);
  31.    for(i=0;i<16;i++)
  32.    {writelcd_dat(t3[i]);}
  33.    writelcd_cmd(0xc0);
  34.    for(j=0;j<16;j++)
  35.    {writelcd_dat(t4[j]);}
  36.    
  37.    
  38.    while(mode!=0)
  39.    {
  40. display(htem,0x8b);
  41. display(ltem,0xca);
  42.    while(mode!=0)
  43.    {
  44.            switch(mode)
  45.            {
  46.            case 1:writelcd_cmd(0xc0+13);writelcd_cmd(0x0f);break;
  47.            case 2:writelcd_cmd(0xc0+11);writelcd_cmd(0x0f);break;
  48.            case 3:writelcd_cmd(0xc0+10);writelcd_cmd(0x0f);break;
  49.            case 4:writelcd_cmd(0x80+14);writelcd_cmd(0x0f);break;
  50.            case 5:writelcd_cmd(0x80+12);writelcd_cmd(0x0f);break;
  51.            case 6:writelcd_cmd(0x80+11);writelcd_cmd(0x0f);break;
  52.            default:mode=0;break;
  53.            }
  54.           if(key1==0)
  55.           {
  56.           delay(10);
  57.           if(key1==0)
  58.                   {
  59.                   while(key1==0);
  60.                    switch(mode)
  61.                    {
  62.                    case 1:ltem=ltem+1;if(ltem>999)ltem=999;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+13);break;
  63.                    case 2:ltem=ltem+10;if(ltem>999)ltem=999;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+11);break;
  64.                    case 3:ltem=ltem+100;if(ltem>999)ltem=999;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+10);break;
  65.                    case 4:htem=htem+1;if(htem>999)htem=999;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+14);break;
  66.                    case 5:htem=htem+10;if(htem>999)htem=999;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+12);break;
  67.                    case 6:htem=htem+100;if(htem>999)htem=999;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+11);break;
  68.                    default:break;
  69.                    }
  70.                   }
  71.           }
  72.           if(key2==0)
  73.           {
  74.           delay(10);
  75.           if(key2==0)
  76.                   {
  77.                   while(key2==0);
  78.                    switch(mode)
  79.                    {
  80.                    case 1:ltem=ltem-1;if(ltem<0)ltem=0;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+13);break;
  81.                    case 2:ltem=ltem-10;if(ltem<0)ltem=0;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+11);break;
  82.                    case 3:ltem=ltem-100;if(ltem<0)ltem=0;if(ltem>=htem)ltem=htem-1;display(ltem,0xca);writelcd_cmd(0xc0+10);break;
  83.                    case 4:htem=htem-1;if(ltem<0)htem=0;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+14);break;
  84.                    case 5:htem=htem-10;if(ltem<0)htem=0;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+12);break;
  85.                    case 6:htem=htem-100;if(ltem<0)htem=0;if(htem<=ltem)htem=ltem+1;display(htem,0x8b);writelcd_cmd(0xc0+11);break;
  86.                    default:break;
  87.                    }
  88.                   }
  89.           }
  90.    }
  91.   }
  92.   lcd_init();
  93. }
  94. void init()
  95. {
  96.   lcd_init();
  97.    speaker=1;
  98.    red=0;
  99.    green=0;
  100.    mode=0;
  101.    htem=360;
  102.    ltem=270;
  103.    EA=1;
  104.    EX0=1;
  105.    ET0=1;
  106.    TMOD=0X01;
  107.    IT0=1;
  108.    TH0=0XFD;
  109.    TL0=0X81;
  110. }

  111. void main()
  112. {  
  113.          init();
  114.         while(1)
  115.         {  
  116.                 if(mode!=0)
  117.                 {keyscan();}
  118.         else if(mode==0)
  119.                 {        
  120.                     delay(100);
  121.                     tmpchange();
  122.                         tem=tmp();
  123.                         if(tem<=ltem){red=0;green=1;TR0=1;}
  124.                         else if(tem>=htem){green=0;red=1;TR0=1;}
  125.                         else
  126.                         {
  127.                         TR0=0;
  128.             red=0;
  129.             green=0;
  130.                         }
  131.                         delay(10);
  132.                     display(tem,0xca);
  133.                     delay(100);
  134. ……………………

  135. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

Keil5代碼與Proteus7.8仿真下載:
備份_20130528112004.zip (103.34 KB, 下載次數: 157)
回復

使用道具 舉報

ID:329570 發表于 2018-5-14 14:50 | 顯示全部樓層
這個是Proteus7.8版本的文件
回復

使用道具 舉報

ID:108622 發表于 2019-3-28 20:17 | 顯示全部樓層
下載玩玩:……
回復

使用道具 舉報

ID:522603 發表于 2019-5-6 11:39 | 顯示全部樓層
給力!對我和有幫助
回復

使用道具 舉報

ID:519483 發表于 2019-5-6 22:23 | 顯示全部樓層
給力,有用
回復

使用道具 舉報

ID:742391 發表于 2020-5-27 09:42 | 顯示全部樓層
這個用的是Proteus7.8版本
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久久久 | 九九综合九九 | 成人精品视频在线观看 | 手机av在线 | 亚洲97| 国产精品日韩高清伦字幕搜索 | 中文字幕在线看第二 | 亚洲精品久久久一区二区三区 | 一区二区三区免费 | 久久天天躁狠狠躁夜夜躁2014 | 国产精品国产a级 | 久热9| 成人国产精品 | 久久精品国产亚洲 | 日产精品久久久一区二区福利 | 亚洲精品久久久久久国产精华液 | 天天天操操操 | 一区二区三区四区在线 | 欧美性猛交 | 国产精品一区二区欧美黑人喷潮水 | 成人一级毛片 | 91色视频在线观看 | 国产精品成人一区二区 | 精品久久久久香蕉网 | 一区二区免费 | 久久久久亚洲精品 | 四虎影院欧美 | 久久久久国产精品一区二区 | 2018中文字幕第一页 | 欧美性高潮| 亚洲精品久久久久中文字幕欢迎你 | 亚洲免费三区 | 欧美aaaaaa| 午夜欧美 | 男女黄网站| 亚洲国产情侣 | 91精品久久久久久久久久小网站 | a级片在线 | 成人午夜影院 | 中文字幕乱码一区二区三区 | 欧美1页 |