1、 微机控制技术实训报告 32 2020年4月19日 文档仅供参考 重庆航天职业技术学院 温度采集报警报告 报告题目:数字温度计 系部:电子工程系 专业:计算机控制技术 姓名: 学号: 指导老师:汤平 温度采集报警任务书 题目:数字温度计
2、 任务与要求: 1、查阅数字温度计设计相关资料,熟悉数字温度计设计的原 理, 查阅A/D转换及传感器相关知识,画出数字温度计原理图,并编写相应 的源程序。 2、使用8052单片机作为处理器,设计数字温度计设计,设定温 度最高值和最低值。 数码管进行循环显示,显示实际温度值。 3、实现单路的电压采集和显示,显示3位温度值,最后1位显示“C” 4、并用喇叭报警。 发挥部分:将仿真电路图和程序修改为中断方式实现温度采集和显示。
3、 前言 温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发,本文设计了一种基于80C52的温度检测及报警系统。该系统能够方 便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也能够当作温度处理模块嵌入其它 系统中,作为其它主系统的辅助扩展。该系统设计和布
4、线简单,结构紧凑,抗干 扰能力强,在大型仓库、工厂、智能化建筑等领域的温度检测中有广泛的应用前 景。 目录 1、 原理· · · · · · · · 1 2、 元器件介绍· · · · · · · 2 3、元器件清单· · · · · · · 7
5、 4、参考电路图· · · · · · · 8 5 电路图详解· · · · · · ·10 6、元器件的排版与焊接 · · · · ·11 7、参考程序编写与导入 · ·
6、· · ·12 8、成品的调试· · · · · · ·15 9、总结 · · · · · · ·16 10、参考文献 · · · · · · ·17
7、 原理 根据主芯片AT89S52所展开设计 (1) 微处理器:AT89S52非常适用于控制,她的主要结构和特点在前面已经介绍过了,为了满足外围接口电路的需要,一般都要在输出口处接锁存驱动电路,这里我们采用的是SN74HC573。 (2) 压频变换装置:将模拟的电压量转化成频率值,这是一种A/D转化方式,将输出电压U0采样经过压频变换装置传给单片机,压频转化装置我们用的是National Semiconductor的LM331。 (3) 输出控制电路:单片机的输出控制信号经过电阻解码网络转化成模拟电压值,控制电压和电流比较器的基准值,实现对外围功率
8、电路的控制。 (4) 上电复位电路:为了防止单片机的程序飞跑,出现死锁,我们采用MAXIM公司的MAX813L系统监控集成芯片来实现对单片机的监控,该芯片具有看门狗电路、门限值检测器、手动复位等功能。 (5) 输入控制和数码显示电路:包括按键和显示部分。经过简单的按键选择,实现运行方式选择、复位及故障的显示。显示部分采用SN74HC573驱动两个8位七段LED显示;同时经过发光二极管和蜂鸣器提示运行状态。 1 元器件介绍
9、 本设计选用的单片机型号为STC89C52RC,它是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。芯片的引脚见图3-1。 图3-1 STC89C52芯片引脚图 2 其内部管脚与通用的8xC52基本相同,主要处理各外部硬件的初始化,会聚IC内部寄存器和数据RAM并与CPU进行通信等。其主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出
10、端口,外接12MHz晶振。RST(9脚)为复位输入端口,外接电阻电容组成的复位电路,可进行手动复位。 VCC(40脚)和GND(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,各引脚功能描述见表3-1。 表3-1 STC89C52RC引脚功能描述 名称 名称及功能 ALE 地址锁存使能 P0.0-0.7 P0口 P1.0-1.7 P1口 T2(P1.
11、0):定时/计数器2的外部记数输入/时钟输出 T2EX(P1.1):定时/计数器2重装载/捕捉/方向控制 P2.0-2.7 P2口 P3.0-3.7 P3口 RXD(P3.0):串行输入口 TXD(P3.1):串行输出口 INT0(P3.2):外部中断0 INT1(P3.3):外部中断 T0(P3.4):定时器0外部输入 T1(P3.5):定时器1外部输入 WR(P3.6):外部数据存储器写信号 RD(P3.7):外部数据存储器读信号 PSEN 程序存储选通 RST 复位端 VCC 电源:提供掉电,空闲,正常工作电压。 GND 接地 EA/Vpp
12、外部寻址使能/编程电压 XTAL1 晶体1:反相振荡放大器输入和内部时钟发生电路输入 XTAL2 晶体2:反相振荡放大器输出 STC89C52RC单片机还具有以下几个特点: 1) 增强型6时钟/机器周期CPU; 2) 3.4V-5.5V宽工作电压,工作频率范围0-40MHz,实际工作频率可达48MHz; 3) 工作温度范围0~75℃; 4) 8KB用户应用程序空间以及512B片内RAM,无需扩展存储器;32个通用I/O口,复位后P1/P2/P3是准双向口/弱上拉,P0口是开漏 输出,作为总线扩展用时,不用加上拉电阻,作为I/O口使用则需要 上拉电阻;
13、 5) 内置看门狗电路,无需外加看门狗电路; 6) 内置3个16位定时器/计数器,其中定时器0可作为2个8位定时器使用; 7) 具有4个外部中断源,下降沿或低电平触发中断,掉电模式可由外部中断低电平触发中断模式唤醒; 8) PDIP-40封装。 4 共阳极数码管: 数码管引脚分部:
14、 5 6 元器件清单 名称 参数 数量 7组数量 51系列单片机 STC89C51/52RC 1 7 单片机座子 40引脚 1 7 晶振 12MHz 1 7 瓷片电容 22pF 2 14 瓷片电容 0.1uF 2 14 电解电容 22uF/16V 1 7 电解电容 2
15、0uF/16V 2 14 电阻 10kΩ 2 14 电阻 1kΩ 2 14 电阻 4kΩ 2 14 电阻 300Ω 1 7 变阻器 100kΩ 1 7 集成运放 UA741 1 7 串行A/D转换器 TLC549 1 7 模拟温度传感器 LM35 1 7 三极管 9012 1 7 蜂鸣器 1 7 按键 1 7 焊锡 若干 万能板 7cmX15cm 1 10 导线 Ф0.8mm单芯漆包线 若干
16、 7 参考电路图 8 电路详解 80C51时钟有两种方式产生,即内部方式和外部方式。(如图2-4所示)80C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震
17、荡电路如图。外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。用户还能够采用外部时钟,采用外部时钟如图所示。在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。由于外部时钟信号是经过一个2分频的触发器后作为内部时钟信号的因另外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的 时间应符合产品
18、技术条件的要求。本次设计采用内部震荡电路,瓷片电容采用30P,晶振采用12MHZ。 复位电路设计 容采用电容值为10μ的电解电容。具体连接电路如图2-5所示:单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10KΩ的阻值,电 10 元器件排版焊接 首先拿到参考电路图,仔细观看和理解电路图。在根据电路图上面的元器 件一次核对老师所发的元器件是否够数,元器件的
19、参数是否正确,,用万用表测 出每个电阻的参数大小,按顺序排列标注好参数信息。检查元器件是排版焊接的 第一步. 元器件检查完后,是就排版了,根据以往的经验能够把电路图分为几个部分 后在来逐个排版焊接,现实最小系统电路的焊接,再焊接复位电路的元器件,这 样把电路划分为几个小部分逐个焊接,利于焊接,便于检查,易防止漏掉元器件 的安装与焊接。
20、 11
参考程序
#include
21、it P3 //outbit为数码管的公共端控制量 #define outseg P2 //outseg为数码管的段码端控制量 #define len 2 //len为数码管的个数 uchar ledbuf[len]; //显示缓冲,存储显示字符的字段码 uchar code segmap[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71,0x00}; uchar TLC549_data( )//TLC549的A/D转换程序
22、 { uchar result;//定义result存放A/D转换结果 uchar i=0,j; TLC549_CS=1;//TLC549的CS引脚输出高电平,为A/D转换做准备 TLC549_CS=0; //TLC549的CS引脚输出低电平,开始一个A/D转换周期 result=0;//A/D转换结果清零 TLC549_SDO=1;// 51单片机读数据时得先把管脚置1 for(i=0;i<8;i++) 12 { if(TLC549
23、SDO==1) result=result|(0x80>>i);// 从高位到低位依次获取A/D转换的结果 TLC549_SCLK=1; TLC549_SCLK=0; //输出TLC549的下降沿,从SDO端送出一位A/D转换结果 for(j=0;j<2;j++);//下降沿产生后,400ns后新的位被写到数据线上,因此需延时 } TLC549_CS=1; //一个周期结束后,TLC549的CS端设置为高电平 return result; //返回A/D转换结果 }
24、
//延时子程序
void Sleep(uchar count)
{
uchar i;
while(count-- != 0) for(i=0;i<124;i++);
}
// LED七段码显示函数
void DispLed()
{
uchar i, pos=0x01; //从左往右显示,公共端控制暂存变量pos设置为0x01
outbit=0xff; //全灭
for(i=0; i 25、 //输出公共端的控制值,选通一个数码管
Sleep(20); //延时
pos<<=1; // 公共端控制暂存变量pos左移一位,为选通下一个数码管做准备
outbit=0xff; //关闭所有数码管
Sleep(5); //延时
}
} 13
//扬声器发声
void speaker()
{
uchar i;
for(i=0;i<3;i++ 26、)
{ Speaker=1;
Sleep(20);
Speaker=0;
Sleep(20);
}
}
void main()
{ uchar a,b;
uchar i;
uint tt;
Speaker=0;
while(1)
{
tt=TLC549_data();//读取A/D转换结果
tt=tt*50/51; //计算温度值,保存在tt中
a=tt/10; //计算温度的十位
b=tt%10; //计算温度的个位 27、
ledbuf[0]=segmap[a];//获取十位的段码值
ledbuf[1]=segmap[b]; //获取个位的段码值
if(tt>=Tmax) //超过规定的温度,报警
speaker();
DispLed();//显示温度值
}
}
顺序:1、18,19脚
2、9,31脚
3、 14 28、 成品的调试
15 总结
经过这次微机控制技术实训《温度采集报警——数字温度计》的制作过程,我再次巩固了单片机的有关知识。了解了80C52芯片的信息和功能还有用法,以及管脚分布,和引脚功能。学习了八段共阳极的数码管的引脚分布。温习了时钟电路,复位电路等的电路知识。经过焊接电路板,再次对我们的焊接技术进行回炉打造,得到提升,还有程序的编写
也使我们对程序方面的知识得到大幅度的提升。
29、
经过这次实训不但使我们的专业知识和素养得到提升,对我们实际的动手能力和团结意识也得到成长,经过分组的形式一起完成实训任务,是我们充分认识到了,合作,团结的重要性,理解到团队能力大于个人能力本质意思。使我们各方面得到大幅度的成长表现,使我们变得更加成熟。 16
参考文献
1、 韩全立,赵德申,微机控制技术及应用,北京:机电出版社, .
2、 袁秀文,组态控制技术,北京:电子工业出版社,
3、 孙德辉,郑士富,微型计算机控制系统,北京:冶金工业出版社,
4、 赵长德,工业用微型计算机,北京:机械工业出版社,1999
5、 黄一夫,微型计算机控制技术,北京:机械工业出版社。1999
6、 互联网
17






