五个实验仿真汇编程序
五个实验仿真汇编程序
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R1,08
MOV A,#0FEH
LOOP:MOV P1,A
RL A
ACALL DELAY
DJNZ R1,LOOP
LJMP MAIN
DELAY:MOV R2,#20
D1: MOV R3,#50
D2: MOV R4,#250
D3: DJNZ R4,D3
DJNZ R3,D2
DJNZ R2,D1
RET
END
###共阳极 8 位数码管显示汇编程序####
ORG 0000H
AJMP START
ORG 0100H
START: MOV SP,#60H
MOV R2,#80H ;位初值
MOV R1,#0FFH ;段码初值
MOV R0,#08H ;8 位
MAIN: MOV A,R2
RL A
MOV R2,A
MOV P2,A
MOV A,R1
INC A
MOV R1,A
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
DJNZ R0,MAIN
AJMP START
DELAY:MOV R5,#10
DEL0: MOV R6,#1
DEL1:MOV R7,#20
DEL2:DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
TAB: DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
END
###液晶显示驱动汇编程序###
RS EQU P3.0
RW EQU P3.1
E EQU P3.2
LCD EQU P2
BF EQU P2.7
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:MOV A,#01H
ACALL W_CMD ;写命令子程序
MOV A,#38H
ACALL W_CMD
MOV A,#0CH
ACALL W_CMD
MOV A,#14H
ACALL W_CMD
MOV A,#83H
ACALL W_CMD
MOV DPTR,#TAB
MOV R0,#00
LOOP1: MOV A,R0 ;
MOVC A,@A+DPTR
ACALL W_DATA ;写数据子程序
INC R0
CJNE R0,#10,LOOP1
MOV A,#0C0H
ACALL W_CMD
LOOP2: MOV A,R0
MOVC A ,@A+DPTR
ACALL W_DATA
INC R0
CJNE R0,#25,LOOP2
LOOP:AJMP LOOP
WAIT:MOV LCD,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB BF,WAIT
RET; 40
W_CMD: ACALL WAIT
MOV LCD,A
CLR RS
CLR RW
SETB E
NOP
CLR E
RET
W_DATA: ACALL WAIT
MOV LCD,A
SETB RS
CLR RW
SETB E
NOP
CLR E
RET
TAB:DB"Welcome To"
DB"Physics School"
END
#########六档速度顺逆方向控制步进电机汇编程序###########
ORG 0000H
AJMP START
ORG 0100H
START: MOV SP,#60H
MOV R5,#11001100B ;R5 组成状态存储器
READ: MOV A,P1 ;读开关状态
JB P3.7,READ
JNB ACC.6,DIRECT0 ;判断转动方向
JNB ACC.7,DIRECT1 ;
SJMP READ ;正反向开关均未开则重读开关
DIRECT0:MOV R7,#00H ;设置方向标志
SJMP SPEED
DIRECT1:MOV R7,#0FFH ;设置方向标志
SPEED: JNB ACC.0,SPEED0 ;判定转速开关
JNB ACC.1,SPEED1
JNB ACC.2,SPEED2
JNB ACC.3,SPEED3
JNB ACC.4,SPEED4
JNB ACC.5,SPEED5
AJMP READ ;无任何速度开,则重读开关
SPEED0: MOV R6,#61H ;设置转速 0 常数
AJMP WAVE
SPEED1: MOV R6,#51H ;设置转速 1 常数
AJMP WAVE
SPEED2: MOV R6,#31H ;设置转速 2 常数
AJMP WAVE
SPEED3: MOV R6,#21H ;设置转速 3 常数
AJMP WAVE
SPEED4: MOV R6,#11H ;设置转速 4 常数
AJMP WAVE
SPEED5: MOV R6,#09H ;设置转速 5 常数 A
AJMP WAVE
WAVE: LCALL DELAY ;延时,决定转速
DJNZ R6,WAVE ;置输出口地址
MOV A,R5
CJNE R7,#00H,NEG ;判断转向标志
RL A ;改变相位
SJMP $$$
NEG: RR A ;改变相位
$$$: MOV R5,A ;保存相位
ANL A,#0FH
MOV P0,A ;相位输出
AJMP READ
DELAY: MOV R0,#20H;延时子程序
DELAY1: MOV R1,#04FH
DJNZ R1,$
DJNZ R0,DELAY1
RET
END
###直流电机驱动汇编程序###
PWM bit P3.7
DIR bit P3.6
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV R0,#100
MOV R1,#100
LOOP:JNB P3.4,IN
JNB P3.5,DE
SETB DIR
SETB PWM
DJNZ R0,$
CLR PWM
DJNZ R1,$
LJMP LOOP
IN: MOV A,R0
ADD A,#2
MOV R0,A
MOV A,#200
SUBB A,R0
MOV R1,A
AJMP LOOP
DE: MOV A,R0
SUBB A,#2
MOV R0,A
MOV A,#200
SUBB A,R0
MOV R1,A
AJMP LOOP
END