用51单片机控制8位数码管显示特定数字,如426721850求程序

数字可以自定义的最好用中断方式... 数字可以自定义的
最好用中断方式
展开
 我来答
百度网友7247a56
2017-06-10 · TA获得超过4616个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:488万
展开全部

以下代码不是采用中断方式,并且使用了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 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式