使用单片机实现两点间温度控制的实验详细说明

1. 实验任务
用可调电阻调节电压值作为模拟温度的输入量,当温度低于30℃时,发出长嘀报警声和光报警,当温度高于60℃时,发出短嘀报警声和光报警。测量的温度范围在0-99℃。
2. 电路原理图
图4.29.1
3. 系统板上硬件连线
a) 把“单片机系统”区域中的p1.0-p1.7与“动态数码显示”区域中的abcdefgh端口用8芯排线连接。
b) 把“单片机系统”区域中的p2.0-p2.7与“动态数码显示”区域中的s1s2s3s4s5s6s7s8端口用8芯排线连接。
c) 把“单片机系统”区域中的p3.0与“模数转换模块”区域中的st端子用导线相连接。
d) 把“单片机系统”区域中的p3.1与“模数转换模块”区域中的oe端子用导线相连接。
e) 把“单片机系统”区域中的p3.2与“模数转换模块”区域中的eoc端子用导线相连接。
f) 把“单片机系统”区域中的p3.3与“模数转换模块”区域中的clk端子用导线相连接。
g) 把“模数转换模块”区域中的a2a1a0端子用导线连接到“电源模块”区域中的gnd端子上。
h) 把“模数转换模块”区域中的in0端子用导线连接到“三路可调电压模块”区域中的vr1端子上。
i) 把“单片机系统”区域中的p0.0-p0.7用8芯排线连接到“模数转换模块”区域中的d0d1d2d3d4d5d6d7端子上。
j) 把“单片机系统”区域中的p3.6、p3.7用导线分别连接到“八路发光二极管指示模块”区域中的l1、l2上。
k) 把“单片机系统”区域中的p3.5用导线连接到“音频放大模块”区域中的spk in端口上。
l) 把“音频放大模块“区域中的spk out插入音频喇叭。
4. 汇编源程序
(略)
5.c语言源程序
#include 《at89x52.h》
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,10,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
sbit st=p3^0;
sbit oe=p3^1;
sbit eoc=p3^2;
sbit clk=p3^3;
sbit led1=p3^6;
sbit led2=p3^7;
sbit spk=p3^5;
bit lowflag;
bit highflag;
unsigned int cnta;
unsigned int cntb;
bit alarmflag;
void main(void)
{
st=0;
oe=0;
tmod=0x12;
th0=0x216;
tl0=0x216;
th1=(65536-500)/256;
tl1=(65536-500)%256;
tr1=1;
tr0=1;
et0=1;
et1=1;
ea=1;
st=1;
st=0;
while(1)
{
if((lowflag==1) &&(highflag==0))
{
led1=0;
led2=1;
}
else if((highflag==1) && (lowflag==0))
{
led1=1;
led2=0;
}
else
{
led1=1;
led2=1;
}
}
}
void t0(void) interrupt 1 using 0
{
clk=~clk;
}
void t1(void) interrupt 3 using 0
{
th1=(65536-500)/256;
tl1=(65536-500)%256;
if(eoc==1)
{
oe=1;
getdata=p0;
oe=0;
temp=getdata*25;
temp=temp/64;
i=6;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
dispbuf[3]=10;
dispbuf[4]=10;
dispbuf[5]=10;
dispbuf[6]=0;
dispbuf[7]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
if(getdata《77)
{
lowflag=1;
highflag=0;
}
else if(getdata》153)
{
lowflag=0;
highflag=1;
}
else
{
lowflag=0;
highflag=0;
}
st=1;
st=0;
}
p1=dispcode[dispbuf[dispcount]];
p2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
if((lowflag==1) && (highflag==0))
{
cnta++;
if(cnta==800)
{
cnta=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
spk=~spk;
}
}
else if((lowflag==0) && (highflag==1))
{
cntb++;
if(cntb==400)
{
cntb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
spk=~spk;
}
}
else
{
alarmflag=0;
cnta=0;
cntb=0;
}

元太上半年营收创12年同期新高
黄金交易商Sharps Pixley将通过Bitpay接受比特币付款
华为麦芒7将发布,搭载麒麟710芯片,且支持革命性的GPU Turbo技术
如何打造智能家居入口,成行业领导者
热销!安立S331A 安立S331B 天馈线测试仪
使用单片机实现两点间温度控制的实验详细说明
我国核聚变研究获重大突破 或成最大赢家
产业利润分配“生变” 锂矿企业加速下游渗透
PCB电镀镍工艺及故障解决方法
百度公布纯视觉L4级自动驾驶解决方案
中国电信与中国联通将共建共享5G无线接入网
阿里云助推智造服务业转型升级 发布飞象IIoT平台展IIoT领域的雄心
PCB原型的基础知识
重磅!中科大研制出自主研发知识产权量子计算机控制系统
开发者在的很多管理者,需了解平台产品开发战略
【VR深度】华为新推VR眼镜闹腾了这么久 竟也不过如此?
人工智能应用新热点 预测和治疗抑郁症
电信行业是COVID-19危机期间全球经济中最具弹性的行业之一
深天马等厂商车载显示相关业务的最新消息
华为将于4月份正式发布旗下首款智能电视