📄 51+Ҧ
字号:
/***************************************************************************
标题: 数码管的显示
效果: 显示1234,从这个例子可以学习多位数码管的动态显示技术
本店网站 http://xxdpj.taobao.com/
以芯换心 竭诚为您服务 您学习单片机的好帮手
近期本店有很多优惠活动 有空就进来看看吧
http://xxdpj.taobao.com/
技术支持QQ:412150384
******************************************************************************/
;脚功能定义
SMG_q EQU P1.0 ;定义数码管阳级控制脚,千位
SMG_b EQU P1.1 ;定义数码管阳级控制脚,百位
SMG_s EQU P1.2 ;定义数码管阳级控制脚,十位
SMG_g EQU P1.3 ;定义数码管阳级控制脚,个位
;数据存放
ORG 0100
TABLE: DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H ;表:共阳数码管 0-9
ORG 0000H
LJMP MAIN
ORG 0200H
MAIN: MOV DPTR,#TABLE
M1: CLR SMG_q ;选择千位数码管
MOV A,#1 ;千位显示1,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P0口,显示相应的0-9
MOV P0,A
LCALL DELAY ;延时,停留一会,让人眼感触到它的亮度
MOV P0,#0FFH ;清除数码管显示,因是共阳型,所以不是0
SETB SMG_q ;关闭千位数码管
CLR SMG_b ;选择百位数码管
MOV A,#2 ;百位显示2,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P0口,显示相应的0-9
MOV P0,A
LCALL DELAY ;延时,停留一会,让人眼感触到它的亮度
MOV P0,#0FFH ;清除数码管显示,因是共阳型,所以不是0
SETB SMG_b ;关闭百位数码管
CLR SMG_s ;选择十位数码管
MOV A,#3 ;十位显示3,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P0口,显示相应的0-9
MOV P0,A
LCALL DELAY ;延时,停留一会,让人眼感触到它的亮度
MOV P0,#0FFH ;清除数码管显示,因是共阳型,所以不是0
SETB SMG_s ;关闭十位数码管
CLR SMG_g ;选择个位数码管
MOV A,#4 ;个位显示4
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P0口,显示相应的0-9
MOV P0,A
LCALL DELAY ;延时,停留一会
MOV P0,#0FFH ;清除数码管显示
SETB SMG_g ;关闭个位数码管
LJMP M1 ;循环扫描输出,不扫描则不显示或显示不正确,即为动态显示,
DELAY: MOV R5,#10 ;此次延时子程序不用很长时间
DJNZ R5,$
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -