51汇编--数码管显示

;将内部RAM30H~32H单元中存储的6位十进制数显示在6个数码管上。
;要求编写将一个内存单元中的压缩BCD码转换为两个七段显示码的子程序和
;延时子程序。不允许在程序中给30H、31H和32H单元赋值,要通过存
;储器窗口赋值。尝试改变点亮数码管的时间,观察显示效果
;把LED_CS接到CS0,若接到其他位置,需要改段地址和位地址的D12~D14位

代码


	ORG 0000H
	LJMP MAIN
	ORG 0050H
MAIN:
	MOV 30H,#20H
	MOV 31H,#02H
	MOV 32H,#09H
    MOV 33H,#11H
A1:
	MOV R0,#33H;内部RAM指针
	MOV R1,#80H;位选,下面使用循环右移
LOOP:
	MOV A,@R0;取出内部RAM数据
	LCALL SHOW
	MOV A,@R0;取出内部RAM数据
    SWAP A
	LCALL SHOW
	DEC R0
	CJNE R0,#2FH,LOOP
	SJMP A1
	
SHOW:
	PUSH ACC
	MOV A,R1
	MOV DPTR,#8001H
	MOVX @DPTR,A;送入位选
	RR A
	MOV R1,A
	POP ACC
	ANL A,#0FH
	MOV DPTR,#TAB
	MOVC A,@A+DPTR;获取字形码
	MOV DPTR,#8002H
	MOVX @DPTR,A;写入字形码
	LCALL DELAY
	CLR A
	MOVX @DPTR,A;清空,防重影
	RET	
	
DELAY:;10ms则X=23,Y=204
	MOV R7,#0
D1:	MOV R6,#0
	DJNZ R6,$
	DJNZ R7,D1
	RET	
;	   0   1    2   3   4   5   6   7   8   9
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
	END
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值