上节课内容回顾.
使发光二极管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毫秒。