1、 1 课课 程程 设设 计计 课程名称 微型计算机控制技术 题目名称_步进电机角度控制(2) 学生学院_ _ 自动化_ 专业班级_ 学 号 学生姓名_ _ 指导教师_ _ 2013 年 06 月 28 日 2 一、软件设计流程图如下图所示: 二、心得与体会二、心得与体会 这次的课程设计主要针对键盘及可编程接口芯片 8255A 的编程,在上机调试过程中由于 自己的疏忽及算法的不完善导致了程序不能实现预期的功能, 经过一遍又一遍的检查和思考, 终于完成了这次课程设计的任务。 虽然上机调试的经历是痛苦的,但是期间的细节错误给了我们应有的教训,使我们在以后的 学习及工作中尽量避免,对于汇编语言的编程也
2、有了进一步的了解加深了对步进电机的理解 和使用技巧,设计中,需要对步进电机进行角度控制,即需要对步进电机的角度进行计算分 析,以得到所需的步数。 总之,这次课程设计锻炼了我解决问题的能力,激发了我的思考,相信通过这次课程设 计对我以后对微机的继续学习及以后的工作会有很大的帮助。 开始 设定 8255A 工作方式,A、 B口输出, C 口 PC4PC7 输 入, PC0PC3 输出,故控制字 为 88H 扫描键盘 是否有键按下 判断键值 否 是 延时 LED 显示 驱动电机动作 延时 返回调用 判断键值 3 任务任务 1 连接数码管显示电路和键盘电 路,实现如下表所示的按键控制,并能够左 移显示
3、: 3 6 0 A B 7 2 F 1.2源程序: STACK SEGMENT STACK DB 64 DUP(?) STACK ENDS DATA SEGMENT ORG 0030H VAR1 DB 0FCH,0FCH,0FCH,0FCH VAR5 DB OF7H,0FBH,0FDH,0FEH VAR2 DB 0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH, 0FCH VAR3 DB 00H,00H,00H,00H,00H,00H,00H,00H VAR4 DB 00H,00H,00H,00H,00H,00H,00H,00H TABLE1 DB 0FCH,60H,0DA
4、H,0F2H,66H,0B6H,0BEH,0E0 H,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,88H ;8255初始化 MOV DX,0606H OUT DX,AL STT: MOV AL,60H MOV DX,0604H OUT DX,AL NEXT: MOV DX,0604H IN AL, DX AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP JMP STT ;
5、.键盘扫 描. KEYABC:CALL TIME MOV DX,0604H IN AL,DX AND AL,60H CMP AL,60H ;PC6 PC5 =0110 0000 JNZ KEY JMP STT KEY: MOV AL,0FEH ;扫描PC0口 PC0=0 MOV DX,0604H OUT DX,AL MOV DX,0604H IN AL,DX TEST AL,20H ;检测PC5 JNZ KEY_F CALL KEYA JMP STTK KEY_F: TEST AL,040H ;检测PC6口 JNZ KEY_0 CALL KEYF JMP STTK KEY_0:MOV AL,0
6、FDH ;扫描PC1口, PC1=0 MOV DX,0604H OUT DX,AL MOV DX,0604H IN AL,DX TEST AL,20H ;检测PC5 JNZ KEY_2 CALL KEY0 JMP STTK KEY_2:TEST AL,040H ;检测PC6口 JNZ KEY_6 CALL KEYF ;否则是按键2 JMP STTK KEY_6:MOV AL,0FBH ;PC2=0 MOV DX,0604H 4 OUT DX,AL MOV DX,0604H IN AL,DX TEST AL,20H ;检测PC5 JNZ KEY_7 CALL KEY6 JMP STTK KEY_7:TEST AL,040H ;检测PC6口 JNZ KEY_3 CALL KEY7 JMP STTK KEY_3:MOV AL,0F7H PC3=0 MOV DX,0604H OUT DX,AL MOV DX,0