文档介绍:单片机与键盘接口复习: LED 数码管的显示方式及接口 (一)显示方式□静态显示单片机一次输出显示后,一直保持显示结果,直到下一次送新的显示内容。优点:占用机时少、显示可靠缺点:使用硬件多、线路比较复杂、价格较高。□动态显示:单片机定时对显示器件扫描,显示器件分时工作。优点:使用硬件少、线路简单、价格便宜缺点:占用机时长 :静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管的公共端恒定接地(共阴极)或+5V (共阳极)。每个数码管的八个段控制引脚分别与一个八位 I/O 端口相连。只要 I/O 端口有显示字型码输出,数码管就显示给定字符,并保持不变,直到 I/O 口输出新的段码。静态显示时,较小的电流可获得较亮的亮度,占用 CPU 时间少,编程简单。缺点是占用 I/O 端口线多。 2 、动态显示动态显示是一种按位轮流点亮各位数码管的显示方式,即在某一时段,只让其中一位数码管“位选端”有效,并送出相应的字型显示编码。此时,其它位的数码管因“位选端”无效而都处于熄灭状态;下一时段按顺序选通另外一位数码管,并送出相应的字型显示编码,依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。这一过程称为动态扫描显示。动态显示举例:用 P1 口经 74LS245 缓冲驱动器接 LED 的数据端,提供显示码;用 P2 口的 6条线经 74LS04 反向器接 LED 控制口每一位,控制 LED 的亮和灭。例 1 六位数码管动态显示“ 012345 ”#include <> void delay50ms() { TH1=0x3c; // 置定时器初值,设为 50ms 定时 TL1=0xb0; TR1=1; // 启动定时器 1 while(!TF1); // 查询计数是否溢出,即定时到, TF1=1 TF1=0; // 50ms 定时到,定时器溢出标志位 TF1 清零} void main() //主函数{ unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92}; // 设置数字 0~5字型码 unsigned char i,w; TMOD=0x10; //设置定时器 1工作方式 1 while(1) { w=0x01; //位选码初值为 01H for(i=0;i<6;i++) { P2=~w; //位选码取反后送位控制口 P2 口 w<<=1; //位选码左移一位,选中下一位 LED P1=led[i]; //显示字型码送 P1 口 delay50ms(); //延时 50ms } } } 1、键盘接口原理 1)键盘输入的特点键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图 10-6 。硬件按键防抖按键在闭合和断开时,触点会存在抖动现象,时间为 5-10ms, 会影响其识别。常用防抖方法有硬件防抖和软件延时防抖。基本思想:检测到有键按下,键对应的行线为低,软件延时 10ms 后,行线如仍为低,则确认该行有键按下。软件消除按键的抖动当键松开时,行线变高,软件延时 10ms 后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期 t1和 t3的影响。