我觉得数码管应该按位分。(单片机里面分的静态数码管和动态数码管)
单个数码管 (静态数码管)
单个的数码管比较简单,由8个发光二极管灯按照 “8”的形状排列、8个二极管有一个公共端,阳极连接在一起就是共阳数码管、阴极连接在一起就是共阴数码管。
单个数码管在单片机里面公共端一般会硬件直接加限流电阻接高电平或者低电平。
相应的程序比如给 P1=0xc0就是给个 数码管段选 db g f e d c b a
1 1 0 0 0 0 0 0
低电平有效,所以对应的显示字符就是数字“0”
优点:会比较亮,占CPU时间少,编程简单。 缺点:占单片机IO口多 要8*n个,所以比较少用。
多位数码管(数码管动态显示)
它的每个数码管段选都是并联在一起的,但位选独立的。在使用的时候,单片机发一个字形码,在给一个位选端有效,相应的数码管就会点亮。在发下一个字形码,并且给位选。间隔时间短,人眼无法区别。这样循环就能实现动态显示。
程序
P2=0x01; // 选中P2.0控制的数码管(位选)
P1=0xc0; //给”0“的字符码(端选)
delay10ms(); // 延时10ms
P2=0x02; // 选中P2.1控制的数码管(位选)
P1=0xf9; //给”1“的字符码(端选)
delay10ms(); // 延时10ms
个人理解,程序也只是一小部分。
优点:占单片机IO口少 8个数码管只要16个IO口 缺点:比单个数码管要暗,CUP要不断的依次运行扫描程序将占有CPU跟多时间。
太多了,上班就只能说这么点。大家积极讨论