1、第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口 第六章 计数器、定时器与接口 第七章 显示器与键盘接口 第八章 串行通信及接口 第九章 数模转换器和模数转换器接口,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,LED显示器的基本结构 静态显示的原理与接口 动态显示的原理与接口 点阵显示,LED显示器与接口,七段显示器: 将发光二极管封装成数
2、码显示的形式,LED显示器的基本结构,共阳七段显示器共阴七段显示器,LED显示器的基本结构,点阵式显示器: 发光二极管封装成点阵形式,构成不同的字符甚至汉字、图形,LED显示器的基本结构,点阵式显示器:发光二极管排列成矩阵,由亮与暗来产生字符或图形。每一行的阳极连在一起,每一列的阴极连在一起,LED显示器的基本结构,将显示的字符转换为对应的字型笔划编码,将此编码通过输出数据锁存器,并经驱动电路接到显示器 。,静态显示的原理与接口,驱动电路设计 通过限流电阻控制流过发光二极管的电流 流过发光二极管电流为510mA 发光二极管的导通电压为2.2V左右,静态显示的原理与接口,!,用一个74LS273
3、或74LS374构成的输出锁存器来控制一位显示器。当输出锁存器发出一字符的笔划编码时,该显示器就显示该字符,由于TTL电路的低电平吸电流的驱动能力较强,因此将接口电路的输出通过限流电阻与发光二极管显示器的负极相连接,其公共正极连接到正电源上,即采用共阳显示器。,静态显示的原理与接口,电路图,静态显示的原理与接口,对于上述共阳显示器接口电路来说,当控制信号为“0”时,点亮相应的笔划,当控制信号为“1”时则不亮。 由此可得到输出编码表,静态显示的原理与接口,静态显示的原理与接口,要求多位显示器的场合,如果采用静态显示方法,则随着显示位数的增加,数据锁存器、驱动电路也相应地成倍增加。 动态显示将所有
4、显示器的笔画接在一起,通过输出锁存器控制笔画的电平,而每位的公共端由另一个锁存器控制,决定此位是否点亮。,动态显示的原理与接口,动态显示的原理与接口,笔画,位,动态显示的原理与接口,笔画:四位共阴显示器相应笔划的阳极连在一起,笔划锁存器的输出通过一个由三极管构成的反相驱动器与共阴显示器的阳极相连。当笔划锁存器输出为“1”,则驱动三极管截止,当输出为“ 0”时,此三极管导通。,动态显示的原理与接口,位:每一位显示器的阴极由位锁存器的输出经反相驱动器控制。当位锁存器输出为“1”,则驱动三极管导通,当输出为“ 0”时,此三极管截止。,动态显示的原理与接口,控制笔划锁存器的输出能控制其对应的驱动三极管
5、导通与否,而控制位锁存器的输出也能控制其对应的驱动三极管导通与否。 当位驱动三极管导通时,选中相应位,而显示的字型由笔划驱动三极管的导通与否决定。 为了保证正确显示,每次只能有一位显示器被选中。,动态显示的原理与接口,被选中显示器的每个笔划流过的电流由笔划驱动三极管集电极的限流电阻决定,通常为2030mA。,限流电阻,动态显示的原理与接口,!,当某一位显示器所有的笔划都点亮时,该位驱动三极管流过的电流为160240mA。,位驱动三极管,动态显示的原理与接口,!,为保证正确显示,输出某位笔画信号时,只能该位显示器被选中。,动态显示的原理与接口,调试动态显示程序时,应注意防止程序在显示某一位时发生
6、死循环情况,或是当程序在显示某一位时将其中止,使该位显示器长时间地点亮。由于此时流过显示器的电流较大,容易损坏器件。碰到这类情况应迅速将机器复位,以关闭显示器。,动态显示的原理与接口,点阵显示器每一列的阴极连在一起,对每一列而言相当于一个共阴显示器。 同时每一行的阳极连在一起,相当于七段显示器的笔划。这样,可以把5X7的发光二极管点阵看作一个五位显示器。 仍可采用动态显示电路,以笔划锁存器控制行信号,以位锁存器控制列信号。,点阵显示的原理,点阵显示的原理,利用点阵显示字符和图形时,需用较多的编码。以5X7点阵为例,每列需要一个编码,如显示字母B,当第1列有效时,其行编码信号为7FH;当第2、3
7、、4列有效时,其行编码信号为49H;当第5列有效时,其行编码信号为36H。由于采用了反相驱动器,行锁存器输出的编码依次为00H、36H、36H、36H、49H。这五个字节的数字即字符B的编码。,点阵显示的原理,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,LCD显示器的基本结构 显示的原理与接口 程序设计,LCD显示器与接口,字符型液晶显示模块是一类专用于显示字母、数字和自定义符号(简称字符)的点阵型液晶显示模块。 每个字符的显示形式为5X8或5X11点阵块组成的图形。 显示时,每个字符占一个字符位,字符位之间有一个点距的间隔
8、起着字符间距和行距的作用。正由于行和列的间隔,这类模块只能显示字符而不能显示图形。,LCD显示器的基本结构,2行16个字符的字符型液晶显示模块字符型液晶显示驱动控制器(如HD44780U) 液晶显示驱动(如HD44100),LCD显示器的基本结构,字符型液晶显示模块的性能由所采用的控制器决定,主要包括: 控制模块、 显示驱动 接口电路三个部分,LCD显示器的基本结构,LCD显示器的基本结构,显示数据存储器(DDRAM) 内置字符发生RAM(CGRAM) 地址计数器,LCD显示器的基本结构,显示数据存储器DDRAM的内容决定显示器显示的内容,DDRAM的地址决定显示器显示字符的位置。 显示数据存
9、储器的内容可通过计算机接口定义,写入的数据为当前地址所指示的显示内容。,LCD显示器的基本结构,当显示内容为标准字符时,由内置字符发生ROM提供字模,此时显示数据存储器DDRAM的内容为标准ASCII码。 当显示内容为自定义字符时,由内置字符发生RAM提供字模,此时显示数据存储器DDRAM的内容为约定的自定义编码。,LCD显示器的基本结构,字符发生RAM的内容与写入的字模(即字符或图形)对应; 字符发生RAM的地址与字模位置相对应; 字符发生RAM内字模的内容可通过计算机接口定义; 写入的数据为当前地址所指示的字模位置的点阵数据。,LCD显示器的基本结构,地址指针计数器AC是可读可写计数器,是
10、指示DDRAM或CGRAM当前地址的指针计数器。 具体指示的对象根据计算机最近写入的地址设置指令的标识码决定。,LCD显示器的基本结构,在写入显示数据存储器DDRAM操作时,地址指针计数器AC指示当前DDRAM的地址,此地址与显示器的显示位置对应,即写入的数据是当前地址所指示的显示器位置所显示内容的编码。 标准字符编码(ASCII码10H0FFH) 自定义字符编码(ASCII码00H07H),LCD显示器的基本结构,显示存储器DDRAM为80个字节,各单元对应显示屏上的各字符位地址。 DDRAM地址定义分两种,一种为一行显示的地址定义,一种为两行显示的地址定义。 在两行显示时,第二行总是从DD
11、RAM的后半部分开始,即第41单元起单元定义为第二行DDRAM单元。,LCD显示器的基本结构,LCD显示器的基本结构,在写入字符发生RAM(CGRAM)操作时,地址指针计数器AC指示当前CGRAM的地址,此地址与字模位置相对应,即写入的数据为当前地址所指示的字模位置的点阵数据。 写入的5位数据为一行字符点阵,所以作为CGRAM字模库仅使用存储单元字节的低5位,而高3位不作为字模数据使用,LCD显示器的基本结构,在写入显示数据存储器DDRAM操作时,地址指针计数器AC指示当前DDRAM的地址,此地址与显示器的显示位置对应,即写入的数据是当前地址所指示的显示器位置所显示的内容的编码。 标准字符编码
12、(ASCII码10H0DFH) 自定义字符编码(ASCII码0E0H0FFH),LCD显示器的基本结构,LCD显示器的基本结构,I/O缓冲器是接口模块以及控制模块中寄存器和存储器与计算机连接的结合部。 指令寄存器及译码器是将计算机发来的指令代码转译成控制逻辑信号,实现对控制器的设置。 数据寄存器包括数据输入和数据输出寄存器,用于暂存写入和读取的DDRAM和CGRAM的数据。,LCD显示器的基本结构,接口模块将BF触发器“忙”标志作为“握手”信号,其状态表示控制器当前是否可以接收计算机发来的数据。 BF=1 表示控制器内部正在处理指令或传输计算机送来的显示数据,不接收计算机对控制器的写、读数据操
13、作,此时控制器将封锁I/O缓冲器。 BF=0 表示控制器己处理完计算机发来的信息,打开I/O缓冲器等待新的操作。,LCD显示器的基本结构,类似于可编程接口电路,通过工作方式设定及数据交换使显示器工作 查询忙标记判断是否能设置命令或写入数据 通过命令码设定工作方式 通过命令码设定地址寄存器的定义 将数据写入字符发生RAM(CGRAM) 将数据写入显示数据存储器DDRAM,显示的原理与接口,工作方式设置 格式,显示的原理与接口,DL设置控制器与计算机的接口形式DL=0 设置数据总线为4位,=1为8位 N 设置显示的字符行数N=0为一行字符行,=1为两行字符行。 F 设置显示字符的字体F=0为5X7
14、点阵字符体,=1为5Xl0点阵字 符体,显示的原理与接口,CGRAM地址设置格式该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对CGRAM的读/写操作,显示的原理与接口,DDRAM地址设置 格式该指令将7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对DDRAM的读/写操作,显示的原理与接口,控制器与计算机的连接信号 DB0DB7 三态 8位数据总线 RS 输入 寄存器选择信号 R/W 输入 读/写选择信号 E 输入 使能信号,显示的原理与接口,显示的原理与接口,直接访问方式把字符型液晶显示模块作为I/O设备直接挂在计算机总线上 8位数据总
15、线与8031的数据总线连接 E信号由WR和RD信号逻辑与非后产生 由高位地址组成的片选信号选通控制 RS信号由地址A0提供, R/W由地址Al提供。,显示的原理与接口,显示的原理与接口,子程序 读BF状态 初始化程序 写入指令 写入数据,显示程序设计,PUSH DPHPUSH DPLPUSH ACCMOV DPTR,#CR_ADDMOVX A,DPTRMOV COM,A POP ACCPOP DPLPOP DPHRET,显示程序设计,显示程序设计,子程序 读BF状态 初始化程序 写入指令 写入数据,INIT: MOV A,#30H ;工作方式设置指令代码MOV DPTR,#CW_ADD ;指令
16、口地址设置MOV R2,#03H ;循环量=3MOVX DPTR, A ;写指令代码 INIT1:LCALL DELAYDJNZ R2,INIT1MOV A,#38H ;设置8位总线工作方式MOVX DPTR, A,显示程序设计,MOV COM,#01H ;请屏LCALL PR1MOV COM,#06H ;设置输入方式LCALL PR1MOV COM,#0FH ;设置显示方式LCALL PR1RET,显示程序设计,显示程序设计,子程序 读BF状态 初始化程序 写入指令 写入数据,PR1: PUSH DPHPUSH DPLPUSH ACCMOV DPTR,#CR_ADD PR11:MOVX A,
17、DPTRJB ACC.7,PR11MOV A,COMMOV DPTR,#CW_ADDMOVX DPTR, A,显示程序设计,POP ACC POP DPL POP DPH RET,显示程序设计,子程序 读BF状态 初始化程序 写入指令 写入数据,PR1: PUSH DPHPUSH DPLPUSH ACCMOV DPTR,#CR_ADD PR11:MOVX A,DPTRJB ACC.7,PR11MOV A,DATMOV DPTR,#DW_ADDMOVX DPTR, A,显示程序设计,POP ACC POP DPL POP DPH RET,自定义字符的写入 数据写入,显示程序设计,CG_WRITE
18、: MOV COM,#40H ;设置CGRAM地址LCALL PR1MOV R2,#18HMOV R3,#00HMOV DPTR,#CGTAB;设置字模数据首地址 CG1: MOV A,R3MOVC A,A+DPTRMOV DAT,A,显示程序设计,LCALL PR2INC R3DJNZ R2,CG1RET CGTAB:DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;年DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;月DB 1FH,11H,11H,1FH,11H,11H,1FH,00H ;日,显示程序设计,自定义字符的写入 数据写入,显示程序设计
19、,;字符显示LCALL CG_WRITE ;建立自定义字库MOV DPTR,#TABDY ;设置字表首地址MOV R3,#00H,显示程序设计,MOV COM,#80H ;设置DDRAM地址LCALL PR1MOV R2,#0BH LOOP1:MOV A,R3MOVC A,A+DPTR ;取字符MOV DAT,ALCALL PR2INC R3DJNZ R2,LOOP1,显示程序设计,MOV COM,#0C0H ;设置DDRAM地址LCALL PR1MOV R2,#09H LOOP2:MOV A,R3MOVC A,A+DPTR ;取字符MOV DAT,ALCALL PR2INC R3DJNZ R
20、2,LOOP2,显示程序设计,TABDY:DB 32H,30H,30H,34H,00HDB 20H,35H,01H,20H,31H,02H DB 32H,30H,30H,33H,00HDB 31H,32H,33H,34H,02H;2004年 5月 1日 ;V=1.234V,显示程序设计,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,单排按键与CPU的连接 键盘与CPU的连接 键盘接口设计,键盘与接口,单排按键与CPU的连接,每一个按键对应一个三态缓冲门的输入端。键未按下时,此信号为“1”,键按下时,此信号为“0”。 CPU通过
21、向此接口发出读指令来得到当前按键的状态。没有按下的键为“1”,按下的键为“0”,单排按键与CPU的连接,按键通过三态缓冲器构成的输入口连接到数据总线上。执行读入按键指令时,地址选中信号和CPU发出的读命令有效,此输入口被选中,可读入按键的状态。,单排按键与CPU的连接,在按键按下与断开的过程中,按键产生机械抖动。抖动现象将使 CPU产生误判断。可用硬件或软件的去除抖动方法,键盘与CPU的连接,4X4键盘的结构,行线信号可在程序控制下设置为高或低电平,列线信号作为状态读入信号。,键盘与CPU的连接,4X4键盘的工作原理,当无键按下时,行线与列线断开,所有列线均为高电平。当有一个键按下时,则与此键
22、对应的行线与列线接通。如此行线为低电平,则此列线也为低电平。,键盘与CPU的连接,标准电路实现4X4键盘的接口,行线与并行输出接口相连,列线与并行输入接口相连。输出口为无条件输出的数据锁存器,输入口为无条件输入的三态缓冲器,,74LS273,74LS244,键盘与CPU的连接,可编程接口电路实现4X4键盘接口,采用可编程并行接口电路,如INTEL 8255A等,但必须将它们编程为无条件输出和输入的方式,方式0输出,方式0输入,键盘与CPU的连接,可编程逻辑器件实现4X4键盘接口,用CPLD构成输入输出接口,键盘与CPU的连接,键盘程序设计为确定是否有键按下,CPU先通过并行输出口使所有的行线为
23、低电平,然后通过并行输入口读入列信号,若为全“1”,则没有键按下,若有一个为“0”,则表示有一个键已按下。,若有一个为“0”,则表示有一个键已按下。 为消去按下时的抖动现象,程序延迟20ms后再判断具体是哪一个键按下。,键盘与CPU的连接,先将第一行置为低电平,然后读入列信号,若有一个为“0”,则按下的键在此行;若为全“1”,则按下的键不在此行,再将下一行置为低电平,并测试列信号。,键盘与CPU的连接,如果在最后一行也为低电平时仍未找到按下的键,则认为刚才有键按下的情况为误动作。,键盘与CPU的连接,对找到的键,进行分析并处理,键盘与CPU的连接,中断方式的4X4键盘接口 所有列信号相与,作为
24、中断申请信号。先使所有行都为低电平,当有键按下时,中断申请触发信号变高,产生向CPU申请中断的信号INT,,键盘与CPU的连接,键盘接口设计,4X4键盘与ISA总线的接口,输出口,输入口,键盘接口设计,4X4键盘与89C51的接口,输出口,输入口,译码,键盘接口设计,4X4键盘与89C51的接口 - CPLD,输出口,输入口,译码,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,拨盘与接口,拨盘开关 多个拨盘与CPU的连接,拨盘开关,拨盘开关的结构,BCD码的拨盘开关有09十个位置,开关后部有8、4、2、1、A五个接点。其中A为
25、控制线,8、4、2、1四个接点为开关的输出线。当拨盘开关置于不同位置时,控制线A与8、4、2、1中某些接点接通。如拨到0,则所有的接点与A均不通;如拨到1,则1与控制线A接通,其余的均不通。,拨盘开关,拨盘开关的输出信号,O表示控制线A与该端接通 X表示控制线A与该端不通 把开关的输出线经电阻接到电源上,把控制线A接地,则接通的输出端为“0”,不通的输出端为“1”。这时输出码为开关位置对应的BCD码的反码,拨盘与CPU的连接,单个拨盘的接口,拨盘与CPU的连接,多个拨盘相连 开关K1拔在数字5的位置,开关K2拨在数字1的位置。 读取开关K1的数据,将A1为低电平、A2为高电平时,A1的低电平将
26、通过K2的输出线1加到控制线A2上,拨盘与CPU的连接,多个拨盘接口 输出信号经并行输出口74LS 374与拨盘开关的控制线A1、A2相连。 拨盘开关的输出经二级管隔离后接到并行输入口74LS 244的输入端。,本章知识点,LED显示器与接口 * LCD显示器与接口* 键盘与接口* 拨盘与接口* 可编程显示器键盘接口电路*,可编程键盘、显示器接口,INTEL 8279 接口与工作方式 编程 应用,接口与工作方式,Intel 8279与CPU之间的连线: D0D7数据线 IRQ中断申请信号,高电平有效 -RD、-WR读写信号 RESET 复位信号,高电平有效 -CS片选信号 A0缓冲器地址,A0
27、=0表示数据口,A0=1表示表示命令、状态口 CLK外部时钟输入,产生内部100kHz信号,输入信号频率低于2MHz。,接口与工作方式,Intel 8279与外部的连线: SL0SL3扫描信号,用于键盘与显示器的扫描 RL0RL7健输入信号,由内部电阻拉成高电平 SHIFT, CNTLSTB 键控制线,由内部电阻拉成高电平 OUTB03,OUTA03输出显示数据,OUTA3最高位,OUTB0最低位 -BD消隐信号,接口与工作方式,DD 显示方式,D7 D0,接口与工作方式,KKK键盘操作方式,D7 D0,编 程,初始化,编 程,向显示器RAM写入数据,编 程,读FIFQ 传感器 RAM数据,应
28、 用,选择外部译码方式,键盘的行扫描信号由扫描输出信号SL0SL2经74LS138译码后得到。列信号通过RL0RL3送入8279。,应 用,显示器的位选择由SL0SL2经74LS138译码得到,BD接74LS138控制端,当其有效时,译码器输出全为高电平,所有显示器不亮 显示器段信号由OUTB03,OUTA03经驱动后提供,应 用,8279选择外部译码方式,键盘的行扫描信号由扫描输出信号SL0SL2经74LS138译码后得到。列信号通过RL0RL3送入8279。显示器的位选择也由SL0SL2经74LS138译码得到,BD接74LS138控制端,当其有效时,译码器输出全为高电平,所有显示器不亮。采用共阴显示器,位选择信号经同相驱动器后加到显示器阴极。显示器段信号由OUTB03,OUTA03经驱动后提供,由于此驱动器是反相的,则输出为0时点亮,为1时不亮,