1、步距角:对应一个脉冲信号电机转子转过的角位移. 步距角=360/(转子齿数*拍数)系统中使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由A、B、C、D四相组成。步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。BA、BB、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。步骤:先设计键盘显示程序,根据书本的键盘扫描程序与数码管显示程序,把二者整合到一起,成功后,再做驱动电机程序,在键盘显示程序的基础上,进行扩张,实现电机的正反转与调速控制。二、硬件原理
2、接线图键盘显示原理图连线图步进电机模块插头接实验系统J3插座,(顺接)把P1.0P1.3分别接到BABD插孔。三、流程图按键流程图数码管显示流程图电机控制程序流程图四、程序清单ORG 0000H AJMP MAINORG 0050HMAIN: MOV SP,#40H ;主程序 MOV 79H,#10H ;初始化,使数码管“灭” MOV 7AH,#10H MOV 7BH,#10H MOV 7CH,#10H MOV 7DH,#10H MOV 7EH,#10H MOV R1,#7EHMAIN1: ACALL KEY ;调用键盘扫描子程序 MOV R1,A ;把键值送入显示缓冲区 CJNE R1,#7
3、8H,KS ;显示缓冲区是否存满 CJNE A,#16H,MAIN ;确认键是否按下 LJMP RUNKS: DEC R1LJMP MAIN1RUN: MOV A,7EH ;电机运行 JZ ZHEN ;跳正转子程序 JNZ FAN ;跳反转子程序ZHEN: MOV P1,#03H ;AB相加脉冲 ACALL DELAY ;延时 ACALL JINAYI1 ;减一 ACALL DIR ;显示 MOV P1,#06H ;BC相加脉冲 ACALL DELAY ACALL JINAYI1 ACALL DIR MOV P1,#0CH MOV P1,#09HACALL ZHENFAN: ACALL JIA
4、NYI2ACALL DIR MOV P1,#06HACALL DELAY MOV P1,#03H LJMP FANDELAY: MOV R7,#02HDELAY10: MOV R6,7DHDELAY12: DJNZ R6,DELAY12 DJNZ R7,DELAY10 RETJIANYI1:ANL 79H,#0FHANL 7AH,#0FHANL 7BH,#0FHANL 7CH,#0FHLCALL DIRMOV R5, 79HCJNE R5, #0, Z1DEC 79HMOV R5, 7AHCJNE R5, #0, Z2DEC 7AHMOV R5, 7BHCJNE R5, #0,Z3DEC 7B
5、HMOV R5, 7CHCJNE R5, #0,Z4LJMP MAINZ1: DEC 79HRETZ2: DEC 7AH RETZ3: DEC 7BHZ4: DEC 7CHJIANYI2: ANL 79H,#0FHMOV R5,79HCJNE R5,#0,F1MOV R5,7AHCJNE R5,#0,F2MOV R5,7BHCJNE R5,#0,F3MOV R5,7CHCJNE R5,#0,F4F1:F2:F3:F4:KEY: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 AJMP KEYLK1:ACALL KS1JNZ LK2AJMP KEYLK2: MOV R2,#0FE
6、H ;首列扫描字入R2 MOV R4,#00H ;首列号入R4LK3: MOV DPTR,#0FFDDH MOV A,R2 MOVX DPTR,A MOV DPTR,#0FFDEH MOVX A,DPTR JB ACC.0,LK4;ACC.0为1则跳转,即第0行按键未按下 MOV A,#00H AJMP LKPLK4: JB ACC.1,LK5 ;第1行无按键按下,转差第2行 MOV A,#08HLK5: JB ACC.2,LK6 ;第2行无按键按下,转差第3行 MOV A,#10HLK6: JB ACC.3,NEXT ;第3行无按键按下,改查下一列 MOV A,#18HLKP: ADD A,
7、R4 ;求键号 MOV DPTR,#TAB MOVC A,A+DPTR PUSH ACC ;键号进栈保护LKP1:等待键释放 JNZ LKP1 POP ACC RET NEXT: INC R4 ;指向下一列,列号加1 JNB ACC.7,KND ;8列扫描完,返回 RL A MOV R2,A AJMP LK3KND:KS1: MOV DPTR,#0FFDDH INC DPTR CPL A ANL A,#0FHTAB: DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH DB 00H,00H,00H,00H,
8、00H,00H,00H,16HENDDIR: MOV R0,#79H ;显示程序 MOV R3,#01HLD0: MOV DPTR,#TEP ;写字形 MOV A,R0 MOV DPTR,#0FFDCH MOVX DPTR,A MOV A,R3 ;写字位 ACALL DL1 ;INC R0 ;显示缓冲区地址加一MOV A,R3JB ACC.5,LD1 ;判断是否扫描到第六个显示位RL AMOV R3,AAJMP LD0LD1:TEP: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,00H,73HDL1:DL: MOV R6,#0FFHDLA: DJNZ R6,DLA DJNZ R7,DL五、设计心得体会为期一周的单片机课程设计,我有很多心得体会,有关于单片机方面的,更多的是人与人之间的。此次单片机课程设计意义非凡。一开始,我们组出现了很多问题,例如,如何把键盘与显示程序整合到一起,但是在老师的悉心指导和同学的帮助下,各种问题都被解决了。此次课程设计不仅增强了同学们的动手实践能力,而且更加丰富了同学们的理论知识,熟悉了汇编语言的编程方法。除此之外,我还学到了如何与人合作,与人交流。总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1