单片机的接口与应用

上传人:大米 文档编号:579235572 上传时间:2024-08-26 格式:PPT 页数:165 大小:7.76MB
返回 下载 相关 举报
单片机的接口与应用_第1页
第1页 / 共165页
单片机的接口与应用_第2页
第2页 / 共165页
单片机的接口与应用_第3页
第3页 / 共165页
单片机的接口与应用_第4页
第4页 / 共165页
单片机的接口与应用_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《单片机的接口与应用》由会员分享,可在线阅读,更多相关《单片机的接口与应用(165页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS51单片机的接口与应用 第第6 6章章 MCS51 MCS51单片机的接口与应用单片机的接口与应用 6.1 按键、键盘及其接口按键、键盘及其接口6.2 显示及显示器接口显示及显示器接口6.3 A/D转换器接口转换器接口6.4 D/A转换器接口转换器接口6.5 行程开关、晶闸管、行程开关、晶闸管、 继电器与单片机的接口继电器与单片机的接口1第6章 MCS51单片机的接口与应用 6.1 按键、键盘及其接口按键、键盘及其接口6.1.1 键输入过程与软件结构键输入过程与软件结构图6.1MCS51单片机键输入过程2第6章 MCS51单片机的接口与应用 6.1.2 键盘接口和键输入软件中应解

2、决的几个问题键盘接口和键输入软件中应解决的几个问题 1消除键抖动消除键抖动键稳定键按下后沿抖动前 沿 抖 动(510ms)图6.2键合断时的电压抖动3第6章 MCS51单片机的接口与应用 图6.3消除键抖动电路4第6章 MCS51单片机的接口与应用 2键编码及键值键编码及键值(1)用键盘连接的I/O线的二进制组合表示键码。例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口线的二进制数的组合表示16个键的编码,如图6.4(a)所示。各键相应的键值为88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、1

3、1H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。5第6章 MCS51单片机的接口与应用 (2)顺序排列键编码。如图6.4(b)所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号6第6章 MCS51单片机的接口与应用 图6.4行列式键盘的编码与键值(a)二进制组合编码;(b)顺序排列编码7第6章 MCS51单片机的接口与应用 3键盘的监测方法键盘的监测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。8第6章 MCS51单片机的接

4、口与应用 6.1.3 独立式按键独立式按键1独立式按键接口结构独立式按键接口结构图图6.5 独立式按键的接口电路示意图独立式按键的接口电路示意图(a) 中断方式;中断方式;(b) 查询方式查询方式 9第6章 MCS51单片机的接口与应用 2独立式按键的软件结构独立式按键的软件结构下面是查询方式的键盘程序。K0K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0PROM7分别为每个按键的功能程序。设I/O为P1口。START:MOVA,#0FFH ;MOVP1,A ;置P1口为输入状态MOVA,P1 ;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.

5、1,K1;检测1号键是否按下,按下转10第6章 MCS51单片机的接口与应用 JNBACC.2,K2;检测2号键是否按下,按下转JNBACC.3,K3 ;检测3号键是否按下,按下转JNBACC.4,K4;检测4号键是否按下,按下转JNBACC.5,K5;检测5号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转JMPSTART ;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1K7:AJIMPPROM7;入口地址表11第6章 MCS51单片机的接口与应用 PROM0:;0号键功能程序JMPSTART;0

6、号键功能程序执行完返回PROM1:;0号键功能程序JMPSTART;1号键功能程序执行完返回;7号键功能程序PROM7:JMPSTART;7号键功能程序执行完返回12第6章 MCS51单片机的接口与应用 6.1.4 行列式键盘行列式键盘行列式键盘又叫矩阵式键盘矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如44的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。 1行列式键盘的接口行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片82

7、79进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。13第6章 MCS51单片机的接口与应用 图6.68155扩展I/O口组成的行列式键盘14第6章 MCS51单片机的接口与应用 2键盘工作原理键盘工作原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。15第6章 MCS51单片机的接口与应用 1)查询工作方式键盘中有无键按下是由列

8、线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出0,置对应的列线为低电平,然后从PC口读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。16第6章 MCS51单片机的接口与

9、应用 有键按下否调用6ms延时子程序(或做其他处理)开始调用12ms延时子程序有键按下否判断闭合键,键码入栈保存闭合键释放否键码 A返回YYYNNN图6.7键盘扫描(子)子)程序流程框图17第6章 MCS51单片机的接口与应用 键盘扫描子程序如下:KEY1:ACALLKS1;调用判断有无键按下子程序JNZLK1;有键按下时,(A)0转消抖延时AJMPKEY1;无键按下返回LK1:ACALLTM12S;调12ms延时子程序ACALLKS1;查有无键按下,若有则真有键按下JNZLK2;键(A)0逐列扫描AJMPKEY1;不是真有键按下,返回LK2:MOVR2,#0FEH;初始列扫描字(0列)送入R

10、2MOVR4,#00H;初始列(0列)号送入R418第6章 MCS51单片机的接口与应用 LK4:MOVDPTR,#7F01H;DPTR指向8155PA口MOVA,R2;列扫描字送至8155PA口MOVXDPTR,AINCDPTR;DPTR指向8155PC口INCDPTRMOVXA,DPTR;从8155PC口读入行状态JBACC.0,LONE;查第0行无键按下,转查第1行MOVA,#00H;第0行有键按下,行首键码#00HAAJMPLKP;转求键码LONE:JBACC.1,LTWO;查第1行无键按下,转查第2行MOVA,#08H;第1行有键按下,行首键码#08HAAJMPLKP;转求键码19第

11、6章 MCS51单片机的接口与应用 LTWO:JBACC.2,LTHR;查第2行无键按下,转查第3行MOVA,#10H;第2行有键按下,行首键码#10HAAJMPLKP;转求键码LTHR:JBACC.3,NEXT;查第3行无键按下,转该查下一列MOVA,#18H ;第3行有键按下,行首键码#18HALKP:ADDA,R4 ;求键码,键码=行首键码+列号PUSHACC;键码进栈保护LK3:ACALLKS1 ;等待键释放JNZLK3;键未释放,等待POPACC;键释放,键码ARET;键扫描结束,出口状态(A)=键码20第6章 MCS51单片机的接口与应用 NEXT:INCR4;准备扫描下一列,列号

12、加1MOVA,R2 ;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回RLA;扫描字左移一位,变为下一列扫描字MOVR2,A;扫描字送入R2AJMPLK4;转下一列扫描KEND:AJMPKEY1KS1:MOVDPTR,#7F01H;DPTR指向8155PA口MOVA,#00H;全扫描字AMOVXDPTR,A;全扫描字送往8155PA口21第6章 MCS51单片机的接口与应用 INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,DPTR;读入PC口行状态CPLA;变正逻辑,以高电平表示有键按下ANLA,#0FH ;屏蔽高4位,只保留低4位行线值RET;出口状

13、态:(A)0时有键按下TM12ms:MOVR7,#18H;延时12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6DJNZR7,TMRET22第6章 MCS51单片机的接口与应用 2)定时扫描工作方式键盘上有键闭合否开始KM=1KP=1返回1 KM0 KM0 KP图6.8定时扫描方式程序框图查询键码1 KPNNNYYY定时10ms,KM:消抖标志;KP:键处理标志。23第6章 MCS51单片机的接口与应用 3)中断工作方式计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这

14、种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断请求信号的接口电路可参考图6.5(a)。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。24第6章 MCS51单片机的接口与应用 6.2 显示及显示器接口显示及显示器接口6.2.1 LED显示器结构与原理显示器结构与原理图图6.9 七段显示块管脚与结构图七段显示块管脚与结构图 25第6章 MCS51单片机的接口与应用 表表6.1 七段七段LED的段选码的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码0

15、3FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82H31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83H26第6章 MCS51单片机的接口与应用 6.2.2 LED显示器与显示方式显示器与显示方式图图6.10 N位位LED显示器静态显示方式电路显示器静态显示方式电路1LED静态显示方式静态显示方式27第6章 MCS51单片机的接口与应用 LED工作在静态显示方式下,共阴极接地或共阳极接+5V

16、;每一位的段选线(ag、dp)与一个8位并行I/O口相连,如图6.10所示。该图表示了一个4位静态LED显示器电路,显示器的每一位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。由于每一位由一个8位输出口控制段选码,故在同一时刻各位可以显示不同的字符。N位静态显示器要求有N8根I/O口线,占用I/O口线较多。故在位数较多时往往采用动态显示方式。28第6章 MCS51单片机的接口与应用 2LED动态显示方式动态显示方式图6.118位LED动态显示器电路29第6章 MCS51单片机的接口与应用 6.2.3 LED显示器接口显示器接口1硬件译码显示器接口硬件译码显示器接口

17、图图6.12 MC14495内部逻辑与引脚图内部逻辑与引脚图30第6章 MCS51单片机的接口与应用 图6.13使用MC14495的多位LED静态显示接口31第6章 MCS51单片机的接口与应用 2软件译码显示器接口软件译码显示器接口图图6.14 通过扩展通过扩展8155 I/O口控制的口控制的8位位LED动态显示接口动态显示接口 32第6章 MCS51单片机的接口与应用 3动态显示程序设计动态显示程序设计DISPLAY:MOVA,#00000011B;8155初始化MOVDPTR,#7F00H;使DPTR指向8155控制寄存器端口MOVXDPTR,AMOVR0,#78H;动态显示初始化,使R

18、0指向缓冲区首址MOVR3,#7FH;首位位选字送R3MOVA,R3;LD0:MOVDPTR,#7F01H;使DPTR指向PA口MOVXDPTR,A;选通显示器低位(最右端一位)INCDPTR;使DPTR指向PB口33第6章 MCS51单片机的接口与应用 MOVA,R0;读要显示数ADDA,#0DH;调整距段选码表首的偏移量MOVCA,A+PC;查表取得段选码MOVXDPTR,A;段选码从PB口输出ACALLDL1;调用1ms延时子程序INCR0;指向缓冲区下一单元MOVA,R3;位选码送累加器AJNBACC.0,LD1;判断8位是否显示完毕,显示完返回RRA;未显示完,把位选字变为下一位选字

19、MOVR3,A;修改后的位选字送R3AJMPLD0;循环实现按位序依次显示34第6章 MCS51单片机的接口与应用 LD1:RETDSEG:DB3FH,06H,5BH;4FH,66H,6DH,7DH;段码表DB07H,7FH,6FH,77H,7CH,39H,5EH,79HDL1:MOVR7,#02H;延时子程序DL:MOVR6,#0FFHDL0:DJNZR6,DL6DJNZR7,DLRET35第6章 MCS51单片机的接口与应用 6.2.4 键盘、显示器组合接口键盘、显示器组合接口1键盘、显示器组合接口电路键盘、显示器组合接口电路图6.15是一个采用8155并行扩展口构成的键盘、显示器组合接口

20、电路。图中设置了32个键。如果多使用PC口线,可以增加按键,最多可达88=64个键。可根据需要进行设置。LED显示器采用共阴极。段选码由8155PB口提供,位选码由PA口提供。键盘的列输出列输出由PA口提供,与显示器的位选输出位选输出公用,行输入行输入由PC0PC3提供。显然,因为键盘与显示器公用了PA口,比单独接口节省了一个I/O口。36第6章 MCS51单片机的接口与应用 图图6.15 8155扩展扩展I/O口的键盘、显示器组合接口口的键盘、显示器组合接口 37第6章 MCS51单片机的接口与应用 2软件设计软件设计LED采用动态显示、软件译码,键盘采用逐列扫描查询工作方式。由于键盘与显示

21、做成一个接口电路,因此在软件中合并考虑键盘查询与动态显示,键盘消抖的延时子程序可用显示子程序替代。相应的程序如下:KD1:MOVA,#03H;初始化8155PA、PB口为基本输出,PC口为输入MOVDPTR,#7F00HMOVXDPTR,A38第6章 MCS51单片机的接口与应用 KEY1:ACALLKS1JNZLK1ACALLDISPLAY;调用显示子程序实现延时,防止抖动引起按键拒认AJMPKEY1;延时后再检测键盘LK1:ACALLDISPLAY;调用两次显示实现延时,防止抖动引起误处理ACALLDISPLAYACALLKS1JNZLK2ACALLDISPLAYAJMPKEY139第6章

22、 MCS51单片机的接口与应用 LK2:MOVR2,#0FEHMOVR4,#00HLK4:MOVDPTR,#7F01HMOVA,R2MOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTRJBACC.0,LONEMOVA,#00HAJMPLKP40第6章 MCS51单片机的接口与应用 LONE:JBACC.1,LTWOMOVA,#08HAJMPLKPLTWO:JBACC.2,LTHRMOVA,#10HAJMPLKPLHR: JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4PUSHACC41第6章 MCS51单片机的接口与应用 LK3:ACALLDISPLAYACAL

23、LKS1JNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.7,KENDRLAMOVR2,AAJMPLK4KEND:AJMPKEY142第6章 MCS51单片机的接口与应用 KS1:MOVDPTR,#7F01HMOVA,#00HMOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTRCPLAANLA,#0FHRETDISPLAY:见6.2.3节8155扩展动态扫描子程序。43第6章 MCS51单片机的接口与应用 6.2.5液晶显示器概述液晶显示器概述液晶显示器是一种低功耗显示器件,具有显示内容丰富、体积小、重量轻、寿命长、使用方便、安全省电等优点,在计算器

24、、万用表、袖珍式仪表和低功耗微机应用系统中得到广泛使用。1. 液晶显示器的工作原理液晶显示器的工作原理 2. 液晶显示器的主要技术参数液晶显示器的主要技术参数 3. 液晶显示器的分类液晶显示器的分类44第6章 MCS51单片机的接口与应用 6.2.6字符型液晶显示模块字符型液晶显示模块LCM的组成与原理的组成与原理 1. 液晶显示模块液晶显示模块LCM简介简介液晶显示器件是一种高新技术的基础元器件。虽然其应用已很广泛,但对许多人来说,使用、装配时仍感到困难,特别是点阵液晶显示器件,更是让使用者无从下手,而特殊的连接方式和所需的专用设备也非人人了解和具备。因此,将液晶显示器件与控制、驱动集成电路

25、装在一起,形成一个功能部件,用户只需用传统工艺即可将其装配成一个整体系统,这样就形成了实际应用中的液晶显示模块。45第6章 MCS51单片机的接口与应用 2. 通用液晶显示模块通用液晶显示模块LCM的分类的分类实际使用中的通用液晶显示模块主要有通用段式液晶显示模块、通用段式液晶显示屏、点阵字符型液晶显示模块、点阵图形液晶显示模块等几种。通用段式液晶显示模块一般做成多个8段数码位和一些通用的提示符,使用比较简单,成本较低,一般用于数字化仪表。46第6章 MCS51单片机的接口与应用 通用段式液晶显示屏本身不带控制器和驱动电路,显示内容做成比较简单的数码位,相对成本较低,必须使用具有液晶驱动能力的

26、电路,一般用于电子产品,如电话机、计算器等。点阵字符型液晶显示模块可显示西文字符、数字、符号等,显示内容比较丰富,字符是由57或511点阵块实现的,但无法显示汉字和复杂图形。点阵字符型液晶显示模块的通用性好,一方面是它能适用各种领域,另一方面是不同厂家、不同型号的模块所用控制器相同或相互兼容,主要区别仅是可显示字符数、屏幕大小、点阵大小不同,使用方法和软件基本相同。47第6章 MCS51单片机的接口与应用 点阵图形液晶显示模块可以混合显示西文字符、符号、汉字、图形等,灵活性好,一般用于要求显示汉字、图形、人机交互界面等内容复杂的仪器设备。不同厂家、不同型号的点阵图形液晶显示模块所使用的控制器可

27、能不同,因而相应的接口电路、接口特性、指令系统也有所不同,使用时除需选择点阵数、尺寸外,还要注意所选控制器的型号。从上面的介绍可看出,不同的液晶显示模块其显示性能和显示控制是有较大区别的,应用中应根据不同的显示要求进行灵活选取。本书仅以点阵字符型液晶显示模块为例,介绍其原理、组成和应用。48第6章 MCS51单片机的接口与应用 3. 字符型液晶显示模块字符型液晶显示模块LCM的组成与工作原理的组成与工作原理1)字符型液晶显示模块LCM的组成点阵字符型液晶显示模块包括液晶显示器件、控制器、字符发生器、译码驱动器等部分,可以直接与单片机接口或者挂接在其总线上,接口电路设计较为简单。控制器和译码驱动

28、器对液晶显示模块进行显示驱动控制,一般将二者组合在一起,做成专用集成电路。字符发生器可提供常见的192个字符库,包括英文大小写字母、阿拉伯数字、特殊字符或符号,固化在其内部ROM中,有时还可根据用户需要内置RAM,由用户自行设计字符和符号,进行字符扩充。49第6章 MCS51单片机的接口与应用 2)字符型液晶显示模块LCM的工作原理在字符型液晶显示模块中,字符发生器产生的点阵字符模块是由57、58或511的一组组点阵像素排列而成的,相邻位间有一定的间隔,相邻行间也有一定的间隔,所以不能显示图形。在点阵图形液晶显示模块中,其点阵像素连续排列,行和列在排布中均没有空隔,因而可以显示连续、完整的图形

29、和汉字。50第6章 MCS51单片机的接口与应用 字符型液晶显示模块在显示字符时,被显示的每个字符都有一个对应的十六进制代码,液晶显示模块从处理器得到此代码,并把它存储到显示数据RAM中,字符发生器根据此代码产生相应的点阵图形。代表字符在液晶显示屏上位置的地址是通过数据总线,由微处理器送到液晶显示模块的指令寄存器中,每个字符代码送入液晶显示模块以后,液晶显示模块将显示地址自动加1或减1。使用一些指令,可以使液晶显示模块实现清除显示,光标恢复初始位置,开/关显示及光标、闪烁字符、移动光标等功能。液晶显示模块可以采用上电复位,也可以采用软件编程的方法来复位。51第6章 MCS51单片机的接口与应用

30、 52第6章 MCS51单片机的接口与应用 6.2.7字符型液晶显示模块字符型液晶显示模块LCM的引脚及说明的引脚及说明字符型液晶显示模块的应用很广泛,在电子表、单片机应用系统、传真机、电动玩具中经常使用这类液晶显示器。在实际使用中,字符型液晶显示模块上常采用内置式HD44780驱动控制器的集成电路。下面先对HD44780驱动控制器的特点和电路特性进行介绍,然后介绍内置该控制器的字符型液晶显示模块的应用。53第6章 MCS51单片机的接口与应用 1. HD44780驱动控制器的电路特性和设计特点驱动控制器的电路特性和设计特点1)电路特性HD44780集成电路是集驱动器和控制器于一体,专门用于字

31、符型液晶显示模块的显示控制驱动的集成电路,它是字符型液晶显示模块控制器的典型集成电路。该集成电路对外引出80个引脚,采用FP80扁平塑料外壳形式的封装,使用时通常已组装在相应的液晶显示模块内部。因此,用户可以不考虑其各个引脚的名称、功能、用法和相应的电路连接,但必须了解其指令系统、主要设计特点、内部结构及工作原理。54第6章 MCS51单片机的接口与应用 2)主要设计特点(1)HD44780集成电路具有驱动4016点阵液晶像素的能力,还可通过外接驱动电路扩展成360列驱动。(2)其显示缓冲区与用户自定义的字符发生器RAM全部内置在集成电路中。(3)接口可选择8位数据传输和4位数据传输两种方式。

32、(4)可使用简单而功能较强的指令实现字符移动、闪烁等显示功能。55第6章 MCS51单片机的接口与应用 3)HD44780集成电路的内部结构及工作原理HD44780集成电路的内部结构如图6.17所示。在HD44780集成电路的内部集成了输入/输出缓存器、指令寄存器(IR)、指令解码器(ID)、地址计数器(AC)、数据寄存器(DR)、808位数据显示RAM(DDRAM)、1928位字符产生器ROM(CGROM)、光标闪烁控制器、并行/串行转换电路等11个单元电路。下面结合HD44780集成电路的内部结构来分析HD44780中各功能框的工作原理。56第6章 MCS51单片机的接口与应用 3)HD4

33、4780集成电路的内部结构及工作原理HD44780集成电路的内部结构如图6.17所示。在HD44780集成电路的内部集成了输入/输出缓存器、指令寄存器(IR)、指令解码器(ID)、地址计数器(AC)、数据寄存器(DR)、808位数据显示RAM(DDRAM)、1928位字符产生器ROM(CGROM)、光标闪烁控制器、并行/串行转换电路等11个单元电路。下面结合HD44780集成电路的内部结构来分析HD44780中各功能框的工作原理。57第6章 MCS51单片机的接口与应用 图6.17HD44780集成电路的内部结构图58第6章 MCS51单片机的接口与应用 (1)数据显示RAM(DataDisp

34、layRAM,DDRAM)。这个存储器用来存放所要显示的数据,只要将标准的ASCII码放入DDRAM中,内部控制电路就会自动将数据传送到显示器上。例如,要液晶显示器显示字符“C”,只需将ASCII码43H存入DDRAM中就可以了。DDRAM有80字节字节比特比特(bit) 空间,总共可显示80个字(每个字为1个字节比特比特 ),其存储地址和实际显示位置的排列顺序与字符型液晶显示模块的型号有关。不同类型的字符型液晶显示模块显示位置、地址之间的对应关系见表6.2。59第6章 MCS51单片机的接口与应用 表表 6.2不同类型的液晶显示模块显示位置、不同类型的液晶显示模块显示位置、 地址之间的对应关

35、系地址之间的对应关系60第6章 MCS51单片机的接口与应用 (2)字符产生器ROM(CharacterGeneratorROM,CGROM)。这个存储器储存了192个57点阵字符,CGROM中的字符要经过内部的转换才会传到显示器上,只能内部读出,不能写入。字符的排列方式、字符码与标准的ASCII码相同,例如,字符码31H为字符“1”,字符码43H为字符“C”。(3)字符产生器RAM(CharacterGeneratorRAM,CGRAM)。这个存储器是供用户储存自己设计的特殊字符码的RAM,共有512位(648位)。但用户只能用但用户只能用8 8位做位做CGRAM。一个57点阵字型为88位,

36、所以CGRAM最多可存8个字符。61第6章 MCS51单片机的接口与应用 (4)指令寄存器(InstructionRegister,IR)。指令寄存器负责储存微处理器要写给字符型液晶显示模块的指令码。当处理器要发一个命令到指令寄存器IR时,必须要控制字符型液晶显示模块的RS、R/W与E这三个引脚,当RS及R/W的引脚信号为低电平“0”,E引脚信号由高电平“1”变为低电平“0”时,就会把DB0DB7引脚上的数据存入IR指令寄存器。62第6章 MCS51单片机的接口与应用 (5)数据寄存器(DataRegister,DR)。数据寄存器负责微处理器要写到CGRAM或DDRAM的数据,或者存储微处理器

37、要从数据显示RAM(DDRAM)读出的数据。因此,数据寄存器DR可视为一个数据缓冲区,它是由字符型液晶显示模块的RS、R/W与E三个引脚来控制的。当RS与R/W引脚信号为1,E引脚信号由“0”变为“1”时,字符型液晶显示模块会将DR数据寄存器内的数据从DB0DB7输出,以供读取;当RS引脚信号为“1”、R/W引脚信号为“0”,E引脚信号由“0”变为“1”时,就会把DB0DB7引脚上的数据存入数据寄存器。63第6章 MCS51单片机的接口与应用 (6)忙碌信号(BusyFlag,BF)。忙碌信号的作用是告诉微处理器,字符型液晶显示模块内部是否忙着处理数据,当BF=1时,表示字符型液晶显示模块内部

38、正在处理数据,不能接受微处理器送来的指令或数据。字符型液晶显示模块设置BF是因为微处理器处理一个指令时间很短,所以微处理器要写数据或指令到字符型液晶显示模块之前,必须先查看BF是否为0。64第6章 MCS51单片机的接口与应用 (7)地址计数器(AddressCounter,AC)。地址计数器的作用是负责记录写到CGRAM或DDRAM数据的地址,或从CGRAM或DDRAM读取数据的地址。使用地址设定指令写到指令寄存器后,地址数据会经过指令解码器存入地址计数器中。当微处理器从DDRAM或CGRAM读取数据时,地址计数器将按照微处理器对字符型液晶显示模块的设定值自动进行修改。65第6章 MCS51

39、单片机的接口与应用 2. 内置内置HD44780驱动控制器的字符型液晶显示模块的驱动控制器的字符型液晶显示模块的引脚信号引脚信号字符型液晶显示模块主要用于显示字符、数字、符号,它是由若干个57或511点阵字符组成的,每一个点阵字符都可以显示一个字符,点阵字符之间空有一个点距和行距的距离。目前常用的有16字1行、16字2行、20字2行和40字2行等字符型液晶显示模块,虽然这些字符型液晶显示模块显示的字数各不相同,但都具有相同的输入与输出接口。66第6章 MCS51单片机的接口与应用 图6.18内置HD44780驱动控制器的字符型液晶显示模块的引脚排列67第6章 MCS51单片机的接口与应用 图6

40、.18所示为16字2行字符型液晶显示模块,该模块采用的驱动控制器为HD44780及其兼容集成电路。从前面的介绍可知,虽然HD44780集成电路对外引出80个引脚,但它与其他器件加工成的液晶显示模块对外引脚线却只有14条,应用时只需设计该14条引脚线与微处理器的接口电路与程序。内置HD44780驱动控制器的16字2行字符型液晶显示模块的引脚排列如图6.18所示。下面对其引脚信号作以介绍。68第6章 MCS51单片机的接口与应用 DB7DB0:8条数据线。用于微处理器与字符型液晶显示模块之间交换数据或命令。VO:对比度调整电压输入端。在使用中接可调电压,如电位器的滑动端,用来调整液晶显示屏的对比度

41、。VDD:电源电压输入端。接+5V单电源电压。VSS:参考地端。接工作电源参考地。RS:寄存器选择输入端。当输入高电平时,选择数据寄存器;输入低电平时,选择指令寄存器。R/W:读/写选通信号输入端。当输入高电平时,对液晶显示模块进行读操作;当输入低电平时,对液晶显示模块进行写操作。69第6章 MCS51单片机的接口与应用 E:使能信号输入端。当输入高电平时,可对液晶显示模块进行读/写操作;当输入低电平时,液晶显示模块不工作。图6.19字符型液晶显示模块的内部框图70第6章 MCS51单片机的接口与应用 6.2.8 LCM的命令字的命令字在应用LCM进行显示控制时,通过其引脚线发送相应命令和数据

42、到内部指令寄存器或数据寄存器中,使LCM完成相应的显示功能。内置HD44780驱动控制器的字符型液晶显示模块可以使用的指令共有11条,其指令格式如表6.3所示。71第6章 MCS51单片机的接口与应用 72第6章 MCS51单片机的接口与应用 下面对表6.3中的指令功能及格式定义做进一步说明。1. 清屏指令清屏指令该指令的功能是清除液晶显示器(即将DDRAM的内容全部填入“空白”的ASCII代码20H),光标撤回到液晶显示屏的左上方,将地址计数器(AC)的值设为0。指令执行时间为1.64s。2. 光标归位指令光标归位指令该指令的功能是将光标撤回到液晶显示屏的左上方,地址计数器(AC)的值设为0

43、,保持DDRAM的内容不变。指令执行时间为1.64s。73第6章 MCS51单片机的接口与应用 3. 进入模式设置指令进入模式设置指令该指令的功能是设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。指令执行时间为40s。根据指令表6.3中I/D、S的变化,又可设定为如表6.4所示的4种模式操作。表表6.4 模式设置设定情况模式设置设定情况74第6章 MCS51单片机的接口与应用 4. 显示器显示器ON/OFF控制指令控制指令该指令的功能是控制显示器开/关,光标开/关,决定光标是否闪烁,由指令表6.4定义的D、C、B三位来设定。D位控制显示器开(ON)或关(OFF),D=

44、1时显示,D=0时不显示。C位控制光标开(ON)或关(OFF),C=1时显示光标,C=0时不显示光标。B位控制光标是否闪烁,B=1时光标闪烁,B=0时光标不闪烁。指令执行时间为40s。75第6章 MCS51单片机的接口与应用 5. 设定显示器或光标移动方向指令设定显示器或光标移动方向指令该指令的功能是控制光标移位或使整个显示字幕移位。指令执行时间为40s。由表6.3定义的S/C、R/L两位编码,又可设定为如表6.5所示的四种情况。 表表6.5 光标、光标、 显示器的字符移动设定显示器的字符移动设定76第6章 MCS51单片机的接口与应用 6. 功能设定指令功能设定指令通过该指令可设定数据长度、

45、显示行数和字型。由表6.3中定义的DL、N、F三位来设定。DL用于设定数据的长度,DL=1时,数据为8位;DL=0时,数据为四位。N用于设定显示行数,N=1时,显示2行;N=0时,显示1行。F用于设定字型,F=1时,选定510点阵字型;F=0时,选定57点阵字型。功能的指令执行时间为40s。77第6章 MCS51单片机的接口与应用 7. 设定设定CGRAM地址指令地址指令该指令的功能是设定下一个要存入数据的CGRAM地址。由表6.3中的指令格式定义可知,从数据线的低6位设定输入CGRAM的6位地址。指令执行时间为40s。8. 设定设定DDRAM地址指令地址指令该指令的功能是设定下一个要存入数据

46、的DDRAM地址。由表6.3中的指令格式定义可知,从数据线的低7位设定输入DDRAM的7位地址。指令执行时间为40s。对照表6.3和设定DDRAM地址指令的控制字格式,不同显示字数和行数的字符型LCM的地址分配情况如表6.6所示。78第6章 MCS51单片机的接口与应用 表表6.6 字符型液晶显示模块的地址分布字符型液晶显示模块的地址分布79第6章 MCS51单片机的接口与应用 9. 读取忙碌状态数据和读取忙碌状态数据和AC地址指令地址指令通过该指令可读取忙碌信号和AC地址。指令执行时间为40s。由表6.3中的指令格式定义可知,从LCM数据寄存器读取的8位数据的最高位DB7表示忙碌状态,低7位

47、是地址计数器(AC)的7位地址。当最高位BF=1,表示在忙碌中,LCM无法接收数据;当BF=0,表示空闲,LCM可以接收数据。80第6章 MCS51单片机的接口与应用 10. 数据写入到数据写入到DDRAM或或CGRAM中的指令中的指令通过该指令可将字符码写入DDRAM中,以使液晶显示屏显示出相应字符,或将使用者自己设计的图形码存入CGRAM中。从表6.3中的指令格式定义可知,从LCM的8位数据线写入编码对应的8位数据。指令执行时间为40s。11. 从从CGRAM或或DDRAM读取数据指令读取数据指令从表6.3中的指令格式定义可知,从数据线DB7DB0可读取CGRAM或DDRAM的内容。指令执

48、行时间为40s。81第6章 MCS51单片机的接口与应用 6.2.9字符型字符型LCM的接口及应用举例的接口及应用举例1. 内置内置HD44780驱动控制器的字符型驱动控制器的字符型LCM与与51单片单片机的接口电路机的接口电路在设计字符型LCM与单片机的接口电路时,一般是将LCM作为终端与单片机的并行接口连接,单片机通过该并行接口改变LCM的控制信号、设置相应命令编码,实现对LCM的控制和显示要求。对并行接口的选用,原则上没有限制,可用单片机的内部I/O及其扩展I/O口。82第6章 MCS51单片机的接口与应用 但在设计接口电路和应用程序时,应特别注意以下问题:(1)对字符型LCM进行读/写

49、操作不是利用单片机的读/写信号,而是通过对LCM使能信号(E)的控制来完成的。(2)字符型LCM的数据总线不是三态总线,所以在调试阶段,R/W引脚为低电平,以保证LCM处于写状态;如果R/W引脚为高电平,则LCM处于读状态,将会造成数据总线混乱,形成死机现象。(3)由于51单片机复位后4个并行口都为FFH,因此其并行口输出信号要经过反相器反相后,连接到字符型液晶显示模块的R/W输入端。83第6章 MCS51单片机的接口与应用 图6.20是51系列单片机驱动字符型液晶显示模块的电路图。这种驱动控制方式是把字符型液晶显示模块作为终端与单片机的并行接口连接,单片机通过该并行接口的操作间接地实现对字符

50、型液晶显示模块的控制。图6.2051单片机与LCM的接口电路84第6章 MCS51单片机的接口与应用 在图6.20中,单片机的P0和P1口为并行接口与字符型液晶显示模块连接。在编制程序时,对LCM控制信号(RS、R/W、E)的要求是:写操作时写操作时, 使能信号使能信号E的下降沿有效的下降沿有效; 读操作时读操作时, 使能信号使能信号E在高电平有效在高电平有效;在控制顺序上,先设置先设置RS、 R/W 的状态的状态, 再设置再设置E信号为高电平信号为高电平, 这时从数据口读取数据这时从数据口读取数据, 然后然后将使能信号将使能信号E设置为低电平设置为低电平, 写入数据写入数据, 最后复位最后复

51、位RS和和R/W的的状态。状态。85第6章 MCS51单片机的接口与应用 2. LCM初始化初始化 对LCM的初始化,实质上是对其进行指令系统中的指令操作。LCM驱动控制器的指令系统并非是单片机内部执行相关操作的命令,而是通过接口电路对LCM引脚信号设置相应命令编码,主要通过相应程序来实现。1) 查看忙碌信号的子程序查看忙碌信号的子程序对单片机来说,LCM是一个慢速的外部设备,单片机每发送一个指令到LCM,LCM至少要40s的时间工作才能完成。LCM执行一个指令时不能接受其他的指令(除了忙碌信号读取指令),所以在单片机要对LCM下指令以前,必须先检查LCM正在执行的指令的状态,单片机必须确定L

52、CM有空的时候才能正式发送指令给LCM。86第6章 MCS51单片机的接口与应用 检查忙碌信号的子程序(CheckBusy)如下:CheckBusy:PUSHACCCheckBusyLoop:CLRP1.2;设定RS=0,选择指令缓存器CLRP1.1;设定R/W=1,选择读模式CLR P1.0SETBP1.0;令字符型LCM使能MOVA,P0;将字符型LCM的DB0DB7数据由P0口读入ACC中,以检查BF是否为087第6章 MCS51单片机的接口与应用 CLRP1.0;使字符型LCM禁止使能,不作数据传递或设定JBACC.7,CheckBusyLoop;检测BF是否为“1”,若为“1”,则检

53、测等待POPACCLCALLDELAY;调用延时子程序,延时约几个毫秒,保证数据操作有效稳定RETDELAY:MOVR6,#05H;延时子程序,延时的时间约为2.5ms,设振荡频率为6MHzD1:MOVR7,#248;设置循环次数DJNZR7,$DJNZR6,D1RET;返回主程序88第6章 MCS51单片机的接口与应用 2)将指令码写到ID指令寄存器的子程序(WriteInstruction)WriteInstruction:LCALLCheckBusy;延时,确定字符型LCM不忙碌,可以执行指令CLRP1.0CLRP1.2;设定RS=0,选择指令寄存器SETBP1.1;设定R/W=0,选择

54、写模式SETBP1.0;令字符型LCM使能MOVP0,A;将存在ACC内的指令码经过单片机的P0口输出到字符型LCMCLRP1.0;写入指令,使字符型LCM禁止使能RET89第6章 MCS51单片机的接口与应用 3)将数据写到DR数据寄存器的子程序(WriteLCDData)WriteLCDData:LCALLCheckBusy;调用检测子程序,确定LCM不忙碌,可以执行指令CLRP1.0SETBP1.2;设定RS=1,选择数据寄存器SETBP1.1;设定R/W=0,选择写模式SETBP1.0;令字符型LCM可以使能MOVP0,A;将存在ACC内的指令码经过单片机的P0口输出到字符型LCMCL

55、RP1.0;写入数据,使字符型LCM禁止使能RET90第6章 MCS51单片机的接口与应用 4)清除显示器的子程序(CLS)由于清除显示器指令是属于写数据到IR指令寄存器中的一个,因此在编写程序时,只需要将消除指令00000001B(即01H)存入ACC,再调用WriteInstruction子程序。下面是清除显示器的子程序:CLS:MOVA,#01H;将清除显示器指令码01H放入ACCLCALLWriteInstruction;调用WriteInstruction子程序RET91第6章 MCS51单片机的接口与应用 5)启动字符型LCM的子程序(Initial)电源打开以后,单片机必须启动字

56、符型LCM工作。启动字符型LCM工作的方式有两种:自动启动和指令启动。如果在打开电源时使字符型液晶显示模块供电的电源符合图6.21所示的变化要求,则字符型液晶显示模块会自动执行清除显示器指令和设定功能指令来启动字符型液晶显示模块工作。指令启动时,当DL=1时,设定数据长度为8位,当N=0时,设定为显示一行,当F=0时,设定使用57点阵字符的字型。当D=0时,设定显示器不显示,当C=0时,设定光标不显示,当B=0时,设定光标不闪烁,并且进入模式设定。当I/O=1时,设定为递增模式,当S=0时,设定显示器所显示的字体不移动。92第6章 MCS51单片机的接口与应用 在字符型液晶显示模块执行自动启动

57、工作后,单片机只要按照系统所需要的功能重新对字符型液晶显示模块依次下达设定功能指令、显示器ON/OFF控制指令与设定进入模式指令,在一般情况下,电源打开的时序都是足以符合要求的。所以,单片机启动字符型液晶显示模块的子程序只需调用WriteInstruction子程序,对字符型液晶显示模块下达设定功能指令、显示器ON/OFF控制指令与设定进入模式指令。例如,要让字符型液晶显示模块设定数据长度为8位、显示两行、使用57点阵的字型字符、光标要显示但不闪烁、每一次将数据输入DDRAM后光标向右移动一格。93第6章 MCS51单片机的接口与应用 下面是启动字符型液晶显示模块的子程序:Initial:MO

58、VA,#38H;将38H放入ACC。将字符型LCM设定为数据长度为8位、显示两行、使用57点阵的字型LCALLWriteInstruction;调用WriteInstruction子程序MOVA,#0EH;将0EH放入ACC,将字符型LCM设定为显示器要显示字符,光标;要显示并且不闪烁94第6章 MCS51单片机的接口与应用 LCALLWriteInstruction;调用WriteInstruction子程序MOVA,#06H;将06H放入ACC,将字符型LCM设定为每次将数据输入DDRAM以后,光标向右移动一格LCALLWriteInstruction;调用WriteInstruction

59、子程序RET95第6章 MCS51单片机的接口与应用 3. 应用举例应用举例下面用三个应用程序来说明内置HD44780驱动控制器的字符型液晶显示模块在使用中的编程问题,这三个程序分别是让字符型液晶显示模块显示字符“C”、让字符型液晶显示模块显示2行字串“WELLCOME”与“TESTLCD”、按要求显示“WELLCOMETOUSETHELCM”。在编写程序时,例1和例2是通过反复调用字符型LCM的5个初始化子程序来实现显示要求的,而例3则是根据单片机对字符型LCM的显示控制流程来编写的,可加深对字符型LCM的理解和使用。例1让字符型LCM显示“C”字符。96第6章 MCS51单片机的接口与应用

60、 字符型液晶显示模块显示“C”字符的程序如下:ORG0000H;程序从地址0000H开始存放JMPBEGIN;跳到BEGIN处执行程序ORG0030HBEGIN:LCALLInitial;调用启动字符型液晶显示模块的子程序LCALLCLS;调用清除显示子程序97第6章 MCS51单片机的接口与应用 MOVA,#80H;80H是设定DDRAM的地址为00H的指令码,即第一行的第一列的位置LCALLWriteInstruction;调用将指令码写到IR指令寄存器的子程序MOVA,#43H;将“C”字符的ASCII码放入累加器内LOOP:LCALLWriteLCDData;调用将数据写到DR数据寄存

61、器的子程序JMPBEGINEND98第6章 MCS51单片机的接口与应用 例2让字符型液晶显示模块显示2行字串“WELLCOME”和“TESTLCD”。2行字串“WELLCOME”和“TESTLCD”的显示格式和要求如下:99第6章 MCS51单片机的接口与应用 让字符型LCM显示2行字串“WELLCOME”和“TESTLCD”的程序如下:ORG0000H ;程序从地址0000H开始存放JMPBEGIN;跳到BEGIN处执行程序ORG0030HBEGIN:LCALLInitial;调用启动字符型液晶显示模块的子程序LCALLCLS;调用清除显示器子程序MOVA,#80H;将80H送入累加器,设

62、定DDRAM的地址为00H,即将光标移到第一行第一列的位置上100第6章 MCS51单片机的接口与应用 LCALLWriteInstruction;调用将指令码写到IR指令寄存器的子程序MOVDPTR,#LINE1;将第一行字符串按程序存储器的起始地址存入DPTRLCALLSTRING;调用STRING子程序,将字符串放到液晶显示屏上显示101第6章 MCS51单片机的接口与应用 MOVA,#0C0H;将C0H送入累加器,设定DDRAM的地址为40H,即将光标移到第二行第一列的位置上LCALLWriteInstruction;调用将指令码写到IR指令寄存器的子程序MOVDPTR,#LINE2;

63、将第二行字符串按程序存储器的起始地址存入DPTR102第6章 MCS51单片机的接口与应用 LCALLSTRING;调用STRING子程序,将字符串放到液晶显示屏上显示JMP BEGIN;执行多次循环STRING:PUSHACCPLOOP:CLRA;清除ACC的内容MOVCA,A+DPTR;按照DPTR与ACC的值从程序存储器中读取数据存入ACC103第6章 MCS51单片机的接口与应用 JZENDPR;判断ACC的值是否为零,若ACC的值为零,结束显示字符串LCALLWriteLCDData;调用将数据写到DR数据寄存器的子程序INCDPTR;将DPTR中的值加1,以便显示字符串的下一个字符

64、JMPPLOOP;跳到标记PLOOP处继续执行程序ENDPR:POPACC104第6章 MCS51单片机的接口与应用 RETLINE1:DBWELLCOME,00H;在液晶显示屏上显示出的第一行字符串内容为“WELLCOME”LINE2:DBTESTLCD,00H;在液晶显示屏上显示出的第二行字符串内容为“TESTLCD”END105第6章 MCS51单片机的接口与应用 字符码(DDRAMDATA)、CGRAM地址与自定义点阵数据(CGRAM数据)之间的关系,如下表所示。106第6章 MCS51单片机的接口与应用 6.3 A/D转换器接口转换器接口6.3.1 A/D转换器概述转换器概述在设计A

65、/D转换器与单片机接口之前,往往要根据A/D转换器的技术指标选择A/D转换器。为此,先介绍一下A/D转换器的主要技术指标。量化间隔和量化误差是A/D转换器的主要技术指标之一。量化间隔可用下式表示。其中n为A/D转换器的位数。107第6章 MCS51单片机的接口与应用 量化误差有两种表示方法:一种是绝对误差,另一种是相对误差。A/D转换器芯片种类很多,按其转换原理可分为逐次比较式、双重积分式、量化反馈式和并行式A/D转换器;按其分辨率可分为816位的A/D转换器芯片。目前最常用的是逐次逼近式和双重积分式。108第6章 MCS51单片机的接口与应用 逐次逼近式转换器的常用产品有ADC0801ADC

66、0805型8位MOS型A/D转换器、ADC0808/0809型8位MOS型A/D转换器、ADC0816/0817型8位MOS型A/D转换器、AD574型快速12位A/D转换器。双重积分式转换器的常用产品有ICL7106/ICL7107/ICL7126、MC14433/5G14433、ICL7135等。A/D转换器与单片机接口具有硬、软件相依性。一般来说,A/D转换器与单片机的接口主要考虑的是数字量输出线的连接、ADC启动方式、转换结束信号处理方法以及时钟的连接等。109第6章 MCS51单片机的接口与应用 A/D转换器数字量输出线与单片机的连接方法与其内部结构有关。对于内部带有三态锁存数据输出

67、缓冲器的ADC(如ADC0809、AD574等),可直接与单片机相连。对于内部不带锁存器ADC,一般通过锁存器或并行I/O接口与单片机相连。在某些情况下,为了增强控制功能,那些带有三态锁存数据输出缓冲器的ADC也常采用I/O接口连接。还有,随着位数的不同,ADC与单片机的连接方法也不同。对于8位ADC,其数字输出线可与8位单片机数据线对应相接。对于8位以上的ADC,与8位单片机相接就不那么简单了,此时必须增加读取控制逻辑,把8位以上的数据分两次或多次读取。为了便于连接,一些ADC产品内部已带有读取控制逻辑,而对于内部不包含读取控制逻辑的ADC,在和8位单片机连接时,应增设三态缓冲器对转换后的数

68、据进行锁存。110第6章 MCS51单片机的接口与应用 一个ADC开始转换时,必须加一个启动转换信号,这一启动信号要由单片机提供。不同型号的ADC,对于启动转换信号的要求也不同,一般分为脉冲启动和电平启动两种。对于脉冲启动型ADC,只要给其启动控制端上加一个符合要求的脉冲信号即可,如ADC0809、ADC574等。通常用WR和地址译码器的输出经一定的逻辑电路进行控制。对于电平启动型ADC,当把符合要求的电平加到启动控制端上时,立即开始转换。在转换过程中,必须保持这一电平,否则会终止转换的进行。因此,在这种启动方式下,单片机的控制信号必须经过锁存器保持一段时间,一般采用D触发器、锁存器或并行I/

69、O接口等来实现。AD570、AD571等都属于电平启动型ADC。111第6章 MCS51单片机的接口与应用 当ADC转换结束时,ADC输出一个转换结束标志信号,通知单片机读取转换结果。单片机检查判断A/D转换结束的方法一般有中断和查询两种。对于中断方式,可将转换结束标志信号接到单片机的中断请求输入线上或允许中断的I/O接口的相应引脚,作为中断请求信号;对于查询方式,可把转换结束标志信号经三态门送到单片机的某一位I/O口线上,作为查询状态信号。A/D转换器的另一个重要连接信号是时钟,其频率是决定芯片转换速度的基准。整个A/D转换过程都是在时钟的作用下完成的。A/D转换时钟的提供方法有两种:一种是

70、由芯片内部提供(如AD574),一般不许外加电路;另一种是由外部提供,有的用单独的振荡电路产生,更多的则把单片机输出时钟经分频后,送到A/D转换器的相应时钟端。112第6章 MCS51单片机的接口与应用 6.3.2 A/D转换器转换器ADC0809与单片机的接口与单片机的接口1ADC0809芯片简介芯片简介图6.22ADC0809芯片的内部逻辑结构与引脚图CLK范围:101280KHz;转换时间:100微秒(640KHz时钟时);130微秒(500KHz时钟时)113第6章 MCS51单片机的接口与应用 表6.7ADC0809通道地址选择表ADDCADDBADDA选通的通道000IN0001I

71、N1010IN2011IN3100IN4101IN5110IN6111IN7114第6章 MCS51单片机的接口与应用 图6.23ADC0809转换工作时序115第6章 MCS51单片机的接口与应用 补充插图:访问外部RAM的时序用ALE做外部时钟应注意:访问外部RAM的指令会影响ALE的输出。116第6章 MCS51单片机的接口与应用 2ADC0809与单片机接口与单片机接口图6.24ADC0809与8051的接口连接图117第6章 MCS51单片机的接口与应用 3A/D转换应用程序举例转换应用程序举例设图6.24接口电路用于一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,把采样转换

72、所得的数字量按序存于片内RAM的30H37H单元中。采样完一遍后停止采集。其数据采集的初始化程序和中断服务程序如下:初始化程序:MOVR0,#30H ;设立数据存储区指针MOVR2,#08H ;设置8路采样计数值SETBIT0;设置外部中断0为边沿触发方式SETBEA;CPU开放中断118第6章 MCS51单片机的接口与应用 SETBEX0;允许外部中断0中断 MOVDPTR,#FEF8H;送入口地址并指向IN0LOOP:MOVXDPTR,A;启动A/D转换,A的值无意义HERE:SJMPHERE;等待中断中断服务程序:MOVXA,DPTR;读取转换后的数字量MOVR0,A;存入片内RAM单元

73、INCDPTR;指向下一模拟通道INCR0;指向下一个数据存储单元DJNZR2,INT0;8路未转换完,则继续CLREA;已转换完,则关中断CLREX0;禁止外部中断0中断RETI;中断返回INT0:MOVXDPTR,A;再次启动A/D转换RETI ;中断返回119第6章 MCS51单片机的接口与应用 6.3.3 单片机与单片机与A/D转换器转换器AD574的接口的接口1AD574芯片简介AD574是一种快速的12位逐次比较式A/D转换芯片,片内有两片双极型电路组成的28脚双插直列式芯片,无需外接元器件就可独立完成A/D转换功能。内部设有三态数据输出锁存器。一次转换时间为25s。芯片引脚如图6

74、.25所示。120第6章 MCS51单片机的接口与应用 图6.25AD574的引脚图121第6章 MCS51单片机的接口与应用 AD574的引脚定义如下:REOUT:内部参考电源输出(+10V);REFIN:参考电压输入;BIP:偏置电压输入;10VIN:5V或010V模拟输入;20VIN:10V或020V模拟输入;DB0DB11数字量输出,高半字节为DB8DB11,低字节为DB0DB7;122第6章 MCS51单片机的接口与应用 STS:工作状态指示端:工作状态指示端。STS=1时表示转换器正处于转换状态,STS返回到低电平时,表示转换完毕。该信号可处理器作为中断或查询信号用;12/-8:变

75、换输出字长选择控制端:变换输出字长选择控制端,在输入为高电平时,变换字长输出为12位,在低电平时,按8位输出;CS、CE:片选信号:片选信号。当CS=0、CE=1同时满足时,AD574才能处于工作状态。R/C:数据读出和数据转换启动控制:数据读出和数据转换启动控制;A0:字节地址控制:字节地址控制。它有两个作用,在启动AD574(R/C=0)时,用来控制转换长度。A=0时,按完整的12位A/D转换方式工作,A=1时,则按8位A/D转换方式工作。在AD574处于数据读出工作状态(R/-C=1)时,A0和12/8成为输出数据格式控制。123第6章 MCS51单片机的接口与应用 表6.8AD574控

76、制信号状态表CECSR/ C 12/ 8A0功能说明功能说明100012位转换位转换10018位转换位转换101+5V12位输出位输出101地地0高高8位输出位输出101地地1低低4位输出位输出124第6章 MCS51单片机的接口与应用 2AD574模拟输入电路的极性选择模拟输入电路的极性选择图6.26AD574的模拟输入电路(a)单极性输入;(b)双极性输入125第6章 MCS51单片机的接口与应用 AD574A启动转换和读数据时序启动转换和读数据时序126第6章 MCS51单片机的接口与应用 3AD574与与MCS-51单片机的接口单片机的接口图6.27AD574与MCS51单片机接口电路

77、127第6章 MCS51单片机的接口与应用 4转换程序设计举例转换程序设计举例设要求AD574进行12位转换,单片机对转换结果读入,高8位和低4位分别存于片内RAM的31H和30H单元,其转换子程序如下:ADTRANS:MOVR0,#7CH;7CH地址使AD574的CS=0、A0=0、R/C=0MOVR1,#31H;R1指向转换结果的送存单元地址MOVXR0,A;产生有效的WR信号,启动AD574为12位工作方式MOVA,P1;读P1口,检测STS的状态128第6章 MCS51单片机的接口与应用 WAIT:ANLA,#01HJNZWAIT ;转换未结束,等待,转换结束则进行如下操作INCR0;

78、使CS=0、A0=0、R/C=1,为按双字节读取转换结果,并读高;字节MOVXA,R0;读取高8位转换结果MOVR1,A ;送存高8位转换结果DECR1;R1指向低4位转换结果存放单元地址INCR0INCR0;(R0)=7FH,使CS=0、A0=1、R/C=1,为读低字节MOVXA,R0;读取低4位转换结果ANLA,#0FH;只取低4位结果MOVR1,A ;送存低4位结果RET129第6章 MCS51单片机的接口与应用 6.4 D/A转换器接口转换器接口6.4.1 D/A 转换器概述转换器概述在设计D/A转换器与单片机接口之前,一般要根据D/A转换器的技术指标选择D/A转换器芯片。(1)分辨率

79、。分辨率是D/A转换器对输入量变化敏感程度的描述。D/A转换器的分辨率定义为:当输入数字量发生单位数码变化时,即LSB位产生一次变化时所对应输出模拟量的变化量。对于线性D/A转换器来说,其分辨率与输入数字量输出的位数n呈现下列关系130第6章 MCS51单片机的接口与应用 (2)建立时间。建立时间是描述D/A转换速率快慢的一个重要参数。一般所指的建立时间是输入数字量变化后,模拟输出量达到终值误差LSB/2(最低有效位)时所经历的时间。根据建立时间的长短,把D/A转换器分成以下几挡:超高速100ns较高速100ns1s高速110s中速10100s低速100s131第6章 MCS51单片机的接口与

80、应用 (1)DAC0830系列。DAC0830系列是美国NationalSemiconductor公司生产的具有两个数据寄存器的8位D/A转换芯片。该系列产品包括DAC0830、DAC0831、DAC0832,管脚完全相容为20脚双插直列式封装。(2)DAC82。DAC82是B-B公司生产的8位能完全与微处理器兼容的D/A转换器芯片,片内带有基准电压和调节电阻。无需外接器件及微调即可与单片机8位数据线相连。芯片工作电压为15V,可以直接输出单极性或双极性的电压(0+10V,10V)和电流(01.6mA,0.8mA)。132第6章 MCS51单片机的接口与应用 (3)DAC1020/AD7520

81、和DAC1220/AD7521系列。DAC1020/AD7520为10位分辨率的D/A转换集成系列芯片。DAC1020系列是美国NationalSemiconductor公司的产品,包括DAC1020、DAC1021、DAC1022,与美国AnalogDevices公司的AD7520及其后继产品AD7530、AD7533完全兼容。单电源工作,电源电压为+5+15V,电流建立时间为500ns,为16线双列直插式封装。133第6章 MCS51单片机的接口与应用 (4)DAC1220/AD7521系列。DAC1220/AD7521系列为12位分辨率的D/A转换集成芯片。DAC1220系列包括DAC1

82、220、DAC1221、DAC1222产品,与AD7521及其后继产品AD7531管脚完全兼容,为18线双插直列式封装。(5)DAC1208和DAC1230系列。DAC1208和DAC1230系列均为美国NationalSemiconductor公司的12位分辨率产品。两者不同之处是DAC1230数据输入引脚线只有8根,而DAC1208有12根。DAC1208系列为24线双插直列式封装,而DAC1230系列为20线双插直列式封装。DAC1208系列包括DAC1208、DAC1209、DAC1210等,DAC1230系列包括DAC1230、DAC1231、DAC1232等。134第6章 MCS5

83、1单片机的接口与应用 (6)DAC708/709。DAC708/709是B-B公司生产的16位微机完全兼容的D/A转换器芯片,具有双缓冲输入寄存器,片内有基准电源及电压输出放大器。数字量可并行或串行输入,模拟量可以电压或电流输出。D/A转换器与单片机接口也具有硬、软件相依性。各种D/A转换器与单片机接口的方法有些差异,但就其基本连接方法,还是有共同之处:都要考虑到数据线、地址线和控制线的连接。135第6章 MCS51单片机的接口与应用 就数据线来说,D/A转换器与单片机的接口要考虑到两个两个问题问题:一是位数一是位数,当高于8位的D/A转换器与8位数据总线的MCS-51单片机接口时,MCS-5

84、1单片机的数据必须分时输出,这时必须考虑数据分时传送的格式和输出电压的毛刺问题;二是二是D/A转换器的内部结构转换器的内部结构,当D/A转换器内部没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或I/O接口。最常用、也是最简单的连接是8位带锁存器的D/A转换器和8位单片机的接口,这时只要将单片机的数据总线直接和D/A转换器的8位数据输入端一一对应连接即可。136第6章 MCS51单片机的接口与应用 就地址线来说,一般的D/A转换器只有片选信号,而没有地址线。这时单片机的地址线采用全译码或部分译码,经译码器的输出控制片选信号,也可由某一位I/O线来控制片选信号。也有少数D/A转换器有少

85、量的地址线,用于选中片内独立的寄存器或选择输出通道(对于多通道D/A转换器),这时单片机的地址线与D/A转换器的地址线对应连接。就控制线来说,D/A转换器主要有片选信号、写信号及启动转换信号等,一般由单片机的有关引脚或译码器提供。一般来说,写信号多由单片机的-WR信号控制;启动信号常为片选信号和写信号的合成。137第6章 MCS51单片机的接口与应用 6.4.2 8位位D/A转换器与单片机的接口转换器与单片机的接口1DAC0830/DAC0831/ DAC0832的结构与引脚功能的结构与引脚功能图6.30DAC0830系列结构框图138第6章 MCS51单片机的接口与应用 2DAC0830系列

86、系列D/A转换器与单片机接口转换器与单片机接口(图中有点错误图中有点错误)图图6.31 单路单路DAC0830/DAC0831/DAC0832与单片机接口逻辑图与单片机接口逻辑图 139第6章 MCS51单片机的接口与应用 设分配给DAC0830/DAC0831/DAC0832的地址为7FFFH(P2.7=0),则执行下列三条指令就可以将一个数字量转换为模拟量:MOVDPTR,#7FFFH;端口地址送DPTRMOVA,#DATA;8位数字量送累加器MOVXDPTR,A;向锁存器写入数字量,同时启动转换140第6章 MCS51单片机的接口与应用 图6.32单路DAC0830/DAC0831/DA

87、C0832控制时序141第6章 MCS51单片机的接口与应用 下面的程序可使DAC0830/DAC0831/DAC0832输出呈渐升骤降的电压锯齿波。START:MOVDPTR,#7FFFHMOVA,#00LOOP:MOVXDPTR,AINCAMOVR0,#data;data为延时常数DJNZR0,$ ;延时,改变data可改变锯齿波周期T值SJMPLOOP142第6章 MCS51单片机的接口与应用 图6.33由软件产生的锯齿波143第6章 MCS51单片机的接口与应用 图6.34两路DAC0830/DAC0831/DAC0832与单片机接口逻辑图图图中中有有点点错错误误144第6章 MCS5

88、1单片机的接口与应用 如果图6.26中的模拟输出分别用于示波器的X、Y偏转,则MCS-51执行下面的程序后,可使示波器上的光点根据参数X、Y的值同步移动。MOVDPTR,#0DFFFHMOVA,#XMOVXDPTR,A;将参数X写入DAC(1)的数据输入锁存器MOVDPTR,#0BFFFHMOVA,#YMOVXDPTR,A;将参数Y写入DAC(1)的数据输入锁存器MOVDPTR,#7FFFHMOVXDPTR,A;两片DAC同时启动转换,同步输出SJMP$145第6章 MCS51单片机的接口与应用 3DAC0830/DAC0831/DAC0832的模拟输出方式的模拟输出方式DAC0830/DAC

89、0831/DAC0832属于电流输出型的D/A转换器,其转换结果是与输入数字量成正比的电流。这种形式的输出不能直接带动负载,需经运算放大器放大并转换成电压输出。电压输出又根据不同的场合,需要单极性电压输出和双极性电压输出。图6.31、图6.34所示的接口电路是单极性电压输出,运放的输出电压为其中,D为用十进制表示的数字输入量。146第6章 MCS51单片机的接口与应用 例如,设VREF=-5V,当D=FFH=255时,这是最大的输出电压。若D=01H=1时,这是最低位LSB对应的输出电压。运放的输出电压与参考电压VREF是反极性。147第6章 MCS51单片机的接口与应用 148第6章 MCS

90、51单片机的接口与应用 根据运放的理想情况,运放A2的反向输入端虚地,且I1+I2=0,而如果选择R2=R3=2R1,则可以得到VOUT2=(2VOUT1+VREF)设VREF=+5 V,当VOUT1=0 V时,VOUT2=5 V;VOUT1=2.5 V时,VOUT2=0V;VOUT1=5V时,VOUT2=5V。可见,VOUT2将VOUT1输出电压范围05V转换成双极性电压范围5+5V。因149第6章 MCS51单片机的接口与应用 所以150第6章 MCS51单片机的接口与应用 6.4.3 高于高于8位位D/A转换器与单片机的接口转换器与单片机的接口在微机控制系统中,为了提高精度需要采用10位

91、、12位、14位,甚至更高位数的D/A转换器芯片。高于8位的D/A转换器芯片与8位单片机接口,被转换的数据至少要分两次送出。这需要解决两个问题:一是分时传送的数据格式,二是数据不同时传送可能引起的输出模拟量而出现毛刺。后一问题可通过D/A转换芯片内部或外部增加锁存器,达到两级缓冲,使被转换数据完整进入二级缓冲器,开始转换。151第6章 MCS51单片机的接口与应用 图6.368位系统的12位数据格式(a)左对齐格式;(b)右对齐格式152第6章 MCS51单片机的接口与应用 1DAC1208系列的结构与引脚功能系列的结构与引脚功能表6.9DAC1208系列精度精度型号0.012%DAC1208

92、0.024%DAC12090.05%DAC1210153第6章 MCS51单片机的接口与应用 图6.37DAC1208系列结构框图154第6章 MCS51单片机的接口与应用 2DAC1208系列系列D/A转换器与转换器与MCS-51单片机的接口单片机的接口图图6.38 DAC1208系列与单片机接口逻辑图系列与单片机接口逻辑图 155第6章 MCS51单片机的接口与应用 D/A转换程序如下:MOVDPTR,#4001H;使DPTR指向8位输入锁存器MOVR1,#DIGIT;使R1指向12位数的高8位单元MOVA,R1;取高8位转换数据MOVXDPTR,A;向DAC1208送高8位数据DECDP

93、TR;使DPTR指向4位输入锁存器INCR1;使R1指向12位数的低4位单元MOVA,R1;取低4位转换数据SWAPAMOVXDPTR,A;再向DAC1208送低4位数据MOVDPTR,#6000H;使DPTR指向DAC锁存器MOVXDPTR,A;完成12位D/A转换156第6章 MCS51单片机的接口与应用 6.5 行程开关、晶闸管、继电器与单片机的接口行程开关、晶闸管、继电器与单片机的接口6.5.1 光电耦合器件光电耦合器件光电耦合器件是由发光二极管(发光源)与受光源(如光敏三极管、光敏晶闸管或光敏集成电路等)封装在一起,构成电光电转换器件。根据受光源结构的不同,可以将光电耦合器件分为晶体

94、管输出的光电耦合器件和晶闸管输出的光电耦合器件两大类。晶体管输出的光电耦合器件的内部结构如图6.41所示。157第6章 MCS51单片机的接口与应用 图6.41晶体管光耦器件结构图158第6章 MCS51单片机的接口与应用 图6.42晶闸管输出光耦内部结构159第6章 MCS51单片机的接口与应用 6.5.2 行程开关、继电器触点与单片机的接口行程开关、继电器触点与单片机的接口图6.43开关、触点状态输入接口160第6章 MCS51单片机的接口与应用 6.5.3 晶闸管元件与单片机接口晶闸管元件与单片机接口图6.44光耦晶闸管与单片机接口示例161第6章 MCS51单片机的接口与应用 为了避免

95、误触发,在MOC304第4引脚和外部大功率双向可控硅阴极之间增加了泄放电阻R3。R2是MOC3041导通的限流电阻,避免因电流过大引起MOC3041过流而损坏。当单片机P1.1引脚输出低电平时,MOC3041内部的发光二极管导通,由于MOC3041内部带有过零触发电路,交流电压过零后将触发内部的双向可控硅而导通,结果外部大功率双向晶闸管导通,从而接通交流负载。162第6章 MCS51单片机的接口与应用 6.5.4 继电器与单片机接口继电器与单片机接口图6.45继电器与单片机接口示例(a)驱动微型继电器;(b)驱动较大功率继电器163第6章 MCS51单片机的接口与应用 当P1.0输出低电平时,V1导通,继电器吸合;当P1.0输出高电平时,V1截止,继电器不吸合。在继电器吸合到断开的瞬间,由于线圈中的电流不能突变,将在线圈产生下正上负的感应电压,使晶体管集电极承受很高电压,有可能损坏驱动管V1,为此在继电器线圈两端并接一个续流二极管VD2,使线圈两端的感应电压被箝位在0.7V左右。正常工作时,线圈上的电压上正下负,二极管VD2截止,对电路没有影响。当继电器驱动电压VCC大于5V时,VCC电压可能通过三极管V1串入低压回路,为此在7406和V1之间加二极管VD2。164165

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号