静态数码管显示

静态数码管显示_第1张图片
右上称为共阴极连接 右下称为共阳极连接 左下每一个横杠都表示一个段 段已经标好名字了a b …
静态数码管显示_第2张图片
每端的连接对应着右边的图
静态数码管显示_第3张图片
最下面的数字叫做段码 这是共阴极连接 需要接地给到0 或低电平 段码使得a c d e f g 灯亮起 显示6
静态数码管显示_第4张图片

共阳极连接与之相反 这款单片机采用的是共阴极接法
静态数码管显示_第5张图片
多个数码管的连接 因为是共阴极连接 要使得dig3亮起 就要给8号引脚低电平 四个数码管的位权是共用的 在位权输入01100000 会在dig3数码管显示6 若也给9号引脚0 则dig2 和dig3同样显示6 这样节省了io口
这样只能显示相同数字 而要显示不同数码管显示不同数字要怎么做呢?
静态数码管显示_第6张图片
led6显示1
静态数码管显示_第7张图片
如何控制led1 led2 led3 显示低电位呢 通过控制io口p22 p23 p24 来控制y1
y2 y3… 给c b a 000 换算成十进制后就是 0 从而使得y0口为0 (低电位) led1 为0 (低电位) 其他led2 led3 led4 口均为1(高电位)
c b a 101 换算成十进制为 5 控制y5口为 0 (低电位)
从而可以控制 p22 p23 p24 (io口) 来控制 led1 led2 led3 led4 …
的电位
静态数码管显示_第8张图片
静态数码管显示_第9张图片
总结 :通过控制p22 p23 p24 选中led灯 1 2 3 4 5… 再给p01 p02 p03 …一段段码 使得数码管显示
开始写代码 (1)要让led6 显示数字6
静态数码管显示_第10张图片
要选中led6 y5 5转化为2进制 101 给p22 1 p23 0 p24 1 即选中了led6
静态数码管显示_第11张图片
要给p0口一段段码 led6显示6 要 a f g e d c 给高电位 即 10111110 最左边的p0 口也是同样的数据
但是是从下往上读 既是 01111101 转化成16进制是 0x7D
静态数码管显示_第12张图片
晶体数码管显示6
静态数码管显示_第13张图片
我们要写一个函数 只需要知道位置和数字即可在第几个数码管(led)的位置上显示什么数字 定位Location
数字 Number Location定位第几个数码管 Number 确定数码管上显示什么数字 第一个数码管对应case 1 由原理图知 都一个数码管为led8 (从左往右数)led8 对应y7 即要p2的段码为 111(二进制) p2-2 = 1 p2-3=1 p2-4=1
静态数码管显示_第14张图片
依次类推静态数码管显示_第15张图片
静态数码管显示_第16张图片
调用函数 Nixie(6,2) 6 定位了数码管第六个亮起 2 使得数码管显示2;

你可能感兴趣的:(单片机)