0% found this document useful (0 votes)
11 views5 pages

五个实验仿真汇编程序

Uploaded by

ananlovelife
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views5 pages

五个实验仿真汇编程序

Uploaded by

ananlovelife
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

###流水灯汇编程序###

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

You might also like