1个回答
展开全部
以下代码不是采用中断方式,并且使用了74HC573,给你参考。
SEG_C BIT P1.4 ;/段控制位定义
BIT_C BIT P1.5 ;/位控制位定义
DISPLAY_BUFF EQU 30H;显示缓存30H-37H,8字节
COUN_WEI EQU 3CH ;/显示位存储区
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H
MOV COUN_WEI,#0
;初始化显示缓存
MOV DISPLAY_BUFF,#4
MOV DISPLAY_BUFF+1,#2
MOV DISPLAY_BUFF+2,#6
MOV DISPLAY_BUFF+3,#7
MOV DISPLAY_BUFF+4,#2
MOV DISPLAY_BUFF+5,#1
MOV DISPLAY_BUFF+6,#8
MOV DISPLAY_BUFF+7,#5
LOOP: CALL DISPLAY_0
JMP LOOP
;/显示DISPLAY_BUFF(8字节)中的数据
DISPLAY_0:
CLR SEG_C ;/关显示
CLR BIT_C ;[]
MOV P0,#0ffh;[]
SETB BIT_C
NOP
CLR BIT_C
MOV A,COUN_WEI ;//段码给出
ADD A,#DISPLAY_BUFF
MOV R0,A
MOV A,@R0
MOV DPTR,#SEG_TAB
MOVC A,@A+DPTR
MOV P0,A
SETB SEG_C
NOP
CLR SEG_C
MOV A,COUN_WEI ;/位码给出
MOV DPTR,#WEI_TAB
MOVC A,@A+DPTR
MOV P0,A
SETB BIT_C
nop
CLR BIT_C
CALL DELAY_1MS;【先clr bti—C再做延时】
INC COUN_WEI
MOV A,COUN_WEI
CJNE A,#8,DISPLAY_0
MOV COUN_WEI,#0
RET
DELAY_1MS:
MOV R1,#35;50[防止闪烁]
D1:
MOV R2,#100
DJNZ R2,$
DJNZ R1,D1
RET
SEG_TAB: DB 03fh,06H,05BH,04FH,66H,06DH,07DH,07H,07FH,06FH;共阴数码管段码[0~9]
WEI_TAB: DB 0FeH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;
END
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询