基于单片机的多路数字温度测量系统设计_第1页
基于单片机的多路数字温度测量系统设计_第2页
基于单片机的多路数字温度测量系统设计_第3页
基于单片机的多路数字温度测量系统设计_第4页
基于单片机的多路数字温度测量系统设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、河北建筑工程学院单片机课程设计报告题目名称:基于单片机的多路数字温度测量系统设计 院: 专 业: 班 级: 学 号: 学生姓名: 指导教师: 职 称: 成 绩: 年 月日目录一、系统总体方案设计 3二、系统硬件设计 42.1控制器-单片机设计 42.2传感器检测电路设计 52.3显示电路设计 62.4键盘电路设计 72.5晶振电路设计 72.6复位电路的设计 82.7报警电路设计 92.8 5V稳压电路 92.9总电路 9三、系统软件设计 103.1系统主程序流程图 103.2测温子程序的设计 103.3报警子程序设计 113.4显示子程序设计 12四、结论 13五、参考文献 15六、附录 1

2、6摘要随着时代的进步,计算机技术发展的越来越快,计算机在人们的生活中起着越来越重要的作用,在工业领域的应用更加突出。在生产过程中,应用数据采集系统可对生产现场的工艺参数进行采集、监视和记录,以方便人们对数据结果做出分析判断。基于汇编语言的多路温度采集与处理系统,可以实现对多路不同温度进行实时检测,通过LED显示当前温度值,可以更直观的观察数据、更便捷的对系统进行控制。本课题以内置A/D转换器的单片机STC12C5A32AD为核心,对多路的温度进行实时巡检。采用多个模拟温度传感器LM35测量多路温度,通过LM358构成的同相放大器对模拟温度信号进行放大,然后送至单片机处理。处理后由四位LED数码

3、管对八路温度予以动态显示。通过独立式键盘可对测量进行操控。同时该系统还具有报警功能,实现当测量温度超出-55125时发出报警,测量精度为±0.5。本文结合实际使用经验,介绍了LM35温度传感器在单片机下的硬件连接及软件编程,并给出了流程图。关键词:STC12C5A32AD单片机;LM35温度传感器;LED数码管显示;键盘;报警一、总体方案设计方案的阐述与特点:本设计方案以内置A/D转换器单片机STC12C5A32AD、LM35为温度传感器为控制核心组成多点温度测量系统,该系统包括传感器及其放大电路、复位电路、晶振电路、报警电路、键盘电路、5V稳压电路和显示电路。1、本方案系统框图为:

4、 图1.1 总体系统框图2、 基本工作原理:如图1所示本设计以LM35模拟温度传感器对八路温度进行实时测量,其输出电压经由LM358构成的同相放大器放大后送至单片机的A/D输入口。单片机对输入信号进行模数转换执行软件程序后,由LED数码管显示温度值,每秒切换一个通道进行轮流显示。通过键盘可以随时查看指定通道的温度值,当任何一路温度的3次平均值超过设定的下限值或上限值时,发出警告。3、它有如下特点:(1)可以监测8路环境温度信号,可以扩充;对8路模拟信号输入进行循环采集,每路连线采集三次,取平均值。(2)测量范围为-55+125,精度为±0.5(3)LCD液晶显示或用4位LED数码管进

5、行循环显示,其中最高位通道提示符AH,低三位显示实际温度值,每秒切换一个通道进行轮流显示;(4)键盘控制,可随时查看指定通道的温度值;(5)可分别设定每一路的上限制和下限值,若采集平均值超过设定范围,则对应通道指示灯闪烁10后一直亮,指示灯闪烁是喇叭发声,以示警告。二、系统硬件设计本设计方案的整个系统是由LM35传感器及其信号放大电路、STC12C5A32AD单片机、4位LED数码管动态显示电路、键盘电路、稳压电路、晶振电路、复位电路等构成。2.1控制器-单片机设计本设计采用的单片机为STC12C5A32AD:STC12C5A32AD单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机

6、,是高速/ 低功耗的新一代单片机,全新的流水线/ 精简指令集结构。STC12C5A32AD单片机主要性能:高速:1个时钟/机器周期,RISC型8051内核,速度比普通8051快12倍工作电压:5.5V-3.3V低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)工作频率:035MHz时钟:外部晶体或内部RC 振荡器可选芯片内E2PROM 功能 ISP/IAP,在系统可编程/在应用可编程,无需仿真器 8位8通道ADC,转换速度可达300K/S 2个硬件16位定时器,兼容普通8051 的定时器。再加上2 路PCA 还可再实现2个16位定时器硬件看门狗(WDT)全双工异步串行口(UART),由于STC

7、12系列单片机是高速的8051,可再用定时器或PCA软件实现多串口如图2.1为STC12C5A32AD引脚图,各引脚功能说明如下: 图2.1 STC12C5A32AD引脚图 Vcc: 电源 GND: 地 P0 口:P0口是一个8位的双向I/O口。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,同时也是模拟量输入口,可以对8路模拟量进行模数转换。 P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行

8、MOVX DPTR)时,P2 口送出高八位地址。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口。P3口亦作为特殊功能口使用,如表2-1所示 表2-1 STC12C5A32AD引脚号特殊功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(定时器0外部输入和定时器0时钟频率输出)P3.5 T1(定时器1外部输入和定时器1时钟频率输出)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通) RST: 复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。 ALE

9、:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。12.2传感器检测电路设计:LM35 是由National Semiconductor 所生产的温度传感器,其输出电压与摄氏温度成正比,具有10mv/的灵敏度,工作温度范围为4V30V;输出阻抗为0.1。LM35温度传感器,由于它采用内部补偿,所以输出可以从0开始,器件有三个引脚,分别是电源负GND,电源正Vcc,信号输出端。电路需要两路运算放大电路,所以选择双路运算放大器,一路作跟随器另一路作同向放大器,LM358

10、内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。2、4、8 图2.2.传感器检测电路2.3显示电路设计:如图2.3所示,本显示方案采用单片机I/O口外扩74HC573驱动器驱动4位LED数码管实现动态显示,所谓动态显示就是在任何时刻只有一位LED数码管处于显示状态,即单片机采用扫描的方式控制各个数码管的轮流显示。动态显示具有编程简单,占用I/O口线少的优点。7 图2.3显示电路2.4键盘电路设计:其原理图如下:本设计中由于所用键盘不多,所

11、以采用独立连接式的编程扫描方式键盘就能够满足设计要求。键盘接口与键盘程序的根本任务就是要检测有没有键按下?按下的是那个位置的键?键值是多少?在本次设计中采用了软件扫描的方法。通过对键盘接口P3的查询判断是否有键按下。3 图2.4 键盘电路2.5晶振电路设计:晶振电路是单片机的心脏,它控制着单片机的工作节奏。单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。STC12C5A32AD内部有一个反相振荡放大器,XTAL1 和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本设计采用的晶振频率为12MHZ。其晶振电路如图

12、2.5所示。此外还可使用外部时钟。在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。3 图2.5晶振电路2.6复位电路的设计:复位使单片机处于起始状态,并从该起始状态开始运行。STC12C5A32AD的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。如图2.61 图2.6 复位电路2.7报警电路设计:为

13、了实现多点温度检测报警系统,本课题采用STC12C5A32AD单片机作为主控制器,采用扫描的方式对多点温度传感器获取对应该位置的温度值,经处理后,如温度不在设定的范围内,给出报警信号。系统总体硬件电路图如下所示:5、6 图2.7 报警电路2.8 5V稳压电路为了给STC12C5A32AD单片机提供精确的5V基准电压,本设计采用了LM117三端可调正稳压集成电路。它的输出电压范围是1.2V至37V,负载电流最大为1.5A。仅需外接两个电阻就可以设置输出电压。此外它的线性调整率和负载调整率都比较好。5、6 图2.8 5V稳压电路2.9总电路见附录三、系统软件设计3.1系统主程序流程图主程序主要实现

14、系统的初始化,温度数据采集与处理,键值处理,显示数据,报警。 系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),LED显示的初始化,输出端口的初始化,采集、累计数据的初始化。 图3.1 主程序流程图3.2测温子程序的设计数据采样程序功能:温度检测通道,控制存放数据的地址和采样次数。数据检测的方式是先对8个通道各采样一次,共采集三次。采样程序采用中断方式。在设置通道初值、通道数、采样次数和存放数据的开始地址后,启动A/D转换,随后检测标志位状态。标志位被清零,标志着本通道的A/D转换已经结束,在修改通道号和数据存放地址后,对下一通道继续检测。当8个通道的检测工作完成后,判断三次采

15、样是否全部完成,若没完成,则对8个通道继续采样,直至完成三次采样工作。数据采样程序流程框图如3.2所示。 图3.2 测温子程序3.3报警子程序设计(1)采样被测参数(2)比较采样值和给定的上下限。(3)根据比较结果执行相应的处理程序。如果发现采样值超过报警值,发出执行报警程序。报警程序流程框图3.3所示。 3.3 报警子程序流程图 3.4显示子程序设计四位LED数码管进行轮流显示,其中最高位显示通道提示符AH,低三位显示实际温度。 图3.4 显示子程序流程图 四、结论1、课题总结本课题以内置A/D转换器的单片机STC12C5A32AD为核心,对多路的温度进行实时巡检。采用多个模拟温度传感器LM

16、35测量多路温度,通过LM358构成的同相放大器对模拟温度信号进行放大,然后送至单片机处理。处理后由四位LED数码管对八路温度予以动态显示。通过独立式键盘可对测量进行操控可随时查看指定通道的温度值。同时该系统还具有报警功能,实现当测量温度超出-55125时发出报警,测量精度为±0.5。2、心得作为一名电气自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。单片机作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也

17、在逐渐增加。在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能主动完成。但通过学习这一次实践,我的收获颇丰。首先,通过这次课程的设计,使我熟悉了单片机设计原则,对内置AD系列单片机内部构造、与其它芯片的接口技术及其工作情况有了更进一步了解。而且这次使用的是我们没有接触过的内置A/D转换器的单片机,又学习了新的知识,通过各种渠道查资料拓宽了自己的知识面。将课本的知识实际应用,加强了对专业知识的了解,提高了我们综合运用知识的能力以及分析问题、解决问题的能力和独立思考能力。其次,在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。设计中先是没

18、有注意单片机的电压问题,后来又遇到了电平兼容问题,经过几番周折,终于完成了这次设计。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。自己查阅资料,以及自身的动脑和努力,都是以后工作中需要的。还有,在这次课程设计中,我们运用到了许多专业课知识,如:Protel软件、单片机编程知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。五、参考文献1王为青, 程国刚. 单片机Keli Cx51应用开发技

19、术M. 北京: 人民邮电出版社, 2006.223-226.2方佩敏编著·智能化集成温度传感器原理与应用M.北京:电子工业出版社,2002.35-42.3张毅刚,彭喜元,彭宇.单片机原理及应用M.北京:高等教育出版社,2008.18-20,253-255,219-220,198-201.4刘笃人,韩保军.传感器及应用技术M.西安:西安电子科技大学出版社,2003.112-124.5童诗白. 模拟电子技术基础M.北京: 高等教育出版社, 2004. 213-216.6阎石数字电子技术基础M第五版北京:高等教育出版社,2006.524-535.7闫玉德,葛龙,俞虹. 单片机微型计算机原理

20、与设计M.北京: 中国电力出版社,2010.112-154,197-199. 8 郁有文. 传感器原理及工程应用M. 西安: 西安电子科技大学出版社, 2008.215-238.六、附录:1.系统程序: ;*;常数定义;*TMEL EQU 0E0H ;20ms,定时器0时间常数TMEH EQU 0B1HTMEPHEAD EQU 36H;*;工作内存定义;*BITST DATA 20HTIMEISOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H;*; 引脚定义

21、;* TEMPDIN BIT P3.7;*; 中断向量区;*ORG 000HLJMP START ORG 00BH LJMP T0IT;*;系统初始化;* ORG 100HSTART: MOV SP,#60HCLSMEM: MOV R0,#20H 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 M

22、OV PSW,#00H CLR TEMPONEOK LJMP MAIN;*; 定时器0中断服务程序;*T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R7,#32H,T0ITI MOV R7,#00H SETB TIMEISOKTOIT1: POP PSW RETI;*; 主程序;*MAIN: LCALL LM35_1 JNB TIME1SOK,MAIN CLR TIME1SOKJNB TEMPONEOK,MAIN2LCALL READTEMP1LCALL CONVTEMPLCALL LM35_1MAI

23、N2: LCALL READTEMPSETB TEMPONEOKLJMP MAIN;*;子程序区;*; RESETLM35;*INILM35: SETB TEMPDINNOP NOPCLR TEMPDINMOV R6,#0A0HDJNZ R6,$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 INILM35RETINILM35UT: SETB TEMPD

24、INRET; *; 读LM35的程序,从LM35中读出一个字节的数据; *READLM35: MOV R7,#08HSETB TEMPDINNOPNOPREADLM35LOOP: CLR TEMPDINNOPNOPNOPSETB TEMPDINMOV R6,#07HDJNZ R6,$MOV C,TEMPDINMOV R6,#3CHDJNZ R6,$RRC ASETB TEMPDINDJNZ R7,READLM35LOOPMOV R6,#3CHDJNZ R6,$RET; *; 写LM35的程序,从LM35中写一个字节的数据; *WRITELM35: MOV R7,#08HSETB TEMPDIN

25、NOPNOPWRITELM35LOP: CLR TEMPDINMOV R6,#07HDJNZ R6,$RRC AMOV TEMPDIN,CMOV R6,#34HDJNZ R6,$SETB TENPDINDJNZ R7,WRITELM35LOPRET; *; READ TEMP; *READTEMP: LCALL INITELM35MOV A,#0CCHLCALL WRITELM35MOV R6,#34HDJNZ R6,$MOV A,#44HLCALL WRITELM35MOV R6,#34HDJNZ R6,$RETREADTEMP1: LCALL INILM35MOV A,#0CCHLCALL

26、 WRITELM35MOV R6,#34HDJNZ R6,$MOV A,#0BEHLCALL WRITELM35MOV R6,#34HDJNZ R6,$MOV R5,#09HMOV R0,#TEMPHEADMOV B,#00HREADTEMP2: LCALL READLM35MOV R0,AINC R0READTEMP21: LCALL CRC8CALDJNZ R5,READTEMP2MOV A,BJNZ READTEMPOUTMOV A,TEMPHEAD+0MOV TEMPL,AMOV A,TEMPHEAD+1MOV TEMPH,AREADTEMPOUT: RET; *; 处理温度BCD码子

27、程序; *CONVTEAMP: MOV A,TEMPHANL A,#80HJZ TEMPC1CLR CMOV A,TEMPLCPL AADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,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,#0F

28、0HSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPLLCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHCMOV TEMPHC,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 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL A,#0FHMOV 72H,AMOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,AMOV A,TEMPHCAN

温馨提示

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

评论

0/150

提交评论