




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10节 单片机接口技术,Office: 学研大厦C座813 Tel: 62337736 Email: chyhzh,工学院 张超一,为什么需要I/O接口? 单片机的外部设备多种多样,其工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 它们不能与单片机直接相连 必须经过中间硬件电路、并配以相应软件驱动与单片机相连 I/O接口功能: I/O接口的作用是把单片机输出的信息变成外设能够识别的信息,同时把外设输入的信息转化成单片机所能接受的信息。,2,什么是I/O接口,I/O接口是位于单片机与外设间、用来协助完成数据传送和控制任务的逻辑硬件电路以及相应的软件驱动程序,80C51,I/O 接口,I/O 设备,3,I/O接口的主要功能,(1)对信号的形式和数据的格式进行变换 将数字量、开关量、脉冲量、模拟量转换成单片机可直接处理的二进制形式 (2)电平转换和放大 如将TTL电平转换成RS232电平、信号放大、功率放大 (3) 对输入输出数据进行缓冲和锁存 输出接口有锁存器;输入接口有缓冲器 (5) 并行IO、串行IO的转换等,4,I/O口的扩展,1.单片机与I/O设备的关系:,80C51,单片机与外设的连接框图,7,4,L,S,3,7,3,OE,LE,ALE,D7,:,:,D0,Q7,:,:,Q0,P2,P0,INT,X,RD,WR,2,2,数据端口,状态端口,控制端口,I/O接口,I/O设备,控制信号,状态信号,数据,5,(1)无条件传送 简单的I/O设备(如开关、LED显示器、 继电器等)的操作,或者I/O设备的定时固定 或已知的场合。,3. 单片机与I/O设备的数据传送方式,(2) 条件传送:查询方式,(3)中断传送方式:效率高,(4) DMA方式:高速外设以及成组交换数据 的场合。,6,单片机的典型外围接口技术,显示接口,键盘接口,DAC接口,ADC接口,7,1 键盘接口技术,键盘是计算机机应用系统中使用最广泛的一种数据输入设备。键盘是一组按键的组合。键通常是一种常开型按钮开关,常态下键的两个触点处于断开状态,按下键时它们才闭合(短路)。,8,非编码键盘按组成结构又可分为独立式键盘和矩阵式键盘。其硬件结构和软件设计都比较简单,嵌入式系统中经常采用非编码键盘,通常,键盘有编码和非编码两种。 编码键盘通过硬件电路产生被按按键的键码和一个选通脉冲。选通脉冲可作为CPU的中断请求信号。这种键盘使用方便,所需程序简单,但硬件电路复杂,常不被单片机采用,如PC机键盘。,9,特点:每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单。适用于所需按键较少的场合。,特点:电路连接复杂,但提高了I/O口利用率,软件编程较复杂。适用于需使用大量按键的场合。,10,键盘控制流程,单片机键盘接口处理的一般过程如右图。,键扫描,消抖,求键码,等待释放,键扫描,消除抖动,有键按下?,再次键扫描,确有键按下?,求键值,按键处理,键释放?,Y,Y,Y,N,N,等待键释放,N,开始,返回,按键处理,键盘处理流程框图,1号键程序,2号键程序,n号键程序,11,1. 键扫描,键扫描就是要判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。 独立式键盘扫描以查询或中断方式读取IO口状态 矩阵式键盘描通常采用逐行扫描法,12,0 1 1 1,1 1 1 1,1 0 1 1,1 1 1 0,1 1 0 1,1 1 1 1,1 1 1 0,1 1 1 1,设第2行第4列键按下,行线输出,列线输入,0 1 1 1,1 1 1 1,1 0 1 1,1 1 1 0,1 1 0 1,1 1 1 1,1 1 1 0,1 1 1 1,逐行扫描法。依次从第一至最末行线上输出低电平信号, 如果该行线所连接的键没有按下的话, 则列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。,13,由于按键按下时的机械动作,在按键被按下或松开的瞬间,其输出电压会产生波动,称为键的抖动。,2.消抖,为确保每按一次键单片机只进行一次处理,使键盘可靠地工作,必须消除按键抖动。消抖方法有硬件消抖和软件延时两种。,键闭合及断开时的抖动,14,(1)硬件消抖法:就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性。 电路实际上是由R-S触发器构成的双稳态硬件去抖电路。当按钮开关按下时Q端输出低电平,当开关松开时Q端恢复高电平,即输出一个负脉冲,以此消除抖动。,硬件去抖动电路,15,(2)软件消抖法:键抖动时间与按键的机械特性有关,一般为510ms不等。软件消抖法即是采用延时(一般延时1020ms)的方法,以避开按键的抖动,即在按键已稳定地闭合或断开时才读出其状态。,软件消抖法延时区间示意图,16,3. 确定键码,键码是每个按键的标识。被按键确定下来之后,接下来的工作是确定闭合键的键码,然后才能根据键码进行对应的操作。,4.等待释放,等待释放是为了保证键的一次闭合仅进行一次处理。求得键码后,然后继续进行键扫描,如有键按下,则继续扫描,否则认为键已释放。,5.按键处理,根据键盘值,利用单片机的分支跳转指令。转入执行该键的子程序完成特定操作。最后又返回到原始状态。,17,键盘接口的控制方式,在单片机的运行过程中,何时进行键盘扫描和处理,可有下列三种情况: 1.查询方式:单片机通过调用键盘扫描子程序,查询有无键按下。 2.定时扫描方式:每隔一定时间执行一次键盘扫描子程序。 3.中断方式:每当有键闭合时才向CPU发出中断请求,中断服务时进行键盘扫描和处理。,18,中断方式,查询方式或定时扫描方式,19,查询方式的键盘程序(多次使用有条件转移),START:MOV A,#0FFH MOV P1,A MOV A,P1 JNB ACC.0,P0 JNB ACC.1,P1 JNB ACC.2,P2 JNB ACC.3,P3 JNB ACC.4,P4 JNB ACC.5,P5 JNB ACC.6,P6,JNB ACC.7,P7 JMP START P0: AJMP PROM0 P1: AJMP PROM1 P7: AJMP PROM7 PROM0: PROM1: LJMP START,20,例:汽车尾灯实验,K1:左转弯开关 K2:右转弯开关 L1:左转弯灯 L2:右转弯灯 K1闭合:左灯亮; K2闭合:右灯亮; K1,K2同闭合或同断开,灯全灭.,要求:,查询方式的键盘程序(查找表方法),21,22,ORG 0000H LJMP START ORG 0100H START:SETB P3.0 SETB P3.1 MOV A, P3 ANL A, #03H MOV R0,A ADD A, R0 MOV DPTR, #TAB JMP A+DPTR TAB: SJMP PRG0 SJMP PRG1 SJMP PRG2 SJMP PRG3,PRG0: MOV P3, #00H JMP START PRG1: MOV P3, #40H JMP START PRG2: MOV P3, #80H JMP START PRG3: MOV P3, #00H JMP START END,; 取表头地址,; 短跳转占2字节,; 设置为输入,; 取p3口状态,23,单片机的典型外围接口技术,显示接口,键盘接口,DAC接口,ADC接口,24,(b)共阴极; (c)共阳极,(a)外形结构,七段LED显示器,LED显示器由8个发光二极管构成,可用来显示09、A、B、C、D、E、F、及小数点“.”等字符。 把各二极管的阴极连接在一起,称为共阴极数码管, 把各二极管的阳极连接在一起,称为共阳极数码管,单片机的LED显示技术,25,通过给每个发光二极管提供不同的数据,LED显示器就能显示出不同形状的字符,因此,我们把数据线上的数据称为 “字段码”。 不同的字符有不同的字段码,而且还同LED显示器是共阴极或是共阳极接法密切相关。,26,LED显示器的字段码表,27,1.软件查表法 采用软件查表方式时,需要在程序中安排一张显示字符段码表。段码表应根据硬件电路中使用的数码管的极性和显示字符的需要而设定,,LED数码管单片机控制方法,28,DISP: MOV A,data ;显示字符送A MOV DPTR,LEDTAB ;DPTR表首地址 MOVC A,ADPTR ;查段码表 MOV P1,A ;显示段码送P1口 LEDTAB: DB C0H, F9H, A4H, B0H, ,设显示代码表首地址为LEDTAB,程序设计如下:,29,2. 硬件译码法 硬件译码是用译码器直接把要显示的字符转换成显示代码。 已有专用芯片,可把4位二进制数转换成对应的显示代码。(74HC247 ) 通过串行I2C总线控制显示(SAA1064),30,HC247为译码驱动器,它将输入的4根数据线,译为8根输出线,输出为BCD码09的字形码。,31,LED数码管的显示方式,两种电路: 静态显示; 动态显示。,静态显示,位选线,段选线,段选线,动态显示,32,静态显示典型连接电路图,各LED数码管的共阴或共阳极连接在一起接地或接+5V,每位的段选线(adp)分别与一个8位并行I/O口相连。静态显示的特点是各LED数码管能稳定地同时显示各自字形。缺点是LED始终亮,功耗大,段选线,1. 静态显示,33,各LED数码管的段选线(adp) 由一个8位I/O口控制,各个位选线分别用一根I/O线单独控制。 动态显示是各LED轮流地一遍一遍显示各自字符,因人的视觉暂留而使人看到的似乎是所有LED在同时显示不同字符。为稳定地显示,每位LED显示的时间为15ms。 采用此方法可有效降低功耗。,2.动态显示,34,键盘动态显示电路,35,工作过程是: 将字形代码送入字形锁存器锁存; 再将需要显示的位送入字位锁存器锁存。 显示完后,换显示下个字符 为防止闪烁,显示的时间在12 ms。 其程序为: MOV A, #字形编码 MOV P1, A ;从P1口输出字形 MOV A, #01H ;输出字位码,点亮最右边一位 MOV P0,A ;通过P0输出字位,并锁存,36,这里由P1口的准双向口功能可以实现一口多用,键盘和LED 显示电路1,通过P1口及译码器的键盘和LED 显示接口电路。,37,工作过程: 首先,使P1口的低4位输出字形代码;P1口的高4位输出一个位扫描字,经3-8译码器后显示某一位,并保持1ms。各位扫描一遍之后,关掉显示。 其次,使P1口的高4位转为输入方式,使P1口的低4位输出键扫描信号,有键压下时,转入键译码和处理程序。 整个扫描一遍键盘约需十几微秒(s)。,38,通过P0和P1口的键盘和显示接口电路,键盘和LED 显示电路2,39,要求编程实现当按下任一键时,数码管显示对应的键值。,键盘接口应用实例,40,;*主程序查询法* ORG 0000H MAIN: MOV P3, #0FFH ; P3置1,为输入 MOV A, P3 ; 扫描键盘 CPL A ; 按键状态取反 JZ MAIN ; A为全0,无键按下,转MAIN ACALL DELAY ; 有键按下,延时消抖 MOV P3, #0FFH ; 再次扫描键盘 MOV A, P3 CPL A JZ MAIN ; 无键按下,干扰信号,转MAIN,源程序如下:,41,MOV 32H, #00H ; 确有键按下,置键码初值为0 MOV R2, #8 KEY1: RLC A JC MAIN1 INC 32H ;依次加一,求键码 DJNZ R2, KEY1 MAIN1: MOV P3, #0FFH ;等待释放 MOV A, P3 CPL A JNZ MAIN1 ;未释放继续等待 ACALL DISP ; 调显示子程序 SJMP MAIN ;*延时子程序* DELAY: MOV R7, #50 DELA1: MOV R6, #100 DJNZ R6, $ DJNZ R7, DELA1 RET,42,;*显示子程序* DISP: MOV DPTR,#TAB1 MOV A,32H MOVC A,A+DPTR MOV P1,A RET ;*09及熄灭符段码表* TAB1:DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H DB 82H, 0F8H, 80H, 90H, 0FFH END,43,int a3; a0=0; a1=1; a2=2; int *p, *q; p=a; q=,下面程序运行结果?,答案:2,int *ptr; ptr=(int *)0x8000; *ptr=oxaabb;,答案:会导致运行错误,因为这种做法会给一个指针分配一个随意的地址,这是非常危险的。不管这个指针有没有被使用过,这么做都是不允许的。,what results after run the following code?,44,what will happen after running the “Test”?,答案:程序崩溃。因为GetMemory并不能传递动态内存,函数里的str值一直都是NULL。,#include void GetMemory(char *p, int num) p=(char *)malloc(sizeof(char) *num); ; int main() char *str = NULL; GetMemory(str, 100); strcpy(str,“hello“); return 0; ,45,下列程序输出结果?,答案:C,#include using namespace std; class A public: int _a; A() _a=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亲近大自然的课件
- 项目观摩工地策划汇报
- 公司组织晨会安全培训课件
- 亲子关系课件
- 自来水给排水监理规划
- 直肠癌护理新进展
- 血透丙肝护理查房
- 破伤风的护理要点
- 理想之城工作汇报
- 语文新课程标准解读
- 1.4.1 第2课时 空间中直线、平面的平行 课件(共14张PPT)
- 总监理工程师工作手册
- 护理风险管理与护理安全
- 方舱医院建设技术指南
- 中关村国家自主创新示范区上市公司名单
- GB/T 14536.9-2008家用和类似用途电自动控制器电动水阀的特殊要求(包括机械要求)
- 《啤酒品牌的营销策略以青岛啤酒为例(论文)》
- 《少年中国说(节选)》(第二课时) 教学课件
- 沥青路面施工方案61841
- 中国海洋大学《海洋生物资源与环境调查实习报告》
- 《中外美术史》课件1中外美术史.1(原始社会)
评论
0/150
提交评论