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

下载本文档

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

文档简介

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

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

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

4、行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。用+5V单电源供电,能在以下三种方式下工作:方式0基本输入/出方式、方式1-选通输入/出方式、方式2双向选通工作方式。8255的内部结构及引脚如图6-4所示:戒向数据总线D0-D7験器&位内总线JLI'"A控部RD处A1AuRESET控制部件:017-3456785011r,if"-丿Avo11111111111111111111-O9£765421-O9S765432143333333333222222222

5、RESETCS图3.18255内部结构及引脚ADC0809主要功能AD0809具有8个通道的模拟输入线(INOIN7),可在程序控制下对任意通道进行A/D转换,获得8位二进制数字量(D7DO)。模拟输入部分有8路多路开关,可由3位地址输入ADDA、ADDB、ADDC的不同组合来选择,ALE为地址锁存信号,高电平有效,锁存这三条地址输入信号。主体部分是采用逐次逼近式的2A/D转换电路,由CLK控制的内部电路的工作,START为启动命令,高电平有效,启动ADC0809内部的A/D转换,当转换完成,输出信号EOC有效,0E为输出允许信号,高电平有效,打开输出三态缓冲器,把转换后的结果送DB。ADC0

6、809的内部结构和引脚如图3.3所示:STARTCI.K1<J.1N'oTWADDAADD13ADDCAt.EZ-1地山卜顿佇v讦-in1讥J匸17J(-uvKt-r<-)UE11jy12VetGdIDVrepf)图3.3内部结构和引脚七段LED显示器及其接口七段LED显示器:由七个发光段构成,每段均为1个LED二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。七段LED显示器有共阳极和共阴极两种结构,如图6-3所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗

7、。;ldORhchhh图d4七段LEDIz示1irt-hcJef£h连接孔1连接孔21ADCSCS22IN0电位器输出38255CSCS04PA0L05PA1L16KEY/LEDCSCS12.实验电路及连接LED显示电路和键盘电路实验仪上已接好。原理图见图1。量输入和地址选择信号即可。A/D变换电路只要接上模拟电位器模仿温度采样+EA/D_C5C52*-1-uEpQDQQncADSADIAD2AD3AD4血AD6AD7/RDRESETB1234rD67DDDDDDDD1-2_.-4s.b7AJHAAAAAAppppppppPBOPBLPE:2PE:2:PE:4FEEETPE:5PB6

8、/CSPE:?計t-*LED1匸4U翌383718202122232425PAO口模仿加热电机PA1口模仿致冷电机实现方法1. 实验程序框图A/D采样子程序框图LED显示子程序框图键盘扫描子程序框图温度控制主程序框图2. 程序源代码modeequ082h;方式0,PA,PC输出,PB输入PortAequ8000h;PortAPortBequ8001h;PortBPortCequ8002h;PortCCAddrequ8003h;控制字地址ADPortequ0a000h;AD采样输入片选CS273equ0a000h;控制输出片选UPequ16h;NextDOWNequ15h;LastLowLimi

9、tequ10HighLimitequ30LowTempequ-45;A/D0HighTempequ55;A/D255Heatequ1;加热控制Coolequ2;致冷控制OUTBITequ09002h;位控制口OUTSEGequ09004h;段控制口IN_KEYequ09001h;键盘读入datasegmentLEDBufdb6dup(?);显示缓冲Numdb1dup(?);显示的数据DelayTdb1dup(?)CurTempdb1dup(?)SetTempdb1dup(?)PortABufdb1dup(?)LEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh

10、,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hKeyTable:;键码定义db16h,15h,14h,0ffhdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,04h,07hdataendscodesegmentassumecs:code,ds:dataDelayprocpushpushnearaxcx;延时子程序moval,0movcx,axloop$popcxpopaxretDelayendpDisplayLEDprocnearmovbx,offsetLED

11、Bufmovcl,6;共6个八段管movah,00100000b;从左边开始显示DLoop:movdx,OUTBITmoval,0outdx,al;关所有八段管moval,bxmovdx,OUTSEGoutdx,almovdx,OUTBITmoval,ahoutdx,al;显示一位八段管pushaxmovah,1callDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所有八段管retDisplayLEDendpTestKeyprocnearmovdx,OUTBITmoval,0outdx,al;输出线置为0movd

12、x,IN_KEYinal,dx;读入键状态notalandal,0fh;高四位不用retTestKeyendpGetKeyprocnearmovch,00100000bmovcl,6KLoop:movdx,OUTBITmoval,ch;找出键所在列notaloutdx,alshrch,1movdx,IN_KEYinal,dxnotalandal,0fhjneGoon_;该列有键入deccljnzKLoopmovcl,0ffh;没有键按下,返回0ffhjmpExit1Goon_:decclshlcl,2;键值=列X4+行movch,4LoopC:testal,1jnzExit1shral,1in

13、ccldecchjnzLoopCExit1:movdx,OUTBITmoval,0outdx,almovch,0movbx,offsetKeyTableaddbx,cxmoval,bx;取出键码movbl,alWaitRelease:movdx,OUTBITmoval,0outdx,al;等键释放movah,10callDelaycallTestKeyjneWaitReleasemoval,blretGetKeyendpDisplayResultprocnearmoval,CurTemptestal,80hjzGE0movLEDBuf,40h;'-'decalnotaljmpG

14、oonmovLEDBuf,0;''movcl,10movah,0divclmovbl,almovbh,0addbx,offsetLEDMAPmoval,bxmovLEDBuf+1,almovbl,ahmovbh,0addbx,offsetLEDMAPmoval,bxmovLEDBuf+2,almovLEDBuf+3,0;'moval,SetTempmovah,0movcl,10divclmovbl,almovbh,0addbx,offsetLEDMAPmoval,bxmovLEDBuf+4,almovbl,ahmovbh,0GE0:Goon:addbx,offsetLE

15、DMAPmoval,bxmovLEDBuf+5,alretDisplayResultendpReadADprocnearmovdx,ADPortmoval,0outdx,almoval,60rr:decal;delayjnzrrmovdx,ADPortinal,dxretReadADendpReadTempprocnearmovbx,0movcl,16RLoop:callReadADmovah,0addbx,axdeccljnzRLoopshrbx,4movax,bxmovcl,HighTemp-LowTempmulcladdal,LowTempmovCurTemp,alretReadTemp

16、endpStartprocnearmovax,datamovds,axmoval,modemovdx,CAddroutdx,al;输出控制字movSetTemp,20MLoop:callTestKeyjneKeyPressedcallDisplayResultcallDisplayLEDcallReadTempmoval,SetTempdecaldecalcmpCurTemp,aljgeGN2orPortABuf,HeatandPortABuf,notCooljmpGN4GN2:moval,SetTempmoval,ah;/256incalincalcmpCurTemp,aljleGN3orP

17、ortABuf,CoolandPortABuf,notHeatjmpGN4GN3:andPortABuf,not(Cool+Heat)GN4:movdx,PortAmoval,PortABufoutdx,aljmpMLoopKeyPressed:callGetKeycmpal,DOWNjneKey0cmpSetTemp,LowLimitjeKey1decSetTempjmpKey1Key0:cmpal,UPjneKey1cmpSetTemp,HighLimitjeKey1incSetTempKey1:jmpMLoopstartendpcodeendsendstart五、实施结果1操作步骤1)

18、.按照电路图链接电路,完成电路链接。2) .打开计算机电源,执行WAVE集成调试程序源代码。3) .执行程序源代码,改变电位器,进行实验并记录实验结果。2运行结果调整电位器,LED显示温度范围在-39°C到49°C,分辨率为2°C。当采集的温度值超过设定温度时,能点亮发光二极管。小于设定温度-2C时显示绿色;温度超过设定温度+2°C,显示红色灯;温度在设定温度-/+2°C以内显示灯熄灭,表示温度。按键盘向上键,LED显示设定温度+1C,按向下键LED显示设定温度-1°C。六、改进意见及建议这次设计基本的完成了课程设计的要求,实现了温度的采集及显控制示。通过测试表明系统的设计是正确的,可行

温馨提示

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

评论

0/150

提交评论