温度采集及显示控制(18页).doc

上传人:1595****071 文档编号:37163335 上传时间:2022-08-30 格式:DOC 页数:18 大小:237KB
返回 下载 相关 举报
温度采集及显示控制(18页).doc_第1页
第1页 / 共18页
温度采集及显示控制(18页).doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《温度采集及显示控制(18页).doc》由会员分享,可在线阅读,更多相关《温度采集及显示控制(18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-温度采集及显示控制-第 15 页河北科技大学课程设计报告学生姓名: 学 号: 专业班级: 软件工程 课程名称: 接口技术课程设计 学年学期: 2 0 2 0 学年第 学期 指导教师: 2 0 年 月目录一、设计题目1二、设计目的:1三、设计原理及方案:11原理及方案18255简介2ADC0809主要功能2七段LED显示器及其接口32.实验电路及连接4四、实现方法41.实验程序框图42.程序源代码7五、实施结果161操作步骤162运行结果16六、改进意见及建议16七、设计体会17一、设计题目温度采集及显示控制二、设计目的:1了解闭环控制的基本原理。2进一步熟悉A/D变换原理和编程方法。3进一步

2、了键盘扫描和LED显示原理和编程方法。三、设计原理及方案:1原理及方案利用实验仪上显示电路,键盘电路,A/D变换电路,完成温度显示,可以利用实验仪上的电位器模仿温度变化,加热和致冷可以用发光管代替。用键盘可以设定恒温温度,当温度超过设定温度+/-2时,就要启动加热或致冷。利用AD0809芯片将模拟量的温度转换为数字量,然后将AD采样到的结果进行制式的转换并将结果显示在数码管上。采样的结果与设定的温度限值进行比较,若超温了则让超温指示灯亮。根据需要,需选择的芯片有AD0809 A/D变换芯片,8255可编程并行接口。通过应用模数转换器AD0809将从模拟电阻上采集的数据通过端口IN0输入,在A/

3、D的转换下,获得8位二进制的数字量(D7D0),然后输入到8088系统总线上,进而输入到可编程并行接口8255上,选择工作方式0方式,把数据输入到七段数码管上,然后显示出数字信息。同时应用比较程序,设定温度值。温度显示范围-3949度如果在小于键盘设定温度-2时则使8255C输出00FH值信号让显示灯始终,显示绿色,表示温度过低。如果温度超过键盘设定温度+2则使8255C口输出0F0H值信号让显示灯提示,显示红色灯,表示温度过高。如果温度在键盘设定温度-/+2以内则使8255C口无输出信号让显示灯熄灭,表示温度在正常范围内8255简介8255 可编程外围接口芯片是 Intel 公司生产的通用并

4、行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图6-4所示:图3.1 8255内部结构及引脚ADC0809主要功能AD0809具有8个通道的模拟输入线(IN0IN7),可在程序控制下对任意通道进行A/D转换,获得8位二进制数字量(D7D0)。模拟输入部分有8路多路开关,可由3位地址输入AD

5、DA、ADDB、ADDC的不同组合来选择,ALE为地址锁存信号,高电平有效,锁存这三条地址输入信号。主体部分是采用逐次逼近式的A/D转换电路,由CLK控制的内部电路的工作,START为启动命令,高电平有效,启动ADC0809内部的A/D转换,当转换完成,输出信号EOC有效,OE为输出允许信号,高电平有效,打开输出三态缓冲器,把转换后的结果送DB。ADC0809的内部结构和引脚如图3.3所示:图3.3 内部结构和引脚 七段LED显示器及其接口七段LED显示器:由七个发光段构成,每段均为1个LED二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。七段LED显示器有共阳极和共阴极两种结构

6、,如图6-3所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。图七段LED显示 LED显示电路和键盘电路实验仪上已接好。原理图见图1。 A/D变换电路只要接上模拟量输入和地址选择信号即可。PA0口模仿加热电机PA1口模仿致冷电机电位器模仿温度采样图1连接孔1连接孔21AD_CSCS22IN0电位器输出38255_CSCS04PA0L05PA1L16KEY/LED_CSCS1四、实现方法1.实验程序框图A/D采样子程序框图开始启动AD变换延时读AD变换值返回否是否是开始输出列扫描信号列信号移位

7、读入行值有键输入6列扫描完?计算键值等待键松开查表得到键码返回是否否是开始始始关闭所有显示位取出显示数据输出时钟脉冲输出位选通信号8位数据输出延时位选通信号移位6位全显示完?返回显示数据移位取出数据一位输出键盘扫描子程序框图LED显示子程序框图高2度+/-2度内开始工始当前温度和设定温度送显示缓冲键盘值是?显示温度不变当前温度与设定温度比较初始化温度参数采样当前温度加热读键盘致冷低2度向下键向上键设定温度减1设定温度加1温度控制主程序框图2.程序源代码mode equ 082h ; 方式0,PA,PC输出,PB输入PortA equ 8000h ; Port APortB equ 8001h

8、; Port BPortC equ 8002h ; Port CCAddr equ 8003h ; 控制字地址ADPort equ 0a000h ; AD采样输入片选CS273 equ 0a000h ; 控制输出片选UP equ 16h ; NextDOWN equ 15h ; LastLowLimit equ 10HighLimit equ 30LowTemp equ -45 ; A/D 0HighTemp equ 55 ; A/D 255Heat equ 1 ; 加热控制Cool equ 2 ; 致冷控制OUTBIT equ 09002h ; 位控制口OUTSEG equ 09004h ;

9、 段控制口IN_KEY equ 09001h ; 键盘读入口data segmentLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)CurTemp db 1 dup(?)SetTemp db 1 dup(?)PortABuf db 1 dup(?)LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 键码定义 db 16h, 15h, 14h,

10、 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hdata endscode segment assume cs:code, ds:dataDelay proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDisplayLED proc near mov bx, offset LEDBuf mov

11、 cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, bx mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管 push ax mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 retDispla

12、yLED endpTestKey proc near mov dx, OUTBIT mov al, 0 out dx, al ; 输出线置为0 mov dx, IN_KEY in al, dx ; 读入键状态 not al and al, 0fh ; 高四位不用 retTestKey endpGetKey proc near mov ch, 00100000b mov cl, 6KLoop: mov dx, OUTBIT mov al, ch ; 找出键所在列 not al out dx, al shr ch, 1 mov dx, IN_KEY in al, dx not al and al,

13、 0fh jne Goon_ ; 该列有键入 dec cl jnz KLoop mov cl, 0ffh ; 没有键按下, 返回 0ffh jmp Exit1Goon_: dec cl shl cl, 2 ; 键值 = 列 X 4 + 行 mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec ch jnz LoopCExit1: mov dx, OUTBIT mov al, 0 out dx, al mov ch, 0 mov bx, offset KeyTable add bx, cx mov al, bx ; 取出键码 mov

14、bl, alWaitRelease: mov dx, OUTBIT mov al, 0 out dx, al ; 等键释放 mov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endpDisplayResult proc near mov al, CurTemp test al, 80h jz GE0 mov LEDBuf, 40h ; - dec al not al jmp GoonGE0: mov LEDBuf, 0 ; Goon: mov cl, 10 mov ah, 0 div cl mov b

15、l, al mov bh, 0 add bx, offset LEDMAP mov al, bx mov LEDBuf+1, al mov bl, ah mov bh, 0 add bx, offset LEDMAP mov al, bx mov LEDBuf+2, al mov LEDBuf+3, 0 ; mov al, SetTemp mov ah, 0 mov cl, 10 div cl mov bl, al mov bh, 0 add bx, offset LEDMAP mov al, bx mov LEDBuf+4, al mov bl, ah mov bh, 0 add bx, o

16、ffset LEDMAP mov al, bx mov LEDBuf+5, al retDisplayResult endpReadAD proc near mov dx, ADPort mov al, 0 out dx, al mov al, 60rr: dec al ; delay jnz rr mov dx, ADPort in al, dx retReadAD endpReadTemp proc near mov bx, 0 mov cl, 16RLoop: call ReadAD mov ah, 0 add bx, ax dec cl jnz RLoop shr bx, 4 mov

17、ax, bx mov cl, HighTemp - LowTemp mul cl mov al, ah ; /256 add al, LowTemp mov CurTemp, al retReadTemp endpStart proc near mov ax, data mov ds, ax mov al, mode mov dx, CAddr out dx, al ; 输出控制字 mov SetTemp, 20MLoop: call TestKey jne KeyPressed call DisplayResult call DisplayLED call ReadTemp mov al,

18、SetTemp dec al dec al cmp CurTemp, al jge GN2 or PortABuf, Heat and PortABuf, not Cool jmp GN4GN2: mov al, SetTemp inc al inc al cmp CurTemp, al jle GN3 or PortABuf, Cool and PortABuf, not Heat jmp GN4GN3: and PortABuf, not (Cool+Heat)GN4: mov dx, PortA mov al, PortABuf out dx, al jmp MLoopKeyPresse

19、d: call GetKey cmp al, DOWN jne Key0 cmp SetTemp, LowLimit je Key1 dec SetTemp jmp Key1Key0: cmp al, UP jne Key1 cmp SetTemp, HighLimit je Key1 inc SetTempKey1: jmp MLoopstart endpcode ends end start五、实施结果1操作步骤1).按照电路图链接电路,完成电路链接。2).打开计算机电源,执行WAVE集成调试程序源代码。3).执行程序源代码,改变电位器,进行实验并记录实验结果。2运行结果调整电位器,LED

20、显示温度范围在-39到49,分辨率为2。当采集的温度值超过设定温度时,能点亮发光二极管。小于设定温度-2时显示绿色;温度超过设定温度+2,显示红色灯;温度在设定温度-/+2以内显示灯熄灭,表示温度。按键盘向上键,LED显示设定温度+1,按向下键LED显示设定温度-1。六、改进意见及建议这次设计基本的完成了课程设计的要求,实现了温度的采集及显控制示。通过测试表明系统的设计是正确的,可行的。但是由于设计经验和知识水平有限,系统还存在许多不足和缺陷。改进意见:在原有的设计中可以加入了报警,如果所设计的系统是监控某一设备,当设备的温度达到我们所设定的温度值时,系统会产生报警.。报警时驱动扬声器发出声音

21、,以便操作员来维护,从而达到报警的目的。七、设计体会在此次课程设计过程中,我经历了失败的痛苦,也尝到了成功的喜悦。同时也检查了自己的知识水平,使我对自己有一个全新的认识。而且我在巩固了平时所学习的知识的同时,也通过不断查阅相关资料,学习新的知识。通过此次课设,我明白了很多,理论指导实践,但是理论也需要实践给予证明,凡事都要通过自己的思考推敲,否则自己不会取的大的进步。而且在平时的学习生活中,应该多和周围的同学相互学习,交流经验。遇到不会的问题时,切忌焦躁!首先要经过自己的独立思考,有了一定想法后,可以去查找相关的资料书刊或者找同学讨论。在遇到问题,解决问题的过程中,不断加强自我的动手,动脑能力,也只有这样,在思路清晰,条理顺畅的时候,再去进行软件编写和硬件操作工作,才有可能起到事半功倍的效果。这次课程设计,不仅锻炼我的分析问题、处理问题的能力,还提高了自己的动手能力以及沟通协作的能力。也让我更加明确了日后的学习目标,那就是学东西一定要扎实,绝不能一知半解。这次课程设计使我受益匪浅,在课程设计中,培养的能力和锻炼对于我今后的学习和生活来说,是很重要的经历与经验,它将积极地影响我。

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

当前位置:首页 > 教育专区 > 单元课程

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

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