版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 四 章 人 机 接 口,1 MCS-51与显示器的接口 2 MCS-51与键盘的接口,1 MCS-51与显示器的接口 为方便人们观察和监视单片机的运行,通常需要用一种显示器作为单片机的输出设备,用来显示单片机的键输入值、中间信息及运算结果。 单片机系统中常用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。 两种显示器具有耗电省、配置灵活、线路简单、安装方便、耐振动、寿命长等优点。两者相比,LED价格更低廉,结构更简单;LCD功耗更低,显示清晰度更高。,一.MCS-51对LED的接口 1. LED的种类 LED(Light-Emitting Diode)是发光二极管的简称。LED有
2、七段和八段之分,也有共阴和共阳两种。 还有“米”字型LED。,(a)共阴LED结构 (b)共阴LED (c)共阳LED,a,b,c,d,e,f,g,sp,a,b,c,d,e,f,g,sp,G,G,a,c,d,e,f,b,g,a,b,sp,2. LED数码显示管原理 数码管发光原理分两种情况:共阳极型a,b,c,d,e,f,g 各引脚哪个输入低电平,哪个二极管发亮;共阴极型a-g哪个为高电平,哪个二极管亮。每个二极管为段,不同的发光段亮,可组成不同字形。 对于共阴LED,显示“3”,需要在8个管脚上施加控制电平04FH-(字型码),04FH是按照 h,g,f,e,d,c,b,a D7 D6 D5
3、 D4 D3 D2 D1 D0 0 1 0 0 1 1 1 1 对于共阳LED,显示“3” 字型码是 h,g,f,e,d,c,b,a D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 0 0 0 0,3. MCS-51对LED的显示 MCS-51对LED的显示分为静态和动态两种。 静态显示的特点是:每个数码管能稳定地同时显示各自字形;即工作过程中加在每一个LED上的信号始终同时存在。各位的显示字符一旦确定,加在每一块显示器上的信号维持不变,直到显示另一个字符为止。 优点:各显示模块相互独立,显示亮度高,编程简单。 缺点:需占用较多的硬件资源。 单片机系统中,常采用74LS47、M
4、C14495等芯片作为LED的静态显示接口。,4位静态LED显示器接口,译 码 器,1# MC14495,a b c d e f g,G,2# MC14495,a b c d e f g,G,3# MC14495,a b c d e f g,G,4# MC14495,a b c d e f g,G,LE,LE,LE,LE,8031,G A B,Y1,Y0,Y2,Y3,P1.7,P1.6,P1.5,P1.4,P1.2,P1.1,P1.0,MC14495芯片的作用是输入被显示字符的二进制码(或BCD 码),并把它自动转换成相应字形码,送给LED显示。,MC14495介绍,左图为MC14495内 部
5、结构图: 4位锁存器 地址译码和笔段ROM阵列 带限流电阻的驱动电路(输出电流为10mA),MC14495介绍,左图为MC14495引脚图: A、B、C、D为二进制码(BCD码)输入端 :锁存控制端,其为低电平时可以输入数据,为高电平时锁存输入数据。 h+i:输入数据大于等于10指示位;输入大于等于10则其输出高电平,否则为低电平。 :为输入等于15指示位,若输入数据等于15,则其输出高电平,否则为高阻状态。 VDD、VSS为电源和地。,P1.7-P1.4用于输出欲显示字符的二进制码(BCD码); P1.2控制二四译码器工作; P1.1和P1.0经译码输出后控制MC14495中哪一个接收欲显示
6、的代码。,设8031单片机内部RAM的20H和21H单元中有四位十六进制数(20H中为高两位),请编出能在上图电路中自左到右显示出来的程序。 解:相应程序如下: ORG 1000H SDISPLAY:MOV A,20H ;20H中数送A ANL A,#0F0H;截取高4位 MOV P1,A ;送1#MC14495 MOV A,20H ;20H中数送A SWAP A ;低4位送高4位 ANL A,#0F0H;去掉低4位 INC A ;A1A0指向2#MC14495,例,MOV P1,A ;送2#MC14495 MOV A,21H ;21H中数送A ANL A,#0F0H ;截取高4位 ADD A
7、,#02H ;A1A0指向3#MC14495 MOV P1,A ;送3#MC14495 MOV A,21H ;21H中数送A SWAP A ;低4位送高4位 ANL A,#0F0H ;去掉低4位 ADD A,#03H ;A1A0指向4#MC14495 MOV P1,A ;送4#MC14495 RET END,动态显示 动态显示是指各LED轮流地一遍一遍显示各自字符;人们因为视觉器官惰性而看到的是各LED似乎在同时显示不同字形。 特点是所有LED的段选线并联在一起,而每个LED对应一根位选线位选线控制哪一位接收字段码。 采用动态扫描显示。所谓动态扫描显示:各位共用一个字形口,利用相应的字位选择轮
8、流向各位送出字形码。 优点:硬件开销小。 缺点:显示的亮度比静态显示差些,位数越多,在动态显示时亮度越低,同时需要CPU用于显示刷新的频率越高。软件编程较复杂;其实质是:以牺牲CPU的时间换取系统的低功耗,节省了系统资源但使显示亮度降低。为了保证显示效果,动态显示位数不能太多,一般不超过8位。,8031,G,ALE,EA,P0.0,P0.7,WR,RD,P2.7,RESET,ALE,RD,WR,RESET,AD7,AD0,CE,IO/M,PB7 PB6,PB5 PB4,PB3 PB2,PB1 PB0,PC5 PC4,PC3 PC2,PC1 PC0,8155,LED5,LED4,LED3,LED
9、2,LED1,LED0,8003H,8002H,G,G,G,G,G,共阳,请根据上图编出能在LED5LED0上显示1995.6的动 态显示子程序。,例,解:设显示缓冲区放在CPU内部RAM中,始址为70H,显示 缓冲区中被显示字符的字形码表的地址偏移量应预先 放入。如下图所示:,06H 13H 05H 09H 09H 01H,DS0 DS1 DS2 DS3 DS4 DS5,70H 71H 72H 73H 74H 75H 76H,ORG 0600H DISPLY: MOV A,#06H ;方式控制字06H送A MOV DPTR,#8000H MOVX DPTR,A ;方式控制字送8155命令口
10、DISPLY1:MOV R0,#70H ;显示缓冲区始址送R0 MOV R3,#0FEH ;字位码始值送R3 MOV A, R3 LD0:MOV DPTR,#8003H ;C口地址送DPTR MOVX DPTR,A ;字位码送C口 MOV DPTR,#8002H ;B口地址送DPTR,MOV A,R0 ;待显字符地址偏移量送A ADD A,#13 ;对A进行地址修正 MOVC A,A+PC ;查字形码表 MOVX DPTR,A ;字形码送B口 ACALL DELAY ;延时1ms INC R0 ;修正显示缓冲区指针 MOV A,R3 ;字位码送A JNB ACC.5,LD1 ;若显示完一遍,则
11、LED1 RL A ;字位码左移一位 MOV R3,A ;送回R3 AJMP LD0 ;显示下一个数码 LD1:RET,DTAB: DB 0C0H ,F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H DB 8EH,0FFH,0CH,89H,7FH DB 0BFH DELAY:MOV R7,#02H ;延时1ms程序 DELAY1:MOV R6,#0FFH DELAY2:DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END,二MCS-51对LCD的接口 1.液晶显示模块 液晶显示模块是一种将
12、液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件等装配在一起的组件。英文名“LCD Module”,简称“LCM”,中文简称“液晶显示模块”。 2.液晶显示模块分类 数显液晶模块 (1)计数模块 (2)计量模块 (3)计时模块 液晶点阵字符模块 点阵图形液晶模块,计数模块,由不同位数的七段型液晶显示器件与译码驱动器或再加上计数器装配成的计数显示部件; 具有记录、处理、显示数字的功能; 我国市场上的主要产品有由CD4055译码驱动器驱动的单位液晶显示器件显示模块,以及由ICM7211,ICM7232,CD14543,UPD145001,HD44100等集成电路与相应配套的液晶显示器件
13、组装成的4位、6位、 8位、10位、12位、16位计数模块。,计量模块,有多位段型液晶显示器件和具有译码、驱动、计数、A/D转换功能的集成电路组装而成的模块; 与传感器配合可以实现任何量值的计量和显示; 计量模块所用的集成电路型号主要有ICL7106, ICL7116, ICL7126, ICL7136, ICL7135, ICL7129等。,计时模块,由液晶显示器件与一块计时集成电路装配成的计时器; 通用、标准型的计时模块很少;只能到电子钟厂家去选购或定制; 除了计时功能外,有的模块还具有定时、控制等功能; 多用在家电设备上。,液晶点阵字符模块,由点阵字符液晶显示模块和专用的行、列驱动器、控
14、制器及必要的连接件,结构件装配而成; 可以显示数字和西以上的字符文字符; 本身有字符发生器,显示容量大,功能丰富。一般这种模块最少也可以显示8位1行或16位1行以上的字符。 这种模块的点阵排列是57、5 8、5 11等的一组组像素点阵排列组成的。每组为1位,每位间有一点的间隔,每行间也有一行的间隔,所以不能显示图形。 一般在模块控制、驱动器内具有已经固化好的192个字符字模的字符库CGROM。还有让用户自定义建立字符的随机存储器CGRAM。,点阵图形液晶模块,是点阵模块的一种,其特点是点阵像素连续排列。行和列在排布中均没有空隔。因此可以连续完整地显示图形。当然也可以显示字符。 分为如下三类:
15、行列驱动型:必须外接专用控制器才能与微机接口; 行列驱动控制型:可直接和微机接口; 行列控制型:有行列驱动器,也有专用的控制器,与微机的接口最简单;控制器有自己一套专用的指令,并有自己的字符发生器。使用较多(例如:微机保护装置)。,3.液晶显示的采光技术,液晶显示器属于被动型显示器件,它本身不会发光,而是靠调制周围的外界光实现显示的。 LCD的采光主要有利用周围自然光和设置背光源两大类。,自然采光技术,利用周围环境光是最省事、最便宜的方法。大部分的计数、计时、计量、仪表、计算器等计量显示器件都是用周围自然光为光源。 靠LCD背面的反射膜将射入的自然光从正面反射出来完成的。 显示清晰度受周围光的
16、影响很大。,设置背光源的采光技术,设置背光源可以取得稳定、清晰的显示,即使在环境光极差的条件下,也能得到清晰的显示。 用于LCD的背光源有: 点状:小型白炽灯、卤素灯、LED 线状:冷阴极荧光灯、热阴极荧光灯 面状:扁平荧光灯、EL,背光源的配置,边光式:在显示器件的侧面,将光源按线型配置;其光源器件可以做的很薄,但其光的利用率不高,显示器面积不能太大。 背光式:在显示器整个背面配置一个面光源。其光利用率高,面积不受限制。若采用LED、灯泡及荧光灯会增加厚度;但若使用电致发光的EL膜,也较薄。,4.内置SED1520控制器的液晶模块,SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,
17、它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块。,SED1520的特性,内置显示RAM区RAM容量为2560位。RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1”表示亮, “0”表示暗。 具有16个行驱动口和16个列驱动口。 可直接与51系列微处理器相连,亦可以与68系列单片机相连。 可以与SED1520配合使用,以便扩展列驱动口数目。,SED1520的管脚,SED1520管脚功能,DB0DB7:三态数据总线。 A0:数据指令通道选择:A0=“1” 选择数据通道。A0=“0”选择指令通道。 RES:这个引脚在上电
18、时为低电平(负脉冲),使芯片复位。正常工作时,决定了SED1520与MPU的接口类型: (1) RES = “1” 表示接口适配68系列时序,可直接与68系列微处理器相连; (2) RES = “0” 表示接口适配51系列时序,可直接与51系列微处理器相连;,SED1520管脚功能,E(RD): 与68系列MPU相连时(RES = “1”):为E读写使能信号; 与51系列MPU相连时(RES = “0”):为RD读操作信号。 R/W(WR):与68系列MPU相连时(RES = “1”):为RW(读写)选择信号; 与51系列MPU相连时(RES = “0”):为WR写操作信号。,SED1520管
19、脚功能,FR:LCD帧同步信号输入输出端:当M/S = 1时,该脚为输出端;当M/S = 0时,该脚为输入端。 SEG0SEG60:LCD列驱动输出端。 COM0COM15:LCD行驱动输出端。 VDD:逻辑电源5V。 VSS:逻辑电源地。 V1,V2,V3,V4,V5:LCD驱动电源,要求:VDDV1V2V3V4V5。,SED1520管脚功能,M/S: 主从工作方式选择端: (1)当M/S = 1时,SED1520工作在主方式下,自产生并向外提供工作时序信号; (2)当M/S = 0时,SED1520工作在从方式下,接收主方式下工作的SED1520提供的时序信号。 CS(OSC1)和CL(O
20、SC2): SED1520FAA:CS作为片选端,CL为外部时钟输入端; SED1520F0A:OSC1,OSC2为内部振荡器的外接端,OSC1和OSC2之间接一电阻,即可启动内部时钟发生器工作。OSC2还用为级联使用时时序的输入输出端。主方式下,OSC2输出时钟信号;从方式下OSC2输入时钟信号。,SED1520显示RAM的结构,SED1520 中的显示RAM共有32 行80列;,SED1520的指令系统,共有13条指令: 读状态字 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 BUSY ADC OFFON RESET 0 0 0 0 BUSY: 1:忙状态; 0:准备
21、好状态 ADC: 1:正常输出(右向) 0:反向输出(左向) OFFON: 1:显示关闭 ; 0:显示打开 RESET: 1:复位状态 ; 0:正常状态,SED1520的指令系统,复位 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 1 1 0 0 0 1 0 该指令为软件复位指令。执行该指令后使显示起始行置为第0 行列地址置为0,页地址置为3。 占空比选择 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 1 0 1 0 0 0/1 D00占空比为116,D01为132。 驱动32行液晶显示时,使D0为1;驱动16行时,使D00,SED152
22、0的指令系统,显示起始行设置 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 1 0 显示起始行(0 31) 该指令设置了对应显示屏上首行的显示RAM中的行号。有规律地修改该行号,可实现滚屏功能。 终止驱动选择 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 1 0 0 1 0 0/1 该指令用软件终止SED1520的LCD驱动的输出。使系统在不显示状态下停止对LCD的驱动输出,从而降低系统的功耗。终止驱动指令须在关显示状态下输入。 D01为终止驱动,D0=0为正常驱动。,SED1520的指令系统,ADC选择指令 RW A0 D7 D6 D5
23、 D4 D3 D2 D1 D0 0 0 1 0 1 0 0 0 0 0/1 该指令用来设置列驱动输出口与液晶屏的列驱动线的连接方式。应根据厂方提供的模块实际接线设置,一般设为0。 显示开关指令 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 1 0 1 1 1 1/0 D01为开显示;D00为关显示。该指令不影响显示RAM内容。,SED1520的指令系统,设置页地址 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 1 1 1 0 页地址(0 3 ) 设置列地址 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 列地址
24、(0 79) 显示RAM被分成四页,每页80个字节,当设置了页地址和列地址后,就确定了显示RAM中的唯一单元,该单元由高到低的各个数据位,对应于显示屏上某一列的8行数据位。,SED1520的指令系统,改写方式设置指令 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 1 1 0 0 0 0 0 该指令发出后,使得每次写数据后列地址自动增1,而读数据后列地址仍保持原值不变。这种称为 “改写模式” (Read Modify Write)的方式,为逐个读取像点修改的工作提供了方便。 改写方式结束指令 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 1 1
25、 0 1 1 1 0 该指令执行后,将结束改写方式,以后无论读或写数据后,列地址都增1。,SED1520的指令系统,写数据 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 0 1 显示数据 读数据 RW A0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 显示数据,内藏SED1520控制器图形液晶显示模块与单片机的接口(ZCM12232C),ZCM12232C有两个SED1520(SED1520 中的显示RAM共有32 行80列) ,每个SED1520都只用了61 个列驱动口(SEG0-SEG60)。所以其点阵数为12232。 ZCM12232C属于常温(00C-500C
26、)型、无背光的LCM。,ZCM12232C模块引脚,Vcc、GND:+5V电源和地。 Vo:液晶驱动电源。 E1、E2:左右屏(两片SED1520选通)使能信号。 R/W:读/写选通。 A0:数据/命令寄存器选择信号。 RESET:这个引脚在上电时为低电平(负脉冲),使芯片复位。正常工作时,决定了SED1520与MPU的接口类型: (1) RES = “1” 表示接口适配68系列时序,可直接与68系列微处理器相连; (2) RES = “0” 表示接口适配51系列时序,可直接与51系列微处理器相连; DB0-DB7:数据总线。,ZCM12232C模块与单片机的接口,直接控制方式:将液晶显示模块
27、的接口作为存贮器或I/O设备直接挂在CPU的总线上。操作时序由地址线及读写信号线等联合产生。这种方式的特点是软件编程简单。 间接控制方式:CPU通过自身的或系统的并行接口与液晶显示模块接口。CPU通过对该并行接口输出状态的编程操作,产生液晶显示模块工作所需的时序。这种方式硬件电路相当简单,液晶接口的全部控制信号线和数据总线都直接与并行接口连接。但软件编程复杂。,间接访问方式接口,E1: P3.0 E2 : P3.1 R/W : P3.2 A0 : P3.3 DB0-DB7 : P1.0-P1.7,直接访问方式接口,CPU通过地址译码控制E1、E2的选通(左右两个SED1520),读写操作信号R
28、/W由地址线A1控制;数据/命令寄存器选择信号由地址线A0控制。,A,E,C,B,F,D,液晶显示器件的操作,CPU对液晶控制器的读、写子程序:CPU与液晶控制器的信息交换是通过CPU对液晶控制器的读、写操作来完成的,这些操作包括指令的写入、状态字的读出、数据的读写等。这些基本的程序是液晶显示器件应用的最基本的子程序。,基本子程序流程,写指令子程序流程图,读/写数据子程序流程图,液晶初始化,液晶控制器在使用时首要的就是初始化,其内容包括:控制器工作参数及显示所需的基础参数设置、显示缓冲区的初始化等。工作参数的设置与液晶显示器件及其驱动器有关,用户将根据有关的指令规定及硬件跳线来设置,别无选择;
29、显示所需的基础参数设置,根据用户使用液晶的目的及需要进行;显示缓冲区的初始化主要是指显示缓冲区的清0;,SED1520中字符字模的排列规律,8*16点阵的数字字模,8*16点阵:一个字符字模由16个字节组成。 字模排列顺序:每个字节高位在下,低位在上;各个字节按照从左到右、从上到下的原则排列。 “8”的字模: 0B8H,0FCH,044H,044H 044H,0FCH,0B8H,000H 007H,00FH,008H,008H 008H,00FH,007H,000H,字模的获得,可以手工绘制点阵图得到。 运用专门的字模提取软件获得。 英文字符和阿拉伯数字通常的点阵数:5*7、8*8、8*16等
30、。 汉字通常的点阵数:16*16、24*24,显示8*16点阵字符的流程图,直接访问方式接口,CPU通过地址译码控制E1、E2的选通(左右两个SED1520),读写操作信号R/W由地址线A1控制;数据/命令寄存器选择信号由地址线A0控制。,A,E,C,B,F,D,SED1520的控制程序(实验),CWADD1 EQU 8000H ;写指令代码地址(E1) DWADD1 EQU 8001H ;写显示数据地址(E1) CRADD1 EQU 8002H ;读状态字地址(E1) DRADD1 EQU 8003H ;读显示数据地址(E1) CWADD2 EQU 8004H ;写指令代码地址(E2) DW
31、ADD2 EQU 8005H ;写显示数进地址(E2) CRADD2 EQU 8006H ;读状态字地址(E2) DRADD2 EQU 8007H ;读显示数据地址(E2) KEY_VALUE EQU 29H ;键值,PD1 EQU 3DH ;122/2 分成左右两半屏 122x32 COLUMN EQU 27H PAGE_SED EQU 26H ;页地址寄存器 D1,DO:页地址 CODE_SED EQU 25H ;字符代码寄存器 COUNT EQU 24H ;计数器 DIR EQU 23h CTEMP EQU 22H COM EQU 21H ;指令寄存器 DAT EQU 20H ;数据寄存
32、器,写指令代码子程序(E1),PR0: PUSH DPL PUSH DPH MOV DPTR,#CRADD1 ;设置读状态字地址 PR01: MOVX A,DPTR ;读状态字 JB ACC.7,PR01 ;判忙标志为句0,否再读 MOV DPTR,#CWADD1 ;设置写指令代码地址 MOV A,COM ;取指令代码 MOVX DPTR,A ;写指令代码 POP DPH POP DPL RET,写显示数据子程序(E1),PR1: PUSH DPL PUSH DPH MOV DPTR,#CRADD1 ;设置读状态字地址 PR11: MOVX A,DPTR ;读状态宇 JB ACC.7,PR11
33、 ;判忙标志为0,否再读 MOV DPTR,#DWADD1 ;设置写显示数据地址 MOV A,DAT ;取数据 MOVX DPTR,A ;写数据 POP DPH POP DPL RET,读显示数据子程序(E1),PR2: PUSH DPL PUSH DPH MOV DPTR,#CRADD1 ;设置读状态字地址 PR21:MOVX A,DPTR ;读状态字 JB ACC.7,PR21 ;判忙标志为0否,否再读 MOV DPTR,#DRADD1 ;设置读显示数据地址 MOVX A,DPTR ;读数据 MOV DAT,A ;存数据 POP DPH POP DPL RET,8*16点阵字符显示程序段,
34、; 8*16点阵字符显示程序段 WRI_EN816: MOV DPTR,#CCTAB ;确定字符字模表首地址 MOV A,CODE_SED ;取代码 MOV B,#10H ;字模块宽度为16个字节 MUL AB ;代码16 ADD A,DPL ;字符字模块首地址 MOV DPL,A ;字模库首地址代码16 MOV A,B ADDC A,DPH MOV DPH,A CLR 50H PUSH COLUMN PUSH COLUMN MOV CODE_SED,#00H ;代码寄存器借用为间址寄存器 WRI_1: MOV COUNT,#8H ;计数器设置为8,MOV A,PAGE_SED ;读页地址寄存
35、器 ANL A,#03H ;取页地址有效值 ORL A,#0B8H ;或页地址设置代码 MOV COM,A ;设置页地址 LCALL PR0 LCALL PR3 POP COLUMN MOV A,COLUMN ;读列地址寄存器 CLR C SUBB A,#PD1 ;列地址-模块参数 JC WRI_2 ;0为左半屏显示区域(E1) MOV COLUMN,A ;0为右半屏显示区域(E2) SETB 50H ;设置区域标志位。 WRI_2: MOV COM,COLUMN ;设置列地址值 JNB 50H,WRI_3 LCALL PR3 ;区域E2 SJMP WRI_4 WRI_3: LCALL PR0
36、 ;区域E1,WRI_4: MOV A,CODE_SED ;取间址寄存器值 MOVC A,A+DPTR ;取汉字字模数据 MOV DAT,A ;写数据 JNB 50H,WRI_5 LCALL PR4 ;区域E2 SJMP WRI_6 WRI_5: LCALL PR1 ;区域E1 WRI_6: INC CODE_SED ;间址寄存器加一 INC COLUMN ;列地址寄存器加一 MOV A,COLUMN ;判列地址是否超出区域范围、 CJNE A,#PD1,WRI_7 WRI_7: JC WRI_8 ;未超出则继续 JB 50H,WRI_8 ;在区域E2 则退出 SETB 50H ;在区域E1
37、则修改成区域E2 MOV COM,#00H ;设置区域E2列地址为0 LCALL PR3 WRI_8: DJNZ COUNT,WRI_4 ;当页循环,MOV A,PAGE_SED ;读页地址寄存器 JB ACC.7,WRI_9 ;判完成标志D7 位,1则完成退出 INC A ;否则页地址加一 SETB ACC.7 ;置完成位为1 MOV PAGE_SED,A CLR 50H MOV CODE_SED,#8H ;间址寄存器设置为8 LJMP WRI_1 ;大循环 WRI_9: RET,初始化程序,INIT: MOV COM, #0E2H ;复位 LCALL PR0 LCALL PR3 MOV C
38、OM, #0A4H ;关闭休闭状态 LCALL PR0 LCALL PR3 MOV COM, #0A9H ;设置 132 占空比 LCALL PR0 LCALL PR3 MOV COM, #0A0H ;正向排序设置 LCALL PR0 LCALL PR3,MOV COM, #0C0H ;设置显示起始行为第一行 LCALL PR0 LCALL PR3 MOV COM, #0AFH ;开显示设置 LCALL PR0 LCALL PR3 RET,清屏,CLEAR: MOV R4,#00H ;页面地址暂存器设置 CLEAR1: MOV A,R4 ;取页地址值 ORL A,#0B8H ;或页面地址设置代
39、码 MOV COM,A ;页面地址设置 LCALL PR0 LCALL PR3 MOV COM,#00H ;列地址设置为0 LCALL PR0 LCALL PR3,MOV R3,#50H ;一页清 80个字节 CLEAR2: MOV DAT,#00H ;显示数据为0 LCALL PR1 LCALL PR4 DJNZ R3,CLEAR2 ;页内字节清零循环 INC R4 ;页地址暂存器加一 CJNE R4,#04H,CLEAR1;RAM 区清零循环 RET,2 MCS-51与键盘的接口,键盘是联系人与机的桥梁。键盘按其工作原理可分为编码式键盘和非编码式键盘。 编码式键盘是由按键键盘和专用键盘编码
40、器两部分组成,其使用很方便。 非编码键盘不含编码器,当某键被按下时,键盘只能送出一个简单的闭合信号,对应的按键代码的确定必须借助软件来完成;非编码键盘软件较复杂,但它可以任意组合、成本低、使用灵活,因而非编码键盘在单片机系统中被广为采用。,非编码键盘的分类,非编码键盘按照与单片机连接方式的不同,有独立式键盘和矩阵式键盘之分。 独立式键盘结构的特点是一键一线,即每个按键单独占用一根单片机的口线;这种连接方式键盘结构简单,各个键相互独立,所以按键识别容易,但占用单片机口线较多。 矩阵式键盘结构的特点是把检测线分成两组,一组为行线,一组为列线,按键放在行线和列线的交叉点上;这种连接方式占用单片机口线
41、较少,但软件编程麻烦。,键盘接口功能,键盘接口至少必须具有如下功能: 去抖动 防窜键 按键识别,去抖动,由于按键一般都采用触点式按键开关,当按键被按下或释放时,按键触点的弹性会产生一种抖动现象。即当按键按下时,触点不会迅速可靠地接通;当按键释放时,触点也不会立即断开,而是要经过一段时间的抖动才能稳定下来,抖动时间视按键材料的不同一般在5ms-10ms之间。 抖动可能导致将一次按键识别为多次。 有硬件去抖动和软件延时去抖动两种方法。硬件去抖动增加成本;一般多采用软件延时去抖动。,防窜键,所谓窜键指的是有多个按键同时被按下或者前面按键没有释放又有新按键按下的情况。常用的防窜键措施有双键锁定和N键轮
42、回。 双键锁定:当检测到有两个及两个以上的键被按下时,只把最后释放的键当作有效键。或者当有两个或两个以上的键被按下时,不去执行键盘的相关程序。 N键轮回:当多个键按下时,根据它们被发现的顺序依次产生相应的行为。,按键识别,如何识别按键是接口要解决的主要问题,可采用软、硬件结合的方法。 对独立式键盘,只需读口地址即可。 对矩阵式键盘较复杂,可采用“行列扫描法”和“线转法”两种。 行列扫描法:由程序对键盘进行逐行/列扫描,通过检测到的列/行输出状态来确定“闭合的键”。此法需要设置一个输入口和一个输出口。 线反转法:通过行列颠倒两次扫描来识别“闭合键”,需提供两个可编程的双向输入/输出口。,键盘接口
43、原理,独立式键盘,有两种接口方式: 扫描方式 中断方式,独立键盘:扫描方式,思考:是否能将电阻和按键颠倒?颠倒后有什么变化,程序或者硬件需要变化吗?若需要,则如何去变?,分析,工作过程:CPU不断扫描键盘,即P1.0-P1.3; 未按下任何按键时:P1口低四位为:1111B; 有任何按键按下时,P1口低四位不全为1; S1按下: P1口低四位为:1110B S2按下: P1口低四位为:1101B S3按下: P1口低四位为:1011B S4按下: P1口低四位为:0111B,键 值,软件流程图,程序段,MOV A, IOPORT1 ANL A, #0FH CJNE A, #0EH, KEY_1
44、 SJMP PRO_KEY1 KEY_1: CJNE A, #0DH, KEY_2 SJMP PRO_KEY2 KEY_2: CJNE A, #0BH, KEY_3 SJMP PRO_KEY3 KEY_3: CJNE A, #07H, KEY_4 SJMP PRO_KEY4 KEY_4: RET,独立键盘:中断方式,思考:是否能将电阻和按键颠倒?颠倒后有什么变化,程序或者硬件需要变化吗?若需要,则如何去变?,矩阵式键盘:行扫描法,假设采用行扫描法,“0”为有效信号,则步骤如下: 检查是否有键按下:输出扫描码,使所有行线为0。然后读入列线状态,检查是否有列线为0。若有,则表明有行线和列线接通,意
45、味着有键按下。 去抖动:有键按下时,延时20ms,待抖动消失后,在稳定状态下进行被按键识别。,被按键识别:从第0行开始,每扫描一行,就令该行对应的行线为0,其余行线为1,然后读入列线状态,检查是否有列线为0。若无,则行号加1,顺序扫描下一行;若有,则查出状态为0的列号,由该列号和正在扫描的行号就可识别被按下的键。 窜键处理:当一个以上的键被按下即发生窜键时,CPU在行扫描时必须不以发现第一个被按按键为满足,而是应该继续完成对所有行的一遍扫描,并在该遍扫描结束后判断是否发生窜键(设置一窜键标志寄存器),并根据实际情况作出处理。,矩阵式键盘示例,假定有一个44的矩阵键盘通过并行接口芯片8255A与微机相连, 8255A的A口定义为输出口,其口地址为40H,与键盘行线相连;B口定义为输入口,其口地址为41H,与键盘列线相连;控制寄存器地址为43H。给出键盘相关的程序段。,44矩阵键盘,分析:法1,程序段,MOV R0, #43H ;方式0,A输出,B输入 MOV R0, #82H BEGIN: MOV R0, #40H MOVX R0, #00H ;使所有行线全为0 MOV R1, #41H WAIT: MOVX A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨折患者心理护理与康复
- 广东省阳江二中学2026届全国中考预测试题含解析
- 湖南长沙市开福区达标名校2025-2026学年初三第一次考试数学试题试卷含解析
- 湖北省武昌区粮道街中学2026年中考押题金卷(全国卷Ⅲ)物理试题试卷含解析
- 杭州市拱墅区2025-2026学年下学期初三物理试题联考考试试卷含解析
- 辽宁省辽河油田欢喜岭第二初级中学2026届初三分科综合测试卷数学试题(一)含解析
- 湖南省长沙市明德旗舰达标名校2026届初三4月质量调研(二模)物理试题理试题含解析
- 辽宁省鞍山市铁西区、立山区重点名校2025-2026学年初三数学试题第一次联合调考3月联考试题含解析
- 浙江省上杭县2025-2026学年初三第二次调研测试物理试题理试题含解析
- 老年护理专业课程设置
- LCIA简便自动化培训
- 未成年人学校保护规定
- 中医治疗“乳癖”医案41例
- 阵列信号处理基础教程
- GB/T 16553-2003珠宝玉石鉴定
- 国际贸易 第三章 国际分工2017
- 2023年吉林大学自考生物制药专业招生简章
- 公路工程质量与安全管理课件
- 架桥机安装使用验收表
- 第一课冬休みの予定 单词课件-高中日语华东理工版新编日语教程2
- 中石油设备及管道定点测厚指导意见
评论
0/150
提交评论