仿真原版本:Proteus7.8
程序編譯器:keil 4/keil 5
編程語言:C語言
設計編號:S0012
功能說明
1、顯示溫度0-99,上電默認高溫報警35°,低溫報警10°
2、按鍵說明:
① 按一下KEY1查看高溫,調整高溫報警值指示燈亮,同時也可以按加減調高溫的值。
② 再按一下KEY1查看低溫,調整低溫報警值指示燈亮同時也可以按加減調低溫的值。
③ 程序默認低溫報警值要比高溫報警低5°再按一下KEY正常顯示。
3、溫度調整低于低溫報警或者高于高溫報警值,蜂鳴器響,指示燈閃爍。
仿真電路
三個按鍵
KEY1
按一下查看高溫設置值,再按一下查看低溫設置值,再按一下返回正常顯示
KEY2
設置狀態(tài)下,設置溫度+
KEY3
設置狀態(tài)下,設置溫度-
程序
主函數
/*****主函數*****/
void main(void)
{
LED=0; //默認關閉報警
BEEP=0; //默認關閉蜂鳴器
LED_SET_HIGHT=0;//默認設置燈暗
LED_SET_LOW=0;//默認設置燈暗
check_wendu();
check_wendu();
for(z=0;z<300;z++)
{
Disp_init();
}
while(1)
{
if(display_mode==0){
Disp_Temperature();//正常顯示
}else if(display_mode==1){//設置高
Disp_Temperature_Set_Hight();
}else if(display_mode==2){//設置低
Disp_Temperature_Set_Low();
}
KeyDriver(); //鍵盤驅動掃描
KeyScan();
if(key_sacn_cnt<20){//延時效果,不占用CPU,隔一段時間更新溫度
key_sacn_cnt++;
}else{
check_wendu();
key_sacn_cnt=0;
}
if(display_mode==0){//正常模式才報警,設置模式不報警
if(m>=gaowen || m<=diwen){//如果m大于高溫值或者小于低溫值,開啟聲光報警
led_sacn_cnt++;
if(led_sacn_cnt>100){
LED=~LED;
BEEP=~BEEP;
led_sacn_cnt=0;
}
}else{
LED=0;
BEEP=0;
led_sacn_cnt=1;
}
}else{
LED=0;
BEEP=0;
}
}
}
DS18B20溫度讀取
/*****讀取溫度*****/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉換
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
t=b; //高8位轉移到t
t<<=8; //t數據左移8位
t=t|a; //將t和a按位或,得到一個16位的數
tt=t*0.0625; //將t乘以0.0625得到實際溫度值
//(溫度傳感器設置12位精度,最小分辨率是0.0625)
t= tt*10+0.5; //放大10倍(將小數點后一位顯示出來)輸出并四舍五入
return(t); //返回溫度值
}
設計報告
資料清單&&下載鏈接
?. 常見使用問題及解決方法–必讀!?。?!
1. 源程序
2. proteus仿真
3. 功能說明
4. 開題報告
5. 設計報告
6. 講解視頻
Altium Designer 安裝破解
filename.bat
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學習資料
目錄清單.txt
相關數據手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業(yè)設計.url
資料下載鏈接