温度采集及显示控制_第1页
温度采集及显示控制_第2页
温度采集及显示控制_第3页
温度采集及显示控制_第4页
温度采集及显示控制_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

4、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位地址输入ADDA、ADDB、ADDC的不同

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

6、际上包含8个LED(7段字形加上小数点DP)。1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。图3.4七段LED显示2.实验电路及连接 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 ; P

8、ort 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, 0f

10、fh 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 cl

11、, 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 ; 关所有八段管 retDisplayLE

12、D 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, 0f

13、h 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 bl,

14、 alWaitRelease: mov dx, OUTBIT mov al, 0 out dx, al ; 等键释放 mov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endp; =DisplayResult 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 m

15、ov ah, 0 div cl mov bl, 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,

16、al mov bl, ah mov bh, 0 add bx, offset 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, a

17、x dec cl jnz RLoop shr bx, 4 mov 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

18、DisplayLED call ReadTemp mov al, 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, PortA

19、Buf out dx, al jmp MLoopKeyPressed: 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显示温度范围在-39到49,分辨率为2。当采集的温度值超过设定温度时,能点亮发光二极管。小于设定温度-2时显示绿色;温度超过设定温度+2,显示红色灯;温度在设定温度-/+2以内显示灯熄灭,表示温度。按键盘向上键,LED显示设定温度+1,按向下键LED显示设定温度-1。六、改进意见及建议这

温馨提示

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

评论

0/150

提交评论