微机实验空调温度控制实验

上传人:仙*** 文档编号:83519561 上传时间:2022-05-01 格式:DOC 页数:11 大小:102.87KB
收藏 版权申诉 举报 下载
微机实验空调温度控制实验_第1页
第1页 / 共11页
微机实验空调温度控制实验_第2页
第2页 / 共11页
微机实验空调温度控制实验_第3页
第3页 / 共11页
资源描述:

《微机实验空调温度控制实验》由会员分享,可在线阅读,更多相关《微机实验空调温度控制实验(11页珍藏版)》请在装配图网上搜索。

1、. 微机 实验报告开课实验室:电子信息楼503 年 月 日学院年级、专业、班姓名学号课程名称微机实验项目名称空调温度控制实验成绩指导教师签名一、实验目的 1了解闭环控制的基本原理。 2进一步熟悉A/D变换原理和编程方法。 3进一步了键盘扫描和LED显示原理和编程方法。二、实验内容利用实验仪上显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制实验,可以利用实验仪上的电位器模仿温度变化,加热和致冷电机可以用发光管代替。要求可以用键盘设定恒温温度,当外界温度超过设定温度+/-2时,就要启动加热或致冷电机。三、实验原理LED显示电路和键盘电路实验仪上已接好。 A/D变换电路只要接上模拟量输入和地

2、址选择信号即可。电位器模仿温度采样PA0口模仿加热电机PA1口模仿致冷电机实验说明连线连接孔1连接孔2连线连接孔1连接孔21AD_CSCS28AD的A1总线A12IN0电位器输出9AD的A2总线A238255_CSCS010AD的OEOE_OUT4PA0L011AD的CLK分频F/45PA1L1124MHZFin6KEY/LED_CSCS113AD的ALESTART7AD的A0总线A014STARTSTART_OUT 这是一个综合硬件实验,其中各部分实验已单独做过.现联合起来形成一个控制系统. 其中LED显示实验和键盘扫描实验可参见硬件实验五。A/D变换实验可参见实验七。I/O口输入输出可参见

3、8255硬件实验。实验程序框图开始启动AD变换延时读AD变换值返回A/D采样子程序框图否是否是是否否是开始关闭所有显示位取出显示数据输出时钟脉冲输出位选通信号8位数据输出延时位选通信号移位6位全显示完?返回显示数据移位LED显示子程序框图开始输出列扫描信号列信号移位读入行值取出数据一位输出有键输入6列扫描完?计算键值等待键松开查表得到键码返回键盘扫描子程序框图高2度+/-2度内开始工始当前温度和设定温度送显示缓冲键盘值是?显示温度不变当前温度与设定温度比较初始化温度参数采样当前温度加热读键盘致冷低2度向下键向上键设定温度减1设定温度加1温度控制主程序框图四、使用仪器、材料1、电脑2、伟福编译器

4、3、伟福实验箱五、实验步骤(1) 在实验箱断电的情况下连好线。(2) 输入程序并检查,保存程序。(3) “编译”程序。(4) “全速执行”程序。(5) 记录实验结果及分析。六、实验原始程序mode equ 082hPORTA equ 08000hCTL equ 08003hOUTBIT equ 09002h ;数码管位控制口OUTSEG equ 09004h ;数码管段控制口IN equ 09001h ;键盘输入口LEDBuf equ 60h ORG 0000H ljmp StartLEDMAP: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh

5、, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: mov r7, #0DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: ;数码管显示函数 mov r0, #LEDBuf ;读入数码管段码 mov r1, #6 ;6个数码管 mov r2, #00100000b ;从最左边的开始亮起Loop: mov dptr, #OUTBIT mov a, #0 movx dptr, a mov a, r0 mov dptr, #OUTSEG movx dptr, a mov dptr, #OUTB

6、IT mov a, r2 movx dptr, a mov r6, #1 call Delay mov a, r2 rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0 movx dptr, a ret ;函数返回TestKey: mov dptr, #OUTBIT mov a, #0 movx dptr, a ;关所有数码管 mov dptr, #IN ;读入键盘输入 movx a, dptr cpl a anl a, #0fh ;与0fh比较看有没按键被按下 ret ;函数返回KeyTable: db 16h, 15

7、h, 14h, 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, 07hGetKey: ;获键值 mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #00100000b mov r2, #6 ;扫描6列按键KLoop: mov a, r1 cpl a movx dptr, a cpl a rr a mov r1, a movx a, r0 cpl a anl a,

8、#0fh jnz Goon1 djnz r2, KLoop mov r2, #0ffh sjmp ExitGoon1: mov r1, a mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 mov r1, #4LoopC: rrc a jc Exit inc r2 djnz r1, LoopCExit: mov a, r2 mov dptr, #KeyTable movc a, a+dptr ;查表得键值 mov r2, a ;放入r2WaitRelease: ;等待按键释放 mov dptr, #OUTBIT clr

9、a movx dptr, a mov r6, #10 call Delay call TestKey jnz WaitRelease ;测试按键函数返回0则按键释放 mov a, r2 ret ;函数返回; =UP equ 16h ; NextDOWN equ 15h ; LastLowLimit equ 10HighLimit equ 30LowTemp equ -40 ; A/D 0HighTemp equ 50 ; A/D 255ADPort equ 0a000hHeat equ 1Cool equ 2SetTemp equ 50hCurTemp equ 51hDisplayResult

10、: ;给6个数码管缓冲赋值 mov a, CurTemp ;读入当前温度 jnb acc.7, GE0 mov LEDBuf, #40h ;- dec a cpl a jmp GoonGE0: mov LEDBuf, #0 ; Goon: mov b, #10 div ab mov dptr, #LEDMAP movc a, a+dptr mov LEDBuf+1, a mov a, b movc a, a+dptr mov LEDBuf+2, a mov LEDBuf+3, #0 ; mov a, SetTemp mov b, #10 div ab movc a, a+dptr mov LE

11、DBuf+4, a mov a, b movc a, a+dptr mov LEDBuf+5, a retReadAD: ;从AD读入当前温度 mov dptr, #ADPort clr a movx dptr, a ; start A/D mov a, #0 djnz acc, $ ; delay movx a, dptr retReadTemp: ;读当前温度函数 mov r1, #0 mov r2, #0 mov r0, #16RLoop: call ReadAD add a, r2 mov r2, a jnc GN1 inc r1GN1: djnz r0, RLoop mov a, r

12、2 swap a anl a, #0fh xch a, r1 swap a anl a, #0f0h orl a, r1 ; a = r1r2/16 mov b, #(HighTemp-LowTemp) mul ab mov a, b ; /256 add a, #LowTemp mov CurTemp, a ret ;函数返回Start: mov sp, #70h mov a, #mode mov dptr, #CTL movx dptr, a ; 设置8255工作方式,PA,PC输出,PB输入 mov SetTemp, #20 ;初始化温度为20度MLoop: call TestKey ;

13、跳转到检测按键函数 jnz KeyPressed ;a不是0则有按键按下跳转,是0则没有按键按下继续执行 call DisplayResult ;跳转到给6个数码管缓冲赋值函数 call DisplayLED ;跳转到数码管显示函数 call ReadTemp ;跳转到读当前温度函数 mov a, CurTemp jb acc.7, LE0 clr c ;清进位标志 mov b, SetTemp dec b dec b subb a, b ;当前温度减去设定温度 jnc GN2 ;没有借位则表示当前温度设定温度,跳转到GN2LE0: mov a, #Heat ;当前温度比设定温度低,开启加热电

14、机 mov dptr, #PORTA movx dptr, a ;点亮加热电机指示灯LED0 sjmp GN4GN2: mov a, CurTemp setb c mov b, SetTemp inc b inc b subb a, b jc GN3 ;当前温度=设定温度则跳转到GN3 mov a, #Cool mov dptr, #PORTA movx dptr, a ;点亮制冷电机指示灯LED1 sjmp GN4GN3: mov a, #0 mov dptr, #PORTA movx dptr, a ;2个电机的指示灯都灭GN4: sjmp MLoopKeyPressed: call Ge

15、tKey ;跳转到获键值函数 mov b, a xrl a, #DOWN jnz Key0 ;不是按到键盘上的LAST键则跳转到KEY0 mov a, SetTemp xrl a, #LowLimit jz Key1 ;超过最低温度则跳转到KEY1 dec SetTemp sjmp Key1 ;没有超过最低温度则设定温度减1Key0: mov a, b xrl a, #UP jnz Key1 ;也不是按到键盘上的NEXT键则跳转到KEY1 mov a, SetTemp xrl a, #HighLimit ;超过最高温度则跳转到KEY1 jz Key1 inc SetTemp ;没有超过最高温度则设定温度加1Key1: sjmp MLoop end七、实验结果分析该实验达到了预期效果,实现了利用实验仪上显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制实验,可以利用实验仪上的电位器模仿温度变化,加热和致冷电机可以用发光管代替。要求可以用键盘设定恒温温度,当外界温度超过设定温度+/-2时,就要启动加热或致冷电机。11

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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