资源描述:
《空调温度控制实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、空调温度控制实验报告开课实验室:电子楼50320011年12月学院物电学院年级、专业、班光信092班姓名成绩课程名称微机原理与接口实验实验项目名称空调温度控制指导老师签名一、实验目的1.了解闭环控制的基本原理。2.进一步熟悉A/D变换原理和编程方法。3.进一步了键盘扫描和LED显示原理和编程方法。二、实验原理这是一个综合硬件实验,其中各部分实验已单独做过.现联合起来形成一个控制系统。利用实验仪上显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制实验,可以利用实验仪上的电位器模仿温度变化,加热和致冷电机可以用发光管代替。要求可以用键盘设定恒温温度,当外界温度超过设定温度+/-2
2、℃时,就要启动加热或致冷电机。实验电路:三、使用仪器、材料1.伟福实验系统实验箱2.装有伟福软件的计算机四、实验步骤、实验过程原始记录及结果步骤:1.在实验箱断电的情况下连好线。2.输入程序并检查,保存程序。3.“编译”程序。4.“全速执行”程序。5.记录实验结果及分析。框图:温控控制主程序框图源程序:;T8.ASM;空调恒温控制实验modeequ082h;8255工作方式0,PA/PC输出,PB输入1000,0010PORTAequ08000hCTLequ08003hOUTBITequ09002h;位控制地址OUTSEGequ09004h;段控制口INequ09001hLEDBu
3、fequ60h;显示缓冲区ORG0000HljmpStartLEDMAP:db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:movr7,#0;延时DelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretDisplayLED:;显示movr0,#LEDBufmovr1,#6movr2,#bLoop:movdptr,#OUTBITmova,#0movx@dptr,amova,@r0movdptr,#OUTSEGmovx@dptr,amovdptr,#OUTBI
4、Tmova,r2movx@dptr,amovr6,#1callDelaymova,r2rramovr2,aincr0djnzr1,Loopmovdptr,#OUTBITmova,#0movx@dptr,aretTestKey:;检测按键movdptr,#OUTBITmova,#0movx@dptr,amovdptr,#INmovxa,@dptrcplaanla,#0fhretKeyTable:db16h,15h,14h,0ffhdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,
5、04h,07hGetKey:movdptr,#OUTBIT;求键码movP2,dphmovr0,#Low(IN)movr1,#bmovr2,#6KLoop:mova,r1cplamovx@dptr,acplarramovr1,amovxa,@r0cplaanla,#0fhjnzGoon1djnzr2,KLoopmovr2,#0ffhsjmpExitGoon1:movr1,amova,r2decarlarlamovr2,a;r2=(r2-1)*4mova,r1movr1,#4LoopC:rrcajcExitincr2djnzr1,LoopCExit:mova,r2movdptr,#K
6、eyTablemovca,@a+dptrmovr2,aWaitRelease:movdptr,#OUTBITclramovx@dptr,amovr6,#10callDelaycallTestKeyjnzWaitReleasemova,r2ret;================================UPequ16h;Next键的键码值DOWNequ15h;Last键的键码值LowLimitequ10;温度上限HighLimitequ30;温度下限LowTempequ-40;A/D=0HighTempequ50;A/D=255ADPortequ0a000h;A/D片选信号接
7、CS2Heatequ1;加热口线PA0=1Coolequ2;制冷口线PA1=1SetTempequ50h;设定温度CurTempequ51h;当前温度DisplayResult:;当前温度和设定温度送显示缓冲mova,CurTempjnbacc.7,GE0;如果当前温度低于零度,符号位显示缓冲区置'-'movLEDBuf,#40h;g=1,其他笔画=0,'-'deca;求负温的绝对值cplajmpGoonGE0:movLEDBuf,#0;如果当前温度不低于零度,符号位