汇编语言编程实例---串行控制七段数码管

串行控制七段数码管  
ORG	00H                           
START:
MOV	30H,#1	; 低位七段数码管DS0显示数据
MOV	31H,#5	; 高位七段数码管DS1显示数据
MOV     	R0,#30H	; R0=30H
MOV     	R1,#40H	; R1=40H
MOV     	R2,#2	; R2=2
DP10:   
MOV      DPTR,#TABLE   	; 装表
MOV     	A,@R0	; 将R0所指的数据载入A
MOVC    	A,@A+DPTR      	; 取表
MOV     	@R1,A	; 把数据暂时保存在R1所指的地址中
INC	R1	; R1自增1
INC	R0	; R0自增1
DJNZ	R2,DP10	; 如果R2不等于0,说明没有取完两个段码,跳回DP10循环
MOV     	R0,#40H       	; R0=40H,指向刚才保存段码的空间
MOV     	R1,#2          	; R1=2,段码共有2个字节数
DP11:   
MOV     	R2,#8          	; R2=8,每位显示数据共有8个段码,R2作计数器 
MOV     	A,@R0         	; 把R0指向的段码数据载入A
DP12:   
RLC	A              	; 段码数据向左移动一位
MOV	P2.0,C          	; 串行输出一位段码数据
CLR	P2.1            	; 发送位移脉冲
SETB	P2.1	; 形成上升沿
DJNZ	R2,DP12	; 判断是否输出8位段码
INC	R0	; R0自增1
DJNZ	R1,DP11	; 判断是否输出两个显示数据
JMP	$
 
TABLE:	;七段数码管显示数据表(段码)
DB	40H,79H,24H,30H,19H ;0,1,2,3,4
DB	12H,02H,78H,00H,10H ;5,6,7,8,9
END
 
 


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值