概述
51 单片机汇编语言:8位加减计数器
用51 单片机汇编语言编程,实现8位加减计数器,按下面的按钮选择加计数或者减计数
使用仿真工具:Proteus 8.6
通过 构建子程序完成功能,所需子程序有:
数码管显示子程序、延迟子程序、计数子程序
程序如下:
ORG 0000H
JMP Start
ORG 0100H
Start:
cDisplayBuffer EQU 30H
cDisplayBit EQU 38H
MOV cDisplayBuffer,#9
MOV cDisplayBuffer+1,#9
MOV cDisplayBuffer+2,#9
MOV cDisplayBuffer+3,#9
MOV cDisplayBuffer+4,#9
MOV cDisplayBuffer+5,#9
MOV cDisplayBuffer+6,#8
MOV cDisplayBuffer+7,#0 ; (37H)=0
MOV cDisplayBit,#0
Main:
MOV R6,#4 ;计数周期为1s
L1: MOV R5,#0
L2: MOV R4,#0
LCALL Display
LCALL Delay
DJNZ R4,$
DJNZ R5,L2
DJNZ R6,L1
LCALL COUNT ;计数
SJMP Main
;---------------------------------------------
DispTable: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
Display: ;通用显示子程序
MOV A,cDisplayBit
MOV P2,A
MOV DPTR,#DispTable
MOV A,#cDisplayBuffer
ADD A,cDisplayBit
MOV R0,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
INC cDisplayBit
ANL cDisplayBit,#7
RET
;---------------------------------------------
Delay: ;延迟子程序
MOV R2,#100
DJNZ R2,$
RET
;---------------------------------------------
COUNT: ;计数子程序
MOV R1, #cDisplayBuffer+7
JNB P3.7,DeCount
InCount: ;P3.7=1时加法计数器
INC @R1
CJNE @R1,#10,RET1
MOV @R1,#0 ;自增到10时清零
DEC R1
CJNE R1, #cDisplayBuffer-1,InCount ;cDisplayBuffer-1相当于2FH
RET
DeCount: ;P3.7=0时减法计数器
DEC @R1
CJNE @R1,#255,RET1
MOV @R1,#9
DEC R1
CJNE R1, #cDisplayBuffer-1, DeCount
RET1: RET
END
最后
以上就是积极皮带为你收集整理的51 单片机汇编语言:8位加减计数器的全部内容,希望文章能够帮你解决51 单片机汇编语言:8位加减计数器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复