多路数字温度测量系统设计_第1页
多路数字温度测量系统设计_第2页
多路数字温度测量系统设计_第3页
多路数字温度测量系统设计_第4页
多路数字温度测量系统设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要2一 系统总体方案设计31、工作原理32、设计方案3二系统硬件设计4 2.1、STC12C5A32AD单片机········································&#

2、183;··4 2.2、LM35温度传感器·············································

3、;··6 2.3、LED显示电路设计·············································&#

4、183;6 2.4、键盘电路设计···············································&#

5、183;·8 2.5时钟电路及其原理··············································9

6、 2.6 复位电路及其原理··············································9 2.7 报警及其指

7、示电路设计··········································9三 系统软件设计11 3.1 基本思路及原理···&#

8、183;···········································11 3.2 子程序流程图····&

9、#183;············································11 3.3 主程序流程图···

10、··············································13 四结论与总结14五参考文献15六附录166

11、.1程序源代码166.2硬件电气原理总图25摘要随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。本文介绍了多路数字温度测量系统的设计,该设计采用单片机来实现对温度的测量显示,主要完成多路数字温度测控与数据传输系统的硬件电路及软件编程调试。利用内置A/D转换器单片机、温度传感器等组成多路温度测量系统测量环境温度,并将温度传感器显示在数码管上。它的主要组成部分有:STC12C5A32AD单片机、LM35模拟温度传感器、键盘与显示电路、报警指示电路。它可以实时的显示温度,实现对温度的自动显示与控制。采用的技术方案:模拟温度传感器+内置A/D

12、转换器单片机(温度传感器选用LM35),显示部分直接采用专用LED显示驱动芯片CH451实现LED驱动控制。 关键词:设计、温度测控、硬件电路、程序、功能一、系统总体方案设计1、工作原理该系统采通过LM35温度传感器采集环境温度,将保存的温度值进行转换后在4位LED数码管显示;在STC12C5A32AD单片机的低128位存储空间中设定存放即使温度的缓存区间,在子程序中通过调用该区间内的内容可以将温度值进行进一步计算;同时在缓冲区间设置连续的八位区间,保存八位数码管的数字以及字型码;当采集的环境温度平均值超出了设定值时,使其闪烁10次显示报警;另外,通过读取LM35温度传感器的序列号,进行匹配,

13、实现测温通道的选择。2、设计方案应用硬件主要包括C8051F310单片机芯片、LM35温度传感器、CH451键盘显示驱动芯片。主程序中首先对CH451初始化,并设置初始报警上下限,然后循环调用温度采集、温度转换、二进制数据转换成十进制数据、显示功能、报警功能等。整体设计框图如图1所示。单片机LM35温度传感器键盘控制显示CH451键盘显示驱动芯片图1:系统整体框图二、系统硬件设计2.1 STC12C5A32AD单片机电路2.1.1STC12C5A32AD单片机引脚及其功能介绍STC12C5A32AD单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗超强抗干扰的新一代8051

14、单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位AD转换(250K/S ),针对单机控制,强干扰场合。硬件看门狗(WDT)全双工异步串行口(UART),由于STC12系列单片机是高速的8051,可再用定时器或PCA软件实现多串口 Vcc: 电源 GND: 地 P0 口:P0口是一个8位的双向I/O口。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,同时也是模拟量输入口,可以对8路模拟量进行模数转换。

15、P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口。P3口亦作为特殊功能口使用,如表1所示。表1 STC12C5A32AD引脚号特殊功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入和定时器0时钟频率输出)P3.5 T1(定时器1外部输入和定时器1时钟频率输出)P3.6WR(外部数据存储器写选通)P3.7

16、 RD(外部数据存储器读选通) RST: 复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。 ALE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。2.1.2单片机电路STC12C5A32AD图及其原理单片机基本条件满足:Vdd通过一电容GND接电源地,P0.2(XAL1)P0.3(XAL2)接晶振电路实现内部时钟方式,P0.0-P0.7用作温度传感器输入端以采集各端温度,P2.0-P2.3经74LS138译码器实现对报警与指示电路的控制,P0.0

17、(VREF)输入A/D转换的基准电压,RST口连接复位电路以实现复位操作。其中具体电路原理图如图2.1、单片机接线原理图2.2传感器检测电路设计LM35 是由National Semiconductor 所生产的温度传感器,其输出电压与摄氏温度成正比,具有10mv/的灵敏度,工作温度范围为4V30V;输出阻抗为0.1。LM35温度传感器,由于它采用内部补偿,所以输出可以从0开始,器件有三个引脚,分别是电源负GND,电源正Vcc,信号输出端。LM35内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与

18、 电源电压无关。它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。如图2.2所示图2.2.传感器检测电路2.3LED显示电路设计2.3.1 LED数码管引脚及其功能介绍功能及其引脚介绍:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某

19、一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮表3段码与字节中各位对应关系段码位D7D6D5D4D3D2D1D0显示位 dpgfEdcba2.3.2 LED数码管显示电路及其原理本设计采用CH451专用显示芯片进行显示器驱动,采用共阴解法,通过单片机和CH451专用显示芯片具体是数码管的某一段码置低电平从而使相应的码管段点亮,

20、LED数码管接线如下图2.3数码管显示电路原理图 2.3.3 CH451键盘/显示器芯片引脚及其功能介绍CH451是一内部集成数码管显示驱动键盘扫描控制的专用芯片。内置RC振荡电路,可以直接驱动8个数码管。CH451各引脚定义如下图:表1 CH451-24键盘/显示器芯片引脚及其功能引脚号引脚名称引脚说明2Vcc正电源15GND电源地4LOAD输入端,4线串行接口数据加载5DIN输入端,串行接口输入6DLCK输入端,串行时钟输入3DOUT输出端,串行接口数据输入,键盘中断1、24-18SEG7-SEG0输出端,高电平有效7-14DIG7-DIG0输出端,低电平有效16RST输出端,上电复位和看

21、门狗复位17NC不连接,禁止使用2.3.4 CH451键盘/显示器驱动电路图及其原理CH451的段驱动引脚接200欧姆的电阻用于限制和均衡段驱动电流。DN、DCLK、LOAD口分别与单片机的P0.5、P0.6、P0.7口直接相连实现控制作用,其中P0.6口为DLOK连接为CH451提供串行时钟信号,LOAD用于加载串行数据,CH451一般在其上升沿加载移位寄存器中饭的12位数据作为操作命令。CH451通过8位段码对四个数码管实现控制。图2.4 CH451显示接口电路2.4键盘电路本设计采用独立键盘,其原理:8个按键分别通过10K电阻与单片机相应的I/O相连,并分别通过电阻再与5V电压相连接,从

22、而使端口再未有按键按下时为高电平。当某一按键按下时则该端口置为低电平,单片机通过判断端口的电压确定是否有按键按下并且确定按键的位置。图2.4 独立键盘电路2.5时钟电路及其原理本设计采用内部时钟方式的电路产生时钟信号,在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz12MHz之间。其具体接线原理图如下图:图2.5时钟晶振电路原理图 2.6复位电路及其原理复位电路的原理是单片机RST引脚接收到2S以上的电平信号,只要保证电容的充放电时间大于2S,即可实现复位,所以电路中的电容值是可以

23、改变的。按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。其原理图如下:图2.6复位电路原理图2.7报警与指示电路设计该电路用到74LS138译码器其引脚及其功能如下图2.7.1 74LS138译码器引脚图71LS138有三个附加的控制端。当输入端不为零时,输出为高电平(S1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平,。这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。温度检测系统多有声光报警功能,当检测温度超过上下限时,进行声光提示。本系统在从机和主机部分均设计了报警电路。各从机的报警上下限

24、由主机预置,从机实时监测的过程中,一旦发现检测温度值连续超出阈值范围,便启动自身报警电路,同时向主控机发送报警信号。其中使用74LS138译码器对八路声光电路进行控制使相应的端口置为低电平,三极管用于放大电流进而驱动放光二极管以及蜂鸣器,从而使对应的发光二极管发光,电阻用于限流。报警电路原理如下所示: 图2.7.2报警与指示电路原理图三、系统软件设计3.1基本思路及原理 主程序中首先对单片机初始化,并设置初始报警上下限,然后循环调用温度采集、温度转换、二进制数据转换成十进制数据、显示功能、报警功能等。另外,通过键盘输入,进入中断程序,通过读取LM35温度传感器的序列号,匹配正确的序列号后进行测

25、温通道的选择。选择单路通道后,显示当前温度值,分辨率为0.0625,可以通过键盘控制上下限的好修改,超过上下限闪烁报警。整个系统循环执行温度采集、转换、显示、报警等子程序,通过中断进行数据修改和控制。3.2子程序流程图测温选择LM35序列号,匹配待定18B20LM35复位匹配ROM读取温度RET 图13 主程序流程图重新设置堆栈指针调用报警子程序ALARM调用显示子程序DISPLAY调用转化温度子程序TEMPER_COV调用读温度子程序GET_TEMPER开INT0中断设置初始报警上下限初始开/关报警功能调用进制转化子程序TWO_TO_TEN将16进制的温度值转化为十进制开始 图3.2.1 L

26、M35初始化程序流程NNNYYY保护现场 显示调用读键值子程序键值存于累加器A显示上下限,上限闪烁报警控制单元取反清标志,恢复现场A=38H ?A=3CH ?NY显示并闪烁等待按键,读键值键值存入上限个位储存单元A=3AH ?等待按键,读键值图3.2.2中断程序流程键值存入上限十位储存单元等待按键,读键值A=3AH ?切换温度通道进入中断程序INT_7289退出中断3.3 主程序流程图图3.2.3主程序流程图图重新设置堆栈指针调用报警子程序ALARM调用显示子程序DISPLAY调用转化温度子程序TEMPER_COV调用读温度子程序GET_TEMPER开INT0中断下降沿触发设置初始报警上下限初

27、始开/关报警功能调用进制转化子程序TWO_TO_TEN将16进制的温度值转化为十进制开始四、结论与总结本次设计主要利用单片机、温度传感器、A/D转换器组成多路温度测量系统,测量环境温度并将温度值显示在数码管上。过程中通过老师的引导和自己查阅部分专业书籍,我基本了解了单片机设计的流程和部分注意事项,并大致掌握了protel99es的使用。同时也发现很多问题,比如编程能力差,设计细节没有注意到,基础理论掌握不扎实,应用与理论严重脱节。关于单片机设计的心得:通过这次课程的设计,将课本的知识实际应用,摆脱考试的局限,锻炼自己的解决问题的能力,独立思考能力。本课题使我熟悉了单片机设计原则,对51系列很简

28、单的运用,但比为了考试而瞬时记忆的知识牢固多了,工作需要独立解决问题的的能力,还是希望多一些这样的机会。1) 单片机设计需要多方面的知识做支撑,其中传感器技术,电子技术的知识尤为重要。2) 单片机硬件硬件设计需要积累大量的相关经验以使设计的电路合理规范3) 硬件设计中对引脚的分配很关键,因为单片机引脚有限,应用时应是各引脚发挥最大作用并很好的实现功能4) 所有的设计之前都应该想清楚总体思路,否则将在设计过程中陷入混乱5) 软件设计时,流程图是基本指导思想,一定要做到细致合理有效6) 绘制电路图使整体布局比较难把握,可能需要一些经验,在以后的设计绘图时总体把握将是我需要优先考虑的7) 设计过程中

29、,CH451还可以同时驱动键盘,由于单片机端口富余,且按键少,故采用了独立键盘方式,这样方便编程。五、参考文献1张毅刚主编·单片机原理及应用M·北京:高等教育出版社,20082李道玲,李玲,朱艳编著·传感器电路分析与设计M·武汉:武汉大学出版社,20033 刘笃人,韩保军编著。传感器及应用技术M·西安:西安电子科技大学出版社,20034 杨居义主编,单片机课程设计指导M·北京:清华大学出版社,20095李群芳编著。单片机原理、接口及应用嵌入式系统计数基础M·北京:清华大学出版社6周慈航著·单片机程序设计基础M

30、83;北京:北京航空航天大学出版社,20037陈小忠等,单片机接口技术实用子程序M·北京:人民邮电出版社,20058方佩敏编著·智能化集成温度传感器原理与应用M·北京:电子工业出版社,20029杨琢金译·C8051F310/1/2/3/4/5/8/16微控制器数据手册M·北京:新华龙电子有限公司;2004.六、附录6.1程序源代码ORG0000HLJMPMAIN;*ORG0013HLJMPINT_7289;*主函数 *MAIN:MOVSP,#60HSETBCS SETB KEY CLR CLKLCALLDELAY MOV29H,#0A4H;72

31、89复位 LCALL SENDSETBCSLCALLDELAYMOVMODIF_L_L,#0MOVMODIF_L_H,#2;默认下限MOVMODIF_H_L,#0MOVMODIF_H_H,#3;默认上限MOVALARM_CONTROL,#01H;设置报警控制SETBEA;开INT1中断SETB EX1SETBIT1;下降沿触发LP1: LCALLGET_TEMPERLCALLTEMPER_COVLCALLTWO_TO_TENLCALLDISPLAYLCALLALARMSJMPLP1;*TEMPER_LEQU46HTEMPER EQU47H;整数TEMPER_NUMEQU55H;缓冲单元,温度转

32、换使用BUFF_BLEQU36H;变量缓冲区最高位地址FLAG BIT 01HFLAG1 BIT00HDQ BITP1.5MODIF_L_L EQU49H;下限个位MODIF_L_H EQU4AH;下限十位MODIF_H_L EQU4DH;上限个位MODIF_H_H EQU4EH;上限十位MODIF_HEQU50H;报警上限MODIF_LEQU51H;报警下限ALARM_CONTROL EQU43H;允许修改上下限DIN BITP1.0CLK BITP1.1CS BIT P1.2KEY BIT P3.3;*TWO_TO_TEN:;温度数据转化为十进制MOVA,TEMPERMOVB,#100MO

33、VR0,#BUFF_BL;R1中存变量缓冲区的地址DIVAB;A/B 商在A 余数在BMOVR0,A;百位DECR0MOVA,BMOV B,#10DIVAB;A/B 商在A 余数在BMOVR0,A;十位DECR0MOVA,BADDA,#80H;加小数点MOVR0,A;个位DECR0MOVA,TEMPER_DEC;小数值MOVDPTR,#DEC_SHI;十分位查表MOVCA,A+DPTRMOVR0,ARET;*DEC_SHI:DB0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9DEC_BAI:DB0,6,2,8,5,1,7,3,0,6,2,8,5,1,7,3DEC_QIAN:DB0

34、,2,5,7,0,2,5,7,0,2,5,7,0,2,5,7DEC_WAN:DB0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5;* 报警子程序*ALARM:;报警程序MOVA,ALARM_CONTROLCJNEA,#01H,DOWN1MOVA,TEMPERMOVR4,AMOV A,MODIF_H_HMOVB,#10MULABADDA,MODIF_H_LMOVMODIF_H,A;保存上限MOV A,MODIF_L_HMOVB,#10MULABADDA,MODIF_L_LMOVMODIF_L,A;保存下限MOVA,R4CJNEA,50H,NEXT1;与上限比较NEXT1:JNCSO

35、UND;A大于等于上限,报警CJNEA,51H,NEXT2;与下限比较NEXT2:JNCDOWN1;A大于等于下限,返回主程序SOUND:MOVTMOD,#10H;计数器设置初值f=1000hzMOVTL1,#33HMOVTH1,#0FEHSETBTR1;启动T1MOVR5,#5;循环5次 0.128*5=0.64sMOVR6,#0;循环256次,大致0.5ms*256=0.128sFREQ1:JNBTF1,$CLRTF1MOVTL1,#33HMOVTH1,#0FEHCPLP1.2;P1.2连接蜂鸣器DJNZR6,FREQ1DJNZR5,FREQ1DOWN1:RET;* 数码管显示子程序*DI

36、SPLAY: ;数码管显示 MOV R0,#98H MOV R6,#11111111B LCALL SSEGSHOW MOVR7,#07H ;显示位数MOVR0,#0CFH;下载数据且按方式1译码 MOVR1,#30HRECY: MOVA,R1MOVR6,ALCALLSSEGSHOWDECR0INCR1DJNZR7,RECYRETSSEGSHOW:MOV029H,R0 ;发送显示的位置ACALLSENDMOV029H,R6;发送显示的键值ACALLSENDSETBCSRETSEND:MOVR2,#08HCLRCSACALLDEY1SLOOP:MOVC,029H.7MOVDIN,CSETBCLK

37、MOVA,029HRLAMOV029H,AACALLDEY2CLRCLKACALLDEY25DJNZR2,SLOOPCLRDINRETRESE:MOVR2,#08HSETBDINACALLDEY1RLOOP:SETBCLKACALLDEY2MOVC,DINMOVA,028HRLCAMOV028H,A ;028H存放键值CLRCLKACALLDEY2DJNZR2,RLOOPCLRDINRET;* 中断子程序*KEY_A:CJNEA,#3AH,KEY_C;修改报警上限 LCALL DEY1LCALLINT_DISPLAYMOVR1,#11100111BLCALLFLASH JNB P3.3,$ L

38、CALL DELAYS1:JBP3.3,S1 LCALL DELAYLCALLRDKEY SUBB A,#30HMOVMODIF_H_H,A;修改上限十位LCALLINT_DISPLAYMOVR1,#11101111BLCALLFLASH JNB P3.3,$ LCALL DELAYS2:JBP3.3,S2 LCALL DELAYLCALLRDKEY SUBB A,#30HMOVMODIF_H_L,A;修改上限个位LCALLINT_DISPLAYMOVR1,#11111111BLCALLFLASH JNB P3.3,$ LCALL DELAYS3:JBP3.3,S3 LCALL DELAYLCALLRDKEYCJNEA,#3AH,S3;确认返回 LJMP DOWNKEY_C:CJNEA,#3CH,DOWN;控制打开或关闭报警程序MOVA,ALARM_CONTROLXRLA,#01HMOVALARM_CONTROL,ASJMPDOWNDOWN: CLR IE1 POP PSWPOP ACC POP 07H POP 06H POP 05H POP 04H POP 03HPOP 02HPOP 01HPOP 00HRETIRDKEY:;读键值MOV029H,#15HACALLSENDACALLRESESETBCSMOVA,028HRETIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论