单片机课程设计--多路数字温度测量系统设计.doc

上传人:豆**** 文档编号:24055569 上传时间:2022-07-03 格式:DOC 页数:77 大小:1.10MB
返回 下载 相关 举报
单片机课程设计--多路数字温度测量系统设计.doc_第1页
第1页 / 共77页
单片机课程设计--多路数字温度测量系统设计.doc_第2页
第2页 / 共77页
点击查看更多>>
资源描述

《单片机课程设计--多路数字温度测量系统设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计--多路数字温度测量系统设计.doc(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date单片机课程设计-多路数字温度测量系统设计河北建筑工程学院单片机课程设计报告题目名称:多路数字温度测量系统设计 系: 电 专 业: 电 班 级: 学 号: 学生姓名: 指导教师: 职 称: 年 月 日 一、摘要计算机技术的发展和普及提升了数据采集系统的技术水平。在生产过程中,应用数据采集系统可对生产现场的工艺参数进行采集、监视和记录,以方便人们对数据结果做出分析判断。基

2、于汇编语言的多路温度采集与处理系统,可以实现对多路不同温度进行实时检测,通过LED显示当前温度值,可以更直观的观察数据、更便捷的对系统进行控制。本课题以内置A/D转换器的单片机STC12C5A32AD为核心,对多路的温度进行实时巡检。采用多个模拟温度传感器LM35测量多路温度。通过LM358构成的同相放大器对模拟温度信号进行放大,然后送至单片机处理。处理后由四位LED数码管对八路温度予以动态显示。通过独立式键盘可对测量进行操控。同时该系统还具有报警功能,实现当测量温度超出-55125时发出报警。本文结合实际使用经验,介绍了LM35温度传感器在单片机下的硬件连接及软件编程,并给出了流程图。 关键

3、词:单片机;温度传感器;放大器;数码管显示;键盘二、总体方案设计方案的阐述与特点:本设计方案以LM35为温度传感器、内置A/D转换器单片机STC89LE516AD为控制核心组成多点温度测量系统,该系统包括传感器及其放大电路、复位电路、晶振电路、报警电路、键盘与显示、基准电压电路组成。1、本方案系统框图为: 图1 总体系统框图2、 基本工作原理: 如图1所示本设计以LM35模拟温度传感器对八路温度进行实时测量,其输出电压经由LM358构成的同相放大器放大后送至单片机的A/D输入口。单片机对输入信号进行模数转换执行软件程序后,由LED数码管显示温度值,每秒切换一个通道进行轮流显示。通过键盘可以随时

4、查看指定通道的温度值,当任何一路温度的3次平均值超过设定的下限值或上限值时,发出警告。3、它有如下特点:(1)可以监测8路环境温度信号,可以扩充;对8路模拟信号输入进行循环采集,每路连线采集三次,取平均值。(2)测量范围为-55+125,精度为0.5(3)LCD液晶显示或用4位LED数码管进行循环显示,其中最高位通道提示符AH,低三位显示实际温度值,每秒切换一个通道进行轮流显示;(4)键盘控制,可随时查看指定通道的温度值;(5)可分别设定每一路的上限制和下限值,若采集平均值超过设定范围,则对应通道指示灯闪烁10后一直亮,指示灯闪烁是喇叭发声,以示警告。三、系统硬件设计本课题的整个系统是由传感器

5、及其信号放大电路、单片机、显示电路、键盘电路、稳压电路、晶振电路、复位电路等构成。3.1控制器-单片机设计:本设计采用的单片机为STC12C5A32AD STC12C5A32AD单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代单片机,全新的流水线/ 精简指令集结构。STC12C5A32AD单片机主要性能:高速:1个时钟/机器周期,RISC型8051内核,速度比普通8051快12倍工作电压:5.5V-3.3V低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)工作频率:035MHz时钟:外部晶体或内部RC 振荡器可选芯片内E2PROM 功能 ISP/IAP,在

6、系统可编程/在应用可编程,无需仿真器 8位8通道ADC,转换速度可达300K/S 2个硬件16位定时器,兼容普通8051 的定时器。再加上2 路PCA 还可再实现2个16位定时器硬件看门狗(WDT)全双工异步串行口(UART),由于STC12系列单片机是高速的8051,可再用定时器或PCA软件实现多串口如图3.1为STC12C5A32AD引脚图,各引脚功能说明如下: 图3.1 STC12C5A32AD引脚图 Vcc: 电源 GND: 地 P0 口:P0口是一个8位的双向I/O口。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。 P1

7、口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,同时也是模拟量输入口,可以对8路模拟量进行模数转换。 P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口。P3口亦作为特殊功能口使用,如表3-1所示。 表3-1 STC12C5A32AD引脚号特殊功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入和

8、定时器0时钟频率输出)P3.5 T1(定时器1外部输入和定时器1时钟频率输出)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通) RST: 复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。 ALE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。3.2传感器检测电路设计:LM35 是由National Semiconductor 所生产的温度传感器,其输出电压与摄氏温度成正比,具有10mv/的灵敏度,工作温度范围为4V30V

9、;输出阻抗为0.1。LM35温度传感器,由于它采用内部补偿,所以输出可以从0开始,器件有三个引脚,分别是电源负GND,电源正Vcc,信号输出端。电路需要两路运算放大电路,所以选择双路运算放大器,一路作跟随器另一路作同向放大器,LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。 图3.2.传感器检测电路3.3显示电路设计:如图3.3所示,本显示方案采用单片机I/O口外扩74HC573驱动器驱动4位LED数码管实现动态显示,所谓动态

10、显示就是在任何时刻只有一位LED数码管处于显示状态,即单片机采用扫描的方式控制各个数码管的轮流显示。动态显示具有编程简单,占用I/O口线少的优点。 图3.3显示电路3.4键盘电路设计:其原理图如下:本设计中由于所用键盘不多,所以采用独立连接式的编程扫描方式键盘就能够满足设计要求。键盘接口与键盘程序的根本任务就是要检测有没有键按下?按下的是那个位置的键?键值是多少?在本次设计中采用了软件扫描的方法。通过对键盘接口P3的查询判断是否有键按下。 图3.4 键盘电路3.5晶振电路设计:晶振电路是单片机的心脏,它控制着单片机的工作节奏。单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。STC12

11、C5A32AD内部有一个反相振荡放大器,XTAL1和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本设计采用的晶振频率为12MHZ。其晶振电路如图3.5所示。此外还可使用外部时钟。在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。 图3.5晶振电路3.6复位电路的设计: 复位使单片机处于起始状态,并从该起始状态开始运行。STC12C5A32AD的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电

12、复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。如图3.6 图3.6 复位电路3.7报警电路设计:为了实现多点温度检测报警系统,本课题采用STC12C5A32AD单片机作为主控制器,采用扫描的方式对多点温度传感器获取对应该位置的温度值,经处理后,如温度不在设定的范围内,给出报警信号。系统总体硬件电路图如下所示: 图3.7 报警电路3.8 3V稳压电路为了给STC89LE516AD单片机提供精确的3V基准电压,本设计采用了LM117三端可调正稳压集成电路。它的输出电压范围是1.2V至37

13、V,负载电流最大为1.5A。仅需外接两个电阻就可以设置输出电压。此外它的线性调整率和负载调整率都比较好。 图3.8 3V稳压电路3.9总电路见附录四、系统软件设计4.1系统主程序流程图主程序主要实现系统的初始化,温度数据采集与处理,键值处理,显示数据,报警。 系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),LED显示的初始化,输出端口的初始化,采集、累计数据的初始化。 图4.1 主程序流程图4.2测温子程序的设计数据采样程序功能:温度检测通道,控制存放数据的地址和采样次数。数据检测的方式是先对8个通道各采样一次,共采集三次。采样程序采用中断方式。在设置通道初值、通道数、采样次

14、数和存放数据的开始地址后,启动A/D转换,随后检测标志位状态。标志位被清零,标志着本通道的A/D转换已经结束,在修改通道号和数据存放地址后,对下一通道继续检测。当8个通道的检测工作完成后,判断三次采样是否全部完成,若没完成,则对8个通道继续采样,直至完成三次采样工作。数据采样程序流程框图如4.2所示。 图4.2 测温子程序4.3报警子程序设计(1) 采样被测参数(2)比较采样值和给定的上下限。(3)根据比较结果执行相应的处理程序。如果发现采样值超过报警值,发出执行报警程序。报警程序流程框图4.3所示。 4.3 报警子程序流程图 4.4显示子程序设计 四位LED数码管进行轮流显示,其中最高位显示

15、通道提示符AH,低三位显示实际温度。 图4.4 显示子程序流程图 五、结论1、课题总结 本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,将能够接受传感器的数据并显示出来,可以从键盘输入命令,系统根据命令选择对应的传感器,并由驱动电路驱动温度显示,对异常情况进行报警。2、心得六、参考文献1王为青, 程国刚. 单片机Keil Cx51应用开发技术M. 北京: 人民邮电出版社, 2006.223-226.2方佩敏编著智能化集成温度传感器原理与应用M.北京:电子工业出版社,2002.35-42.3张毅刚,彭喜元,彭宇.单片机原理及应用M.北京:高等教育出版社,2008.18-2

16、0,253-255,219-220,198-201.4刘笃人,韩保军.传感器及应用技术M.西安:西安电子科技大学出版社,2003.112-124.5童诗白. 模拟电子技术基础M.北京: 高等教育出版社, 2004. 213-216.6阎石数字电子技术基础M第五版北京:高等教育出版社,2006.524-535.7闫玉德,葛龙,俞虹. 单片机微型计算机原理与设计M.北京: 中国电力出版社,2010.112-154,197-199. 8 郁有文. 传感器原理及工程应用M. 西安: 西安电子科技大学出版社, 2008.215-238. 七、附录:1.系统程序: ;*;常数定义;*TMEL EQU 0E

17、0H ;20ms,定时器0时间常数TMEH EQU 0B1HTMEPHEAD EQU 36H;*;工作内存定义;*BITST DATA 20HTIMEISOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H;*; 引脚定义;* TEMPDIN BIT P3.7;*; 中断向量区;*ORG 000HLJMP START ORG 00BH LJMP T0IT;*;系统初始化;* ORG 100HSTART: MOV SP,#60HCLSMEM: MOV R0,#20

18、H MOV R1,#60HCLSMEM1: MOV R0,#00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,#00100001B MOV TH0,#TIMEL MOV TL0,#TIMEH SJMP INITERROR: NOP LJMP START NOPINIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONEOK LJMP MAIN;*; 定时器0中断服务程序;*T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R

19、7,#32H,T0ITI MOV R7,#00H SETB TIMEISOKTOIT1: POP PSW RETI;*; 主程序;*MAIN: LCALL LM35_1 JNB TIME1SOK,MAIN CLR TIME1SOKJNB TEMPONEOK,MAIN2LCALL READTEMP1LCALL CONVTEMPLCALL LM35_1MAIN2: LCALL READTEMPSETB TEMPONEOKLJMP MAIN;*;子程序区;*; RESETLM35;*INILM35: SETB TEMPDINNOP NOPCLR TEMPDINMOV R6,#0A0HDJNZ R6,

20、$MOV R6,#0A0H DJNZ R6,$ SETB TEMPDIN MOV R6,#32H DJNZ R6,$ MOV R6,#3CHLOOPLM35: MOV C,TEMPDINJC INILM35UTDJNZ R6,LOOPLM35MOV R6,#064HDJNZ R6,$SJMP INILM35RET;INILM35UT: SETB TEMPDINRET; *; 读LM35的程序,从LM35中读出一个字节的数据; *READLM35: MOV R7,#08HSETB TEMPDINNOPNOPREADLM35LOOP: CLR TEMPDINNOPNOPNOPSETB TEMPDI

21、NMOV R6,#07HDJNZ R6,$MOV C,TEMPDINMOV R6,#3CHDJNZ R6,$RRC ASETB TEMPDINDJNZ R7,READLM35LOOPMOV R6,#3CHDJNZ R6,$RET; *; 写LM35的程序,从LM35中写一个字节的数据; *WRITELM35: MOV R7,#08HSETB TEMPDINNOPNOPWRITELM35LOP: CLR TEMPDINMOV R6,#07HDJNZ R6,$RRC AMOV TEMPDIN,CMOV R6,#34HDJNZ R6,$SETB TENPDINDJNZ R7,WRITELM35LOP

22、RET; *; READ TEMP; *READTEMP: LCALL INITELM35MOV A,#0CCHLCALL WRITELM35MOV R6,#34HDJNZ R6,$MOV A,#44HLCALL WRITELM35MOV R6,#34HDJNZ R6,$RETREADTEMP1: LCALL INILM35MOV A,#0CCHLCALL WRITELM35MOV R6,#34HDJNZ R6,$MOV A,#0BEHLCALL WRITELM35MOV R6,#34HDJNZ R6,$MOV R5,#09HMOV R0,#TEMPHEADMOV B,#00HREADTEMP

23、2: LCALL READLM35MOV R0,AINC R0READTEMP21: LCALL CRC8CALDJNZ R5,READTEMP2MOV A,BJNZ READTEMPOUTMOV A,TEMPHEAD+0MOV TEMPL,AMOV A,TEMPHEAD+1MOV TEMPH,AREADTEMPOUT: RET; *; 处理温度BCD码子程序; *CONVTEAMP: MOV A,TEMPHANL A,#80HJZ TEMPC1CLR CMOV A,TEMPLCPL AADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TE

24、MPH,AMOV TEMPHC,#0BHSJMP TEMPCHTEMPC1: MOV TEMPHC,#0AHTEMPC11: MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FHMOV DPTR,#TEMPDOTTABMOVC A,A+DPTRMOV TEMPLC,AMOV A,TEMPLANL A,#0F0HSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPLLCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHCMOV TEMPHC

25、,AMOV A,TEMPLANL A,#0FHSWAP AORL A,TEMPLCMOV TEMPLC,AMOV A,R7JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHCANL A,#0FHORL A,R7MOV TEMPHC,ATEMPC12: RET; *; 小数部分码表; *TEMPDOTTAB: DB 00H, 01H, 01H, 02H, 03H, 03H, 04H,04H,05H,06HDB 06H,07H,08H,09H,09H; *; 显示区BCD码温度值刷新子程序; *LMBCD: MOV A,TEMPLCANL A,#0FHMOV

26、 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL A,#0FHMOV 72H,AMOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,AMOV A,TEMPHCANL A,#0F0HCJNZ A,#010H,DISPBCD0SJMP DISPBCD2LMBCD0: MOV A,TEMPHC ANL A,#0FH JNZ DISPBCD2 MOV A,TEMPHC SWAP AANL A,#0FHMOV 73H,#0AHMOV 72H,ALMBCD2: RET; *; 显示子程序; *; 显示数据在70H73H单元内,用4位LED共阳数码管显示,P1口输出段码数据,;P3口作扫描控制,每个LED数码管亮1ms时间再逐位循环。LM1: MOV R1,#70H MOV R5,#0FEHPLAY: MOV P1,#0FFH MOV P3,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A MOV A,R5 JB ACC.1,LOOP5 CLR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁