近期关于1吋8数码管的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯 ,并进行了系统化的梳理 。若这些内容恰好能为您提供参考,将是我们最大的荣幸。
用8位一体的数码管组成8位动态扫描显示电路,这是多位数码管常用的动态显示方式 ,也是最典型 的数码管显示电路了。8位数码管肯定是显示不同的数的 。如下所示的仿真图,是分别用共阳数码管和共阴数码管组成的。
1 、?数码管显示演示程序:?在8个LED数码管上依次显示1,2,3,4,5,6,7,8。引用端口:数码管数据p0,数码管控制p2;
DIS_DIGIT?EQU40H;位选通值,?传送到P2口用于选通当前数码管的数值,
;?如等于0xfe时,?选通P2.0口数码管
DIS_INDEX?DATA41H
;显示索引,?用于标识当前显示的数码管和缓冲区的偏移量
DIS_BUF?DATA50H
;显于缓冲区起始地址
ORG?0000H
AJMPMAIN
ORG000BH
AJMP?INTT0
ORG0100H
MAIN:MOV?P0,#0FFH;?初始化I/O口
MOV?P2,#0FFH
MOVTMOD,?#02H;定时器0在模式2下工作?
MOVTL0,?#38H;?每200μs产生一次溢出
MOVTH0,?#38H;自动重装初值
SETBET0?;使能定时器0中断
SETB?TR0;启动定时
SETB?EA?;使能总中断
MOVDPTR,?#DIS_CODE;?设定显示初值为1-8
MOVA,#1;初值为1,以后顺序加1
MOVC?A,@A+DPTR
MOV?DIS_BUF,A
MOVA,#2
MOVCA,@A+DPTR
MOV?DIS_BUF+01H,A
MOVA,#3
MOVCA,@A+DPTR
MOV?DIS_BUF+02H,A
MOVA,#4
MOVCA,@A+DPTR
MOV?DIS_BUF+03H,A
MOVA,#5
MOVCA,@A+DPTR
MOV?DIS_BUF+04H,A
MOVA,#6
MOVCA,@A+DPTR
MOV?DIS_BUF+05H,A
MOVA,#7
MOVCA,@A+DPTR
MOV?DIS_BUF+06H,A
MOVA,#8
MOVCA,@A+DPTR
MOV?DIS_BUF+07H,A
DISPLAY:MOV?DIS_DIGIT,#0FEH;?初始从第一个数码管开始扫描
MOV?DIS_INDEX,#0
SETB?TR0;?启动定时器0,开始动态扫描显示
MAIN_LP:NOP
;?主程序循环 ,可增加其它代码以改变50H-57H中的值以改变显示内容
SJMP?MAIN_LP
;=====================================================
INTT0:
;?定时器0中断服程序,?用于数码管的动态扫描
PUSH?ACC
PUSH?PSW
MOV?P2,#0FFH;?先关闭所有数码管
MOV?A,#DIS_BUF;?获得显示缓冲区基地址
ADD?A,DIS_INDEX;?获得偏移量
MOV?R0,A;?R0?=?基地址?+?偏移量
MOV?A,@R0;?获得显示代码
MOV?P0,A;?显示代码传送到P0口
MOV?P2,DIS_DIGIT;?
MOVA,DIS_DIGIT
;?位选通值左移,?下次中断时选通下一位数码管
RLA
MOVDIS_DIGIT,A
INCDIS_INDEX
;?DIS_INDEX加1,?下次中断时显示下一位
ANLDIS_INDEX,#0x07
;?当DIS_INDEX等于8(0000?1000B)时,?清0
POP?PSW
POP?ACC
RETI?
DIS_CODE:?DB?28h,7eh,0a2h,62h,74h,61h,21h,7ah
DB?20h,60h,30h,25h,0a9h,26h,0a1h,0b1h
;0-9和ABCDEF的数码管显示代码
END
关于1吋8数码管的相关内容介绍到此告一段落,若这些信息对您有所启发,欢迎持续关注本站获取更多优质内容。
本文来自作者[仁诱]投稿,不代表亚当斯立场,如若转载,请注明出处:https://vydsckz.cn/news/3552.html
评论列表(3条)
我是亚当斯的签约作者“仁诱”
本文概览:近期关于1吋8数码管的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。用8位一体的数码管组成8位动...
文章不错《1吋8数码管》内容很有帮助