这里简单复习下静态显示和动态显示
静态显示
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
我的理解:静态显示只能让所有数码管同时显示一个内容
动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
我的理解:动态显示其实由于人眼分辨率和刷新频率有限,通过一个数码管显示后在他消失前立刻显示下一位,然后循环刷新来达到人眼看过去像是多个数码管同时显示不同内容的目的,但其实每个数码管显示的时间都不一样,只是刷新速度快于我们人眼刷新速度罢了。
代码展示
void main()
{
while(1)
{
we = 1; //打开位选,这里是第一位(第一位是首位)
P0 = 0xfe; //1111 1110 只选第一位数码管
we = 0; //关闭位选
du = 1; //打开段选
P0 = leddata[1]; //显示数字“1”
du = 0; //关闭段选
delay(5); //延时5ms
we = 1; //打开位选,这里是第二位(第一位是首位)
P0 = 0xfd; //1111 1101 只选第二位数码管
we = 0; //关闭位选
du = 1; //打开段选
P0 = leddata[2]; //显示数字“2”
du = 0; //关闭段选
delay(5);
}
}