⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bjkz.asm

📁 一种新的控制步进电机的方法。基于8279的键盘和显示器控制。
💻 ASM
字号:
;步进电机控制程序
;**************************************************************************
;主程序
             ORG 000H
             MOV R0,#40H                  ;暂存键值
START:       MOV DPTR,#8FFFH              ;8279初始化清除命令
             MOV A,#0D1H
	     MOVX @DPTR,A
WAIT:        MOVX A,@DPTR                 ;等8279清除结束
             JB ACC.7,WAIT
	     MOV A,#00                    ;8279送方式命令
	     MOVX @DPTR,A
	     MOV A,#34H                   ;fosc=12Mhz时钟编程命令
	     MOVX @DPTR,A
LOOP1:       MOV DPTR,#8FFFH              ;指向命令 状态口
LOOP2:       MOVX A,@DPTR                 ;读8279状态字
             ANL A,#0FH                   ;读状态字低字位
	     JZ LOOP2                     ;FIFO中无键时等待键输入
	     MOV A,#40H                   ;读FIFORAM命令
	     MOVX @DPTR,A
	     MOV DPTR,#8FFEH               ;指向数据口地址
	     MOVX A,@DPTR                 ;读入键值
	     MOV @R0,A                    ;暂存键值
LOOP3:       CJNE A,#00H,LOOP4            ;是正转键吗?否转LOOP4
             MOV P1,#10H                  ;是,则正向输出第一拍
	     ACALL DELAY                  ;延时
	     MOV P1,#30H                  ;输出第二拍
	     ACALL DELAY                  ;延时
	     MOV P1,#20H                  ;输出第三拍
	     ACALL DELAY                  ;延时
             MOV P1,#60H                  ;输出第四拍
	     ACALL DELAY                  ;延时 
	     MOV P1,#40H                  ;输出第五拍
	     ACALL DELAY                  ;延时
	     MOV P1,#0C0H                 ;输出第六拍
	     ACALL DELAY                  ;延时
	     MOV P1,#80H                  ;输出第七拍
	     ACALL DELAY                  ;延时
	     MOV P1,#90H                  ;输出第八拍
	     ACALL DELAY                  ;延时
LOOP4:       MOV A,@R0                    ;取出键值
             CJNE A,#01H,LOOP5            ;是反转键吗?否转LOOP5
	     MOV P1,#90H                  ;反向输出第一拍
	     ACALL DELAY                  ;延时
	     MOV P1,#80H                  ;输出第二拍
	     ACALL DELAY                  ;延时
	     MOV P1,#0C0H                 ;输出第三拍
	     ACALL DELAY                  ;延时
	     MOV P1,#40H                  ;输出第四拍
	     ACALL DELAY                  ;延时
	     MOV P1,#60H                  ;输出第五拍
	     ACALL DELAY                  ;延时
	     MOV P1,#20H                  ;输出第六拍
	     ACALL DELAY                  ;延时
	     MOV P1,#30H                  ;输出第七拍
	     ACALL DELAY                  ;延时
	     MOV P1,#10H                  ;输出第八拍
	     ACALL DELAY                  ;延时
LOOP5:       MOV A,@R0                    ;取出键值
             CJNE A,#03H,LOOP2            ;是停止键吗?否转LOOP2
	     MOV P1,#00H                  ;是则停转
DELAY:       MOV R7,#20H                  ;延时
   D1:       MOV R6,#248
             DJNZ R6,$
	     DJNZ R7,D1
	     RET
	     END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -