单片机电风扇汇编_第1页
单片机电风扇汇编_第2页
单片机电风扇汇编_第3页
单片机电风扇汇编_第4页
单片机电风扇汇编_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、东南大学自动化学院实 验 报 告课程名称: MCU(微控制器)综合课程设计 实验名称: 综合课程设计 院 (系): 自动化学院 专 业: 自动化专业 姓 名: 学 号: 实 验 室: 测控技术实验室 实验组别: 同组人员: 实验时间: 2011 年 6 月 10 日评定成绩: 审阅教师: 目 录一实验目的和要求3二实验原理3三实验方案与实验步骤4四实验设备与器材配置7五实验记录7六实验总结7七思考题7八汇编语言源代码7一 课程设计目的和要求1、课程设计题目:家用电器模拟:电风扇2、模拟设计要求:(1)初始加电程序运行,电风扇无速度,只有按下风速选择的任一按键,电风扇开始工作。此时,只要进行新的

2、速度选择也不按下停止键,电风扇就将按设计的风速持续运行。(2)开启摇头开关后,模拟风扇摇头,并且在摇头状态中也可进行风扇的调速。(3)利用LED流水灯的间隔时间模拟风速,程序运行后呈现较长的间隔时间以模拟风扇上电但未运行。按键盘上的键选择速度,并用数码管显示速度选择的数字。拨码开关为摇头开关,开关打开后,流水灯反向表示摇头。二 实验原理1、:使用硬件设备数码管、发光二极管、键盘、拨码开关。实验不需要接线。2、设计思想(1)整体设计的主要程序使用定时器定时中断实现。(2)实验要求二极管的流水灯按照按键的不同以不同的间隔时间依次点亮,则将按键的键码作为流水灯的间隔时间,设置一定的中断时间,中断每运

3、行一次则INC R1,再将R1与A作比较(再次之前已经经过键盘扫描,将键盘的键码赋值给了A),若一致则运行流水灯,若不一致则再次运行中断,由此,按不同的键有不同的键码,则中断运行次数不同,流水的时间间隔自然不同。(3)为保证在按键后能够及时的改变风速,则每次中断时扫描一次键盘,并计算键码显示在数码管上。(4)每次中断扫描拨码开关状态,以便能够及时的判断是否要处于摇头状态。(5)数码管显示风速选择的数字,并实时刷新。三 实验步骤与实验方案1、 程序流程图(1) 主程序(2)中断服务程序:2、实验步骤:(1)在Medwin中完成项目的创建;(2)添加自己编写的.asm源文件并编译/汇编;(3)生成

4、代码并下载到仿真器上;(4)程序运行。返回监控后可查看寄存器和存储器的值。(5)按键盘选择风速,波动拨码开关选择摇头。四 实验设备与器材配置PC机;EEEC-030型单片机/ISP综合设计实验装置五 实验分析与总结1、 此次实验中加深了对中断程序的理解。最开始的程序流水灯的部分用的是软件延时来实现,但是在调试过程中发现,利用延时会让程序一直处于第一个延时的循环中,在这种情况下无法进行按键的二次选择,拨码开关也只能够选择一次,除了关闭程序以外也没有按预想的实现风扇的停止状态。在这种情况下,我开始在程序里加入中断,以实现能够每次都进行键盘的扫描。加入中断的开始阶段,风速仍然是使用软件延时的流水灯在

5、中断外部以调用子程序的方式来实现的,但是调试过程中发现,中断的调用不理想,延时不能按预想的所实现,常常会出现所有的发光二极管一起亮起的状态,出现问题之后请教了同学使用了现在以中断的最大等待时间作为流水灯间隔时间的方式。INCR1;时间加1 MOV A,R5XRLA,R1;最大等待时间到?JNZEE1;没到,转到EE1R5为储存的输入键码,以不同的R5实现延时,从而模拟不同的风速变化。在之后的调节中还出现过虽然按了键码但是流水灯速度不变的情况,经过查看寄存器发现是R1在流水灯运行、按键重新选择时没有进行清零,从而时的R1的数值一直处于同一个状态。2、在调试中由于中断程序无法进行单步调试,全速运行

6、时无法观察寄存器的变化,则设置断点,全速运行程序停止,在断点处单步运行观察寄存器。而在软件中还有“执行到”的选择,只要选择认为需要调试的程序部分的地址或者标号,就可以执行到此处,然后就可以单步跟踪程序的运行了。3、由于自己的能力有限,所以此次设计只是进行了简单的模拟,实现了相对简单的功能。作为程序的改进,还可以加上时间的设置,可在初始化寄存器事设定一定的初值,当在一定风速时,不同的拨码开关波动后,R1与此初值比较,当R1与设置的初值相等,风扇回复按键“0”状态,以实现电风扇的定时。六 附上源代码ORG0000HLJMPMAINORG 000BHAJMP IINT0MAIN:NOPNOPACAL

7、LLED1 MOVR1,#00HMOVR6,#00HMOVR3,#00HMOVR5,#00HMOV IE, #00H;关中断MOV TMOD, #01H;设置定时器定时方式MOV TH0, #0E0HMOV TL0, #0E0H;初值SETB TR0SETB EASETB ET0;开中断,启动定时HERE: ACALLSHOW1;数码管刷新,等待中断JMP HERE;中断服务程序;IINT0:ACALLKS ;键盘全局检测JNZLK1;有键闭合,转移AJMPDOLK1:ACALLCHECK DO:MOVDPTR, #0F500HMOVX A, DPTRCJNEA, #00H,YURE ;判断开

8、关是否正确拨动INCR1;时间加1 MOV A,R5XRLA,R1;最大等待时间到?JNZEE1;没到,转到EE1MOV A,R7RRAMOV R7,AMOVDPTR, #0F600HMOVX DPTR, AMOVR1,#00H AJMPEE1YURE: INCR1;时间加1 MOV A,R5XRLA,R1;最大等待时间到?JNZEE1;没到,转到EE1MOV A,R7RLAMOV R7,AMOVDPTR, #0F600HMOVX DPTR, AMOVR1,#00HEE1:MOV TH0, #0E0HMOV TL0, #0E0HSETB TR0;重设初值,启动中断RETI;LED;LED1:A

9、NLA , #07H;模8MOVR0,ACJNER0,#00H,L1MOVA,#80HAJMPLLL1:CJNER0,#01H,L2MOVA,#01HAJMPLLL2:CJNER0,#02H,L3MOVA,#02HAJMPLLL3:CJNER0,#03H,L4MOVA,#04HAJMPLLL4:CJNER0,#04H,L5MOVA,#08HAJMPLLL5:CJNER0,#05H,L6MOVA,#10HAJMPLLL6:CJNER0,#06H,L7MOVA,#20HAJMPLLL7:MOVA,#40H LL:CPLA ;取反输出MOVR7,A ;R7存LED的值MOVDPTR, #0F600H

10、MOVX DPTR, ARET;键盘扫描;CHECK:MOV R2, #0FEH;低4位为要选通的行线值MOV R4, #00H;行号CHECK1:MOVA, R2MOVDPTR, #0F700HMOVXDPTR, AMOVXA, DPTR;读入,高4位为列线状态ANLA, #0F0H ;屏蔽无效的低4位行线状态JB ACC.4, LONE ;检测第一列,没按下跳转至下一列MOV A, #0CH ;该列第一个键码值为0CHAJMP LKPLONE:JB ACC.5, LTWO;检测第二列MOV A, #08HAJMP LKPLTWO:JB ACC.6, LTHR;检测第三列MOV A, #04

11、HAJMP LKPLTHR:JB ACC.7, NEXT;检测第四列MOV A, #00HLKP:ADD A, R4;计算键码MOVR5,AACALLSHOW1;数码管显示最大等待时间AJMPTC;键码存在R5中NEXT:MOV A, R2JNB ACC.3, CHECK;4行都已扫描一遍,转回重新从第一行开始RLAMOV R2, A;选通值选中下一行INC R4AJMPCHECK1TC:RET;软件延时子程序;DELAY:MOV R2, #0C8HLOOP:NOPNOPNOPDJNZ R2, LOOPRET;数码管刷新;SHOW1:PUSHACCMOVR0,#00HQQ1:MOV A, #0

12、FBHMOV DPTR, #0F400HMOVX DPTR, A;输出位码MOVA,R6;R6存分数MOVB,#0AH;B存10,做除法时用DIVAB ;除法后,A存十位数字,B存个位数字MOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0F300HMOVX DPTR, A ;十位输出 ACALLDELAY;调延时MOV A, #0FDHMOV DPTR, #0F400HMOVX DPTR, A;输出位码MOVA,BMOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0F300HMOVX DPTR, A ;个位输出ACALLDELAY;调延时MOV A, #0FEHMOV DPTR, #0F400HMOVX DPTR, A;输出位码MOVA,R5 ;R5存最大设定时间(键盘)MOV DPTR, #TABMOVC A, A+DPTRMOV DPTR, #0F300HMOVX DPTR, A ;输出键盘值ACALLDELAY;调延时CJNER0,#3AH,QQAJMPQQ2 QQ:INCR0AJMPQQ1QQ2:POPACCRET;全局键盘检测;KS:MOVDPTR, #0F700HMOV

温馨提示

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

评论

0/150

提交评论