仿真电路运行时,单个数字0~3显示在4位集成式数码管的相应位置上。通过设计调试,要进一步熟悉集成式数码管的内部构造与工作原理,为下一案例设计打下基础。案例电路及部分运行效果如图3-6所示。
图3-6 4只数码管滚动显示单个数字(含数码管、三级管实物引脚)
(一)集成式数码管简介
仿真电路中使用了4位集成式七段蓝色共阳数码管(7SEG-MPX4-CA-BLUE),CA表示共阳(Common Anode),若为CC则为共阴(Common Cathode),MPX4表示4位复用(Mutiptex)。
由于电路中所选用的是共阳数码管,从“纵向”看,任一数码管内A~G、DP各段的阳极连接在一起,4只数码管分别引出共阳极1,2,3,4。
从“横向”看,4只数码管共有4个A段,所有A段的阴极引脚并联在一起,B,C,D,E,F,G,DP阴极也分别“横向并联”,分别引出“横向并联”后的段引脚A~G、DP。
(二)显示程序设计
根据集成式数码管构造可知,任何时候发送的段码都会传送给所有数码管的各管段,管段是否被点亮决定于各数码管的共阳极引脚1~4是否连接高电平。如果它们同时连接高电平,则所发送的数字将同时显示在4位数码管上。各数码管要分别独立显示,显然不能让所有位引脚同时为高电平。程序运行过程中,任意时刻只有一只数码管位引脚(共阳极)连通V CC (+5V)。
为了提高显示驱动能力,仿真电路中引入三极管而不是直接使用端口连接数码管。4位集成式数码管共阳极分别与4只NPN三极管8050的射极e相连,集电极c接高电平,PC端口则通过三极管基极b控制数码管的共阳极是否接通V CC 。如果PC端口引脚输出高电平,它将使对应的三极管导通,从而导致对应的数码管位引脚也为高电平,从而具备显示条件。接下来,当连接段引脚的PB端口输出段码时,相应数字将显示在位引脚已连通V CC 的那只数码管上。
例如,要在最左边的数码管上显示数字,对于仿真电路中的共阳数码管,当RC0输出1,即PORTC=00000001时,三极管Q1饱和导通,最左边的数码管位引脚1连通V CC ,此时发送的数字将显示在最左边的数码管上。
主程序内的for循环通过PORTC=1<<i发送位码,当i取值0~3时,PORTC分别输出位码00000001、00000010、00000100、000001000,对应的第i只共阳数码管被选通,接着通过PORTB发送的段码SEG_CODE[i]将使数字i显示在第i只数码管上。for循环依次选通4位数码管之一并发送相应段码,将形成数字1,2,3,4在4位集成式数码管上的滚动显示效果。
① 重新修改代码,使单个数字从右向左滚动显示。
② 改用两组4位集成式共阳数码管,实现数字0~7的滚动显示。
③ 改用8位集成式共阴数码管滚动显示数字0~7。
④ 尝试改用7407驱动数码管,仍实现同样的显示效果。