资源描述:
《《LED数码管显示》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、★知识目标:1.了解7段LED数码管的结构及其工作原理;2.掌握单片机对数码管的静态、动态显示控制方式;3.应用单片机进行计数显示控制的原理。★能力目标:1.能根据设计任务要求编制静、动态显示及计数的程序流程图;2.会设计多位数码管动态显示的驱动电路;3.会用keilc51软件对源程序进行编译调试及与Protues软件联调,实现电路仿真;项目4LED数码管显示任务1单键控制数码管显示的设计用一个数码管显示按键按动的次数,计数值从0-F循环计数。1.提出任务2.任务分析(1)硬件电路设计以8051单片机作为控制电路,按键连接至单片机的P1.4引脚,另一端
2、接地,P0口外接1个采用共阴极连接方式的数码管和上拉电阻,硬件电路原理图所示。任务1单按键控制数码管显示的设计任务1单按键控制数码管显示的设计3.数码管原理及封装图数码P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P0口hgfedcba十六进制0001111110X3F1000001100X062010110110X5b3010011110X4F4011001100X665011011010X6d6011111010X7d7000001110X078011111110X7f9011011110X6fA011101110X77B0111
3、11000X7cC001110010X39D010111100X5eE011110010X79F011100010X71共阴数码管显示真值表如果按键次数变量值等于F,则变量值清零,否则变量值加1,然后查表输出显示源程序#include#defineucharunsignedcharvoiddelay(uchar);sbitp14=P1^4;ucharcodedistable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7
4、1};main(){uchari=0;P0=0X00;while(1){while(p14);delay(2);if((p14==0)&&(i<0x0f))i++;elseif((p14==0)&&(i==0x0f))i=0;P0=distable[i];while(!p14);}}voiddelay(uchark){ucharx,y,z;for(x=k;x>0;x--)for(y=20;y>0;y--)for(z=250;z>0;z--);}任务1采用共阳数码管完成;用8051单片机及LED数码管实现对键盘键值的实现。当按下键盘中不同按键时,LED数
5、码管上显示不同的键值。(lesson3-lessonkey2seg)思考题:任务2多位数码管显示器的设计将数字1,2,3,4从左到右分别显示在4位数码管上1.提出任务2.任务分析(1)硬件电路设计以8051单片机作为控制电路,8051的I/O口控制每个数码管每一段的亮灭,如何连接?在计算机控制系统中,常利用n个LED显示器构成n位显示。通常把点亮LED某一段的控制称为段选,而把点亮LED某一位的控制称为位选或片选。根据LED显示器的段选线、位选线与控制端口的连接方式不同,LED显示器有静态显示与动态显示两种方式,下面以4个共阴极LED的组合为例进行说明
6、。1、静态显示方式2、动态显示方式◇知识链接1.静态显示方式结构特点:4个COM端连接在一起并接有效电平——无位选;每个LED的段选各自与一个8位并行I/O口相连——段选独立。工作特点:缺点是电路中占用I/O口资源多;优点是占用CPU机时少,显示稳定可靠适用:规模较大的实时控制系统。2.动态显示方式结构特点:4个LED显示器各自的段选线连在一起,与一个8位的I/O口相连;各自的COM端则由另一个I/O口进行位选。工作特点:优点是占用I/O资源少;缺点是需用软件程序不断地循环扫描定时刷新,因而占用了CPU的大多数机时。适用:小型测控系统3LED显示器接口
7、电路1.静态显示接口电路2.动态显示接口电路整个显示部分正常工作必须有:显示部分、驱动电路。必要的时候可以加上:锁存器、译码器。1).静态显示接口电路2).动态显示接口电路LED动态扫描流程图#include#defineucharunsignedcharvoiddelay(uchar);ucharcodedistable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchardisnum[]={1,2,3,4}
8、;uchari,k;main(){while(1){k=0x01;for(i=0;i<4;i+