




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 目: 八路温度巡回检测系统院 系: 专 业: 姓 名: 班级学号: 指导教师: 日 期: 1.设计任务21.1设计题目21.2设计目的21.3设计任务22.总体方案设计与方案论证32.1总体方案设计与论证32.2温度采集、计算的方案设计与论证33.系统总框图及总体软件设计说明44. 系统资源分配64.1 系统相应单元标示符64.2 系统资源分配65.局部程序设计说明75.1巡显子程序75.2PB口按键子程序105.3温度模块子程序166.系统功能及其操作说明197.调试记录及调试结果198.课程设计总结20附录:程序清单201.设计任务1.1设计题目多路温度巡检仪1.2设计目的通过小型微机
2、应用产品的设计与调试过程,运用微机原理及接口技术课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习与掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3设计任务设计一个以单片机为核心的多路温度巡回检测显示仪表系统,通过多选一电子模拟开关及A/D 转换器巡回采集各路温度传感及变送器的数据,进行信号处理及标度变换,以一定的节拍时间依序显示各检测回路的序号及温度值,并可通过按钮开关操控作冻结或切换显示,在单片机实验板台上模拟调试实现。(一) 基本设计要求1、开机进行接口部件及数码显示器、指示灯、讯响器等自检
3、。2、八位LED八段数码管显示当前检测回路的序号、温度值及温度 单位“OC”或其他界面信息,温度显示单位为OC,保留一位小数。3、八路温度按节拍巡回检测显示,温度测量范围50OC50OC。4、键盘设定巡回节拍范围为0.5S5.0S.5、设选用的温度传感变送器将检测的50OC50OC温度变换为05V电压信号,综合误差为±0.5OC。6、 应采取数字滤波技术提高测量稳定性。7、 设置一个“冻结”按钮开关以操控进入与退出当前回路的冻结显示方式,冻结显示期间每0.5S更新一次温度值。8、 设置一个“切换”按钮开关以操控强行切换显示下一检测回路号及温度值。9、 对开关量输入进行软件消抖动处理。
4、(二) 功能扩展提示:(选做)1、无操作时间超过10分钟后自动恢复为基本的温度巡显方式。2、超上限告警功能,键盘设定温度上限范围为50OC50OC,监测到某回路温度超上限时有相应的显示闪烁提示、LED指示、讯响告警控制功能。3、增加温度超下限告警功能处理功能。4、每巡回显示一遍,穿插一个节拍显示实时钟,通过键盘设定时间。5、其他功能扩展。2.总体方案设计与方案论证2.1总体方案设计与论证本次课程设计的要求是8路温度巡显仪,该系统主要有三部分主成:数码管显示部分,温度采集与处理部分,功能键操作部分。见如下的框图所示。 图1-系统软件设计的整体思路框图2.2温度采集、计算的方案设计与论证方案一 采
5、用ADC0809芯片把经过每一路温度传感变送器变换为05V电压信号转化为数字量采用滚存最新的4次温度值进行求平均值并且每个工作大循环调用一次,把这个平均值扩大到01000的温度内码存储起来这样一来可以使-50°C、0°C、50°C分别变换成0、500、1000的温度内码,要显示的时候读出温度内码转化为BCD码送入8位7段数码管显示,8路温度信号采用巡回动态显示。通过按键操作进行修改系统程序的的标志位,程序中通过判断这些标志位来修改显示的节拍和温度报警的上下限。方案二 也是采用ADC0809用每调用一次温度采集子程序就把8路的温度每一路采集四次存放到存储单元中,这样
6、每调用一次就要算32次,每次AD转化最少要100US要是稍微延时1MS的时候,每次调用就要32MS。如果显示的时候采用静态显示的时候要很多条I/O线。综上所述,选用方案一,要是选用方案二的时候每次调用时太久不利于系统工作,会影响后面的程序调用。每个大循环调用1路四次的AD转化且滚存到存储区中,把AD值转化成温度内码,再把温度内码转化成BCD码。3.系统总框图及总体软件设计说明 图3-系统软件设计的总流程图并解释4. 系统资源分配4.1 系统相应单元标示符PROGRESSEQU60H;线程标志BEATTIME1EQU61H;节拍缓存1BEATTIME2EQU62H;节拍缓存2BEATSETEQU
7、63H;节拍设定单元ADTIMEEQU66H;ADDISPCIRCLOADEQU64H;显示路数LEDTWISTATEQU01H;闪烁标志位LEDTWIWEIEQU65H;第几位闪烁NOOPETIME1EQU66H;无操作延时NOOPETIME2EQU67HTEMPUPEQU68H;温度上限TEMPDOWNEQU69H;温度下限CLOCKSETEQU6AH;时钟设置0:小时设置,1:分钟设置,2:秒设置DISPCIRCSTATBIT00H;循显状态标志,0:循显,1:冻结4.2 系统资源分配系统资源分配表硬件资源分配片内数据存储空间的分配名称实现的功能字节地址用 途PB0冻结/解冻按键00H-
8、07H工作寄存器R0R7PB1进程切换按键10H-1FH8路温度内码的存储单元PB2确定按键27H-28H超上下限报警缓存单元PB5改变时钟调整的位置29H-2FHPB口消抖动的暂时存储单元PB6减按键30H-37H数码管显示缓存区PB7加按键38H-3CH分别为200us、10ms、1s、1分1小时存储单元L0-L7超过上限温度报警3DH3FH温度BCD码的十位个位小数位临时存储单元L8-L15超下限温度报警40H-5FH8路温度每一路采集4次的存储单元P3.2蜂鸣器超温报警60H进程标志位P0口数据地址/数据总线复用61H、62H节拍缓存单元P1口外部扩展地址总线的高八位63H节拍设定单元
9、P2口片外芯片的线选端66H、67H无操作延时单元P3口WR、RD片外扩展的读写信号68温度上限69温度下限6A时钟设置单元5.局部程序设计说明5.1巡显子程序(一)巡显子程序的流程图图4-巡显子程序流程图源程序如下:DISPALL:JBDISPCIRCSTAT,DISPFROST;冻结判断SJMPDISPCIRCDISPFROST:;冻结MOV A,DISPCIRCLOADCJNEA,#08H,ADDETETIME;是否是时钟LCALLDISPCLOCK;显示时间SJMP DISPALLEND;结束ADDETETIME:;0.5秒检测一次INC BEATTIME1MOV A,BEATTIME
10、1CJNE A,#50,DISPALLEND;是否已经0.5SMOV BEATTIME1,#0SJMPADSTARTDISPCIRC:;循显开始INC BEATTIME1MOV A,BEATTIME1CJNE A,#10,ADSTART;节拍MOV BEATTIME1,#0MOV A,BEATTIME2 ;节拍单元(按BCD码)加1ADD A,#1 DA AMOV BEATTIME2,ACJNE A,BEATSET,ADSTART ;到节拍设定的时间MOV BEATTIME2,#0INC DISPCIRCLOADMOV A,DISPCIRCLOADCJNE A,#9,ADSTARTMOV DI
11、SPCIRCLOAD,#0ADSTART:;开始AD转换及实时钟MOV A,DISPCIRCLOADCJNE A,#0,DISPALLNEXT1LCALL DISPAD0SJMP DISPALLENDDISPALLNEXT1:CJNE A,#1,DISPALLNEXT2LCALL DISPAD1SJMP DISPALLENDDISPALLNEXT2:CJNE A,#2,DISPALLNEXT3LCALL DISPAD2SJMP DISPALLENDDISPALLNEXT3:CJNE A,#3,DISPALLNEXT4LCALL DISPAD3SJMP DISPALLENDDISPALLNEXT
12、4:CJNE A,#4,DISPALLNEXT5LCALL DISPAD4SJMP DISPALLENDDISPALLNEXT5:CJNE A,#5,DISPALLNEXT6LCALL DISPAD5SJMP DISPALLENDDISPALLNEXT6:CJNE A,#6,DISPALLNEXT7LCALL DISPAD6SJMP DISPALLENDDISPALLNEXT7:CJNE A,#7,DISPALLNEXT8LCALL DISPAD7SJMP DISPALLENDDISPALLNEXT8:LCALL DISPCLOCKSETB P1.0;清除警报SETB P1.1SETB P3.
13、2DISPALLEND:RET(二)拆温度子程序 拆温度子程序包括在左边第一位显示当前路次,最右边两位分别显示“°C”。通过判断温度的符号的标志位34H.7,可以知道当前温度为正或为负,为负时显示出负号,如果当前的温度十位为零时,要把十位关显示。源程序如下: DISPADMESS:MOV A,#80HANL A,3FHCJNE A,#00H,DISPADMESS1MOV 35H,#12HSJMP DISPADMESS2DISPADMESS1:MOV 35H,#10HANL 3FH,#07FHDISPADMESS2:MOV 32H,3DH MOV 33H,3EHMOV A,3FHCJN
14、E A,#00H,DISPADMESS3MOV 34H,#12HSJMP DISPADMESS4DISPADMESS3:MOV 34H,3FHDISPADMESS4:MOV 30H,#14HMOV 31H,#13HMOV 36H,#12HRET(三)拆时间子程序原理同TEST2012子程序,把3AH,3BH,3CH中的数据分别把高四位和低四位拆到两个字节的第四位,这两个字节的高四位清零。把拆出来的两个字节送到显示缓存区显示。源程序略。5.2PB口按键子程序PB口按键子程序流程图PB:MOV DPTR,#0FDFDH;独立按键PB0-7检测且控制L0-L7子程序MOVX A,DPTR;输入PB0
15、-7电平MOV 2FH,2EHMOV 2EH,2DHMOV 2DH,2CHMOV 2CH,2BHMOV 2BH,2AHMOV 2AH,ACJNE A,2EH,PBENDCJNE A,2DH,PBENDCJNE A,2CH,PBENDCJNE A,2BH,PBENDCJNE A,#00H,PBNEXT0SJMP PBENDPBNEXT0:JB 2FH.0,PBNEXT1JNB 2AH.0,PBNEXT1LCALL PB0CALL NOOPECLEARSJMP PBENDPBNEXT1:JB 2FH.1,PBNEXT2JNB 2BH.1,PBNEXT2LCALL PB1CALL NOOPECLEA
16、RSJMP PBENDPBNEXT2:JB 2FH.2,PBNEXT3JNB 2BH.2,PBNEXT3LCALL PB2CALL NOOPECLEARSJMP PBENDPBNEXT3:JB 2FH.3,PBNEXT4JNB 2BH.3,PBNEXT4LCALL PB3CALL NOOPECLEARSJMP PBENDPBNEXT4:JB 2FH.4,PBNEXT5JNB 2BH.4,PBNEXT5LCALL PB4CALL NOOPECLEARSJMP PBENDPBNEXT5:JB 2FH.5,PBNEXT6JNB 2BH.5,PBNEXT6LCALL PB5CALL NOOPECLEA
17、RSJMP PBENDPBNEXT6:JB 2FH.6,PBNEXT7JNB 2BH.6,PBNEXT7LCALL PB6CALL NOOPECLEARSJMP PBENDPBNEXT7:JB 2FH.7,PBENDJNB 2BH.7,PBENDLCALL PB7CALL NOOPECLEARSJMP PBENDPBEND:RETPB0:MOV A,PROGRESSCJNE A,#0,PB0ENDCPL DISPCIRCSTATPB0END:RETPB1:INC PROGRESSMOV A,PROGRESSCJNE A,#5,PB1NEXTCLR TR1;时间停止运行PB1NEXT:CJNE
18、A,#6,PB1ENDMOV PROGRESS,#1PB1END:RETPB2:MOV PROGRESS,#0SETB TR1;时间开始运行RETPB3:RETPB4:RETPB5:MOVA,PROGRESSCJNEA,#5,PB5ENDINC CLOCKSETMOV A,CLOCKSETCJNE A,#3,PB5ENDMOV CLOCKSET,#0PB5END:RETPB6:MOVA,PROGRESSCJNEA,#0,PB6NEXT1JNBDISPCIRCSTAT,PB6ENDDEC DISPCIRCLOADMOVA,DISPCIRCLOADCJNE A,#0FFH,PB6ENDMOV DI
19、SPCIRCLOAD,#8SJMPPB6ENDPB6NEXT1:CJNEA,#2,PB6NEXT3MOV A,BEATSET ;秒单元(按BCD码)减1 ADD A,#99HDA AMOV BEATSET,ACJNE A,#04H,PB6END ;MOV BEATSET,#50H;设节拍SJMPPB6ENDPB6NEXT3:CJNEA,#3,PB6NEXT4DEC TEMPUP;设上限MOV A,TEMPUPCJNE A,TEMPDOWN,PB6NEXT31SJMP PB6ENDPB6NEXT31:JNC PB6ENDMOV TEMPUP,TEMPDOWNSJMPPB6ENDPB6NEXT4:
20、CJNEA,#4,PB6NEXT5DEC TEMPDOWN;设下限MOV A,TEMPDOWNCJNE A,#0FFH,PB6ENDMOV TEMPDOWN,#0SJMPPB6ENDPB6NEXT5:;设时钟MOV A,CLOCKSETCJNE A,#0,PB6NEXT50MOV A,3CH ;小时单元(按BCD码)减1ADD A,#99H DA AMOV 3CH,ACJNE A,#99H,PB6END ;小于0MOV 3CH,#23H ;小时单元清零SJMP PB6ENDPB6NEXT50:CJNE A,#1,PB6NEXT51MOV A,3BH ;分钟单元(按BCD码)减1ADD A,#9
21、9H DA AMOV 3BH,ACJNE A,#99H,PB6END ;小于0?MOV 3BH,#59H ;分钟单元清零SJMP PB6ENDPB6NEXT51:CJNE A,#2,PB6ENDMOV A,3AH ;秒单元(按BCD码)减1ADD A,#99H DA AMOV 3AH,ACJNE A,#99H,PB6END ;小于0?MOV 3AH,#59H ;秒单元清零PB6END:RETPB7:MOVA,PROGRESSCJNEA,#0,PB7NEXT1JNBDISPCIRCSTAT,PB7ENDINC DISPCIRCLOADMOVA,DISPCIRCLOADCJNE A,#9,PB7E
22、NDMOV DISPCIRCLOAD,#0SJMPPB7ENDPB7NEXT1:CJNEA,#2,PB7NEXT3MOV A,BEATSET ;秒单元(按BCD码)加1ADD A,#1 DA AMOV BEATSET,ACJNE A,#51H,PB7END ;满1分钟?MOV BEATSET,#05H;设节拍SJMPPB7ENDPB7NEXT3:CJNEA,#3,PB7NEXT4INC TEMPUP;设上限MOV A,TEMPUPCJNE A,#0,PB7ENDMOV TEMPUP,TEMPDOWNSJMPPB7ENDPB7NEXT4:CJNEA,#4,PB7NEXT5INC TEMPDOWN
23、;设下限MOV A,TEMPDOWNCJNE A,TEMPUP,PB7NEXT41SJMP PB7ENDPB7NEXT41:JC PB7ENDMOV TEMPDOWN,TEMPUPSJMPPB7ENDPB7NEXT5:MOV A,CLOCKSET;设时钟CJNE A,#0,PB7NEXT50MOV A,3CH ;小时单元(按BCD码)加1ADD A,#1 DA AMOV 3CH,ACJNE A,#24H,PB7END ;满24小时?MOV 3CH,#0 ;小时单元清零SJMP PB7ENDPB7NEXT50:CJNE A,#1,PB7NEXT51MOV A,3BH ;分钟单元(按BCD码)加1
24、ADD A,#1 DA AMOV 3BH,ACJNE A,#60H,PB7END ;满1小时?MOV 3BH,#0 ;分钟单元清零SJMP PB7ENDPB7NEXT51:CJNE A,#2,PB7ENDMOV A,3AH ;秒单元(按BCD码)加1ADD A,#1 DA AMOV 3AH,ACJNE A,#60H,PB7END ;满1分钟?MOV 3AH,#0 ;秒单元清零PB7END:RET5.3温度模块子程序(一)温度采集存储子程序依据路数设为N通过:N*4+3EH可以算出第N路温度存储的首地址通过滚动存放到连续的四个单元中。滚存的示意图如下:例如第一路1*4H+3EH=42H 40H
25、首先读出42H中的内容到A中41H 指针加1指向43H,把A(42H)放入43H 42H 起始地址 指针减去2指向41H单元,且读到A中 43H 指针加1指向42H,把A(41H)放入42H 44H 指针减去2指向40H,且读到A中 45H 指针加1指向41H,把A(40H)放如41H . 读出AD信号到40H . DPL+1指向下一个通道的AD转换 . 子程序返回5FH AD滚存的原理示意图(二) 转换成温度内码的子程序 此程序该设计的核心的算法之一,主要利用(D1+D2+D3+D4)/4*1000/255这样一来可以把AD转化出来的值放大到0-1000的温度内码。源程序如下:TRANISN
26、:MOV A,#0E8HMOV B,R2MUL ABMOV R3,BMOV A,#03HMOV B,R2MUL ABMOV R0,AMOV R1,BCLR CMOV A,R0ADD A,R3MOV R0,AMOV A,R1ADDC A,#0MOV R1,A;转成内码,保存到12H,13HRET(三)温度内码转化为BCD码的子程序 把温度内码和500相比较,如果大于500说明温度为正的,用 内码-500=TT/100的商为温度的十位,余数/10的商为温度的个位,此时的余数为温度的小数位。如果是小于500说明温度为负的 ,用 500-内码=T此时再按照上面的取余数和商的算法算出温度值。流程图下图。
27、 温度内码转BCD码流程图 源程序如下:TRANBCD:;R0:低八位,R1:高八位CLR CCJNE R1,#01H,TRANBCD1;高八位是否等于1CJNE R0,#0F4H,TRANBCD2;低八位是否等于F4H,即是否等于0度MOV 3DH,#0;等于0度MOV 3EH,#0MOV 3FH,#0SJMP TRANBCDENDTRANBCD2: ;高八位等于1JC TRANBCD21 ;是否大于0度MOV A,R0;温度大于0度CLR CSUBB A,#0F4HLCALL SAVEBCD;转换为BCD码SJMP TRANBCDENDTRANBCD21: CLR CMOV A,#0F4H
28、;温度小于0SUBB A,R0;LCALL SAVEBCD;转换为BCD码MOV A,3FH;"-" 号需显示,添加负号标志ORL A,#80H;MOV 3FH,A;回存SJMP TRANBCDENDTRANBCD1:JC TRANBCD11DEC R1;高八位比01H大,R1减去500的高八位01H CLR C;清除借位标志位MOV A,R0;低八位和500的低八位相减SUBB A,#0F4HMOV R0,AJC TRANBCD12;是否有借位LCALL SAVEBCD;没借位CJNE R1,#01H,TRANBCDEND;高八位是否为1?LCALL COMPBCDSJM
29、P TRANBCDEND TRANBCD12:DEC R1 ;借位,高位减1LCALL SAVEBCDCJNE R1,#01H,TRANBCDEND;高八位是否为1?LCALL COMPBCDSJMP TRANBCDEND TRANBCD11: CLR C;清除进借位标志位MOV A,#0F4H;高八位比01H小,说明高八位为00H,为负数SUBB A,R0;JC TRANBCD112SJMP TRANBCD111TRANBCD112:LCALL SAVEBCDSJMP TRANBCD113TRANBCD111:LCALL SAVEBCDLCALL COMPBCDTRANBCD113:MOV
30、A,3FH;"-" 号需显示,添加负号标志ORL A,#80H;MOV 3FH,A;回存TRANBCDEND:RET6.系统功能及其操作说明(1)硬件自检功能:本系统上电先是自检是蜂鸣器响1.0S关断,L0-L7点亮1.0S熄灭, L8-L151.0S熄灭,数码管按照每一段一段的循环点亮,到第八位的时候全部数码管点亮1S熄灭数码管。(2)自动巡检功能:路数从第一路开始显示当前路的温度,每1S路次加1显示该路的温度值,到第九路的时候显示出来实时钟。路数返回到第一路。(3)实时钟调整:当第九路的时候通过按键PB5、PB6、PB7可以进行对实时钟的时钟,分钟,秒钟进行调整。(4)
31、冻结巡检功能:当按下PB0按键时路数不再变化,一直显示当前路的温度,且温度值可以更新,直到无操作时间到则继续巡回显示。(5)手动切换功能:当再次按下PB0时路数按照以9为模加1。(6)温度报警功能:如果当前路的温度高于TEMPUP(温度上限)或者低于TEMPDOWN(温度下限),蜂鸣器响起,现对应的LED灯点亮。(7)功能选择设定:当第一次按下PB1键是进入功能选择界面,再次按下PB1是进入节拍设定状态,第三次按下PB1是进入温度上限调整状态,第四次按下PB1是进入温度下限调整状态,第五次按下PB1是进入实时钟调整状态,第六次按下PB1跳转为功能选择界面,之后依次循环。7.调试记录及调试结果1、发现小数点显示有问题,即实时钟也会出现小数点。原 因:没有对要显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园师生消防知识培训课件
- 绝食减肥测试题及答案
- 甲乳外科考试题及答案
- 自律作息测试题及答案
- 桂林社工面试题及答案
- 胰腺炎考试试题及答案
- 锁骨护理试题及答案
- 茶艺绿茶考试题及答案
- 危重护理考试题及答案
- 餐饮标准考试题及答案
- 2025年云南省高校大学《辅导员》招聘考试题库及答案
- 消费品市场2025年消费者对绿色包装认知及需求调研可行性研究报告
- 台球厅消防知识培训课件
- 充电桩运维服务协议
- 2025便利店加盟的合同样本
- 评职称老师考试题目及答案
- 2025年内分泌风湿免疫科进修人员出科理论考试试题及答案
- 2025至2030中国防砸安全鞋行业运营态势与投资前景调查研究报告
- 学堂在线 高技术与现代局部战争 章节测试答案
- 2025年医疗器械仓库管理培训试题及答案
- 2024年湖南省古丈县事业单位公开招聘工作人员考试题含答案
评论
0/150
提交评论