7段数码管由8个发光二极管LED组成。7段数码管是一种习惯性叫法(忽略了小数点),分为共阴和共阳两种。
顾名思义,组成数码管的8个LED的阴极是连在一起的(记作com)。
如果com为低电平(接地,逻辑0),该数码管开启,8个LED灯的亮灭受其正端的a,b,c,d,e,f,g,dp控制;
如果com为高电平(逻辑1),该数码管关闭,无论其正端是正是负,8个LED灯的都不会亮。
比如想要显示数字2,那么a,b,d,e,g应该亮。一般a端口接单片机端口最低位(比如P20),dp接最高位比如(P27),那么显示2对应的端口值为P2 = 0x5B (二进制0101 1011)
char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0-9
char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};; //0-9
可以看到,一位的数码管需要9(8个控制+1个公共)端口才能正常工作,如果每个数码管独立,显示多个数字时会严重占用端口资源,因此在实际使用时,a,b,c,d,e,f,g,dp这8个公共端口是连在一起的,如图所示
由于各个位置显示的数字不可能一直一样,因此在实际工作时,各个数码管不是同时亮的,而是轮着亮(类似流水灯的工作模式)。当其速度足够快时,人员也感觉不到闪烁。
============================找指导老师布置任务吧==============================