欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
DS18B20+RS485+液晶1602+顯示(帶限溫)Proteus仿真+單片機(jī)程序
[打印本頁(yè)]
作者:
qifeng
時(shí)間:
2019-6-10 16:18
標(biāo)題:
DS18B20+RS485+液晶1602+顯示(帶限溫)Proteus仿真+單片機(jī)程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(16.49 KB, 下載次數(shù): 21)
下載附件
2019-6-11 02:59 上傳
單片機(jī)源程序如下:
#include<main.h>
#include<DS18B20.h>
uchar Uart_flag=0; //串口標(biāo)志位
uchar k1num=0;
uchar a;
char TH=10,TL=-10; //設(shè)置限制最高值、最低值
void key_scan();
/****
*****延時(shí)1MS函數(shù)
****/
void delay(uint x)
{
uchar m,n;
for(m=x;m>0;m--)
for(n=110;n>0;n--);
}
/***
**函數(shù)名:UART_init()
**功能: 串口初始化
****/
void UART_init()
{
TMOD=0x20;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;
en=1; //485一直在寫(xiě)
}
/***
**函數(shù)名:UART_sent()
**功能: 串口發(fā)送一個(gè)字節(jié)
****/
void UART_sent(uchar date)
{
SBUF=date;
while(!TI);
TI=0;
}
/***
**函數(shù)名:SPEAK()
**功能: 做報(bào)警鈴聲
****/
void SPEAK()
{
beep=0;
delay(160);
beep=1;
}
/***
**函數(shù)名:main()
**功能: 主函數(shù)
****/
void main()
{
int ans; //讀取的溫度寄存器
uchar flag; //正負(fù)位標(biāo)志
UART_init();
while(1)
{
key_scan();
/************* 正常溫度*********************/
if(Uart_flag==0)
{
DS18B20_start_change(); //開(kāi)始讀溫度
delay(1000);
ans=DS18B20_read_date();
if((ans>TH)||(ans<TL)) // 判斷溫度是否超過(guò)限溫值
{
P0=0;
SPEAK();
}
else
{
P0=0xff;
beep=1;
}
/******判斷是否為負(fù)溫度********/
if(ans<0)
{
ans=-ans;
flag=1;
}
else
flag=0;
if(flag==1) //負(fù)溫度,發(fā)送‘-’
UART_sent('-');
else
UART_sent('+'); //正溫度,發(fā)送‘+’
UART_sent( ( uchar )ans);
}
/**********調(diào)節(jié)上限溫度*****************/
if(Uart_flag==1)
{
UART_sent('!'); //調(diào)節(jié)上限溫度標(biāo)志
_nop_();
_nop_();
UART_sent(TH); //發(fā)送上限溫度標(biāo)志
}
/**********調(diào)節(jié)下限溫度**************/
if(Uart_flag==2)
{
UART_sent('@'); //調(diào)節(jié)下限溫度標(biāo)志
_nop_();
_nop_();
UART_sent(TL); //發(fā)送下限溫度標(biāo)志
}
}
}
/***
**函數(shù)名:key_scan()
**功能: 掃描鍵盤(pán)
****/
void key_scan()
{
if(k1==0)
{
delay(2);
if(k1==0)
{
while(!k1); //松手檢測(cè)
k1num++;
if(k1num==1)
{
Uart_flag=1; //發(fā)送限制最高溫度標(biāo)志
}
if(k1num==2)
{
Uart_flag=2; //發(fā)送限制最低溫度標(biāo)志
}
if(k1num==3)
{
Uart_flag=0;
k1num=0;
}
}
}
if(k1num!=0)
{
switch(k1num)
{
case 1: //調(diào)節(jié)最高限溫值
{
if(k2==0)
{
delay(2);
if(k2==0)
{
while(!k2);
TH++;
if(TH>=30)
TH=30;
}
}
if(k3==0)
{
delay(2);
if(k3==0)
{
while(!k3);
TH--;
if(TH<0)
TH=0;
}
}
}break;
case 2: //調(diào)節(jié)最低限溫值
{
if(k2==0)
{
delay(2);
……………………
…………限于本文篇幅 余下代碼請(qǐng)從附件下載:
復(fù)制代碼
全部資料51hei下載地址:
DS18B20 RES485 液晶1602 顯示(帶限溫).zip
(153.18 KB, 下載次數(shù): 166)
2019-6-10 16:18 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
成森林
時(shí)間:
2019-11-30 11:56
謝謝樓主,我下載了。。。。。
作者:
makaichuang123
時(shí)間:
2019-12-19 20:39
可以運(yùn)行成功了,謝謝
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1