资源描述:
《C51单片机数码管》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3讲LED数码管显示计算机教研室宋文强HOT-51增强型开发板数码管接口共阴极数码管仅当段位接高电平,阴极接低电平时,相应位的LED才导通发光abcdefgbp共阳极数码管仅当段位接低电平,阳极接高电平时,相应位的LED才导通发光abcdefgbpVcc七段数码管的段位控制agdbcefdpdpgfedcba00111111七段数码管的段位控制agdbcefdpdpgfedcba00000110七段数码管的段位控制agdbcefdpdpgfedcba01011011七段数码管的段位控制agdbcefdpdpgfedcba00111111七段数码管的段位控制agdbcefdpdpgfedcba
2、01100110七段数码管的段位控制agdbcefdpdpgfedcba01101101七段数码管的段位控制agdbcefdpdpgfedcba01111101七段数码管的段位控制agdbcefdpdpgfedcba00000111七段数码管的段位控制agdbcefdpdpgfedcba01111111七段数码管的段位控制agdbcefdpdpgfedcba01100111七段数码管的段位控制agdbcefdpdpgfedcba01110111七段数码管的段位控制agdbcefdpdpgfedcba01111100七段数码管的段位控制agdbcefdpdpgfedcba00111001七段数码
3、管的段位控制agdbcefdpdpgfedcba01011110七段数码管的段位控制agdbcefdpdpgfedcba01111001七段数码管的段位控制agdbcefdpdpgfedcba01110001七段数码管与段位控制代码03FH106H25BH34FH466H56DH67DH707H87FH96FHA77Hb7CHC39Hd5EHE79HF71Habcdefg锁存器上升沿写入段位控制码锁存器下降沿锁存段位控制码3-8线译码器选择数码管选择数码管接数码管阴极74HC138是3-8线译码器,任何时候Y7~Y0只能有一个输出为“0”数码管的静态显示#includevoi
4、dMain(void){P2=0;//选择最左边的数码管P0=0x6d;//显示数字“5”}P2端口只有低三位可以用来选择数码管练习与思考练习:在最右边的数码管上显示数字“9”思考:在本电路中,按照静态显示方法,有没有可能让两个数码管同时显示相同的数字?74HC138是3-8线译码器,任何时候Y7~Y0只能有一个输出为“0”练习在8个LED数码管上,按从左到右的顺序,循环滚动显示数字“5”,每次滚动延时500ms数码管的滚动显示#includeunsignedcharLED;voidDelay(unsignedintmilisec)//延时1ms{unsignedinti,j
5、;for(i=milisec;i>0;i--)//双重for循环实现延时1msfor(j=110;j>0;j--);}voidMain(void){P0=0x6d;//显示数字“5”while(1){for(LED=0;LED<=7;LED++){P2=LED;//选择LED,实现滚动显示Delay(500);//延时500ms}}}观察对于上一个练习,逐步减少每次滚动的延时,直到减为2ms,观察到什么现象?数码管的动态显示任务:在8个LED上稳定地显示“01234567”分析:8个LED的对应段位是并联在一起的,只能通过控制阴极电位来选择允许哪个LED发光t1时刻允许LED0显示“0”t2时
6、刻允许LED1显示“1”……8个LED轮流显示,只要切换速度足够快,看上去就是8个LED都在稳定地显示数码管的动态显示(数据准备)#includeunsignedcharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodeLED[8]={0,1,2,3,4,5,6,7};voidDelay(unsignedintmilisec)//延时1ms{unsignedinti,j;for(i=milisec;i>0;i--)for(j=110;j>0;j--);}数码管的动
7、态显示(主函数)voidMain(void){unsignedchari=0;while(1){P0=table[i];//取一个数的段位码P2=LED[i];//点亮一个数码管Delay(2);//延时2msi++;//移位if(i==8)i=0;//重新开始}}定义数组unsignedcharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0