单片机应用系统的接口设计gai(共190张PPT).pptx

上传人(卖家):晟晟文业 文档编号:4143038 上传时间:2022-11-14 格式:PPTX 页数:191 大小:4.27MB
下载 相关 举报
单片机应用系统的接口设计gai(共190张PPT).pptx_第1页
第1页 / 共191页
单片机应用系统的接口设计gai(共190张PPT).pptx_第2页
第2页 / 共191页
单片机应用系统的接口设计gai(共190张PPT).pptx_第3页
第3页 / 共191页
单片机应用系统的接口设计gai(共190张PPT).pptx_第4页
第4页 / 共191页
单片机应用系统的接口设计gai(共190张PPT).pptx_第5页
第5页 / 共191页
点击查看更多>>
资源描述

1、单片机应用系统的接口设计gai(共190张PPT)学习目标学习目标 掌握单片机最小系统设计掌握单片机最小系统设计 掌握单片机外扩存储器方法掌握单片机外扩存储器方法 掌握单片机接口技术掌握单片机接口技术 掌握单片机中断及定时器应用掌握单片机中断及定时器应用 了解模数、串口通信了解模数、串口通信 3.1最小系统最小系统 3.2总线及接口扩展总线及接口扩展 3.3内存扩展设计技术内存扩展设计技术 3.4 LED、数码显示设计、数码显示设计 3.5 键盘接口技术键盘接口技术 3.6 中断、定时接口技术中断、定时接口技术 3.7数模(数模(D/A)转换接口设计)转换接口设计 3.8模数(模数(A/D)转

2、换接口设计)转换接口设计 3.9串行通信接口设计串行通信接口设计 3.10 常见问题常见问题主要内容主要内容3.1最小系统最小系统 什么是单片机最小系统?什么是单片机最小系统?最小系统是指单片机运行的最基本的硬件,是单片机正常工作的基本保障。为什么要做最小系统?为什么要做最小系统?最小系统主要用来判断系统是否可完成正常的启动与运行。MCS51单片机最小系统电路除电源外,主要由三大块组成:单片机最小系统电路除电源外,主要由三大块组成:复复位电路位电路、时钟电路时钟电路和和单片机单片机,如图,如图3.1所示。所示。图图3.1 MCS-513.1 MCS-51最小系统最小系统复位电路复位电路 单片机

3、系统是由硬件和软件构成的,软单片机系统是由硬件和软件构成的,软件是由程序组成的。程序则由系列指令件是由程序组成的。程序则由系列指令构成,正常情况下,希望系统运行时是构成,正常情况下,希望系统运行时是从程序的固定位置(入口处)开始执行从程序的固定位置(入口处)开始执行,复位的目的就是保证程序从入口处运,复位的目的就是保证程序从入口处运行,若不能保证复位要求,程序则很可行,若不能保证复位要求,程序则很可能不从规定处执行,会造成意想不到的能不从规定处执行,会造成意想不到的问题,如问题,如“死机死机”、“跑飞跑飞”。系统为什么要用复位电路?系统为什么要用复位电路?单片机在启动时都需要复位,以使单片机在

4、启动时都需要复位,以使CPU及系及系统各部件处于确定的初始状态,并从初态开统各部件处于确定的初始状态,并从初态开始工作。当系统处于正常工作状态时,且振始工作。当系统处于正常工作状态时,且振荡器稳定后,从荡器稳定后,从单片机的复位引脚单片机的复位引脚RST输入输入一个一个高电平高电平并并维持维持2个机器周期个机器周期(24个振荡周个振荡周期期)以上,则以上,则CPU就可以响应并将系统复位。就可以响应并将系统复位。单片机系统基本的复位方式有:单片机系统基本的复位方式有:上电复位上电复位和和手动按钮复位手动按钮复位(a a)上电复位上电复位 (b b)手动按钮复位手动按钮复位 图图3.2 3.2 复

5、位电路复位电路说明:复位电路中的器件取值可以根据所使用的时钟电路频说明:复位电路中的器件取值可以根据所使用的时钟电路频率,满足高电平大于两个机器周期(率,满足高电平大于两个机器周期(24个振荡周期)。图上个振荡周期)。图上给出的值是在给出的值是在6MHz晶振状态下,单片机复位电路的典型值。晶振状态下,单片机复位电路的典型值。时钟、振荡电路时钟、振荡电路 单片机时钟电路是用来配合外部晶振产生单片机工作所需的时钟信号。该电路为单片机提供运行时钟,是控制单片机运行速度的节拍。如果运行时钟为0脉冲,则单片机不工作;若超出单片机的正常工作频率则会使单片机超负荷运行,直至导致芯片发烫、烧毁。单片机时钟电路

6、有内部时钟内部时钟和外部时钟外部时钟电路两种。单片机时钟电路的作用是什么?单片机时钟电路的作用是什么?3.2总线及接口扩展总线及接口扩展 计算机总线是什么?计算机总线是什么?总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。计算机总线传输的信号是电压还是电流信号?计算机总线传输的信号是电压还是电流信号?一般情况下传输的信号是以电压形式出现的。三总线概念三总线概念 按照计算机所传输的信息种类,计算机的总按照计算机所传输的信息种类,计算机的总线可以划分为线可以划分为数据总线数据总线DB、地址总线地址总线AB和和控制总线控制总线CB,分别用来传输数据、数据地址,

7、分别用来传输数据、数据地址和控制信号。和控制信号。图图3.3 MCS51单片机总线引脚结构单片机总线引脚结构总线接口常用芯片总线接口常用芯片 74LS373锁存器锁存器8D锁存器锁存器8输入:输入:1D8D8输出:输出:1O8O输入允许端:输入允许端:OE(1)输出预选端:输出预选端:G(11)74LS373 电平触发,锁存缓冲电平触发,锁存缓冲74LS374 上升沿触发上升沿触发74LS273 无三态门,用于不需三态场合无三态门,用于不需三态场合74LS138 3-8 译码器译码器74LS244 8路单向数据缓冲器路单向数据缓冲器74LS245 8路双向数据缓冲器路双向数据缓冲器缓冲器:无锁

8、存功能,在外设和缓冲器:无锁存功能,在外设和CPU之间起缓冲之间起缓冲 驱动和隔离作用。总线缓冲器具有三态功能。驱动和隔离作用。总线缓冲器具有三态功能。锁存器:除具有缓冲功能外还有数据锁存记忆功能。锁存器:除具有缓冲功能外还有数据锁存记忆功能。图图3.4 74LS138管脚图管脚图74LS138真值表LLLLLLLCAB74138 功能简表 74LS373的真值表H为高电平,为高电平,L为低电平,为低电平,Q0为原状态,为原状态,Z为高阻抗,为高阻抗,为任意值。为任意值。输出允许有效低电平:输出允许有效低电平:LE为高时输出随输入;为高时输出随输入;LE为低时,输出不变;为低时,输出不变;74

9、LS373锁存器主要用于锁存信息。锁存器主要用于锁存信息。常用的锁存器还有常用的锁存器还有74LS374,573,574,Intel 8282和和8283等等图3.5 74LS373D7D0为三态门输入端;为三态门输入端;O7O0为三态门输出端;为三态门输出端;GND为接地端;为接地端;Vcc为电源端;为电源端;OE 为三态门使能端,为三态门使能端,OE=0,三态门正常输出,三态门正常输出,OE=1,三,三态门输出高阻态;态门输出高阻态;LE为为8位锁位锁存器的控制端,当存器的控制端,当LE=1,则,则输出跟随输入(即锁存器透输出跟随输入(即锁存器透明),当明),当LE=0,则输出保持,则输出

10、保持不变,即将不变,即将D7D0的状态存的状态存入入O7O0。表3.2 74LS373的真值表表中:H为高电平,L为低电平,Q0为原状态,Z为高阻抗,为任意值。Dn为输入端;On为输出端;LE为为8位锁存器的控制端,位锁存器的控制端,当当LE=1,则输出跟随输入(即锁存器透明);,则输出跟随输入(即锁存器透明);当当LE=0,则输出保持不变,则输出保持不变74LS373是常用的地址锁存器芯片,共有是常用的地址锁存器芯片,共有20个引脚个引脚。它实质是一个是带三态缓冲输出的它实质是一个是带三态缓冲输出的8D触发器触发器,在单片机,在单片机系统中为了扩展外部存储器,通常需要一块系统中为了扩展外部存

11、储器,通常需要一块74ls373芯片。芯片。74LS245是常用双向三态总线缓冲、驱动器,可双向传输数据,共有20个引脚个引脚。图3.6表3.3 74LS245真值表允许端/OE与方向端DIR 共同控制8路A1A8和8路B1B8满足表1.3 逻辑。发光二极管n发光二极管:单向导电性,通过发光二极管:单向导电性,通过5mA左右电流即可发光,电流越大,亮度越强,但若电流过大会烧毁左右电流即可发光,电流越大,亮度越强,但若电流过大会烧毁二极管,一般控制在二极管,一般控制在320mA。n工作电压:工作电压:n红色发光二极管红色发光二极管1.7-2.5V绿色发光二极管绿色发光二极管2.0-2.4V黄色发

12、光二极管黄色发光二极管1.9-2.4V蓝蓝/白色发光二极管白色发光二极管3.0-3.8V n限流电阻n二极管串联电阻的目的是为了防止发光二极管和二极管串联电阻的目的是为了防止发光二极管和P1.7引脚流过的电流过大,烧毁二极管或单片引脚流过的电流过大,烧毁二极管或单片机,所以该电阻也称为机,所以该电阻也称为“限流电阻限流电阻”。n限流电阻的选择:限流电阻的选择:n假设电源电压为假设电源电压为VCC,发光二极管的导通压降为,发光二极管的导通压降为VDD,导通时流过二极管的电流为,导通时流过二极管的电流为I,则限流,则限流电阻电阻R为:为:nVCC-VDD=IR写地址PO锁存低地址的时序Dn为输入端

13、;On为输出;LE为为8位锁存器的控制端,位锁存器的控制端,当当LE=1,则输出跟随输入,则输出跟随输入(即锁存器透明);(即锁存器透明);当当LE=0,则输出保持不变,则输出保持不变ALE、WR由由CPU自动产生自动产生;可用可用wr接接138经过控制的经过控制的le控制转移数据;控制转移数据;1、wr控制le的过程;2、ale控制le的过程;3、wr的动态变化;在P0输出数据之后有 跳变,有下降的过程;结合54页的时序图 可以通过wr控制74138再控制7404输出信号到74373最终控制数据的锁存;4、p0口输出低地址的过程没有被锁存;典型电路典型电路图图3.7通过通过74LS245扩展

14、单片机的扩展单片机的P0口口典型电路典型电路1-A1-B11-B22-A2-B2-C2-D1-C11-C2地址为:地址为:OXC000地址为:地址为:OXC8001-B1,1-B2的的LE口名称改成口名称改成LEDC000,和和LEDC800;2-D作相应改动作相应改动1为为P0口出来的,口出来的,2为为p2口出来的口出来的;按照;按照abcd的流向走的流向走此例中此例中373锁存的是数据锁存的是数据2-D2-A至至2-B 至至2-C(需要辅(需要辅助单片机的助单片机的WR【低有效】信号控制【低有效】信号控制138);至);至2-D输出控制信号;输出控制信号;1-A,1-B1,1-C1在在2-

15、D的控制下的控制下1-B1的的LE为高为高输出信号输出信号再为低锁存信号再为低锁存信号;1-A,1-B2,1-C2类似;类似;地址为:地址为:OXC000地址为:地址为:OXC8001-B1,1-B2的的LE口名称改成口名称改成LEDC000,和和LEDC800;2-D作相应改动作相应改动所谓外部地址指所谓外部地址指P2,P0口输出相应值之后,能影响某些器件使之工作在锁存、口输出相应值之后,能影响某些器件使之工作在锁存、译码、流向变、公共端电压变化等时间上变化的状态;译码、流向变、公共端电压变化等时间上变化的状态;1-b1的的le为高时,为高时,wr为低为低1-b1上恰为数据;上恰为数据;C语

16、言程序清单:语言程序清单:#include#include#define uchar unsigned char#define uint unsigned int void Delay(uint t)uint i=1141;for(;t0;t-)for(;i0;i-);/for(i=1141;i0;i-)void main()uchar xdata*led0=0 xc000;uchar xdata*led1=0 xc800;/定义两个指针,并给指针赋值uchar i=0 x01,j=0;*led0=0 xff;/置为高电平;*led1=0 xff;/置为高电平;while(1)/循环for(j

17、=0;j8;j+)_nop_();*led0=i;/为按位取反;Delay(5000);i=(i7);/为左移;|为按位或 /1111,1100 和0000,0001 相或得1111,1101;*led0=0 xff;for(j=0;j8;j+)_nop_();*led1=i;Delay(5000);i=(i7);/0;j-)数据总线数据总线(Data Bus,DB)由P0口提供,其宽度为一个字节(8位)。控制总线控制总线(Control Bus,CB)是单片机发出的以控制片外ROM、RAM和I/O口读/写操作的一组控制线。控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展所

18、用控制线包括WR,RD,PSEN,EA 和ALE。图3.8 单片机三总线示意图2、扩展能力、扩展能力 MCS51单片机地址线为16位,因此在片外可扩展的存储器最大容量为64KByte,地址为0 x00 xFFFF。由于对片外数据存储器和程序存储器的访问使用不同的指令及控制信号,所以允许两者地址重合,即对于8051系列单片机来说,片外可扩展的程序存储器与数据存储器的最大容量均为64KB。片外数据存储器地址为0 x00 xFFFF。当片内程序存储器与片外程序存储器的访问使用相同的操作指令,对两者的选择则靠系统控制线来实现。当EA=0时,选择片外程序存储器,即无论片内有无程序存储器,片外程序存储器的

19、地址可从0 x0开始进行编址。当EA=1时,选片内程序存储器,若片内程序存储器容量为4KByte,则其地址为0 x00 x0FFF,片外程序存储器地址只能从0 x1000开始编址。(3)扩展的实现)扩展的实现 数据总线数据总线以P0口作8位数据的总线。数据总线的数据流是双向的,单片机有入和出。地址总线地址总线以P0口的低8位地址加上P2的高8位地址就可以形成16位的地址总线,达到64KByte的寻址能力。地址总线的数据流是单片机发出的,是单向的。控制信号总线控制信号总线PSENEAWRRDALEALE:地址锁存信号,用以实现对低:地址锁存信号,用以实现对低8 8位地址的锁存。位地址的锁存。:片

20、外程序存储器选通信号。:片外程序存储器选通信号。:程序存储器选择信号。为低电平时,访问外部程序:程序存储器选择信号。为低电平时,访问外部程序存储器;为高电平时,访问内部程序存储器。存储器;为高电平时,访问内部程序存储器。:片外数据存储器写控制信号。:片外数据存储器写控制信号。:片外数据存储器读控制信号。:片外数据存储器读控制信号。总线驱动总线驱动 在单片机应用系统中,扩展的三总线上挂接很多负在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、载,如存储器、并行接口、A/D接口、显示接口等,接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接但总线接口的负载能力有限,

21、因此常常需要通过连接总线驱动器进行总线驱动。总线驱动器进行总线驱动。总线驱动器对于单片机的总线驱动器对于单片机的I/O口只相当于增加了一个口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。载的波动变化起隔离作用。在对在对TTL负载驱动时,只需考虑驱动电流的大小。负载驱动时,只需考虑驱动电流的大小。在对在对MOS负载驱动时,负载驱动时,MOS负载的输入电流很小,负载的输入电流很小,更多地要考虑对分布电容的电流驱动。更多地要考虑对分布电容的电流驱动。数据总线是双向的,其驱动器也要选用双向的,如74LS245

22、。74LS245也是三态的,有一个方向控制端DIR。DIR=1时输出(AnBn),DIR=0时输入(AnBn)。系统总线中地址总线是单向的,因此驱动器可以选用单向的,如74LS244,还带有三态控制,能实现总线缓冲和隔离。4、典型案例、典型案例图图3.9 3.9 简单简单I/OI/O接口扩展接口扩展 C语言程序清单:语言程序清单:#include voidmain()unsigned char data tmp1,tmp2=0Xff;unsigned char xdata *pt1;pt1=0 xfeff;/给指针赋地址值0 xfeffwhile(1)/循环 tmp1=*pt1;/从74HC2

23、45读入键盘数据 if(tmp1!=tmp2)/判断输入改变时,*pt1=tmp1;/从74HC373输出LED显示数据 tmp2=tmp1;/下一次的比较是对按键变化的比/较,所以需要将更新后的按键值最为下一次的比较依据;典型应用典型应用 图图3.11 3.11 存储器扩展存储器扩展3.4 LED、数码显示设计、数码显示设计 将系统正在运行的状态告诉操作者,需要将系统正在运行的状态告诉操作者,需要显示;操作者需要将控制的信息输入到系显示;操作者需要将控制的信息输入到系统,输入的信息成功情况需要显示。统,输入的信息成功情况需要显示。常用的显示方式有:常用的显示方式有:LED彩灯显示、数码彩灯显

24、示、数码管显示、液晶显示。管显示、液晶显示。为什么需要显示?有哪些显示方式?为什么需要显示?有哪些显示方式?显示显示 图图3.12 13.12 1只彩灯闪烁显示电路只彩灯闪烁显示电路#include#define uchar unsigned char sbit P1_0=P10;void delay05()uchar i,j,k;for(i=5;i0;i-)for(j=200;j0;j-)for(k=250;k0;k-);void main()while(1)P1_0=0;delay05();P1_0=1;delay05();图图3.13 83.13 8只彩灯循环显示电路只彩灯循环显示电路

25、参考程序:参考程序:#include#include#define uchar unsigned char#define uint unsigned int void Delay(uint t)/延时函数uint i=1141;for(;t0;t-)for(;i0;i-);void main()uchar i=0,j=0 x01;while(1)for(i=0;i8;i+)/循环8次P1=j;/将j按位取反从P1输出Delay(5000);j=(j7);数码管的结构与原理数码管的结构与原理 LED数码管的结构如图3.14所示,图中a-g七个笔段及小数点dp均为发光二极管。如果将所有发光二极管的

26、阳极连在一起作为公共端,称为共阳数码管共阳数码管;如果将所有发光二极管的阴极连在一起作为公共端,称为共阴数码共阴数码管。管。(a)共阴极;(b)共阳极;(c)管脚配置图3.14 LED显示器共阳数码管共阳数码管的所有发光二极管的阳极均接高电平阳极均接高电平,所以只要a-g及dp引脚输入低电平引脚输入低电平,则相应笔段的发光二极管发光发光二极管发光;共阴极数码管共阴极数码管的所有发光二极管的阴极均接地阴极均接地,所以只要a-g及dp引脚输入高电平引脚输入高电平,则相应笔段的发光二极管发光。表3.4 LED显示器的字段码数码管静态显示数码管静态显示 在静态方式下,共阴极或共阳极公共端连接共阴极或共

27、阳极公共端连接在一起接地或在一起接地或+5V;每一位显示器的字段控制线是独立的。当显示某一字符时,该位的各字字段线和字位线的电平不变,也就是各字段的亮灭状态不变。静态显示方式编程简单,但占用占用I/O口线多,适合于显示器位数较口线多,适合于显示器位数较少的场合少的场合。GND/+5VGND/+5VGND/+5VGND/+5VGND/+5VI/O(1)I/O(2)I/O(3)I/O(4)图图3.15 四位静态四位静态LED显示器电路显示器电路静态数码显示每一个数码管的显示笔画都要占用每一个数码管的显示笔画都要占用单独单独的具有锁存功能的的具有锁存功能的I/O接口。即需接口。即需N8个个I/O控制

28、线控制线 静态显示数码管相应笔段一直处于点亮状态静态显示数码管相应笔段一直处于点亮状态,因此功耗大,而且占用硬件资源多,几乎,因此功耗大,而且占用硬件资源多,几乎只能用在显示位数极少的场合。只能用在显示位数极少的场合。优点:优点:LED亮度高,可用在室外显示场合。亮度高,可用在室外显示场合。程序工作量小。程序工作量小。图图3.16 3.16 静态显示典型电路静态显示典型电路所谓外部地址指所谓外部地址指P2,P0口输出相应值之后,能影响某些器件使之工作在锁存、口输出相应值之后,能影响某些器件使之工作在锁存、译码、流向变、公共端电压变化等时间上变化的状态;译码、流向变、公共端电压变化等时间上变化的

29、状态;数码管动态显示数码管动态显示 动态显示的硬件特点是将所有数码管的同名所有数码管的同名段选线并联在一起段选线并联在一起,通过控制位选信号来控制数码管的点亮,如图3.15所示。数码管采用动态扫描显示,所谓动态扫描显示就是逐逐位轮流点亮每位显示器位轮流点亮每位显示器,即每个数码管的位选被轮流选中,多个数码管共用一组段选,字形码仅对位选被选中的数码管有效。图图3.17 八位八位LED动态显示器电路动态显示器电路 I/O(1)DDDDDDDDI/O(2)75643210动态数码显示动态数码显示所有数码管的所有数码管的8个笔画段个笔画段同名端连同名端连在一起,在一起,公共端公共端各自独立。即需各自独

30、立。即需N+8个个I/O控制线控制线 动态显示是多只数码管共享段码线,通过位选动态显示是多只数码管共享段码线,通过位选线(公共端)逐位逐位线(公共端)逐位逐位分时分时进行扫描显示进行扫描显示(任时刻只有(任时刻只有一只一只点亮)。其优点是占用点亮)。其优点是占用硬件资源少,功耗小。软件工作量大硬件资源少,功耗小。软件工作量大.必须注意:扫描周期必须控制在视觉停必须注意:扫描周期必须控制在视觉停顿时间内,一般在顿时间内,一般在20ms以内,否则会出现以内,否则会出现闪烁或跳动现象。闪烁或跳动现象。最为广泛的一种显示方式。最为广泛的一种显示方式。动态显示技术动态显示技术表3.5 8位动态共阴LED

31、显示状态(例:0120)图图3.18 3.18 动态显示典型电路动态显示典型电路所谓外部地址指所谓外部地址指P2,P0口输出相应值之后,能影响某些器件使之工作在锁存、口输出相应值之后,能影响某些器件使之工作在锁存、译码、流向变、公共端电压变化等时间上变化的状态;译码、流向变、公共端电压变化等时间上变化的状态;典型应用典型应用 任务任务:用:用8位数码动态显示毛泽东诞辰年日期位数码动态显示毛泽东诞辰年日期“18931226”。单片机的单片机的P0、P3口分别通过口分别通过74LS245缓冲输缓冲输出,进而分别控制出,进而分别控制8位共阴数码管的段选和位位共阴数码管的段选和位选。选。图图3.19

32、83.19 8位数码动态显示案例位数码动态显示案例参考程序:参考程序:#include /包含51单片机的特殊定义 code unsigned char dis_d=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴极数码管字段码 code unsigned char dis_w=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/共阴极数码管位码void Delay()/延时 unsigned char mun=200;while(mun-);void main()/主程

33、序 while(1)P3=dis_w0;P0=dis_d1;Delay();P0=0 x00;/第一个数码管显示 1P3=dis_w1;P0=dis_d8;Delay();P0=0 x00;/第二个数码管显示 8P3=dis_w2;P0=dis_d9;Delay();P0=0 x00;/第三个数码管显示 9P3=dis_w3;P0=dis_d3;Delay();P0=0 x00;/第四个数码管显示 3P3=dis_w4;P0=dis_d1;Delay();P0=0 x00;/第五个数码管显示 1P3=dis_w5;P0=dis_d2;Delay();P0=0 x00;/第六个数码管显示 2P3

34、=dis_w6;P0=dis_d2;Delay();P0=0 x00;/第七个数码管显示 2P3=dis_w7;P0=dis_d6;Delay();P0=0 x00;/第八个数码管显示 6拓展提高拓展提高 动态数码管显示拖尾、重影如何解决?动态数码管显示拖尾、重影如何解决?数码管动态显示可能会出现拖尾、重影的现象,解决的方法是:如果是先送位选信号,再送段选信号,则在换位时,将段选信号清除;如果是先送段选信号后送位选信号,则在换段时,将位选信号清除。3.5 键盘接口技术键盘接口技术 按键有什么作用?如何识别按键是否按下按键有什么作用?如何识别按键是否按下?当人类将设置等数据信息传入计算机系统时,

35、当人类将设置等数据信息传入计算机系统时,通常会采用键盘完成。通常会采用键盘完成。单片机对于键盘的识别是通过读取键盘对应的高单片机对于键盘的识别是通过读取键盘对应的高低电平信号来完成的。低电平信号来完成的。概述概述 键盘接口的主要功能是对键盘上所按的键进行识别。使用专用的硬件进行识别的键盘称为编码键盘编码键盘,使用软件进行识别的键盘称为非编码键盘非编码键盘,它具有结构简单、使用灵活等特点,因此被广泛应用于单片机系统。图图3.20 按键触点的机械抖动过程按键触点的机械抖动过程 图图3.19 按键输入电路按键输入电路 软件去抖动软件去抖动前沿抖动稳定后沿抖动 按键抖动信号波形键盘消抖键盘消抖即检测出

36、键闭合后执行一个即检测出键闭合后执行一个延延时程序时程序,产生产生5ms10ms的延的延时时,让前沿抖动消失后再一次让前沿抖动消失后再一次检测键的状态检测键的状态,如果仍保持闭合如果仍保持闭合状态电平状态电平,则确认为真正有键则确认为真正有键按下。按下。键盘消抖键盘消抖 硬件消抖硬件消抖:如RC滤波电路2RV5+1R1V2V图 5-3 滤波延时消抖电路SiVoV(D i)(D i)键盘消抖键盘消抖 硬件消抖硬件消抖:如双稳态电路:RS触发器为常用的硬件消抖电路。CD独立键盘独立键盘 独立键盘的每一个按键的电路是独立的,其中独立键盘的每一个按键的电路是独立的,其中每个按键每个按键都独立地占用一条

37、都独立地占用一条I/O数据线数据线,按键输入均采用低电平,按键输入均采用低电平有效。上拉电阻保证了按键断开时,有效。上拉电阻保证了按键断开时,I/O口线有确定的口线有确定的高电平。当高电平。当I/O口线内部有上拉电阻时,外电路可不接口线内部有上拉电阻时,外电路可不接上拉电阻。对于独立式键盘,一般采取逐条上拉电阻。对于独立式键盘,一般采取逐条I/O口查口查询的方式来确定闭合键的位置,即先逐位查询每根询的方式来确定闭合键的位置,即先逐位查询每根I/O口线的输入状态,如某一根口线的输入状态,如某一根I/O口线输入为低电平,口线输入为低电平,则可确认该则可确认该I/O口线所对应的按键已按下,然后,再转

38、口线所对应的按键已按下,然后,再转向该键的功能处理程序。典型电路如图向该键的功能处理程序。典型电路如图3.22所示。所示。图图3.24 3.24 独立按键典型电路独立按键典型电路 程序:程序:#includeunsigned char duan8=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f;unsigned char wei8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;void delay(void)unsigned i,j;for(i=0;i20;i+)for(j=0;j200;j+);

39、void main()unsigned char i,j;while(1)if(j=P1)!=0 xff)/检测是否有按键被按下 delay();/延时消抖 if(j=P1)!=0 xff)/再次检测按键是否被按下 for(i=0;i8;i+)/显示 if(j=weii)P0=duani;else P0=0;行列(矩阵)键盘行列(矩阵)键盘 行列式键盘行列式键盘又叫矩阵式键盘矩阵式键盘,行列式结构的键盘显然比独立式键盘要复杂一些,识别也要复杂一些。它将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上按键设置在行线和列线的交叉点上,每每一个按键占用两条一个按键占用两条I

40、/O数据线数据线。如图3.23所示,行列式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。行列式行列式键盘结构键盘结构每一个按键的电路是由行列组成,每一个按键占用每一个按键的电路是由行列组成,每一个按键占用两条两条I/O数据线。数据线。当键盘按下时,相应的行列线呈现当键盘按下时,相应的行列线呈现短路短路。1、行线输出高电平、列线输出低电平;检测行线有电平变化、行线输出高电平、列线输出低电平;检测行线有电平变化表示有按键按下,否则没有!表

41、示有按键按下,否则没有!2、依次使列线中某一列为低电平,其余为高,检测行线电平变化、依次使列线中某一列为低电平,其余为高,检测行线电平变化的那一行电压是否为低,为低就是此行列交界处的按键被按下!的那一行电压是否为低,为低就是此行列交界处的按键被按下!图3.25 矩阵键盘典型电路 程序程序#include#define uchar unsigned charuchar code dispcode=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x40

42、;/0-9字符码字符码表表 uchar code keytab=0 x81,0 x41,0 x21,0 x11,0 x82,0 x42,0 x22,0 x12,0 x84,0 x44,0 x24,0 x14,0 x88,0 x48,0 x28,0 x18;/闭合键码表闭合键码表uchar code disbit=0 x40,0 x80;/两位数码位码表两位数码位码表uchar disbuf=0,0;/两位数码段码缓冲单元两位数码段码缓冲单元void delay5ms();/延时,用定时器完成延时,用定时器完成bit Keytest();/总判有无按键总判有无按键void display(uch

43、ar x);/数码显示程序数码显示程序uchar GetKeyNum();/获得具体键值获得具体键值 程序见书P70典型应用典型应用 设计一个09计数器,计数按键每按下一次,计数显示加1,09循环计数,清除按键按下则显示清零。P73页程序计数键计数键清除键清除键3.6 中断、定时接口技术中断、定时接口技术 日常中断的例子日常中断的例子 你正在专心看书,突然 铃响,于是你记下正在看的书的页数,去接 ,接完 后再回来接着看书。时间时间 计算机中的中断概念计算机中的中断概念定义定义:中断中断是指由于某种是指由于某种随机随机事件的发事件的发生,计算机生,计算机暂停暂停现行程序的运行,转去现行程序的运行

44、,转去执行另一程序执行另一程序(处理发生的事件处理发生的事件),处理完,处理完毕后又自动返回原来程序暂停的位置毕后又自动返回原来程序暂停的位置继继续续运行。运行。将能引起中断的将能引起中断的事件事件称为称为中断源中断源。CPU现行运行的现行运行的程序程序称为称为主程序主程序。处理随机事件的处理随机事件的程序程序称为称为中断服务子程中断服务子程序序。处理突发事件,单片机有强大处理功能,它会自动暂停正在处理的事件,转去处理突发事件,突发事件处理完之后,继续处理暂停的事件。中断技术的优点中断技术的优点 提高工作效率提高工作效率 CPUCPU可以同多个外设可以同多个外设“同时同时”工作工作 实时处理实

45、时处理 CPUCPU及时处理随机事件及时处理随机事件(智能技术智能技术)故障处理故障处理 电源掉电、存储出错、运算溢出电源掉电、存储出错、运算溢出 单片机中断系统的内部结构单片机中断系统的内部结构图3.27 单片机的中断系统结构0INT1INT表3.6 中断源及中断向量入口地址中断服务函数的编写方法中断服务函数的编写方法void 函数名函数名 interrupt n using m m、n 为正整数,不允许使用表达式。n取值范围04,对应该中断源的编号。通常对普通8051系列单片机来说,外部中断0、定时器0、外部中断1、定时器1、串口的中断源编号依次为0、1、2、3、4。m取值范围04。例如:

46、void serial_service interrupt 4 using 2 ;Keil C51编译器用特定的编译器指令分配寄存器组。当前工作寄存器由编译器用特定的编译器指令分配寄存器组。当前工作寄存器由using指定,指定,“using”后的变量为一个后的变量为一个03的整数。的整数。“using”只允许用于中断函数,它在中断函数入口处将当前寄存器组保留,只允许用于中断函数,它在中断函数入口处将当前寄存器组保留,并在中断程序中使用指定的寄存器组,在函数退出前恢复原寄存器组。并在中断程序中使用指定的寄存器组,在函数退出前恢复原寄存器组。编写中断函数时应遵循下列规则编写中断函数时应遵循下列规则

47、:不能进行参数传递,如果中断过程包括任何参数声明,编译器将产生一个错误信息。无返回值,如果想定义一个返回值将产生错误,但是,如果返回整型值编译器将不产生错误信息,因为整型值是默认值,编译器不能清楚识别。在任何情况下不能直接调用中断函数,否则编译器会产生错误。在中断函数中调用的函数所使用的寄存器组必须与中断函数相同,当没有使用using指令时,编译器会选择一个寄存器组作绝对寄存器访问。编程时必须保证按要求使用相应寄存器组,而C编译器不会对此检查。如果在中断函数中执行浮点运算,必须保存浮点寄存器状态,当没有其他程序执行浮点运算时,可以不保存。外部中断应用外部中断应用 设计一个实现按键计数功能的设计

48、,并利用数码管同步显示按设计一个实现按键计数功能的设计,并利用数码管同步显示按键的按下次数。键的按下次数。图图3.28 3.28 按键计数功能电路按键计数功能电路 程序:程序:#includeunsigned char duan2=0;unsigned char duanma=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char i=0,m=0;void wz0()interrupt 0/外部中断0服务子程序,用来记/录按键按下的次数if(+i99)i=0;duan0=i/10;duan1=i%10;

49、void display()interrupt 1 /利用中断来控制数码管的显示 static unsigned char l=0 x01;TH0=0 xff;TL0=0 xc8;if(l=0 x04)l=0 x01;m=0;P0=0;P2=l;P0=duanmaduanm;l=1;m+;void main()TH0=0 xff;TL0=0 xc8;IE=0 x8f;TMOD=0 x51;TCON=0 x55;IP=0 x02;while(1);计数器溢出一次,产生一次中断,刷新当计数器溢出一次,产生一次中断,刷新当前显示内容,溢出率决定显示屏刷新频率前显示内容,溢出率决定显示屏刷新频率定时定

50、时/计数器中断应用计数器中断应用 51系列单片机至少有两个两个16位位内部定时器/计数器(T/C)。两个基本定时器/计数器分别是定时器/计数器T/C0和T/C1,具有计数功能和定时功能。计数功能是指使用计数器的计数脉冲输入端T0(P3.4)和T1(P3.5)对外部脉冲信号的计数;定时功能是指对内部晶振驱动时钟进行计数。定时器T0由TH0和TL0组成,定时器T1由TH1和TL1组成,其中TH0(TH1)表示高8位,TL0(TL1)表示低8位。TMOD(见表1.13)寄存器用来确定工作方式;TCON是控制寄存器,用来控制T0和T1启动、计数、停止以及设置溢出标志等。定时器/计数器的结构图见图3.2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机应用系统的接口设计gai(共190张PPT).pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|