目录
一、原理图:编辑
二、思路梳理:
三:一些说明:
1.点亮方式:
2.数组:
3.数字与段码对应:
四:程序实现:
一、原理图:
二、思路梳理:
注意注意本实验静态数码管,一开始只联系让第一个位置亮数字。
三:一些说明:
1.点亮方式:
LED灯给0是点亮。
数码管给1是点亮。并且顺序是dp,g,f,e,d,c,b,a
以 0x3F
为例,它的二进制是 0011 1111
,表示 a
、b
、c
、d
、e
、f
段为高电平(亮),g
和 dp
段为低电平(灭),从而显示数字 0
。
2.数组:
首先数码管的点亮可以用数组表示,数组从第一位到最后就是从数字0到数字15,如果你想让某一位显示数字几,就把这个数字对应的数组元素赋给那个位置。
3.数字与段码对应:
数组索引 | 段码值 | 二进制 | 显示内容 |
---|---|---|---|
0 | 0x3f | 0011 1111 | 0 |
1 | 0x06 | 0000 0110 | 1 |
2 | 0x5b | 0101 1011 | 2 |
3 | 0x4f | 0100 1111 | 3 |
4 | 0x66 | 0110 0110 | 4 |
5 | 0x6d | 0110 1101 | 5 |
6 | 0x7d | 0111 1101 | 6 |
7 | 0x07 | 0000 0111 | 7 |
8 | 0x7f | 0111 1111 | 8 |
9 | 0x6f | 0110 1111 | 9 |
10 | 0x77 | 0111 0111 | A |
11 | 0x7c | 0111 1100 | B |
12 | 0x39 | 0011 1001 | C |
13 | 0x5e | 0101 1110 | D |
14 | 0x79 | 0111 1001 | E |
15 | 0x71 | 0111 0001 | F |
四:程序实现:
#include <REGX51.H>
typedef unsigned u16;
typedef unsigned u8;
#define LED P0
u8 light[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
LED=light[5];
while(1)
{
}
}