版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机控制课程设计学生姓名:学生学号:所在班级:所在专业:指导教师:课题空调温度控制器设计设计任务(要求)设计任务运用<<微型计算机原理与接口技术>>、《单片机原理及应用》等课程知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。了解闭环控制的基本原理,熟悉A/D变换原理和编程方法,掌握键盘扫描和LED显示原理和编程方法。设计要求利用8255扩展LED显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制设计。(1)可以利用实验仪上的电位器模仿温度变化,利用ADC0809采样可变电位器的输出电压,可将初始ADC0809的输出值作为设定温度;(2)加热和致冷电机可以用发光管代替,加热时红色发光管亮,制冷时驱动绿色发光管亮;(3)当单片机采样到可变电位器的输出电压值超过设定温度+2℃时,启动致冷电机;采样到可变电位器的输出电压值低于设定温度-2℃时,启动加热电机。二.设计方案1.设定一恒温温度25度,通过键盘来控制它的大小,设定一键温度加一,一键温度减一,电位器所出的模拟温度来和恒温温度进行比较。2.对各个子程序(LED显示,键盘扫描,A/D采样)在主程序实行调用,以此来达到实验的要求。启动AD转换延时读AD变换值启动AD转换延时读AD变换值结束开始A/D采样子程序开始输出列扫描信号读入行数开始输出列扫描信号读入行数列信号移位计算键值有键输入6列扫描完?等待键松开查表得到键码返回是否否开始取出显示数据输出位选通信号显示数据移位输出时钟脉冲关闭所有显示位取出数据一位输出延时位选通信号位移8位数据输出6位全显示完?返回否否是开始开始初始化温度参数当前温度和设定温度送显示缓冲显示温度采样当前温度当前温度与设定温度比较制冷不变加热读键盘键盘值是?向下键向上键设定温度减1设定温度加1低2度+/-2度内高2度温度控制主程序系统模块详细设计与调试系统模块的设计A/D转换子程序BEING:MOVDPTR,#8000H;AD转换子程序MOVDPTR,#8000H;启动A/D转换MOVX@DPTR,AMOVR6,#14HDELAY2:NOPNOPNOPDJNZR6,DELAY2MOVXA,@DPTRMOV47H,A;温度AD转换结果暂存47H单元ACALLCHANGE;十六进制转十进制子程序LCALLDISPLAYLEDRETCHANGE:MOVR1,#00HMOVR2,#00HCLRCCHAN:SUBBA,#64HJCCHAN1INCR1AJMPCHANCHAN1:ADDA,#64HCHAN2:SUBBA,#0AHJCCHAN3INCR2AJMPCHAN2CHAN3:ADDA,#0BHMOV64H,A;转换结果个位暂存2AH单元MOV63H,R2;十位存2BH单元MOV62H,R1;百位存2CH单元RETLED转换子程序DISPLAYLED:MOVR0,#BUF;r0指向显示缓冲首地址MOVR1,#5;要循环2次,有2个LEDMOVR2,#00100000B;从第一位开始LOOP:MOVDPTR,#OUTBITMOVA,#0MOVX@DPTR,A;关所有的位的显示MOVA,@R0MOVDPTR,#LEDMAP;查表MOVCA,@A+DPTRMOVDPTR,#OUTSETMOVX@DPTR,A;输出r0指向的单元的数MOVDPTR,#OUTBITMOVA,R2MOVX@DPTR,A;开显示,将这个数显示出来(r2决定在哪一位显示)MOVR6,#01;延时CALLDELAY;延时MOVA,R2RRAMOVR2,A;准备显示下一位数INCR0;r0指向下个单元DJNZR1,LOOP;循环六次MOVDPTR,#OUTBITMOVA,#0MOVX@DPTR,A;关所有的位的显示RET3.按键子程序ANJIAN:CALLTESTKEY;检测键盘是否有按键按下JZANJIANMOVR6,#10;延时去抖动CALLDELAYCALLTESTKEY;再次检测键盘是否有按键按下JZANJIANMOVX@DPTR,AMOVR1,#00100000BMOVR2,#6KLOOP:MOVDPTR,#OUTBIT;扫描,得到按键的行和列MOVA,R1CPLA;(取反)用零去扫描各列MOVX@DPTR,ACPLARRA;下一列MOVR1,A;R1暂存列值MOVDPTR,#INMOVXA,@DPTR;读行状态CPLAANLA,#0FHJNZGOON1DJNZR2,KLOOP;下一列扫描(一轮6次)MOVR2,#06HSJMPKLOOP;下一轮扫描GOON1:;按照行列计算键值MOVR1,A;行号放在R1内MOVA,R2;R2中放的是列号DECA;RLA;RLA;MOVR2,A;R2=(列号-1)*4MOVA,R1MOVR1,#4LOOPC:RRCAJCEXITINCR2DJNZR1,LOOPC;行值(0100)右移,并统计移的位数,移的位数就是行值EXIT:;查表得到键值MOVA,R2MOVDPTR,#KEYTABLEMOVCA,@A+DPTRMOVR2,AWAITRELEASE:MOVDPTR,#OUTBIT;等待按键释放,将键值存在A寄存器中CLRAMOVX@DPTR,AMOVR6,#10;CALLDELAY;延时CALLTESTKEY;测试按键是否放开JNZWAITRELEASE;是的MOVA,R2RET调试调试的过程在实验系统中输入程序,并对其进行编译修正,直到没有错误。打开试验箱,对照自己程序,对其进行接线。与计算机连接并进行执行,观察试验箱上各个器件显示的结果,发现错误并对其修改直到实验结果与实验要求一致调试中遇到的问题实验中遇到最大的问题还是键盘输入的问题,加一减一看似简单但在实验过程中总会出现乱码,最后我把加一减一写了2个子程序,对子程序进行调用,解决了上面出现的问题。==============将缓冲区的数加1的子程序===================JIAYI:MOVA,#10MOVB,BUFMULABADDA,BUF+1MOVR7,AINCAMOVB,#10DIVABMOVBUF,AMOVBUF+1,BRET;==============将缓冲区的数减1的子程序===================JIANYI:MOVA,#10MOVB,BUFMULABADDA,BUF+1MOVR7,ADECAMOVB,#10DIVABMOVBUF,AMOVBUF+1,BRET设计总结这次课程设计是一次综合性质的实验,对我以前学的A/D转换、键盘输出等等的一综合运用,所以这次实验不但是巩固了我们以前所学的知识,也给我们带来的新的感悟。程序虽然做出来了。但程序肯定不只一种,方法可以改变,我想我这次课程设计还没结束,我应该学学别人的程序,学会用8255完成,学会用点阵来代替二极管来显示冷和热。有人总是问,我们在大学学了什么,我想我们学的就是我们身边的点点滴滴。参考文献《微型计算机原理与接口技术》(第三版)冯博琴吴宁主编清华大学出版社,2011年《单片机原理及应用实验指导书》,屈波等编,2008年《单片机原理及应用》,赵德安等编,机械工业出版社,2004年《单片机基础》,李广弟等,北京航空航天大学出版社,2004年附件材料1.硬件接线图接线连接孔1连接孔21AD-CSCS02IN0电位器输出3P1.0L04P1.1L15KEY/LED-CSCS1实物图4.程序清单T20MSEQU65536-10000C20MSEQU30HINEQU09001H;键盘读入口OUTBITEQU09002H;位控制口OUTSETEQU09004H;段控制口BUFEQU60H;显示缓冲区ORG0000HLJMPSTART;=====================键码的定义=========================KEYTABLE:DB17H,16H,15H,14HDB13H,12H,11H,10HDB0DH,0CH,0BH,0AHDB0EH,03H,06H,09HDB0FH,02H,05H,08HDB00H,01H,04H,07H;=======================八段管显示码=====================LEDMAP:DB3FH,06H,5BH,4FHDB66H,6DH,7DH,07HDB7FH,6FH,77H,7CHDB39H,5EH,79H,71H;======================A/D转换子程序=====================BEING:MOVDPTR,#8000H;AD转换子程序MOVDPTR,#8000H;启动A/D转换MOVX@DPTR,AMOVR6,#14HDELAY2:NOPNOPNOPDJNZR6,DELAY2MOVXA,@DPTRMOV47H,A;温度AD转换结果暂存47H单元ACALLCHANGE;十六进制转十进制子程序LCALLDISPLAYLEDRETCHANGE:MOVR1,#00HMOVR2,#00HCLRCCHAN:SUBBA,#64HJCCHAN1INCR1AJMPCHANCHAN1:ADDA,#64HCHAN2:SUBBA,#0AHJCCHAN3INCR2AJMPCHAN2CHAN3:ADDA,#0BHMOV64H,A;转换结果个位暂存2AH单元MOV63H,R2;十位存2BH单元MOV62H,R1;百位存2CH单元RET;==================延时子程序=====================Delay1:;延时子程序MOVR7,#0FFHAA:DJNZR7,AAret;==============将缓冲区的数加1的子程序===================JIAYI:MOVA,#10MOVB,BUFMULABADDA,BUF+1MOVR7,AINCAMOVB,#10DIVABMOVBUF,AMOVBUF+1,BRET;==============将缓冲区的数减1的子程序===================JIANYI:MOVA,#10MOVB,BUFMULABADDA,BUF+1MOVR7,ADECAMOVB,#10DIVABMOVBUF,AMOVBUF+1,BRET;===================延时子程序============================DELAY:MOVR7,#0DELAYLOOP:DJNZR7,DelayLoopDJNZR6,DelayLoopRET;=================检测按键是否按下的子程序================TESTKEY:MOVDPTR,#OUTBITMOVA,#0MOVX@DPTR,AMOVDPTR,#INMOVXA,@DPTRCPLAANLA,#0FHRET;====================按键子程序============================ANJIAN:CALLTESTKEY;检测键盘是否有按键按下JZANJIANMOVR6,#10;延时去抖动CALLDELAYCALLTESTKEY;再次检测键盘是否有按键按下JZANJIANMOVX@DPTR,AMOVR1,#00100000BMOVR2,#6KLOOP:MOVDPTR,#OUTBIT;扫描,得到按键的行和列MOVA,R1CPLA;(取反)用零去扫描各列MOVX@DPTR,ACPLARRA;下一列MOVR1,A;R1暂存列值MOVDPTR,#inMOVXA,@DPTR;读行状态CPLAANLA,#0FHJNZGOON1DJNZR2,KLOOP;下一列扫描(一轮6次)MOVR2,#06HSJMPKLOOP;下一轮扫描GOON1:;按照行列计算键值MOVR1,A;行号放在R1内MOVA,R2;R2中放的是列号DECA;RLA;RLA;MOVR2,A;R2=(列号-1)*4MOVA,R1MOVR1,#4LOOPC:RRCAJCEXITINCR2DJNZR1,LOOPC;行值(0100)右移,并统计移的位数,移的位数就是行值EXIT:;查表得到键值MOVA,R2MOVDPTR,#KEYTABLEMOVCA,@A+DPTRMOVR2,AWAITRELEASE:MOVDPTR,#OUTBIT;等待按键释放,将键值存在A寄存器中CLRAMOVX@DPTR,AMOVR6,#10;CALLDELAY;延时CALLTESTKEY;测试按键是否放开JNZWAITRELEASE;是的MOVA,R2RET;===================LED显示子程序==========================DISPLAYLED:MOVR0,#BUF;r0指向显示缓冲首地址MOVR1,#5;要循环2次,有2个LEDMOVR2,#00100000B;从第一位开始LOOP:MOVDPTR,#OUTBITMOVA,#0MOVX@DPTR,A;关所有的位的显示MOVA,@R0MOVDPTR,#LEDMAP;查表MOVCA,@A+DPTRMOVDPTR,#OUTSETMOVX@DPTR,A;输出r0指向的单元的数MOVDPTR,#OUTBITMOVA,R2MOVX@DPTR,A;开显示,将这个数显示出来(r2决定在哪一位显示)MOVR6,#01;延时CALLDELAY;延时MOVA,R2RRAMOVR2,A;准备显示下一位数INCR0;r0指向下个单元DJNZR1,LOOP;循环六次MOVDPTR,#OUTBITMOVA,#0MOVX@DPTR,A;关所有的位的显示RET;========================main==============================START:CALLTESTKEY;测试按键JZSTARTCALLANJIAN;取键值CJNEA,#0AH,STARTSETBP1.0;键值=A,开指示灯MOVBUF,#0;MOVBUF+1,#0;显示缓冲区清零MOVBUF+2,#0MOVBUF+3,#0MOVBUF+4,#0NEXT1:CALLDISPLAYLED;显示CALLTESTKEY;测试按键JZNEXT1CALLANJIAN;取键值CJNEA,#0AH,NEXT11LJMPSTART;开关NEXT11:MOVBUF,A;十位数存于60H单元NEXT2:CALLDISPLAYLED;显示CALLTESTKEY;测试按键JZNEXT2CALLANJIAN;取键值CJNEA,#0AH,NEXT12LJMPSTART;开关NEXT12:MOVBUF+1,A;十位数存于61H单元NEXT9:CALLDISPLAYLEDCALLTESTKEYJZNEXT9CALLANJIANCALLJIAYICALLJIANYICJNEA,#0AH,NEXT10LJMPSTART;开关NEXT10:CJNEA,#0BH,NEXT3CALLJIAYINEXT3:CJNEA,#0CH,NEXT5CALLJIANYINEXT5:MOVP1,#00HACALLBEING;调用转换显示子程序MOVA,47HSUBBA,R7JZNEXT6LJMPSSNEXT6:NOPEXIT1:JMPNEXT5SS:JCHIGH1SETBP1.0;降温子程序CALLDELAY1JMPEXIT1HIGH1:SETBP1.1;升温子程序CALLDELAY1JMPNEXT9NEXT4:LJMPNEXT9基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现HYPERLINK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金华物流总部中心设计招标文件
- 项目二:老年服务伦理的兴起与发展
- 2025-2026学年福建省厦门市高考适应性考试语文试卷含解析
- 《梳理在线学习路径》教案-2025-2026学年川教版(新教材)小学信息技术三年级下册
- 试析建筑工程中地基基础施工质量控制要点
- 【2025】白城洮北社区工作者招考笔试试题
- 26年基础护理省力操作技巧课件
- 26年老年护理不良事件案例课件
- 26年老年扭伤应急处理流程课件
- 语文01卷(天津专用)-(考试版)A4七年级下册语文期末考试
- DB2101∕T 0104-2024 住宅物业管理服务规范
- 2025年电工(高级)考试练习题库(1000题)含答案
- 重症肌无力危象患者呼吸道管理的护理查房
- 机关宣传稿培训
- 2025年抗肿瘤药物临床合理应用培训试题及答案
- 小学图形与几何教学课件
- 铁路线路起道作业课件
- 2025卫生职称(副高)考试小儿内科学高级职称(副高)历年考试真题及答案
- 中国南水北调集团文旅发展有限公司(新闻宣传中心)招聘笔试题库2025
- 护理科研课件
- 民兵安全训练课件
评论
0/150
提交评论