仿真原版本:Proteus7.8
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0012
功能说明
1、显示温度0-99,上电默认高温报警35°,低温报警10°
2、按键说明:
① 按一下KEY1查看高温,调整高温报警值指示灯亮,同时也可以按加减调高温的值。
② 再按一下KEY1查看低温,调整低温报警值指示灯亮同时也可以按加减调低温的值。
③ 程序默认低温报警值要比高温报警低5°再按一下KEY正常显示。
3、温度调整低于低温报警或者高于高温报警值,蜂鸣器响,指示灯闪烁。
仿真电路
三个按键
KEY1
按一下查看高温设置值,再按一下查看低温设置值,再按一下返回正常显示
KEY2
设置状态下,设置温度+
KEY3
设置状态下,设置温度-
程序
主函数
/*****主函数*****/
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单片机课程毕业设计.url
资料下载链接
阅读全文