上节课内容回顾.
使发光二极管2-4-6-8闪烁 间隔1000毫秒。
8个LED发光二极管,分别对应单片机IO口的P1.0到P1.7口,8个单片机IO口组成一个字节,在程序编写过程中,可以直接用P1来进行操作。
我们可以看成一个字节的二进制数代表我们的8个IO口如下表所示!LED1
LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7 | LED8 |
P1.0 | P1.1 | P1.2 | P1.3 | P1.4 | P1.5 | P1.6 | P1.7 |
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
依次点亮LED1到LED8发光二极管隔500毫秒。
这里我们就会用到C语言运算符
左移运算符应用形态 | i << 1 | 左移最低位补0,最高位移出去 |
右移运算符应用形态 | i >> 1 | 右移最高位补0,最低位移出去 |
如:i = 0xff; i << 1;
1111 1111 → 1111 1110
我们让LED1到LED8依次点亮那么我们就可以用左移运算符来实现
然后用延时函数,延时500毫秒即可。
数码管静态和动态显示
静态显示
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
数码管图
数码管的内部结构
数码管的真值表
如果我们让数码管显示一个 “1”
根据我们学习板的连接电路我们可以得出以下真值表:
P0.0 | P0.1 | P0.2 | P0.3 | P0.4 | P0.5 | P0.6 | P0.7 |
a | b | c | d | e | f | g | dp |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
P0 = 0x06; 这就是共阴级的数码管显示一个1的数值
课后练习
明白数码管的显示原理。
使数码管从0-9循环显示间隔500毫秒。