原理图:8 个数码管它的数据线并联接到JP5, 位控制由8 个PNP 型三级管驱动后由JP8 引出
相关原理: 数码管是怎样来显示 1,2,3,4 呢
数码管实际上是由7 个发光管组成 8 字形构成的,加上小数点就是 8个
我们分别把他命名为 A,B,C,D,E,F,G,H
搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D 这5 个段的发光管亮就可以了
也就是把B,E,H(小数点)不亮,其余全亮
根据硬件的接法我们编出以下程序
当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2
LOOP: CLR P2
7 ;选中最后的数码管 SETB P0
7 ;B 段不亮 SETB P0
5 ;小数点不亮 SETB P0
1 ;C 段不亮 CLR P0
2 ;其他都亮 CLR P0
3 CLR P0
4 CLR P0
6 CLR P0
0 JMP LOOP ;跳转到开始重新进行 END 把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2
也许你会说:显示1 个2 字就要10 多行程序,太麻烦了
显示数字2 则是 C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为 1(高电平)是灭
从高往低排列,(p0
0)写成二进制为 01111110, 把他转化为 16 进制则为A2H
我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了
有了这个表格上面显示一个 2 的程序则可简化为: LOOP: CLR P2
7 ;选中左边的数码管 MOV P0,#0A2H ;送数字 2 的代码到 P0 口 JMP LOOP ;跳转到开始重新进行 END 原理图中把所有数码管的 8 个笔划段 a-h 同名端连在一起,而每一个显示器的公共极 COM 是各自独立地受 I/O 线控制