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

上传人:李医生 文档编号:11728749 上传时间:2021-09-01 格式:DOCX 页数:27 大小:348.56KB
返回 下载 相关 举报
单片机课程设计--多路数字温度测量系统设计讲解.docx_第1页
第1页 / 共27页
单片机课程设计--多路数字温度测量系统设计讲解.docx_第2页
第2页 / 共27页
单片机课程设计--多路数字温度测量系统设计讲解.docx_第3页
第3页 / 共27页
单片机课程设计--多路数字温度测量系统设计讲解.docx_第4页
第4页 / 共27页
单片机课程设计--多路数字温度测量系统设计讲解.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机课程设计--多路数字温度测量系统设计讲解.docx》由会员分享,可在线阅读,更多相关《单片机课程设计--多路数字温度测量系统设计讲解.docx(27页珍藏版)》请在三一文库上搜索。

1、单片机课程设计报告题目名称:多路数字温度测量系统设计系:电专 业: 电班 级:学 号:学生姓名:指导教师:职 称:一、摘要计算机技术的发展和普及提升了数据采集系统的技术水平。在生产过程中,应用数据采集系 统可对生产现场的工艺参数进行采集、监视和记录,以方便人们对数据结果做出分析判断。基于 汇编语言的多路温度采集与处理系统,可以实现对多路不同温度进行实时检测,通过LED显示当前温度值,可以更直观的观察数据、更便捷的对系统进行控制。本课题以内置A/D转换器的单片机STC12C5A32A为核心,对多路的温度进行实时巡检。采 用多个模拟温度传感器 LM35测量多路温度。通过 LM358构成的同相放大器

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

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

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

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

6、cAc件实现多用口如图3.1为STC12C5A32AD脚图,各引脚功能说明如下STC12C5A32AD1P1.0/ADC0心LKOUT2VccP1.1/ADC1P0.0P1.2/ADC2/ECI/RxD2P0.1P1.3/ADC3心CP0/TxD2P0.2P1.4/ADC4心CP1/SP0.3P1.5/ADC5/MOSIP0.4P1.6/ADC6/MISOP0.5P1.7/ADC7/SCLKP0.6RST/P4.7P0.7P3.0/RXD EX_LVD/P4.6/RST2P3.1/TXDALE/P4.5P3.2/INT0NA/P4.4P3.3/TNT1P2.7P3.4/T0/CLKOUT0P2

7、.6P3.5/T1/CLKOUT1P2.5P3.6/WRP2.4P3.7/RDP2.3XTAL2P2.2XTAL1P2.1GNDP2.0402393p84375p66357-348-3393210-31113012P 29132814一271526162517-24182319222021图 3.1 STC12C5A32Am脚图 Vcc:电源 GND:地 P0 口: P0 口是一个8位的双向I/O 口。对P0端口写“1”时,引脚用作高 阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低8位地址/数据复用。 P1 口: P1 口是一个具有内部上拉电阻的8位双向I/O 口,同时也是模拟量

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

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

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

11、,即单片机采用扫描的方式控制各个数码管的轮流显示。动态显示具有编程简单,占用I/O 口线少的优点。+5VO_/8a bc de f gDPYadpa bc de fg dpD PYaf g be,c dp9aDPYb ac f g;be 士cgdp1220 0*8171 6R(D V SSD P27 一工11 To 26C7 15 pFP0.0C LK DATASASBSC DSD HSE,SF ,SG,CLK OK EYD IG7D IG6D IG5D IG4D IG3D IG2D IG1D IG01 260p P / / , 5432 1098 6 7 89 2 2F2 22;图3.3显示

12、电路3.4 键盘电路设计:其原理图如下:本设计中由于所用键盘不多,所以采用独立连接式的编程扫描方式键盘就能够满 足设计要求。键盘接口与键盘程序的根本任务就是要检测有没有键按下?按下的是那个位置的键?键值是多少?在本次设计中采用了软件扫描的方法。通过对键盘接口P3的查询判断是否有键按下。10 K* 4S2S3O OrmP3. 0P3. 1P3. 2P3. 3图3.4键盘电路3.5 晶振电路设计:晶振电路是单片机的心脏,它控制着单片机的工作节奏。单片机允许的时钟频率 是因型号而异的,其典型值为12MHZ STC12C5A32AD部有一个反相振荡放大器, XTAL1和XTAL2分别是该反向振荡放大器

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

14、行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。 为了便于本设计运行调试,复位 电路采用按键复位方式。如图 3.6C1_| p_uFS12K26图3.6复位电路3.7 报警电路设计:为了实现多点温度检测报警系统,本课题采用STC12C5A32A单片机作为主控制器,采用扫描的方式对多点温度传感器获取对应该位置的温度值,经处理后,如温度不在设定的范围内,给出报警信号。系统总体硬件电路图如下所示:P2. 3 R75.1 KP2.71P2.62P2.53P2.46+5V_Y0k_Y2_Y3k 行Y6Y7 ABCGVGGGR69012* 9-l图3.7报警电路SPEAKER3

15、.8 3V稳压电路为了给STC89LE516AD片机提供精确的3V基准电压,本设计采用了 LM117三端可调 正稳压集成电路。它的输出电压范围是1.2V至37V,负载电流最大为1.5A。仅需外接 两个电阻就可以设置输出电压。此外它的线性调整率和负载调整率都比较好。D1M IN4007+8V1LM117+5V单片机VCCIN4007R2240C147uFR11KC322uFC210uF图3.8 3V稳压电路3.9 总电路见附录四、系统软件设计4.1 系统主程序流程图主程序主要实现系统的初始化,温度数据采集与处理,键值处理,显示数据,报壁 吕。系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断

16、寄存器等),LED显示的初始化,输出端口的初始化,采集、累计数据的初始化。图4.1主程序流程图4.2 测温子程序的设计数据采样程序功能:温度检测通道,控制存放数据的地址和采样次数。数据检 测的方式是先对8个通道各采样一次,共采集三次。采样程序采用中断方式。在设置通道初值、通道数、采样次数和存放数据的开始地址后,启动 A/D转换, 随后检测标志位状态。标志位被清零,标志着本通道的A/D转换已经结束,在修改通道号和数据存放地址后,对下一通道继续检测。当8个通道的检测工作完成后,判 断三次采样是否全部完成,若没完成,则对8个通道继续采样,直至完成三次采样工 作。数据采样程序流程框图如 4.2所示。开

17、始置标位(1)(2)(3)4.3 报警子程序设计采样被测参数比较采样值和给定的上下限。根据比较结果执行相应的处理程序。如果发现采样值超过报警值,发出执行报警程序。报警程序流程框图 4.3所示。4.3开始报警子程序流程图4.4显示子程序设计四位LE四码管进行轮流显示,其中最高位显示通道提示符A H,低三位显示实际温度。开始查表获取最高 位图4.4显示子程序流程图五、结论1、课题总结本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,将能够接受传感器的数据并显示出来, 可以从键盘输入命令,系统根据命令选择 对应的传感器,并由驱动电路驱动温度显示,对异常情况进行报警。2、心得六、

18、参考文献1王为青,程国刚.单片机Keil Cx51应用开发技术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

19、.7闫玉德,葛龙,俞虹 .单片机微型计算机原理与设计 M .北京:中国电力出版社,2010.112-154,197-199.8郁有文.传感器原理及工程应用M.西安:西安电子科技大学出版社,2008.215-238.七、附录:1.系统程序:.* ;常数定义;* ;TMELEQU0E0H; 20m6定时器0时间常数TMEHEQU0B1HTMEPHEAD EQU 36H* ;工作内存定义;* ;BITST DATA 20HTIMEISOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPLDATA26HTEMPHDATA27HTEMPHCDATA28HTEMPLCDATA29

20、H;* ;引脚定义;* ;TEMPDIN BIT P3.7;* ;中断向量区;* ;ORG000HLJMPSTARTORG 00BHLJMP T0IT.*;系统初始化.*ORG START:MOVCLSMEM:MOVMOVCLSMEM1:MOVINCDJNZMOVMOVMOVSJMPERROR:NOPLJMPNOPINIT:NOP100HSP,#60HR0,#20HR1,#60HR0,#00HR0R1,CLSMEM1 TMOD,#00100001B TH0,#TIMEL TL0,#TIMEHINITSTARTSETBET0SETBTR0SETBEAMOVPSW,#00HCLRTEMPONEOK

21、LJMPMAIN.* ; 定时器0中断服务程序 ;* ;T0IT:PUSH PSWMOVPSW,#10HMOVTH0,#TIMEHMOVTL0,#TIMELINCR7CJNER7,#32H, T0ITIMOVR7,#00HSETBTIMEISOKTOIT1:POP PSWRETI.* ; 主程序 ;* ;MAIN:LCALL LM35_1JNB TIME1SOK,MAINCLR TIME1SOKJNB TEMPONEOK,MAIN2 LCALLREADTEMP1LCALLCONVTEMPLCALLLM35_1MAIN2:LCALLREADTEMPSETBTEMPONEOKLJMPMAIN.*

22、; ;子程序区.*;RESETLM35.* ;INILM35:SETB TEMPDINNOPNOPCLRTEMPDINMOVR6,#0A0HDJNZ R6,$MOVR6,#0A0HDJNZR6,$SETBTEMPDINMOVR6,#32HDJNZR6,$MOVR6,#3CHLOOPLM35:MOV C,TEMPDINJCINILM35UTDJNZR6,LOOPLM35MOVR6,#064HDJNZR6,$SJMPINILM35RET;INILM35UT: SETB TEMPDINRET;*; 读LM35的程序,从LM35中读出一个字节的数据;*READLM35:MOVR7,#08HSETB T

23、EMPDINNOPNOPREADLM35LOOP: CLR TEMPDINNOPNOPNOPSETB TEMPDINMOVR6,#07HDJNZ R6,$MOV C,TEMPDINMOV R6,#3CHDJNZ R6,$RRC ASETB TEMPDINDJNZ R7,READLM35LOOPMOV R6,#3CHDJNZ R6,$RET;*; 写LM35的程序,从LM35中写一个字节的数据;*WRITELM35:MOVR7,#08HSETB TEMPDINNOPNOPWRITELM35LOP: CLR TEMPDINMOVR6,#07HDJNZR6,$RRCAMOVTEMPDIN,CMOVR

24、6,#34HDJNZR6,$SETBTENPDINDJNZR7,WRITELM35LOPRET;*; READ TEMP;*READTEMP:LCALL INITELM35MOV A,#0CCHLCALL WRITELM35MOVR6,#34HDJNZ R6,$MOV A,#44HLCALL WRITELM35MOVR6,#34HDJNZR6,$RETREADTEMP1:LCALLMOVA,#0CCHLCALLWRITELM35MOVR6,#34HDJNZR6,$MOVA,#0BEHLCALLWRITELM35MOVR6,#34HDJNZR6,$MOVR5,#09HMOVR0,#TEMPHEA

25、DMOVB,#00HREADTEMP2:LCALLMOVR0,AINCR0READTEMP21:LCALLDJNZR5,READTEMP2MOVA,BJNZREADTEMPOUTMOVA,TEMPHEAD+0MOVTEMPL,AMOVA,TEMPHEAD+1MOVTEMPH,AREADTEMPOUT: RETINILM35READLM35CRC8CAL;*;处理温度BC则子程序;*CONVTEAMP:MOV A,TEMPHANLA,#80HJZ TEMPC1CLRCMOVA,TEMPLCPLAADDA,#01HMOVTEMPL,AMOVA,TEMPHCPLAADDCA,#00HMOVTEMPH

26、,AMOVTEMPHC,#0BHSJMPTEMPCHTEMPC1:MOVTEMPHC,#0AHTEMPC11:MOVA,TEMPHCSWAP AMOVTEMPHC,AMOVA,TEMPLANLA,#0FHMOVDPTR,#TEMPDOTTABMOVCA,A+DPTRMOVTEMPLC,AMOVA,TEMPLANLA,#0F0HSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPLLCALLHEX2BCD1MOV TEMPL,AANLA,#0F0HSWAPAORLA,TEMPHCMOVTEMPHC,AMOVA,TEMPLANLA,#0FHSWAP AO

27、RLA,TEMPLCMOV TEMPLC,AMOVA,R7JZTEMPC12ANLA,#0FHSWAP AMOVR7,AMOVA,TEMPHCANLA,#0FHORLA,R7MOVTEMPHC,ATEMPC12:RET;*;小数部分码表;*TEMPDOTTAB: DB 00H, 01H, 01H, 02H, 03H, 03H, 04H,04H,05H,06HDB 06H,07H,08H,09H,09H;*; 显示区BC则温度值刷新子程序;*LMBCD:MOV A,TEMPLCANLA,#0FHMOV70H,AMOVA,TEMPLCSWAP AANLA,#0FHMOV71H,AMOVA,TEMP

28、HCANLA,#0FHMOV72H,AMOVA,TEMPHCSWAPAANLA,#0FHMOV73H,AMOVA,TEMPHCANLA,#0F0HCJNZA,#010H,DISPBCD0SJMPDISPBCD2LMBCD0:MOVA,TEMPHCANL A,#0FHJNZDISPBCD2MOVA,TEMPHCSWAP AANLA,#0FHMOV73H,#0AHMOV72H,ALMBCD2:RET;*;显示子程序;*;显示数据在70H-73H单元内,用4位LEM阳数码管显示,P1 口输出段码数据,; P3 口作扫描控制,每个LED数码管亮1ms时间再逐位循环。LM1:MOVR1,#70HMOVR

29、5,#0FEHPLAY:MOV P1,#0FFHMOVP3,AMOVA,R1MOVDPTR,#TABMOVCMOVMOVJBCLRLOOP5:LCALLINCMOVJNBRLMOVAJMPENDOUT:MOVMOVRETA,A+DPTRP1,AA,R5ACC.1,LOOP5P1.7DLIMSR1A,R5ACC.3,ENDOUTAR5,APLAYP1,#0FEHP3,#0FEH;共阳段码表“0”“不亮”“一”DL1MS:MOVDL1:MOVDL2:DJNZDJNZRET“1”“2”“3”“6”“7”“8”9”R6,#14HR7,#19HR7,DL2R6,DL1TAB: DB 0C0H,0F9H,

30、0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH;*;单字节十六进制转BCD;*HEX2BCD1:MOV B,#064HDIVABMOVR7,AMOVA,#0AHXCHA,BDIVABSWAPAORLA,BRET;*;Calculate CRC 8 Values.;*CRC8CAL:PUSHACCMOVR7,#08HCRC8LOOP1:XRLA,BRRCAMOVA,BJNCCRC8LOOP2XRLA,#18HCRC8LOOP2:RRCAMOVB,APOPACCRR APUSH ACCDJNZR7,CRC8LOOP1POPACCRETEND2.总电气原理图

31、:LM 3510U7LM 35LM 3530 pF. 30PF中一口LMHZ69”;a DP dp , c l_b _ldpdc gb Ia DP口町|3日e f200*8C26 10 11 1213 14 1516 127卜R 4215 pFC SGSF sI LKO1.5K+5 Hv7BsAdPvsCdrv ESDdc gb |aDIGDIQG2IGDIG44GDIG0GKEYDATAC I1819 20 21 22 23 24 259 I8 7 ,6GND P3.P3.P3P3.P3.P3.P3.P3.0 P1.P1.P1.5P1f41.P1.3P1.PlJ/iNtnTOX/RXDST版DCD皿CDADC2皿 /S /C /C /C/T1/TCL/COUOUT0C CCL/MISOOSI /eci/RxP1/SS伤D2D2 LKOEX_LVD/P4.6/RC0STC1UT22C5A32ADP2.P2.P2.P2.P2.P2P2.P2NAALESTP5.P0.P0.P0/0J30.P0.P0V821 22 23 24 2516 27 28 2 9 3 0 31 S 33 34 35 3(+5 V8 I 5 4 16 6 3 2 1IN400712* 9SPEAKER

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1