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

📄 3.21.asm

📁 51单片机控制两路步进电机,实现各种工作方式及其转换
💻 ASM
字号:
RS BIT P1.7
RW BIT P1.6
E BIT P1.5
DB0_DB7 DATA P2
;********************************
ORG 00H
AJMP START
ORG 000BH
AJMP INSE
;********************************
ORG 50H
START: MOV TMOD,#0
MOV TL0,#0
MOV TH0,#0
SETB EA
SETB ET0
SETB TR0
MOV R5,#50
MOV SP,#60H
ACALL INIT
MOV A,#10000000B   ;写入显示地址为第一行第一位。
ACALL Write
MOV A,#01000001B   ;字母"A"的代码。
ACALL WriteDDR
LOOP: AJMP LOOP
;*******************************
INSE: MOV TL0,#0  ;中断服务子程序。
MOV TH0,#0
DJNZ R5,NO
MOV R5,#50
NO: RETI
;******************************
INIT:
MOV A,#00111000B  ;使用8Bits汇流排,显示两行,使用5*7的字型。
LCALL Write
MOV A,#00001110B  ;显示器开,光标开,光标闪烁。
LCALL Write
MOV A,#00000110B  ;字符不动,光标自动右移一格。
LCALL Write
RET
;*******************************
CheckBusy:        ;检查忙碌子程序。
PUSH ACC
CB_Loop: CLR RS
SETB RW
CLR E
SETB E
MOV A,DB0_DB7
CLR E
;CLR ACC.7
JB ACC.7,CB_Loop
POP ACC
ACALL DELAY
RET
;********************************
Write:            ;写入IR寄存器子程序。
ACALL CheckBusy
CLR E
CLR RS
CLR RW
SETB E
MOV DB0_DB7,ACC
CLR E
RET
;********************************
WriteDDR:         ;写入DR寄存器子程序。
ACALL CheckBusy
CLR E
SETB RS
CLR RW
SETB E
MOV DB0_DB7,ACC
CLR E
RET
;**********************************
DELAY:            ;延时子程序。
MOV R6,#5
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET

⌨️ 快捷键说明

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