文档详情

第10章 单片机应用系统工程设计及应用.ppt

发布:2017-06-03约1.39万字共35页下载文档
文本预览下载声明
10.4 .4 软件设计 K1 EQU P0.0 K2 EQU P0.1 K3 EQU P0.2 ORG 0000H LJMP MAIN ;====================== ORG 0100H MAIN:MOV SP,#50H STOP:MOV P1,#0FFH ;步进电机停转 LOOP:JNB K1,MZZ2 ;是否K1按下,是则转正转模块 JNB K2,MFZ2 ;是否K2按下,是则转反转模块 JNB K3,STOP1 ;是否K3按下,是则转步进电机停转 JMP LOOP ;主程序循环 10.4 .4 软件设计 STOP:MOV P1,#0FFH ;步进电机停转 LOOP:JNB K1,MZZ2 ;是否K1按下,是则转正转模块 JNB K2,MFZ2 ;是否K2按下,是则转反转模块 JNB K3,STOP1 ;是否K3按下,是则转步进电机停转 JMP LOOP ;主程序循环 ;====================== STOP1:ACALL DELAY ;按K3键,消除抖动 JNB K3,$ ;K3放开否? ACALL DELAY ; 放开消除抖动 JMP STOP ; 步进电机停转 ;----------------- MZZ2:ACALL DELAY ;按K1键,消除抖动 JNB K1,$ ;K1放开否? ACALL DELAY ; 放开消除抖动 JMP MZZ ; 转步进电机正转模块 ;----------------- MFZ2:ACALL DELAY ;按K2键,消除抖动 JNB K2,$ ;K2放开否? ACALL DELAY ; 放开消除抖动 JMP MFZ ; 转步进电机反转模块 ;====步进电机正转模块程序====----- MZZ: MOV R0,#00H ;置正转控制代码表偏址初值 MZZ1:MOV A,R0 MOV DPTR,#TABLE ;表基址指针 MOVC A,@A+DPTR ; 查表取正转控制代码 JZ MZZ ;是否取到结束码? MOV P1,A ;从P1输出,正转 JNB K3,STOP1; 是否K3按下,是则转步进电机停转 JNB K2,MFZ2 ; 是否K2按下,是则转反转模块 ACALL DELAY; 步进电机转速 INC R0 ;取下一个码 JMP MZZ1 RET; ;=步进电机反转模块程序如下所示== MFZ:MOV R0,#05 ; 反转控制代码表偏址初值 MFZ1:MOV A,R0 MOV DPTR,#TABLE ;控制代码表指针 MOVC A,@A+DPTR ;查表取控制代码 JZ MFZ ;是否取到结束码? MOV P1,A ;从P1输出,反转 JNB K3,STOP1 ; 是否K3按下,是则转步进电机停转 JNB K1,MZZ2 ; 是否K1按下,是则转正转模块 ACALL DELAY ; 步进电机转速 INC R0 ;取下一个码 JMP MFZ1 RET 程序设计 ;====延时20ms============ DELAY:MOV R5,#40 ;延时20ms DEL1:MOV R6,#248 DJNZ R6,$ DJNZ R5,DEL1 RET ;===;控制代码表:======= TABLE:DB 0FCH,0F9H,0F3H,0F6H;;正转 DB 00H ;;正转结束码 DB 0F7H,0F3H,0FBH,09H ;;反转 DB 0FDH,0FCH,0FEH,0F6H; DB 00H ;;反转结束码 END ;程序结束 (8)设计一个5人的抢答器,无人抢答时,5只灯循环亮,谁先按下,哪一个相对应的灯亮,同时扬声器
显示全部
相似文档