
1、基础知识
左上:共用一个P0口,想要显示2024没有办法
左下:可以显示2024但是占用了太多的IO资源
右边:动态显示
每次只点亮一个,但是看起来像是一直都亮着
一开始 com1=1 com2=0 com3=0 com4=0 P0都显示2
然后1ms后 com1=0 com2=1 com3=0 com4=0 P0都显示0
2虽然熄灭了但是还有亮的感觉
2、代码实现
(1)定义段码
unsigned char code SMG_duanma[18]={
0xc0,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};
(2)HC573选择
void SelectHC573(unsigned char channel)
{
switch(channel)
{
case 4:
P2 = (P2 & 0x1f)|0x80;
break;
case 5:
P2 = (P2 & 0x1f)|0xa0;
break;
case 6:
P2 = (P2 & 0x1f)|0xc0;
break;
case 7:
P2 = (P2 & 0x1f)|0xe0;
break;
}
}
(3)动态显示
本质是按位显示,熄灭时间短,处在循环当中
按位显示
void DisplaySMG_Bit(unsigned char value,unsigned char pos)
{
SelectHC573(6