限流电阻只接在5678这4个引脚
把一个数码管当成两个数码管来看,一个数字分两次显示
假设:#define out P1
com1 bit P1^0
com2 bit P1^1
com3 bit P1^2
com4 bit P1^3
显示一个数字8:
设定com1,5678为推挽输出
设定com2,com3,com4,为高阻,就是没有输出和吸入能力,随便怎么操作,234这几个数码管都是不会亮的
显示数码管的ABCD:
这个过程com2,com3,com4是不参与的,因为是高阻,所以,不会有输出和吸入能力的
1:
com1=1 ;//高电平输出
out&=0x0f;//低电平吸入,用按位与操作,显示,低位是com的,不影响
延时1mS;这是显示部分
com1=0;//这是消除残影部分
out&=0x0f;//com1为低电平,5678这几个IO输出低电平,用于消除残影out&=0x0f一定要有,在这里out&=0x0f只是和数码的"8"巧合了而已,不是重复操作
显示数码管EFG DP
2:
com1=0;//低电平吸入
out&=0xff;//高电平输出,用按位与操作,显示,低位是com的,不影响
延时1mS;out&=0x0f;//com1为低电平,5678这几个IO输出低电平,用于消除残影
这就完成了一个数码管的显示了,剩下的也是一样的道理,每次显示之后都要消除残影,每次显示之前都要先更改几个com的输出模式,保证只有一个IO有输出和吸入能力,其它的都没有这个能力
5678这几个高位的不需要设置,只要设置一次就行,设置成推挽
|