第二课LED静态显示电路一、学习目标了解51单片机4个并行端口的输入、输出功能和用并行口设计LED数码显示器。二、相关知识LED显示器及其原理:LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见LED的管脚排列见图(a)。其中COM为公共点,根据内部发光二极管的接线形式,可分成共阴极型图(b)和共阳极型图(c)。LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh.显然共阳极和共阴极的字形码是不同的,其字形码见表5.2。LED数码管每段需10~20ma的驱动电流,可用TTL或CMOS器件驱动。字形码的控制输出可采用硬件译码方式,如采用BCD7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或74LS46、74LS47、CD4513(其阳极)也可用软件查表方式输出。字形码表如下。数码管的接口有静态接口和动态接口。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数据管,数码管的公共端按共阴或共阳分别接地或Vcc。这种接法占用接口多,如果PO口和P2口要用作数据线和地址线,仅用单片机的并行口就只能接二个数码管。也可以用串行接口的方法接多个数码管,使之静态显示.动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。三、实验任务1任务要求:在一个数码管循环显示0~9。实验原理与参考电路:实验参考程序:#includereg51.Hunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispcount;voiddelay02s(void){unsignedchari,j,k;for(i=20;i0;i--)for(j=20;j0;j--)for(k=248;k0;k--);}voidmain(void){while(1){for(dispcount=0;dispcount10;dispcount++){P0=table[dispcount];delay02s();}}}四、实验任务2任务要求:由按键控制,按一次键,显示数字加1。数码管可以显示0~99。参考电路:参考程序:#includereg51.HsbitP3_7=P3^7;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharCount;voiddelay10ms(void){unsignedchari,j;for(i=20;i0;i--)for(j=248;j0;j--);}voidmain(void){Count=0;P0=table[Count/10];P2=table[Count%10];while(1){if(P3_7==0){delay10ms();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);}}}}五、实验任务3任务要求:实现00~59的计数器。参考电路:实验程序:#includereg51.Hunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharSecond;voiddelay1s(void){unsignedchari,j,k;for(k=100;k0;k--)for(i=20;i0;i--)for(j=248;j0;j--);}voidmain(void){Second=0;P0=table[Second/10];P2=table[Second%10];while(1){delay1s();Second++;if(Second==60){Second=0;}P0=table[Second/10];P2=table[Second%10];}}