单片机原理与接口技术:第7章 单片机接口技术_第1页
单片机原理与接口技术:第7章 单片机接口技术_第2页
单片机原理与接口技术:第7章 单片机接口技术_第3页
单片机原理与接口技术:第7章 单片机接口技术_第4页
单片机原理与接口技术:第7章 单片机接口技术_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 单片机接口技术4键盘接口123显示器接口A/D转换器接口D/A转换器接口PC除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。屏幕键盘(触摸屏)矩阵(行列)式键盘独立式键盘第一节 键盘与单片机的接口非编码键盘编码键盘独立式无编码键盘 独立式编码键盘 无编码,简单有效,键数较少时采用。编码,节省I/O口线,键数较多时采用。独立式键盘MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,KEY0JNB ACC.1,KEY1独立式非编码键盘接口准双向口:输入时须先写1行列式非编码键盘接口按键数量进一步增加时, 采用矩阵联接式键盘可节省更多的口线, 接口

2、电路也更简单。需要软件上设计键盘扫描程序。矩阵的行、列数越多,键盘扫描程序就越复杂。 在某一时刻只让一条列线(行线)处于低电平,其余列线(行线)均处于高电平,则当这一列有键按下时,该键所在的行(列)电平将会由高电平变为低电平,可判定该列相应的行(列)有键按下。 行线(列线)通过电阻接+5V。没有键闭合时,行线(列线)呈高电平; 某键闭合时,该键对应的行线(列线)被短路。此时行线(列线)电平由列线(行线)电位所决定。行列式非编码键盘工作原理读取值输出值键码键名P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011101110EEH1#11011110DEH210111110BEH3

3、011111107EH411101101EDH511011101DDH610111101BDH7011111017DH811101011EBH911011011DBH1010111011BBH11011110117BH1211100111E7H1311010111D7H1410110111B7H150111011177H161111FH无键流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依次循环,这种方式称为键盘扫描。 键号=行首键号(0、4、8、12)+列号(0、1、2、3) 行列式非编码键盘工作原

4、理例:键盘扫描程序SERCH:MOV R2,#0EFH MOV R3,#00H LINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08H3210476511109815141312+5VP1.4P1.3P1.089C51P1.7P1.6P1.5P1.2P1.1 AJMPTRYKLINE3: JBACC.0,LINE4 MOVA,#0CH AJMPTRYKNEROW:

5、 INCR3 MOV A,R2 RLA JNBACC.0,BACK MOVR2,A AJMPLINE0 TRYK: ADDA,R3BACK: RET单片机对非编码键盘的控制程序扫描方式CPU不断调用键盘处理程序,对键盘进行扫描。定时扫描方式利用定时器的溢出中断请求,每隔一定的时间对键盘扫描一次。中断扫描方式提高CPU的效率,当键盘上有键闭合时产生中断请求。当行、列数超过处理器的一个数据宽度,即超过88键盘时,扫描程序将更为复杂,扫描时间更长,甚至可能造成键盘漏扫描现象发生。对于这种情况,需要采用矩阵联接式编码键盘,例如PC机键盘就是矩阵联接式编码键盘。 行列式非编码键盘接口集成矩阵键盘编码器

6、按键弹簧的跳动及电路的瞬变,将使键在闭合和断开时,有持续约数mS的抖动。这可能被处理器误认为按下了几次键。为避免这种误解,需采用键盘消抖措施。 抖动现象去抖方案 在键数较少时, 可采用硬件去抖, 而当键数较多时, 采用软件去抖。 软件去抖电阻式电容感应式表面声波式 红外线式屏幕键盘(触摸屏)原理(以电阻触摸屏为例 ): CRT或LCD屏上覆盖透明电阻薄膜 ,手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,从而实现类似于鼠标的键盘扫描。小结:独立联接键盘?编码键盘?矩阵键盘?键盘的抖动与

7、消除?键盘程序扫描的方法?LED静态显示LED动态显示LED/LCD点阵图形显示技术 第二节 显示器与单片机的接口1、由发光二极管组成,分共阳、共阴两种。 Low Emitting DiodeLED静态显示问题引入: LED显示器如何显示出指定数字/字符?comcom字型表 静态显示方式连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。 特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多。 常用于位数较少的场合。静态显示方式动态显示方式动态显示方式将各个显示器的输入(段选)线并联,由一个I/O口提供

8、字形代码;由另一个I/O口提供位选代码。采用软件扫描显示方法,某个时刻只点亮1个显示器,点亮时间不超过20ms,分时逐个点亮LED。与静态显示相比,特点:节省硬件电路及I/O资源;占用CPU时间多;亮度相对较低;适用于LED位数较多的场合。利用视觉暂留特性怎样实现显示呢?延时时间若为1s或10ms,看到的现象分别是什么?问题1:当数码管显示数字时,怎样使用查表程序1. 查表方法2. 表格建立问题2:从缓冲区取数据的查表方法01h02h01h06h03h00h内存:41H40H42H43H44H45HMOV R1,#40HMOV A,R1 MOVC A,A+DPTRMOV P2, A根据缓冲区内

9、容查表设显示缓冲区首地址如何取显示的下一位?INC R1根据缓冲区的数据显示 注意: 1.字型码通常通过查表指令MOVC来求得.2.换位显示时通常要加一段程序使所有的LED全灭.键盘和显示器综合应用停车场计数器硬件设计软件设计硬件电路设计显示部分计数部分实际电路多数采用传感器,这里用按键模拟代替停车场计数器程序设计 编写程序的基本思路主程序完成单片机的初始设定、初始显示等两个按键可采用查询或者中断方式,本例子采用中 断方式各段功能程序地址确定MAIN主程序流程主程序中断初始化初始车数设为0设置查表首地址十位显示(P2口)个位显示(P0口)进车中断子程序 模拟“进车”按键按下后出车中断子程序DE

10、C总结通过静态显示和独立式按键完成了一个应用系统的设计。实际系统通常需传感器。LED点阵图形显示技术LED/LCD点阵图形显示技术 LCD点阵图形显示技术点阵图形显示的字库技术特殊形状LED/LCD显示屏LED点阵图形显示技术 75共35只LED组成。显示各种字母、数字和常用符号。多个点阵式LED显示器组合起来可以组成LED大屏幕显示屏,用来显示汉字、图形和表格,而且能产生各种动画效果。 目前,基于三基色原理设计的彩色点阵式LED显示器可以实现彩色图形动态显示,在新闻媒介和广告宣传中应用已很普遍。 57点阵式LED显示器 例如,64128 LCD显示屏的智能仪器,可以显示816个57点阵字符,

11、也可以显示48个1616点阵汉字。点阵式字符显示一般采用57格式;汉字显示时则采用1616、2424等LCD点阵图形显示屏主要应用于智能仪器和手持设备有些LCD点阵显示屏内部自带驱动器有些LCD显示屏则需要附加驱动器LCD点阵图形显示技术 LCD162液晶屏LCD点阵图形显示技术单片机与字符型LCD模块接口数据线:DB7DB0接单片机的P1.7 P1.0控制端: RS P3.0 R/W P3.1 E P3.2点阵图形显示的字库技术 小型应用系统需要显示的字符数较少,可以自编字库存放于系统程序ROM中,使用中通过查表程序调用,这个存放于程序存储器中的小型字库,通常称为软字库对于汉字字符需求量较大

12、的应用场合,需要应用硬字库 例如,GB5199A硬字库,内部固化了国标一、二级汉字,其ROM容量为2Mb。硬字库实际上就是一个固化了字库信息的ROM,其与CPU系统的接口设计方法与普通ROM设计完全相同 大部分嵌入式应用系统对汉字等字符的需求量仅约几十个汉字及特殊字符,因此,自编软字库的应用非常广泛点阵图形显示的字库技术 1个1616点阵需要32个字节进行描述如何自编点阵汉字库?ZIKU:MOVDPTR,SHOUZHI2;MOVR1,#32;数据长度为32MOVR0,#20H;数据调到RAM中20H起处LOOP1:MOVCA,DPTRMOVR0,AINCR0INCDPTRDJNZR1,LOOP

13、1RETSHOUZHI2 EQU0200HSHOUZHI2:DB00,22,44,00,80,00,FE,C4;“温”字模上部DBC4,C4,C4,C4,FE,00,00,00DB00,08,78,06,41,7A,45,7A;“温”字模下部DB44,44,44,7A,45,7A,40,00END 以下程序实现将“温”字的1616点阵从程序ROM中调出到RAM的20H3FH中特殊形状LED/LCD显示屏 小结:LED数码显示?LCD数码显示? LED点阵图形显示?LCD点阵图形显示?LCD的直流驱动与交流驱动?静态扫描与动态扫描?点阵图形显示字库?ADC0832ADC0809TLC5615TL

14、C1549并行接口SPI接口A/D、D/A转换器与单片机的接口并行接口SPI接口TLC1549ADC0809第三节 A/D转换器与单片机的接口ADC0809的结构ADC0809的引脚ADC0809的接口ADC0809的应用ADC0809逐次逼近式ADC的转换原理ADC0809的结构 ADC0809是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。目前在8位单片机系统中有着广泛的使用。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-CLOCKAD

15、C0809的引脚地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-ADC0809芯片为28引脚双列直插式封装。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-IN7IN0:模拟量输入通道。ADC0809对输入模拟量的要求主要有:信号单极

16、性,电压范围05 V,若信号过小还需进行放大。另外,在A/D转换过程中,模拟量输入的值不应变化太快,因此,对变化速度快的模拟量,在输入前应增加采样保持电路。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-ADDA、ADDB、ADDC:地址线。ADDA为低位地址,ADDC为高位地址,用于对模拟通道进行选择。 地址状态与通道相对应的关系表CLOCK 地址状态与通道相对应的关系表AD

17、DC ADDB ADDA 选择的通道0000 0 10 1 00 1 11 0 01 0 1 1 1 0 1 1 1 IN0IN1IN2IN3IN4IN5IN6IN7ADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-ALE:地址锁存允许信号。在对应ALE上跳沿,ADDA、ADDB、ASSC地址状态送入地址锁存器中。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地

18、址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-START:转换启动信号。START上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+V

19、ref-D7D0:数据输出线。其为三态缓冲输出形式,可以和单片机的数据线直接相连。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-OE:输出允许信号。其用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲

20、IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-EOC:转换结束状态信号。EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-CLOCK:时钟信号。ADC0809的内部没有

21、时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号。CLOCKADC0809的引脚ADC0809芯片为28引脚双列直插式封装。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-Vref:参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5 V(Vref (+) =+5 V,Vref(-) =0 V)CLOCKADC0809的接口 ADC0809与89C51单片机的连接方式很多。电路连

22、接主要涉及两个问题,一是8路模拟信号通道选择,二是A/D转换完成后转换数据的传送。地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-CLOCKADC0809的接口 A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此,可采用下述三种方式。 1) 定时传送方式 2) 查询方式 3) 中断方式地址锁存与译码8位A/D转换器输出锁存与缓冲IN0IN1IN2

23、IN3IN4IN5D0D1D2D3D4D5D6D7IN6IN7ADDBADDAADDCALEOESTARTEOCVref+Vref-CLOCK定时传送方式ADC0809转换时间约为100 s。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 在这种方式下,EOC引脚悬空。查询传送方式 在这种方式下,EOC必须接到8051的一条I/O线上。P1.0中断传送方式在这种方式下, EOC必须经过非门接到8051的中断请求输入线INT0或INT1上,89C51的中断触发方式为下降沿触发。INT0ADC0809与89C51的接口原理图

24、接地址线查询?中断?P2.70外部电压u0外部电压u1外部电压u7外部电压u3外部电压u4外部电压u6外部电压u5外部电压u289C51P1.0 或 int1编程要点选择模拟量输入通道发出启动及地址锁存信号用查询或中断方法等待转换结束(延时)读取转换结果编写采集IN0IN7上的模拟量u0u7的转换程序,并将数字量存入30H37H。MOVR1,#30H;缓存区首址MOVDPTR,#7FF8H;P2.7=0,且指向通道0(A2A1A0=000)MOVR7,#08H;置通道数LOOP:MOVXDPTR,A;启动A/D转换MOVR6,#55;延时110 s等待转换结束DJNZR6,$;2个机器周期,1

25、2MHz,2s,MOVxA,DPTR;读取转换结果MOVR1,A;存放结果INCR1;修改数据区指针INCDPTR;指向下一个通道DJNZR7,LOOP;8个通道全采样完了吗?或 JB P1.0,$中断方式程序SETB IT1SETB EX1SETB EAMOV DPTR,#7FF8HMOV A,#0MOVX DPTR,AEINT1:MOVX A,DPTRMOV R0,AINC DPTRINC R0MOV A,#00MOVX DPTR,ARETI初始化,启动A/D转换IN0读取数据,再次启动IN0单通道串行输出A/D芯片TLC1549及接口逐次比较型10位A/D6个工作方式:区别主要是cs是否

26、连续为低电平快速、慢速:决定于I/O CLOCK周期TLC1549与89C51接口89C51 P3.0 P3.1 P3.2TLC1549 ANALOG INCS I/O CLOCK DATA OUT REF-GNDVCCREF+89C51读取TLC1549中10位数据程序如下: ORG 0050HR1549:CLR P3.0 :片选有效,选中TLC1549 MOV R0,#2 ;先读取高两位数据 LCALL RDADA ;调用读数子程序 MOV R1,A ;高两位数据存入R1 MOV R0,#8 ;要读取低8位数据 LCALL RDATA MOV R2,A ;低8位数据存入R2 SETB P3

27、.0 ;片选无效 CLR P3.1 ;时钟低电平 RET ;程序结束RDADA:CLR P3.1 ;时钟低电平 MOV C,P3.2 ;数据送进位位CY RLC A ;数据送累加器A SETB P3.1 ;时钟变高电平 DJNZ R0,RDATA ;读书结束了吗 RET ;子程序结束并行接口SPI接口TLC5615DAC0832第四节 D/A转换器与单片机的接口DAC0832芯片与单片机接口 DAC0832是使用非常普遍的位D/A转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有DAC0830

28、、DAC0831,它们可以相互代换。DAC0832主要特性:分辨率位;电流建立时间S;数据输入可采用双缓冲、单缓冲或直通方式;输出电流线性度可在满量程下调节;逻辑电平输入与TTL电平兼容;单一电源供电(5V15V);低功耗,20m。 DAC0832内部结构及引脚单缓冲工作方式 此方式适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统。 DAC0832与80C51单片机的接口双极性模拟输出电压 : 双极性输出时的分辨率比单极性输出时降低1/2,这是由于对双极性输出而言,最高位作为符号位,只有7位数值位。2.双缓冲工作方式 多路D/A转换输出,如果要求同步进行,就应该采用双缓冲器同步方式 。3、直通工作方式当DAC0832芯片的片选信号、写信号、及传送控制信号的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论