目标: 数码管显示个数字
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管也称为LED数码管,是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
LED数码管根据LED的不同接法可以分为2类:共阴数码管和共阳数码管。
左边是共阴式,二极管阴极并联连接到地,想要二极管点亮就要给阳极高电平,低处是高字节
右边是共阳式,二极管阳极并联接到电源,想要二极管点亮就要给阴极低电平,低处是高字节
再来看看最左边的数码管,上面的“笔画”都标了字母,是顺时针标的,那个dp是个小数点。
共阴数码管码表:
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00,
0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
0011 1111 , 0000 0110 , 0101 1010,.........--->二进制(高字节 低字节)
共阳数码管码表
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92 , 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xFF
0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
1100 0000 , 1111 1001 , 1010 0101............. --->二进制(高字节 低字节)
数码管模块电路:
我们用 74HC245和 74LS138分别来控制数码管的 段选和 位选,那什么是段选和位选?
段选: 是用来控制数码管那构成数字的一段一段的,来发送数字
位选: 是来选择哪个数码管亮的,如图有8个数码管可以任意选择
代码:
LSA, LSB, LSC是 74LS138的输入端下篇会讲到。现在只要知道000是让第一个亮就ok
code list是个数组,里面是数字,code可写可不写 ,code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC,因为C语言中没办法详细描述存入的是ROM还是RAM(数据存储器)所以在软件中添加了这一个语句起到代替汇编指令的作用对应的还有data是存入RAM 的意思。code区存储在什么介质上并不重要,像以前的计算机程序存储在卡片上,code区也可以放在ROM里面,也可以放在RAM里面,也 可以放在flash里面
P0控制数码管的段选,所以往P0口输送数据0x3f(数字0)