仿真圖proteus8.16(有低版本)
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):P11
1.主要功能:
基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89C51/52等51內(nèi)核單片機(jī)通用)
基于51單片機(jī)的溫度報(bào)警系統(tǒng)
1、實(shí)時(shí)檢測(cè)DS18B20溫度測(cè)量及顯示,超出溫度范圍蜂鳴器報(bào)警,溫度報(bào)警值可通過按鍵設(shè)定功能;
2、溫度測(cè)量范圍-55到128攝氏度;
3、對(duì)上下限報(bào)警值進(jìn)行設(shè)定,通過按鍵設(shè)置,設(shè)置范圍是0-128;
4、溫度高于上限或低于下限LCD1602顯示屏有相應(yīng)提示,蜂鳴器響;
5、普中開發(fā)板上可以實(shí)現(xiàn)效果,仿真和開發(fā)板都可以。
(目前僅完全適配普中開發(fā)板A234,其他普中開發(fā)板型號(hào)可能需要做代碼修改或接線)
需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
普中開發(fā)板實(shí)物演示圖:
仿真講解+實(shí)物演示+代碼講解
2.仿真
開始仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。
共4個(gè)按鍵:上限閾值加、上限閾值減、下限閾值加、下限閾值減。按下對(duì)應(yīng)按鍵閾值加減并更新閾值在LCD1602液晶屏上。溫度高于高溫報(bào)警值,蜂鳴器響,LCD1602顯示High。
溫度低于低溫報(bào)警值,蜂鳴器響,LCD1602顯示LOW。
3. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。
完整代碼見文章下載鏈接壓縮包。有償
#include "reg51.h"
#include"Ds18b20.h"
#include "lcd1602.h"
#define uchar unsigned char //重定義
#define uint unsigned int
sbit k1=P3^0;//按鈕
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit beep=P2^5;//蜂鳴器
uchar time=0,num1=0;//定時(shí)
int wendu=0;//溫度
uchar Ds_0_flag=0;//0度以上標(biāo)志位
float tp;
uint down=30,up=80;//閥值
uchar disp1[]="wendu:000 C";
uchar disp2[]="L:000 C H:000 C";
uchar flag=0,beep_flag=0;
void delay(uint i)//延時(shí)
{
while(i--)
{
delay_uint(50000);
}
}
void main()
{
disp1[9]=0xdf;
disp2[5]=0xdf;
disp2[14]=0xdf;
init_1602();//初始化液晶
TMOD|=0X11;//選擇為定時(shí)器0模式,工作方式1,僅用TR0打開啟動(dòng)。
TH1=(65536-50000)/256; //給定時(shí)器賦初值,定時(shí)50ms
TL1=(65536-50000)%256;
TH0=(65536-5000)/256; //給定時(shí)器賦初值,定時(shí)5ms
TL0=(65536-5000)%256;
ET1=1;//打開定時(shí)器1中斷允許
ET0=1;//打開定時(shí)器0中斷允許
EA=1;//打開總中斷
TR1=1;//打開定時(shí)器1
TR0=1;//打開定時(shí)器0
delay(4);
beep_flag = 0;
while(1)
{
//按鍵檢測(cè)
if(!k1)
{
if(down<up-5) //下限閾值要比上限低5℃
down++; //下限閾值+1
while(!k1);
}
if(!k2)
{
if(down>0)
down--; //下限閾值-1
while(!k2);
}
if(!k3)
{
if(up<200)
up++; //上限閾值+1
while(!k3);
}
if(!k4)
{
if(up>down)
up--; //上限閾值-1
while(!k4);
}
}
}
void Timer0() interrupt 1 //定時(shí)器0的中斷函數(shù)
{
TH0=(65536-5000)/256; //重裝初值5ms
TL0=(65536-5000)%256;
num1++;
if(num1==1&&beep_flag) //中斷1次為5ms
{
num1=0;
beep=~beep; //蜂鳴器報(bào)警
}
}
void Timer1() interrupt 3//定時(shí)器中斷
{
TH1=(65536-50000)/256; //給定時(shí)器賦初值,定時(shí)50ms
TL1=(65536-50000)%256;
if(time<10)
time++;
else
{
time=0;
wendu=Ds18b20ReadTemp();//測(cè)量溫度
if(wendu<0){
Ds_0_flag=0;
wendu=wendu-1;
wendu=~wendu;
tp=wendu;
wendu=tp*0.0625+0.5;
disp1[6]='-';//計(jì)算溫度
disp1[7]=wendu%100/10+0x30;
disp1[8]=wendu%10+0x30;
}else{
Ds_0_flag=1;
tp=wendu;
wendu=tp*0.0625+0.5;
//溫度在寄存器中12位,分辨率:0.0625
//加0.5是四舍五入
disp1[6]=wendu/100+0x30;//計(jì)算溫度
disp1[7]=wendu%100/10+0x30;
disp1[8]=wendu%10+0x30;
}
disp2[2]=down/100+0x30;//計(jì)算低閥值
disp2[3]=down%100/10+0x30;
disp2[4]=down%10+0x30;
disp2[11]=up/100+0x30;//計(jì)算高閥值
disp2[12]=up%100/10+0x30;
disp2[13]=up%10+0x30;
write_string(1,0,disp1);//顯示
write_string(2,0,disp2);
}
if(wendu<down||Ds_0_flag==0){
write_string(1,12,"Low ");
beep_flag = 1;//低溫報(bào)警
}else if(wendu>up){
write_string(1,12,"High");
beep_flag = 1;//高溫報(bào)警
}else if((wendu>down)&&(wendu<up)){
write_string(1,12," ");
beep_flag=0;//取消溫報(bào)警
}
}
4. 設(shè)計(jì)報(bào)告
7080字設(shè)計(jì)報(bào)告,內(nèi)容包括目錄,硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等
本次課程設(shè)計(jì)是基于51單片機(jī)的溫度監(jiān)控報(bào)警系統(tǒng)Proteus仿真設(shè)計(jì)。在設(shè)計(jì)中,我們采用了STC89C51/52單片機(jī)作為核心控制器,通過溫度傳感器對(duì)環(huán)境溫度進(jìn)行實(shí)時(shí)采集。采集到的溫度數(shù)據(jù)經(jīng)過單片機(jī)處理后,通過數(shù)碼管顯示模塊進(jìn)行實(shí)時(shí)顯示。同時(shí),我們還設(shè)置了按鍵輸入模塊,可以通過按鍵進(jìn)行溫度閾值的設(shè)定。一旦環(huán)境溫度超過設(shè)定的閾值,系統(tǒng)就會(huì)通過蜂鳴器報(bào)警模塊發(fā)出報(bào)警聲,以提醒用戶注意。
51單片機(jī)控制LCD1602顯示。讀取按鍵控制電平和DS18B20的數(shù)據(jù),處理數(shù)據(jù)并做顯示處理和按鍵操作等。
5. 設(shè)計(jì)資料內(nèi)容清單
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問題及解決方法–必讀!?。?!
1、仿真圖
2、程序源碼注釋
3、功能要求
4、開題報(bào)告
5、設(shè)計(jì)報(bào)告
6、軟硬件流程框圖
7、燒錄工具
8、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
普中-2&普中-3&普中-4開發(fā)板原理圖.pdf
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
網(wǎng)盤下載鏈接:
P系列單片機(jī)設(shè)計(jì)下載鏈接(復(fù)制到瀏覽器打開)
https://docs.qq.com/doc/DS2pPenNRaHB6SlR1