数码管的 8 个段,我们直接当成 8 个 LED 小灯来控制,那就是 a、b、c、d、e、f、g、dp 一共 8 个 LED 小灯。我们通过图 5-3 可以看出,如果点亮 b 和 c 这两个 LED 小灯,也就是数码管的 b 段和 c 段,其他的所有的段都熄灭的话,就可以让数码管显示出一个数字 1,那么这个时候实际上 P0 的值就是 0b11111001,十六进制就是 0xF9。那么我们写一个程序进去,来看一看数码管显示的效果。#includesbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit ENLED = P1^4;void main(){ENLED = 0; //使能 U3,选择数码管 DS1ADDR3 = 1;ADDR2 = 0;ADDR1 = 0;ADDR0 = 0;P0 = 0xF9; //点亮数码管段 b 和 cwhile (1);}#includesbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit ENLED = P1^4;void main(){ENLED = 0; //使能 U3,选择数码管 DS1ADDR3 = 1;ADDR2 = 0;ADDR1 = 0;ADDR0 = 0;P0 = 0xF9; //点亮数码管段 b 和 cwhile (1);}
大家把这个程序编译一下,并下载到单片机中,就可以看到程序运行的结果是在最右侧的数码管上显示了一个数字 1。
用同样的方法,我们可以把其他的数字字符都在数码管上显示出来,而数码管显示的数字字符对应给 P0 的赋值,我们叫做数码管的真值表。我们来列一下我们这个电路图的数码管真值表,注意,这个真值表里显示的数字都不带小数点的,如表 5-7。
表 5-7 数码管真值表
大家可以把上边那个用数码管显示数字 1 程序中的 P0 的赋值随便修改成表 5-7 真值表中的数值,看看显示的数字的效果。
-
单片机
+关注
关注
6044文章
44632浏览量
639390 -
数码管
+关注
关注
32文章
1887浏览量
91492
原文标题:单片机数码管的8个段显示效果分析
文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
51单片机数码管显示
![51<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b><b class='flag-5'>显示</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
51单片机数码管静态显示
![51<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b>静态<b class='flag-5'>显示</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
51单片机数码管显示
![51<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b><b class='flag-5'>显示</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
单片机零基础入门(8-2)实战:在数码管中实现显示一个数字--在数码管指定位置显示一个数字----单片机数码管实战
![<b class='flag-5'>单片机</b>零基础入门(<b class='flag-5'>8</b>-2)实战:在<b class='flag-5'>数码管</b>中实现<b class='flag-5'>显示</b>一<b class='flag-5'>个</b>数字--在<b class='flag-5'>数码管</b>指定位置<b class='flag-5'>显示</b>一<b class='flag-5'>个</b>数字----<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b>实战](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论