目录
一、原理图:编辑
二、思路梳理:
三:一些说明:
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)
  {
  }
  }