如何把共阴极程序改成共阳极程序

如何把共阴极程序改成共阳极程序,第1张

现在最流行的是共阳极的数码管,没有必要改成共阴极的。

不过如果你执意把共阳极的数码管改成共阴极的,那么就请进行以下工作:

1.共阳极的数码管改成共阴极的数码管;

2.共阳极的驱动器改为共阴极的驱动器;

3.数码管公共端接电源改为接地。

动作及投资都大了!

你的仿真图中的两位数码的阴极同时接地了,就会同时显示11,22,33,44........

必须要采用两位动态扫描的方式来显示才行的。

所以,你的仿真图和程序都要修改。

仿真图如下:

程序如下:

DAT0 EQU 30H30H地址命名为DAT0

ORG  0000H

LJMP MAIN 主程序入口

ORG  0003H

LJMP EXINT0 中断0子程序

MAIN:

MOV  SP,#6FH设定堆栈地址

SETB IT0T0采用负缘触发信号

SETB EX0开中断0

SETB EA开中断总开关

MOV  DAT0,#0DAT0地址赋初始值0

LOOP:

CALL SEG7

SJMP LOOP循环等待

EXINT0:

MOV A,DAT0

ADD A,#1按十进制数加1

DA  A

MOV DAT0,A

RETI

SEG7: 显示子程序

MOV  DPTR,#DISPLAYTAB

MOV  A,DAT0

ANL  A,#0F0H取十位数

SWAP A

MOVC A,@A+DPTR

MOV  P0,#0FEH

MOV  P2,A   显示十位

ACALL DELAY 显示一位要延时

MOV  A,DAT0

ANL  A,#0FH

MOVC A,@A+DPTR

MOV  P0,#0FDH

MOV  P2,A   显示个位

ACALL DELAY 显示一位要延时

RET

DELAY: 延时子程序

MOV R7,#50

DER7:

MOV R6,#100

DJNZ R6,$

DJNZ R7,DER7

RET

DISPLAYTAB:

DB 3FH0 共阴

DB 06H 1

DB 5BH 2

DB 4FH 3

DB 66H 4

DB 6DH 5

DB 7DH 6

DB 07H 7

DB 7FH 8

DB 6FH 9

END

要么将table[] 中的所有代码按位取反,如0x3f改为0xc0

或在在显示程序中将其取反,如原来的P0=table[a1];

改成P0=~table[a1];


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11798046.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存