1、 2022-7-2612022-7-262【重点与难点【重点与难点】重点是重点是矩阵式键盘的原理和编程方法、矩阵式键盘的原理和编程方法、LED数码管的动态显示数码管的动态显示编程方法、编程方法、DAC0832和和ADC0809与单片机的接口方法和编程要点、与单片机的接口方法和编程要点、开关量的接口技术。开关量的接口技术。难点是难点是矩阵式键盘的工作原理、矩阵式键盘的工作原理、LED数码管的数码管的动态显示的工作原理、动态显示的工作原理、DAC0832和和ADC0809的工作原理。的工作原理。接口技术接口技术是单片机与外设之间相互匹配、高效、可靠的交换信是单片机与外设之间相互匹配、高效、可靠的交
2、换信息的重要技术。首先介绍键盘接口技术;其次介绍显示器息的重要技术。首先介绍键盘接口技术;其次介绍显示器(LED/LCD)接口技术;然后介绍接口技术;然后介绍D/A、A/D和单片机的接口技术;和单片机的接口技术;最后介绍开关量输入最后介绍开关量输入/输出接口技术。输出接口技术。【基本知识点与要求【基本知识点与要求】(1)掌握独立式键盘、矩阵式键盘的原理和应用方法。掌握独立式键盘、矩阵式键盘的原理和应用方法。(2)掌握掌握LED数码管的静态、动态显示硬件结构和软件编程。数码管的静态、动态显示硬件结构和软件编程。(3)了解字符了解字符型型LCD的工作原理,能编写显示程序。的工作原理,能编写显示程序
3、。(4)理解理解D/A转换器工作原转换器工作原理,掌握理,掌握DAC0832使用方法。使用方法。(5)掌握掌握ADC0809与单片机的接口与单片机的接口技术,能够编写数据采集程序。技术,能够编写数据采集程序。(6)掌握开关量输入掌握开关量输入/输出接口技术输出接口技术 2022-7-2638.1.1 8.1.1 键盘工作原理键盘工作原理 1.按键输入原理:按键输入原理:按键利用机械触点的闭合(按下)、断开按键利用机械触点的闭合(按下)、断开(释放)动作实现的。(释放)动作实现的。将动作状态转换为与之对应的高和低电平,将动作状态转换为与之对应的高和低电平,单片机就可以通过识别电平的高、低从而判断
4、键的断开与闭合。单片机就可以通过识别电平的高、低从而判断键的断开与闭合。在单片机应用系统中,一组键或者一个在单片机应用系统中,一组键或者一个键盘通过接口电路与键盘通过接口电路与CPU相连接相连接。CPU可以可以采用查询方式采用查询方式或者或者中断方式中断方式来来获取有无键获取有无键按下按下的信息。若有键按下,需要进一步确认是哪一个键按下,并将的信息。若有键按下,需要进一步确认是哪一个键按下,并将该键号送到累加器,然后通过单片机的散转指令转去执行该键的功该键号送到累加器,然后通过单片机的散转指令转去执行该键的功能程序,程序执行完毕后返回到键的查找状态。能程序,程序执行完毕后返回到键的查找状态。计
5、算机所用的键盘有计算机所用的键盘有全编码键盘和非编码键盘全编码键盘和非编码键盘两种。两种。全编码键盘由硬件逻辑电路识别、并自动提供与被按键对应的全编码键盘由硬件逻辑电路识别、并自动提供与被按键对应的编码。编码。非编码键盘仅提供按键的开关状态,其它工作由相应的软件非编码键盘仅提供按键的开关状态,其它工作由相应的软件来完成来完成。单片机应用系统中多采用非编码键盘单片机应用系统中多采用非编码键盘。2022-7-264 由于机械触点的弹性作用,触点的闭合与断开瞬间均会出现电由于机械触点的弹性作用,触点的闭合与断开瞬间均会出现电压抖动过程,抖动时间一般为压抖动过程,抖动时间一般为510ms,如图所示。为
6、了保证,如图所示。为了保证CPU对键的一次闭合仅作一次处理,必须去除抖动。对键的一次闭合仅作一次处理,必须去除抖动。去除抖动的方法有去除抖动的方法有硬件和软件两种硬件和软件两种。、2.键盘输入接口与软件需要解决的问题键盘输入接口与软件需要解决的问题 硬件电路去除抖动硬件电路去除抖动是通过在按键输出电路上加硬件电路来消除是通过在按键输出电路上加硬件电路来消除抖动,一般采用抖动,一般采用R-S触发器或双稳态电路。一个基本的硬件去除抖触发器或双稳态电路。一个基本的硬件去除抖动电路如下图所示。动电路如下图所示。2022-7-265 软件去除抖动的方法是软件去除抖动的方法是:当检测到有键按下时,软件延时
7、:当检测到有键按下时,软件延时10ms后,再确认该键是否保持按下状态,若是,则确认该键有效;后,再确认该键是否保持按下状态,若是,则确认该键有效;否则重新开始扫描键盘。这样,就可以消除抖动对按键确认的影响。否则重新开始扫描键盘。这样,就可以消除抖动对按键确认的影响。2022-7-266 (2 2)按键识别及编制键盘处理程序)按键识别及编制键盘处理程序 在编写键盘处理程序时需要考虑下面几个问题:在编写键盘处理程序时需要考虑下面几个问题:监测有无键按下;监测有无键按下;有键按下时,若无硬件去抖动电路,则用软件延时方法去除有键按下时,若无硬件去抖动电路,则用软件延时方法去除抖动;抖动;有可靠的逻辑处
8、理方法,解决多键冲突。如采用双键锁,有可靠的逻辑处理方法,解决多键冲突。如采用双键锁,只处理一个健,期间任何按下又松开的健不产生影响,不管一次按只处理一个健,期间任何按下又松开的健不产生影响,不管一次按键持续多长时间,仅执行一次按键功能程序。键持续多长时间,仅执行一次按键功能程序。给出确定的键号以满足散转指令的要求。给出确定的键号以满足散转指令的要求。8.1.2 8.1.2 独立式键盘接口技术独立式键盘接口技术 非编码键盘的结构形式非编码键盘的结构形式一般一般有两种有两种:独立式键盘与矩阵式(行:独立式键盘与矩阵式(行列式)键盘。列式)键盘。独立式键盘电路每个按键单独占有一根独立式键盘电路每个
9、按键单独占有一根I/O接口引线。接口引线。每根每根I/O接口线上的按键都不会影响其他的接口线上的按键都不会影响其他的I/O接口线,电路如图接口线,电路如图8-3所示。所示。2022-7-267 按键输入采用低电平有效,上拉电阻保证了按键断开时,按键输入采用低电平有效,上拉电阻保证了按键断开时,I/O接接口线有确定的高电平。口线有确定的高电平。当当I/O接口内部有上拉电阻时,外电路可以接口内部有上拉电阻时,外电路可以不接上拉电阻。这样,不接上拉电阻。这样,CPU只要检测只要检测I/O接口线的电平高、低就可接口线的电平高、低就可以很容易地判断出哪个按键被按下。以很容易地判断出哪个按键被按下。202
10、2-7-268 独立式键盘电路特点:独立式键盘电路特点:配置灵活,软件识别简单,但按键数量配置灵活,软件识别简单,但按键数量较多时,占用较多时,占用I/O接口线数目较多。故只在按键数量不多时采用这接口线数目较多。故只在按键数量不多时采用这种电路。种电路。查询方式按键识别程序(硬件电路如图查询方式按键识别程序(硬件电路如图8-3),这里省略了软),这里省略了软件延时部分,件延时部分,KPR0KPR7分别为分别为k0k7按键的功能程序入口地址按键的功能程序入口地址 MOV P1,#0FFH ;置;置P1口为输入方式口为输入方式 MOV A,P1 ;读入键状态;读入键状态 CPL A JZ KEYE
11、ND ;无键按下则转返回;无键按下则转返回 ACALL Delay10 ;有键按下调用延时程序去除抖动;有键按下调用延时程序去除抖动 MOV A,P1 ;读入键状态;读入键状态 CPL A JZ KEYEND ;无键按下则为干扰处理,转返回;无键按下则为干扰处理,转返回 JB ACC.0,K0 ;检测;检测0号键是否按下,若按下则转到号键是否按下,若按下则转到K0 JB ACC.1,K1 ;检测;检测1号键是否按下,若按下则转到号键是否按下,若按下则转到K12022-7-269 JB ACC.2,K2;检测;检测2号键是否按下,若按下则转到号键是否按下,若按下则转到K2 JB ACC.3,K3
12、;检测;检测3号键是否按下,若按下则转到号键是否按下,若按下则转到K3 JB ACC.4,K4;检测;检测4号键是否按下,若按下则转到号键是否按下,若按下则转到K4 JB ACC.5,K5;检测;检测5号键是否按下,若按下则转到号键是否按下,若按下则转到K5 JB ACC.6,K6;检测;检测6号键是否按下,若按下则转到号键是否按下,若按下则转到K6 SJMP K7 ;7号键按下转到号键按下转到K7K0:AJMP KPR0K1:AJMP KPR1 K7:AJMP KPR7KPR0:;0号键功能程序入口号键功能程序入口 LJMP KEYEND KPR1:;1号键功能程序入口号键功能程序入口 LJ
13、MP KEYEND 2022-7-2610KPR7:;7号键功能程序入口号键功能程序入口KEYEND:RETDelay10:;延时;延时10ms子程序子程序 RET 8.1.3 8.1.3 矩阵式键盘接口技术矩阵式键盘接口技术 矩阵式键盘由行线和列线组成,也称为行列式键盘矩阵式键盘由行线和列线组成,也称为行列式键盘。按键位于按键位于行、列的交叉点上,行线、列线分别连接到按键开关两端行、列的交叉点上,行线、列线分别连接到按键开关两端。矩阵式。矩阵式键盘电路如图键盘电路如图8-4所示。所示。当按键数量较多时,矩阵式键盘和独立式按键电路相比较,要当按键数量较多时,矩阵式键盘和独立式按键电路相比较,要
14、节省很多节省很多I/O接口线。接口线。2022-7-26112022-7-2612 1.1.矩阵式键盘电路的工作原理矩阵式键盘电路的工作原理 图图8-4中把行线作为输入线连接到单片机扩展的中把行线作为输入线连接到单片机扩展的8255A输入端输入端口口PC0PC3,列线作为输出线连接到单片机扩展的,列线作为输出线连接到单片机扩展的8255A输出端输出端口口PA0PA7。行线通过上拉电阻接。行线通过上拉电阻接+5V,若没有键按下时,行线就,若没有键按下时,行线就处在高电平状态。若有键按下,则对应行线和列线直接相连,行线处在高电平状态。若有键按下,则对应行线和列线直接相连,行线的电平状态就取决于与此
15、行线相连的列线电平状态。这样,在单片的电平状态就取决于与此行线相连的列线电平状态。这样,在单片机的控制下,就可以判断究竟是哪一个键被按下。机的控制下,就可以判断究竟是哪一个键被按下。先令先令所有列线所有列线PA0PA7全全输出低电平(输出低电平(“0”),读入行线的),读入行线的状态,状态,如果所有行线的状态均为高电平(如果所有行线的状态均为高电平(“1”),则键盘无键按下,),则键盘无键按下,否则,键盘中有键按下。否则,键盘中有键按下。当键盘中有键按下时,再逐行扫描。当键盘中有键按下时,再逐行扫描。2022-7-2613 先令列线先令列线PA0输出输出低电平低电平(“0”)、其余列线)、其余
16、列线PA1PA7输出输出高电平高电平,读入行线的状态。若所有行线的状态均为高电平,则,读入行线的状态。若所有行线的状态均为高电平,则PA0这一列上没有闭合键。如果行线的状态不全为高电平,则要逐行这一列上没有闭合键。如果行线的状态不全为高电平,则要逐行判断哪一行为低电平,为低电平的行线和判断哪一行为低电平,为低电平的行线和PA0相交叉处的按键就是相交叉处的按键就是闭合键;闭合键;若若PA0这一列上没有键闭合,则令列线这一列上没有键闭合,则令列线PA1输出低电平、其余输出低电平、其余列线输出高电平。用同样的方法判断列线输出高电平。用同样的方法判断PA1这一列上是否有键闭合,这一列上是否有键闭合,以
17、此类推,直到令列线以此类推,直到令列线PA7输出低电平、其余列线输出高电平,判输出低电平、其余列线输出高电平,判断断PA7这一列上是否有键闭合为止。这一列上是否有键闭合为止。这种这种逐列逐行逐列逐行地检查键盘按键状态的过程称为判断键盘是否地检查键盘按键状态的过程称为判断键盘是否有键按下的有键按下的行扫描法行扫描法。2022-7-2614具体过程如下:具体过程如下:(1)判断键盘上有无键按下。)判断键盘上有无键按下。令列线令列线PA0PA7输出全为输出全为“0”,读入行线读入行线PC0PC3的电平状态。若行线全为的电平状态。若行线全为“1”,则无键按下;,则无键按下;若不全为若不全为“1”,则有
18、键按下。,则有键按下。(2)去除键的抖动影响。)去除键的抖动影响。当判断有键按下时,采用软件延时当判断有键按下时,采用软件延时10ms后,再次判断是否有键按下。若仍然有键按下,则认为有一后,再次判断是否有键按下。若仍然有键按下,则认为有一个确定的键按下,通过逐行扫描确定具体哪个键按下;否则按键抖个确定的键按下,通过逐行扫描确定具体哪个键按下;否则按键抖动处理,返回。动处理,返回。(3)求取按键值。)求取按键值。据上述的键盘扫描方法,用下述的方法就可据上述的键盘扫描方法,用下述的方法就可获得相应键值。对图获得相应键值。对图8-4,先确定行首键号和列首键号先确定行首键号和列首键号。列首键号列首键号
19、按照从列的低位到高位依次为按照从列的低位到高位依次为07(最后的数字取决于列线的数(最后的数字取决于列线的数目),目),行首键号行首键号按照从行的按照从行的低位到高位依次为低位到高位依次为0、8、16、242022-7-2615(每次增加的数目为列线数目),(每次增加的数目为列线数目),则则闭合键的键值闭合键的键值等于为等于为低电平的低电平的行首键号加上为低电平的列首键号行首键号加上为低电平的列首键号(图(图8-4显而易见)。也等于为显而易见)。也等于为低电平的行号低电平的行号8为低电平的列号。为低电平的列号。(4)判断按键是否释放,释放后将键值送往累加器中,执行相)判断按键是否释放,释放后将
20、键值送往累加器中,执行相应的键功能程序。应的键功能程序。2.矩阵式键盘的工作方式矩阵式键盘的工作方式 (1)编程扫描工作方式)编程扫描工作方式 对键盘的扫描,可以采用程序控制的随机方式调用键盘扫描子对键盘的扫描,可以采用程序控制的随机方式调用键盘扫描子程序;也可以采用定时控制方式,每隔一定的时间调用键盘扫描子程序;也可以采用定时控制方式,每隔一定的时间调用键盘扫描子程序响应键输入要求。每调用一次子程序,对键盘进行一次扫描。程序响应键输入要求。每调用一次子程序,对键盘进行一次扫描。键盘扫描子程序流程如图键盘扫描子程序流程如图8-5所示。所示。2022-7-2616 2022-7-2617 键盘扫
21、描子程序如下,硬件电路如图键盘扫描子程序如下,硬件电路如图8-4所示。所示。8255A的的PA口、口、PB口、口、PC口和控制口地址分别是口和控制口地址分别是7FFCH、7FFDH、7FFEH、7FFFH,假设,假设8255A已经在主程序中进行了初始化。(设已经在主程序中进行了初始化。(设PA口方口方式式0输出,输出,PC口的低口的低4位方式位方式0输入)。输入)。KEY1:ACALL KS1 ;调用判断有无键按下子程序;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(;有键按下时,(A)0转消抖延时转消抖延时 AJMP KEND ;无键按下返回;无键按下返回 LK1:ACALL T
22、IM10ms ;调用;调用10ms延时子程序延时子程序 ACALL KS1 JNZ LK2 ;(;(A)0,有键按下、逐列扫描,有键按下、逐列扫描 AJMP KEND ;不是真有键按下,返回;不是真有键按下,返回 LK2:MOV R2,#0FEH ;初始列扫描字初始列扫描字(0列列)送入送入R2 MOV R4,#00H ;初始列号初始列号0送入送入R4 LK4:MOV DPTR,#7FFCH;DPTR指向指向8255A的的PA口口2022-7-2618 MOV A,R2;列扫描字送至;列扫描字送至8255A的的PA口口 MOVX DPTR,A INC DPTR INC DPTR;DPTR指向指
23、向8255A的的PC口口 MOVX A,DPTR;从;从8255A的的PC口读入行线状态口读入行线状态 JB ACC.0,LONE;若第;若第0行无键按下,转查第行无键按下,转查第1行行 MOV A,#00H;第;第0行有键按下,行首键号行有键按下,行首键号#00H送入送入A AJMP LKP;转求键值;转求键值LONE:JB ACC.1,LTWO;查第;查第1行无键按下行无键按下,转查第转查第2行行 MOV A,#08H ;第;第1行有键按下行有键按下,行首键号行首键号#08H送入送入A AJMP LKPLTWO:JB ACC.2,LTHR ;查第;查第2行无键按下,转查第行无键按下,转查第
24、3行行 MOV A,#10H ;第;第2行有键按下,行首键号行有键按下,行首键号#10H送入送入A AJMP LKPLTHR:JB ACC.3,NEXT ;查第查第3行无键按下行无键按下,转查下一列转查下一列 2022-7-2619 MOV A,#18H;第;第3行有键按下行有键按下,行首键号行首键号#18H送入送入ALKP:ADD A,R4;求键值,键值;求键值,键值=行首键号行首键号+列号列号 PUSH ACC;键值入栈保护;键值入栈保护LK3:ACALL KS1;等待键释放;等待键释放 JNZ LK3 ;键未释放,等待;键未释放,等待 POP ACC RETNEXT:INC R4;准备扫
25、描下一列,列号加;准备扫描下一列,列号加1 MOV A,R2;取列扫描字送累加器;取列扫描字送累加器A JNB ACC.7,KEND;判断;判断8列扫描完否列扫描完否?扫描完返回扫描完返回 RL A;扫描字左移一位,变为下一列扫描字;扫描字左移一位,变为下一列扫描字 MOV R2,A AJMP LK4KEND:RET 2022-7-2620KS1:MOV DPTR,#7FFCH;DPTR指向指向8255A的的PA口口 MOV A,#00H MOVX DPTR,A;全扫描字送往;全扫描字送往8255A的的PA口口 INC DPTR INC DPTR MOVX A,DPTR;读入;读入PC口行状态
26、口行状态 CPL A ;变正逻辑,以高电平表示有键按下;变正逻辑,以高电平表示有键按下 ANL A,#0FH RETTIM10ms:MOV R7,#14H;延时;延时10ms(12MHz)TM:MOV R6,#0F8HTM6:DJNZ R6,TM6 NOP DJNZ R7,TM RET 2022-7-2621 中断扫描方式通过中断扫描方式通过在初始化中令所有列线的输出全为在初始化中令所有列线的输出全为0,将,将所有行线经过所有行线经过“与门与门”后连接到单片机的外部中断输入端来实后连接到单片机的外部中断输入端来实现。现。当没有键按下时无中断请求,有键按下时,便向当没有键按下时无中断请求,有键按
27、下时,便向CPU发出发出中断请求。中断请求。CPU响应后就执行中断服务程序,在中断服务程序响应后就执行中断服务程序,在中断服务程序中对键盘进行扫描。中对键盘进行扫描。这样在没有键按下时,这样在没有键按下时,CPU就不执行扫描程序,提高了就不执行扫描程序,提高了CPU的工作效率。的工作效率。中断扫描方式需要编写中断服务程序,在中断服务程序中中断扫描方式需要编写中断服务程序,在中断服务程序中对键盘进行扫描、处理过程与查询扫描方式中的键盘扫描子程对键盘进行扫描、处理过程与查询扫描方式中的键盘扫描子程序相同。序相同。(2)中断扫描方式中断扫描方式 2022-7-2622 为便于人们观察和监视单片机应用
28、系统的运行情况,需要一为便于人们观察和监视单片机应用系统的运行情况,需要一种显示器作为单片机应用系统的输出设备,显示单片机应用系统种显示器作为单片机应用系统的输出设备,显示单片机应用系统的键输入值、中间信息及运算结果和运行状态等。的键输入值、中间信息及运算结果和运行状态等。在在单片机应用系统中单片机应用系统中,最常用的,最常用的显示器有由发光二极管组成显示器有由发光二极管组成的数码管显示器,简称的数码管显示器,简称LED(Light Emitting Diode)显示器显示器和和液液晶显示器,简称晶显示器,简称LCD(Liquid Crystal Display)。8.2.1 8.2.1 数码
29、管显示器结构与原理数码管显示器结构与原理 1.LED结构与显示原理结构与显示原理 LED数码管显示器是由发光二极管按一定的结构组合起来的数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机应用系统中最常用的是显示器件。在单片机应用系统中最常用的是8段段LED数码管显示器,数码管显示器,也称为一个显示块。也称为一个显示块。LED数码管数码管的的正向压降正向压降一般为一般为1.52V,额定额定电流为电流为10mA,最大电流为,最大电流为40mA。2022-7-2623(a)管脚配置管脚配置 (b)共阳极共阳极 (c)共阴极共阴极 2022-7-2624 LED字段标记为字段标记为ag
30、及及dp,8段正好一个字节。若将段正好一个字节。若将ag及及dp的驱动电平在一个字节中按照从低位到高位的顺序排列如表的驱动电平在一个字节中按照从低位到高位的顺序排列如表8-1所示,则可得到如表所示,则可得到如表8-2所示的字段码。所示的字段码。其中共阴极接法和其中共阴极接法和共阳极接法的字形码互为反码。共阳极接法的字形码互为反码。2.2.数码管段码的编码数码管段码的编码 由由LED显示原理可知,要显示不同的数字和字母,只要把显示原理可知,要显示不同的数字和字母,只要把不同的电平送往不同的发光二极管将其点亮即可。这些不同的电平送往不同的发光二极管将其点亮即可。这些用来控用来控制制LED显示的不同
31、电平组合所构成的代码称为相应字符的显示的不同电平组合所构成的代码称为相应字符的字段字段码码(也称为(也称为字形码或段选码字形码或段选码)。)。字段码字段码D7D6D5D4D3D2D1D0LED字段字段dPgfedcba2022-7-26252022-7-26263.LED3.LED数码管显示控制方式数码管显示控制方式 用用一个一个LED数码管数码管显示块显示块,可以显示一位数字或字母。在,可以显示一位数字或字母。在单片机应用系统中,经常会用单片机应用系统中,经常会用LED显示块构成多位显示块构成多位LED显示器显示器。N位位LED数码管显示器有数码管显示器有N根位选线、根位选线、8N根段选线根
32、段选线。段选线段选线提提供段选码,由它供段选码,由它控制要显示什么样的字符控制要显示什么样的字符,而,而位选线位选线则则控制要控制要在哪一位上显示该字符在哪一位上显示该字符。通常有两种显示控制方式,即通常有两种显示控制方式,即静态和动态显示方式静态和动态显示方式。8.2.2 8.2.2 静态显示接口技术静态显示接口技术 1.静态显示技术静态显示技术 静态显示静态显示是指是指显示器显示某一字符时,相应段的发光二极管显示器显示某一字符时,相应段的发光二极管恒定的导通或截止,且显示器的各位能够同时显示字符恒定的导通或截止,且显示器的各位能够同时显示字符。2022-7-2627 LED显示器与显示器与
33、I/O端口的连接方法为:端口的连接方法为:共阴极或共阳极连接共阴极或共阳极连接在一起在一起接地或接接地或接+5V;每一位的段选线(;每一位的段选线(adp)分别与一个)分别与一个8位位并行输出端口(必须具有锁存功能)的每一位相连。并行输出端口(必须具有锁存功能)的每一位相连。N位数码管显示器静态显示时有位数码管显示器静态显示时有8N根段选线,需要占用根段选线,需要占用N个个8位并行输出端口。当显示位数较少时,采用静态显示方式是位并行输出端口。当显示位数较少时,采用静态显示方式是合适的。当显示位数较多时,应该采用动态显示方式。合适的。当显示位数较多时,应该采用动态显示方式。静态显示的特点:静态显
34、示的特点:显示亮度大、稳定,软件结构简单。显示亮度大、稳定,软件结构简单。在实际应用中,当单片机没有使用串行通信功能时,静态显在实际应用中,当单片机没有使用串行通信功能时,静态显示方式中示方式中CPU输出字形码可以利用串行接口工作在移位寄存器输出字形码可以利用串行接口工作在移位寄存器方式下串行输出。采用串行输出可以节省单片机的资源。方式下串行输出。采用串行输出可以节省单片机的资源。2022-7-26283位位LED数码管显示器静态连接电路图数码管显示器静态连接电路图 2022-7-2629 MOV R2,#03H ;显示字符数;显示字符数 MOV R0,#30H ;显示缓冲区地址送入;显示缓冲
35、区地址送入R0 MOV R1,#60H ;端口地址指针端口地址指针 DL0:MOV A,R0 ;取要显示的数作查表偏移量;取要显示的数作查表偏移量 MOV DPTR,#TAB ;DPTR指向字形码表首地址指向字形码表首地址 MOVC A,A+DPTR ;查表得字形码;查表得字形码 MOV R1,A ;字形码送端口显示字形码送端口显示 INC R1 INC R0 ;更新显示单元;更新显示单元 DJNZ R2,DL0 ;判断是否所有;判断是否所有 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;04字形码字形码 DB 92H,82H,0F8H,80H,90H ;59 的字形码
36、的字形码静态显示程序段:静态显示程序段:2022-7-26302.2.静态显示接口静态显示接口 (1)基于)基于MC14543的静态的静态LED驱动接口电路驱动接口电路 MC14543引脚功能引脚功能 MC14543为具有为具有4位二进制锁存、位二进制锁存、BCD-7段译码和驱动功能,段译码和驱动功能,MC14543的引脚功能如下:的引脚功能如下:M:输入引脚,用来控制输出:输入引脚,用来控制输出 状态的正反向。状态的正反向。BI:输入引脚,用来消隐显示。:输入引脚,用来消隐显示。LD:输入脚,用来锁存:输入脚,用来锁存BCD码。码。D0D3:显示数据输入引脚:显示数据输入引脚 (BCD码)。
37、码)。YaYg:BCD-7段码的译码段码的译码/驱动输出引脚。驱动输出引脚。VDD接电源,接电源,VSS接地。接地。2022-7-2631 液晶显示时,应在液晶的公共电极和电路的液晶显示时,应在液晶的公共电极和电路的M引脚施加方波脉引脚施加方波脉冲,电路的输出引脚直接连接到液晶的各笔划段。冲,电路的输出引脚直接连接到液晶的各笔划段。2022-7-2632 基于基于MC14543MC14543的静态的静态LEDLED驱动接口电路驱动接口电路 *使用共阴极发光二极管时,使用共阴极发光二极管时,M=LM=L;使用共阳极发光二极管;使用共阳极发光二极管时,时,M=HM=H;使用液晶显示器时,从;使用液
38、晶显示器时,从M M端加脉冲。端加脉冲。*输出状态由输出状态由LDLD从从H H变到变到L L时的内部锁存器的状态决定。时的内部锁存器的状态决定。该电路是由该电路是由AT89S51单片机、或非门、单片机、或非门、MC14543、共阴极、共阴极数码管显示器组成。其中,或非门用来产生锁存信号,数码管显示器组成。其中,或非门用来产生锁存信号,MC14543完成锁存、译码、驱动,数码管用来显示。完成锁存、译码、驱动,数码管用来显示。2022-7-2633MC14543MC14543构成的静态构成的静态LEDLED驱动接口电路图驱动接口电路图 2022-7-2634(2)基于串行接口的静态)基于串行接口
39、的静态LED驱动接口电路驱动接口电路 2022-7-2635 DIR:PUSHACC ;保护现场;保护现场 PUSHDPH PUSHDPL MOV SCON,#0 CLR P1.1 ;74LS164清零清零 MOV R2,#03H ;显示;显示3个数个数 MOV R0,#30H ;显示缓冲区地址送入;显示缓冲区地址送入R0 SETB P1.1 ;为显示器正常显示准备;为显示器正常显示准备 SETB P1.0 ;选通;选通TXD同步移位时钟同步移位时钟 DL0:MOV A,R0 ;取要显示的数作查表偏移量;取要显示的数作查表偏移量 MOV DPTR,#TAB ;DPTR指向字形码表首地址指向字形
40、码表首地址 MOVC A,A+DPTR ;查表得字形码;查表得字形码2022-7-2636 MOV SBUF,A ;由串行接口发送字形码;由串行接口发送字形码DL1:JNB TI,DL1 ;等待一桢数据发送完;等待一桢数据发送完 CLR TI ;清标志,准备继续发送;清标志,准备继续发送 INC R0 ;更新显示单元;更新显示单元 DJNZ R2,DL0 ;判断是否所有数码管均已显示;判断是否所有数码管均已显示 POP DPL ;恢复现场;恢复现场 POP DPH POP ACC RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;04字形码字形码 DB 92H,82H,0F8
41、H,80H,90H ;59 的字形码的字形码2022-7-2637 动态显示动态显示是是采用扫描的方法把多位采用扫描的方法把多位LED数码管显示器一位一数码管显示器一位一位地轮流点亮。或者说,每隔一段时间位地轮流点亮。或者说,每隔一段时间LED数码管显示器的每一数码管显示器的每一位被点亮一次。位被点亮一次。这样,虽然在同一时间只有一位显示器被点亮,这样,虽然在同一时间只有一位显示器被点亮,但由于但由于人眼的视觉暂留效应人眼的视觉暂留效应(通常人眼的视觉暂留时间为(通常人眼的视觉暂留时间为0.1秒)秒)和和发光二极管熄灭后的余辉作用发光二极管熄灭后的余辉作用,获得的效果是多位字符,获得的效果是多
42、位字符“同时同时”显示。显示。LED数码管显示器的显示亮度既与导通电流相关,也与点数码管显示器的显示亮度既与导通电流相关,也与点亮的持续时间和间隔时间的比例相关。亮的持续时间和间隔时间的比例相关。8.2.3 8.2.3 动态显示接口技术动态显示接口技术 1.动态显示方式动态显示方式 动态显示的工作原理。动态显示的工作原理。多位多位LED显示器的段选线并联在一起,显示器的段选线并联在一起,然后与一个然后与一个8位并行输出端口(必须有锁存功能)的每一位相连位并行输出端口(必须有锁存功能)的每一位相连接,接,即所有即所有LED显示器的段选码均由该端口控制。显示器的段选码均由该端口控制。而各位而各位L
43、ED数数码管显示器的共阴极点或共阳极点分别与另外一个并行码管显示器的共阴极点或共阳极点分别与另外一个并行2022-7-2638输出端口(必须具有锁存功能)的每一位相连接,实现各位分时输出端口(必须具有锁存功能)的每一位相连接,实现各位分时选通,选通,也称位控也称位控。在某一段时间内,在某一段时间内,8 8位并行输出端口输出段选码,位并行输出端口输出段选码,位控端口输出位选通信号,以保证某一位位控端口输出位选通信号,以保证某一位LEDLED显示器显示相应的字显示器显示相应的字符。如此轮流,使每一位符。如此轮流,使每一位LEDLED显示器显示该位要显示的字符,并延显示器显示该位要显示的字符,并延时
44、时12ms,就可获得视觉稳定的显示效果。,就可获得视觉稳定的显示效果。2022-7-26392.2.动态显示程序流程动态显示程序流程 动态显示的特点是:动态显示的特点是:当显示位数较多时节省当显示位数较多时节省I/O端口,因此,端口,因此,硬件电路比较简单;但是和静态显示比较而言,显示稳定度不如硬件电路比较简单;但是和静态显示比较而言,显示稳定度不如静态显示,静态显示,CPU需要轮流点亮每一个需要轮流点亮每一个LED显示器,占用显示器,占用CPU较多较多的时间,且软件结构比较复杂。的时间,且软件结构比较复杂。用用8255A扩展并行扩展并行I/O接口连接数码管,接口连接数码管,3位数码管的段选线
45、位数码管的段选线并联后,与并联后,与8255A的的PB口相连输出段选码;口相连输出段选码;3位数码管的公共端位数码管的公共端分别与分别与8255A的的PA口连接,输出位控码,选择要显示的数码管。口连接,输出位控码,选择要显示的数码管。PA口和口和PB口均工作于方式口均工作于方式0输出。输出。R3中存放位控码,中存放位控码,R0指向显指向显示缓冲区首地址。动态显示的子程序流程如图示缓冲区首地址。动态显示的子程序流程如图8-12所示。所示。N位数码管显示器动态显示时有位数码管显示器动态显示时有8根段选线,需要占用根段选线,需要占用1个个8位位并行输出端口,还需要并行输出端口,还需要1个个N位控制口
46、。位控制口。2022-7-26402022-7-26418.2.4 液晶显示接口技术液晶显示接口技术 1.LCD显示器结构和工作原理显示器结构和工作原理 LCD(Liquid Crystal Display)液晶显示器液晶显示器是一种被动式显是一种被动式显示器。液晶本身不发光,只是调节环境光的亮度。示器。液晶本身不发光,只是调节环境光的亮度。2022-7-2642 当在液晶盒的上、下电极加上一定的电压后,电极部分的液当在液晶盒的上、下电极加上一定的电压后,电极部分的液晶分子转成垂直排列,从而失去旋光性。因此,从上偏振片入晶分子转成垂直排列,从而失去旋光性。因此,从上偏振片入射的偏振光不被旋转,
47、当此偏振光到达下偏振片时,因为被偏射的偏振光不被旋转,当此偏振光到达下偏振片时,因为被偏振片吸收,无法到达反射板形成反射,所以呈现出黑色。根据振片吸收,无法到达反射板形成反射,所以呈现出黑色。根据需要,将电极做成各种文字、数字或者点阵,就可以获得所需需要,将电极做成各种文字、数字或者点阵,就可以获得所需的各种显示。的各种显示。LCD响应时间和余辉为微秒级。响应时间和余辉为微秒级。2.LCD16022.LCD1602液晶显示器及与单片机接口液晶显示器及与单片机接口 根据显示的容量可以分为根据显示的容量可以分为1行行16个字、个字、2行行16个字、个字、2行行20个字个字符,这里以常用的符,这里以
48、常用的2行行16个字的个字的1602液晶模块来介绍它的应用。液晶模块来介绍它的应用。(1)LCD1602的引脚定义的引脚定义 LCD1602采用标准的采用标准的14脚(无背光)或者是脚(无背光)或者是16脚(带背光)脚(带背光)接口,引脚功能如表接口,引脚功能如表8-4所示。所示。VL为液晶显示器对比度调整端。接正电源时对比度最弱,为液晶显示器对比度调整端。接正电源时对比度最弱,2022-7-2643 (2)LCD1602的命令说明的命令说明 LCD1602液晶显示模块内部的控制器有液晶显示模块内部的控制器有11条控制指令,液晶模条控制指令,液晶模块的读写操作,屏幕和光标的操做是通过指令编程来
49、实现的。指令块的读写操作,屏幕和光标的操做是通过指令编程来实现的。指令说明如表说明如表8-5所示。所示。接地时对比度最强。若对比度过强会产生接地时对比度最强。若对比度过强会产生“鬼影鬼影”,使用时可,使用时可以通过一只以通过一只10KW的可调电位器来调整对比度。的可调电位器来调整对比度。RS为寄存器选择端。为寄存器选择端。RS为高电平时选择数据寄存器,为为高电平时选择数据寄存器,为低电平时选择指令寄存器。低电平时选择指令寄存器。为读写信号。高电平时进行读操作,低电平时执行写为读写信号。高电平时进行读操作,低电平时执行写操作。操作。E为使能端。当为使能端。当E端由高电平跳变成低电平时,液晶显示端
50、由高电平跳变成低电平时,液晶显示模块执行命令。模块执行命令。D0D7为双向数据线。为双向数据线。WR2022-7-2644 LCD1602的引脚功能表的引脚功能表 2022-7-2645LCD1602液晶显示模块内部控制器的液晶显示模块内部控制器的11条控制指令条控制指令 2022-7-2646*:无关项;:无关项;BF=1/0:内部操作正在进行:内部操作正在进行/允许指令操作允许指令操作 指令指令1:清显示,光标复位到地址清显示,光标复位到地址00H位置。位置。指令指令2:光标复位,光标返回到地址:光标复位,光标返回到地址00H。指令指令3:读读/写方式下的光标和显示模式设置命令。写方式下的