一.硬件方案
本系统利用51单片机控制温度传感器DS18B20进行温度的实时检测并显示,能够实现快速测量环境温度。
硬件以微控制器为核心,外接时钟电路、复位电路、温度测量电路、LED显示电路组成。如图:
二.设计功能
(1)采用DS18B20温度传感器测温,测温范围-55~+125℃摄氏度,精度0.1摄氏度(显示到小数点后一位),误差±0.5度;
(2)采用0.56英寸四位一体共阳数码管显示当前温度;
(3)有一个复位按键。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)Protues仿真图如下:
(3)PCB图如下:
四.软件设计
主程序源码
/*****主函数*****/
void main()
{
uc z; //定义变量用于for循环
for(z=0;z<100;z++) //循环100次读取温度并显示开机画面,防止开机显示85
{
Disp_init(); //开机初始化显示
check_wendu(); //读取温度
}
while(1) //进入while循环
{
check_wendu(); //读取温度
for(z=0;z<10;z++) //显示10次
Disp_Temperature(); //调用显示函数
}
}
/*****显示温度子程序*****/
void Disp_Temperature() //显示温度
{
if(qian==0) //千位等于0
{
if(fuhao==1) //是负温度
P0=0x7f; //显示-
else //是正温度
P0=0xff; //不显示
P2=0xfd; //选中第一位
Delay(10); //延时
P2 = 0xff; //关闭位选
}
else if(qian!=0) //千位不等于0
{
P0 =~led[qian]; //显示千位数据
P2 = 0xfd; //打开第一位位选
Delay(10); //延时
P2 = 0xff; //关闭位选
}
if((bai==0)&&(qian==0))//百位千位都是0
{
P0=0xff; //不显示
P2=0xf7; //打开第二位
Delay(10); //延时
P2=0xff; //关闭位选
}
else if((bai==0)&&(qian!=0))//千位不等于0,百位等于0
{
P0=~led[bai]; //正常显示百位数据
P2=0xf7; //打开第二位
Delay(10); //延时
P2=0xff; //关闭位选
}
else if(bai!=0) //百位不等于0
{
P0=~led[bai]; //显示百位
P2=0xf7; //打开第二位
Delay(10); //延时
P2=0xff; //关闭位选
}
P0=~led_dian[shi]; //显示十位数据
P2=0xdf; //打开第三位
Delay(10); //延时
P2=0xff; //关闭位选
P0=~led[ge]; //显示个位数据
P2=0x7f; //打开第四位
Delay(10); //延时
P2=0xff; //关闭显示
}
上一篇:基于51单片机的函数发生器设计
下一篇:基于51单片机的电压表-数码管显示
推荐阅读最新更新时间:2024-11-05 11:40
设计资源 培训 开发板 精华推荐
- 使用 NXP Semiconductors 的 MKV58F1M0VLQ2 的参考设计
- LT8331IMSE 4.5V 至 80V 输入、-12V 反相转换器的典型应用电路
- NAZE32 有刷飞控
- DC9001A,基于 LTC5800 芯片天线的 SmartMesh IP Eval/Dev Manager
- LTC3838EUHF-1 3.3V 至 14V 电源输入、1.2V/20A 和 0.9V/20A 双路输出、300kHz、RSENSE、具有外部可用 5V 至 5.5V 电源的降压转换器的典型应用电路
- 热插拔解决方案符合 AMC 和 MicroTCA 标准
- LTC3615MPUF 双路 3A 同步降压型 DC/DC 转换器在主从机中的典型应用,用于使用 2MHz 外部时钟实现一致跟踪输出
- DC2196A-B,用于 LTC2666-12、8 通道、12 位、±10V Vout SoftSpan DAC 的演示板,具有 10ppm 最大基准
- LT6654BHLS8-2.048、16 位 ADC 电压基准的典型应用
- 使用 Analog Devices 的 LTC1149 的参考设计