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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2194|回復: 0
打印 上一主題 下一主題
收起左側

帶有12864液晶的數字溫度計

[復制鏈接]
跳轉到指定樓層
樓主
ID:250103 發表于 2017-11-16 21:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/**************************************************************************
程 序 名:數字溫度計(基本)
編 寫 者:楊范
指導老師:王韌
時   間 :2016.12.20
班   級        :自卓1401班
功   能 :DS18B20顯示溫度
使用說明:將單片機的P2口用杜邦線線連于液晶的數據總線(P20--D0...P27--D7),
          點陣E連至P37,點陣RW連至P36,點陣RS連至P35,DS18B20接于P3^3

                                                                                                  
********************************************************************************/
#include<reg52.h>
#include"lcd12864.h"
#include"delay.h"
#include<intrins.h>
#include"ds18b20.h"
#include"key_hl.h"



#define uchar unsigned char
#define uint  unsigned int

//uchar  disp_temp[9];        //DS18B20處理后數據存放數組
sbit fmq=P0^0;

extern uchar  disp_temp[9];        //DS18B20處理后數據存放數組
extern int shangxian,xiaxian;        //報警溫度上下限
extern int wendu;

uchar shangfenchai[5];                 //報警上限處理后數據存放數組
uchar xiafenchai[5];                 //報警下限處理后數據存放數組


void xianshi()
{
        shangfenchai[0]=shangxian/100+'0';
        shangfenchai[1]=shangxian/10%10+'0';
        shangfenchai[2]=shangxian%10+'0';
        shangfenchai[3]=0x20;
        xiafenchai[0]=xiaxian/100+'0';
        xiafenchai[1]=xiaxian/10%10+'0';
        xiafenchai[2]=xiaxian%10+'0';
        xiafenchai[3]=0x20;
        if(shangfenchai[0]=='0')                  //去掉最高位的0
        {
                shangfenchai[0]=0x20;
                if(shangfenchai[1]=='0')
                {
                        shangfenchai[1]=0x20;
                }
        }
        if(xiafenchai[0]=='0')                                //去掉最高位的0
        {
                xiafenchai[0]=0x20;
                if(xiafenchai[1]=='0')
                {
                        xiafenchai[1]=0x20;
                }
        }
}


/***************  以下為主函數  *****************/
void main()
{
        uchar v,i;
        uchar shangxian1,zancun;        //調節溫度上下限暫存所用
        shangxian=30;                                //報警溫度上限初賦值
        xiaxian=27;                                        //報警溫度下限初賦值
        lcd12864_init();
        Delay(10);
        lcd12864_display(1,2,"湖南工學院");
        lcd12864_display(2,3,"電信學院");
        lcd12864_display(3,3,"自卓1401班");
        lcd12864_display(4,4,"楊范");
        Delay(2000);
        lcd12864_write_command(0x01);
        Delay(10);       
        while(1)
        {       
                top:while(v!=0x48)
                {
                        lcd12864_display(1,2,"數\xfd字溫度計");
                        lcd12864_display(3,2,"P.確定進入?");
                        v=keyscan();
                }
                lcd12864_write_command(0x01);
                if(v==0x48)       
                {         
                        switch(v)
                        {
                                Delay(10);
                                case 0x48:if(v==0x48)
                                                  {
                                                          v=keyscan();
                                                          while(v!=0x18&&v!=0x48&&v!=0x88)
                                                          {
                                                                  lcd12864_display(1,4,"確認");
                                                                  lcd12864_display(3,2,"是        否  ");
                                                                  v=keyscan();
                                                          }
                                                          switch(v)
                                                          {
                                                                    case 0x48:if(v==0x48)
                                                                                          {
                                                                                                fmq=1;
                                                                                                lcd12864_init();
                                                                                                Delay(1);
                                                                                                lcd12864_display(1,1,"現在室內溫度");
                                                                                                lcd12864_display(2,5,"℃");
                                                                                                xianshi();
                                                                                                lcd12864_display(3,1,"上限");
                                                                                                lcd12864_display(3,3,shangfenchai);
                                                                                                lcd12864_display(3,5,"下限");
                                                                                                lcd12864_display(3,7,xiafenchai);
                                                                                                lcd12864_display(4,1,"A 調上限B 調下限");                                                                                               
                                                                                                while(v==0x48||v==0x00||v==0x11||v==0x21||v==0x41||v==0x81||
                                                                                                          v==0x12||v==0x22||v==0x42||v==0x82||v==0x14||v==0x24)
                                                                                                {
                                                                                                        v=keyscan();
                                                                                                        get_temperature();
                                                                                                        if(wendu>=xiaxian&&wendu<=shangxian)
                                                                                                        {
                                                                                                                fmq=1;
                                                                                                        }
                                                                                                        if(wendu<xiaxian||wendu>shangxian)
                                                                                                        {
                                                                                                                fmq=0;
                                                                                                        }
                                                                                                        lcd12864_display(2,1,disp_temp);
                                                                                                        for(i=0;i<250&&((v==0x48||v==0x00||v==0x11||v==0x21||v==0x41||v==0x81||
                                                                                                                v==0x12||v==0x22||v==0x42||v==0x82||v==0x14||v==0x24));i++)
                                                                                                        {
                                                                                                                Delay(1);
                                                                                                                v=keyscan();
                                                                                                        }                                                                                                                                                                                                                                                                                                               
                                                                                                }                                                                                                                                                                                                       
                                                                                          }
                                                          }
                                                  }
                                case 0x18:if(v==0x18)
                                                  {
                                                          fmq=1;
                                                          v=keyscan();
                                                          lcd12864_write_command(0x01);
                                                          break;
                                                  }
                                case 0x88:if(v==0x88)
                                                  {
                                                          fmq=1;
                                                          v=keyscan();
                                                          lcd12864_write_command(0x01);
                                                          goto top;
                                                  }
                                case 0x44:if(v==0x44)
                                                  {
                                                          lcd12864_init();
                                                          lcd12864_display(1,2,"設置報警上限");
                                                          lcd12864_display(2,1,"您將輸入:0~255");   //設置報警上限
                                                          lcd12864_display(4,1,"S15 確定S14 歸零");
                                                          lcd12864_write_command(0x88);
                                                          shangxian1=0;
                                                          while(v!=0x48)
                                                          {
                                                                  v=keyscan( );
                                                                  switch(v)
                                                                  {
                                                                          case 0x11:zancun=0;
                                                                                                lcd12864_write_data('0');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x21:zancun=1;
                                                                                                lcd12864_write_data('1');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x41:zancun=2;
                                                                                                lcd12864_write_data('2');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x81:zancun=3;
                                                                                                lcd12864_write_data('3');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x12:zancun=4;
                                                                                                lcd12864_write_data('4');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x22:zancun=5;
                                                                                                lcd12864_write_data('5');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x42:zancun=6;
                                                                                                lcd12864_write_data('6');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x82:zancun=7;
                                                                                                lcd12864_write_data('7');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x14:zancun=8;
                                                                                            lcd12864_write_data('8');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
       
                                                                          case 0x24:zancun=9;
                                                                                                lcd12864_write_data('9');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x28:lcd12864_init();
                                                                                                lcd12864_display(1,2,"設置報警上限");
                                                                                                lcd12864_display(2,1,"您將輸入:0~255");
                                                                                                lcd12864_display(4,1,"S15 確定S14 歸零");
                                                                                                lcd12864_write_command(0x88);
                                                                                                shangxian1=0;
                                                                  }
                                                          }
                                                          shangxian=shangxian1;
                                                          break;
                                                  }                                                       
                                case 0x84:if(v==0x84)
                                                  {
                                                          lcd12864_init();                                                          
                                                          lcd12864_display(1,2,"設置報警下限");                    //          設置報警下限
                                                          lcd12864_display(2,1,"您將輸入:0~255");
                                                          lcd12864_display(4,1,"S15 確定S14 歸零");
                                                          lcd12864_write_command(0x88);
                                                          shangxian1=0;
                                                          while(v!=0x48)
                                                          {
                                                                  v=keyscan( );
                                                                  switch(v)
                                                                  {
                                                                          case 0x11:zancun=0;
                                                                                                lcd12864_write_data('0');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x21:zancun=1;
                                                                                                lcd12864_write_data('1');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                            case 0x41:zancun=2;
                                                                                                lcd12864_write_data('2');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x81:zancun=3;
                                                                                                lcd12864_write_data('3');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x12:zancun=4;
                                                                                                lcd12864_write_data('4');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x22:zancun=5;
                                                                                                lcd12864_write_data('5');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x42:zancun=6;
                                                                                                lcd12864_write_data('6');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x82:zancun=7;
                                                                                                lcd12864_write_data('7');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x14:zancun=8;
                                                                                                lcd12864_write_data('8');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x24:zancun=9;
                                                                                                lcd12864_write_data('9');
                                                                                                shangxian1=shangxian1*10+zancun;
                                                                                                break;
                                                                          case 0x28:lcd12864_init();
                                                                                                lcd12864_display(1,2,"設置報警下限");
                                                                                                lcd12864_display(2,1,"您將輸入:0~255");
                                                                                                lcd12864_display(4,1,"S15 確定S14 歸零");
                                                                                                lcd12864_write_command(0x88);
                                                                                                shangxian1=0;
                                                                   }                                                                     
                                                          }
                                                          xiaxian=shangxian1;
                                                          break;
                                                  }
                                default:v=keyscan();
                                                break;                                                          
                        }
                                                                                                                                                                                                                          
                }
        }
}
       
                                                       

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 高清黄色 | 黄色国产在线播放 | 日韩在线不卡 | 狠狠操网站 | 亚洲久草| 亚欧洲精品在线视频免费观看 | 久久er99热精品一区二区 | 伊人天堂网 | 三级视频网站 | 国产精品网址 | 久久久91精品国产一区二区三区 | 欧美亚洲国产一区二区三区 | 丁香久久 | 日韩视频观看 | 1级毛片| av资源在线看 | 99精品视频网 | 国产成人一区二区三区 | 欧美激情一区二区三区 | 一区二区在线不卡 | 国产午夜精品久久久久免费视高清 | 中文字幕国产视频 | 噜噜噜色网 | 天天天天操| 中文字幕福利 | 久久er99热精品一区二区 | 成人国产精品 | 久久国产精品免费视频 | 日韩成人高清在线 | 中文字幕在线观看 | 一区二区国产在线观看 | 国产成人高清视频 | 国产在线观看不卡一区二区三区 | 国产1区| 91精品国产91久久久久久吃药 | 亚洲国产精品99久久久久久久久 | 日日摸天天添天天添破 | 久久久成人网 | 欧美一区在线看 | 国产激情第一页 | 日日拍夜夜 |