单片机原理与接口技术(电子工业出版社)课件-第8章-单片机系统基本并行扩展技术_第1页
单片机原理与接口技术(电子工业出版社)课件-第8章-单片机系统基本并行扩展技术_第2页
单片机原理与接口技术(电子工业出版社)课件-第8章-单片机系统基本并行扩展技术_第3页
单片机原理与接口技术(电子工业出版社)课件-第8章-单片机系统基本并行扩展技术_第4页
单片机原理与接口技术(电子工业出版社)课件-第8章-单片机系统基本并行扩展技术_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与接口技术第8章单片机系统

基本并行扩展技术7/24/20231本章教学要求(1)熟悉单片机系统总线的扩展方法,理解其扩展原理。(2)掌握译码法和线选法进行单片或多片存储器的扩展设计方法。(3)掌握8155并行接口的扩展设计方法。(4)掌握LED显示器和行列式键盘的扩展设计方法。(5)了解打印机扩展方法。7/24/20232本章目录8.1概述8.2外部总线扩展8.3外部存储器扩展8.3.1外部程序存储器扩展8.3.2外部数据存储器扩展8.3.3多片存储器芯片扩展8.4并行接口扩展8.4.1并行接口的简单扩展方法8.4.28155可编程并行I/O接口扩展8.5显示器与键盘扩展8.5.1LED显示器接口扩展8.5.2LCD显示器接口扩展8.5.3键盘接口扩展8.5.4键盘和显示器接口设计实例8.6打印机扩展8.6.1TPuP-16A/40A微型打印机8.6.2打印机接口扩展方法习题与思考题7/24/202338.1概述一个单片机应用系统是以单片机作为核心部件的,但其硬件资源还远不能满足实际需求。通常还需要进行一些必要的扩展。包括:扩展程序存储器,以存放较大控制程序和数据表格等;扩展数据存储器,以解决大量数据的存储问题;扩展I/O端口,以解决单片机对外I/O端口线复用问题;扩展键盘、显示器和打印机等,以解决数据输入、输出和人机交互信息等接口问题。一个实际的单片机应用系统往往具有如图8-1所示的一般结构,需要根据实际情况进行系统扩展。----单片机应用系统扩展问题7/24/202348.1概述图8-1单片机应用系统结构图

----单片机应用系统结构图本章主要讨论MCS-51系列单片机存储器和I/O端口等基本并行扩展问题。7/24/202358.2外部总线扩展由于单片机的I/O端口是分时复用的,须将三总线分离出来才能与外部设备或存储器进行连接。单片机操作外部设备或外部数据存储器所使用的指令为MOVX。在该指令执行过程中,P0口先送出低8位地址,后送出数据。而外部存储器或设备本身不具备地址保持功能,无法保持有效地址。这就要求在单片机P0口与存储器的低8位地址之间加锁存器对低8位地址进行锁存。

P2口高8位地址会一直持续到指令周期结束,不需要进行锁存。

ALE信号可用来控制锁存器对地址信号进行锁存。----P0口扩展7/24/20236

MCS-51系列单片机对外提供16条地址线,可扩展的存储空间为64KB,但51系列单片机还提供了PSEN、WR和RD信号。操作程序存储器(取指令及执行MOVC指令)时,PSEN有效。操作数据存储器(MOVX)时,RD或WR信号有效。因而实际可扩展空间为128KB,即程序存储器可扩展至64KB(包括单片机内部程序存储空间)。外部数据存储器也可扩展至64KB(不包括单片机内部RAM)。8.3外部存储器扩展----存储器寻址范围7/24/20237----访问程序存储器的时序图8.3.1外部程序存储器扩展1.程序存储器的访问时序7/24/20238----程序存储器扩展图8-4MCS-51单片机扩展外部程序存储器的示意图8.3.1外部程序存储器扩展7/24/20239----EPROM芯片特性8.3.1外部程序存储器扩展2.EPROM程序存储器扩展(1)EPROM芯片及其主要技术特性表8-1常用EPROM存储器的主要技术特性7/24/202310----EPROM芯片引脚8.3.1外部程序存储器扩展(2)常用EPROM芯片的引脚定义7/24/202311(3)EPROM芯片操作方式表8-22764操作方式----EPROM芯片操作方式8.3.1外部程序存储器扩展7/24/202312(4)EPROM程序存储器扩展图8-68031单片机扩展EPROM存储器2764的接口电路----EPROM扩展8.3.1外部程序存储器扩展7/24/2023132764的容量是8KB,有13条地址线。单片机ALE信号与74LS373的锁存控制端连接,通过74LS373实现了单片机地址线与数据线的分离。2764的A0~A7与锁存器74LS373的Q0~Q7连接,A8~A12直接与单片机P2口的P2.0~P2.4连接。由于8031单片机没有程序存储器,控制程序必须存放在2764中,因而8031的端必须接地。将单片机的引脚连接到2764的端,控制EPROM中数据的读出。图中2764的地址范围是0000~1FFFH。8.3.1外部程序存储器扩展----EPROM扩展7/24/2023143.EEPROM程序存储器扩展(1)2864A内部结构

----EEPROM扩展8.3.1外部程序存储器扩展

EEPROM是电可擦写的只读存储器,可以实现在线写入,并具有EPROM的数据保持功能,可以如同SRAM一样使用,但写入速度比SRAM慢得多。7/24/202315(2)2864A的引脚定义----EEPROM扩展8.3.1外部程序存储器扩展(3)2864A的操作方式7/24/2023168.3.1外部程序存储器扩展----EEPROM扩展(4)2864A的页写入时序7/24/202317(5)8301单片机扩展EEPROM存储器2864A的接口电路8.3.1外部程序存储器扩展----EEPROM扩展图中2864A的地址范围是0000H~1FFFH。

7/24/2023188.3.2外部数据存储器扩展MCS-51单片机访问外部数据存储器的时序图----访问外部数据存储器时序7/24/2023196264的引脚定义和操作方式8.3.2外部数据存储器扩展----6264数据存储器7/24/202320MCS-51单片机扩展外部数据存储器6264的接口电路8.3.2外部数据存储器扩展----扩展6264接口电路图中,6264存储器芯片采用线选法,A0~A12可从全0变为全1,因而其地址范围为0000H~1FFFH。7/24/202321例8-1

将上图6264中1000H~1007H的8个单元内容移到单片机内部RAM的60H开始的连续单元中。DATAMOV:MOVDPTR,#1000H ;DPTR指向源地址

MOVR0,#60H ;R0指向目的地址

MOVR1,#8 ;数据块长度DATALOOP:MOVXA,@DPTR ;从6264取数据

MOV@R0,A ;保存至内部RAM指定单元

INCDPTR ;修改地址指针

INCR0 DJNZR1,DATALOOP ;长度控制

RET8.3.2外部数据存储器扩展----扩展6264编程举例7/24/2023228.3.3多片存储器芯片的扩展8031单片机扩展多片存储器----多片存储器扩展7/24/2023238.4并行接口扩展

51系列单片机的外扩设备占用外部RAM空间,可利用MOVX指令对外设进行操作。因而扩展外设和扩展外部存储器对单片机资源的使用情况是相同的。在单片机应用系统中扩展存储器时,P0口用做低8位地址和数据总线复用,P2口用做高8位地址总线,若再考虑串行通信、数据存储器扩展等问题,则P3口作为第二功能被使用,这样,单片机就只剩下P1口可以作为并行I/O接口使用了。在P1端口不能满足需要时,还需要扩展并行I/O接口。7/24/2023248.4.1并行接口的简单扩展方法1.用74LS377扩展并行输出接口74LS377是8D触发器,引脚定义及功能特性如下:----74LS377芯片7/24/2023258.4.1并行接口的简单扩展方法例:在扩展外部RAM的同时,利用74LS377扩展并行输出口,采用线选法实现片选。RAM的地址范围是4000H~5FFFH,74LS377的端口地址为8000H。----应用74LS377扩展输出口7/24/2023268.4.1并行接口的简单扩展方法

74LS245是三态输出8总线收发/驱动器,无数据锁存功能,但可以控制数据传送方向,可以用于扩展并行I/O接口。当其控制引脚G为低电平时,芯片工作在传输状态,数据传输方向受DIR引脚信号控制,可以将A端数据传输到B端(DIR=1)或将B端数据传输到A端(DIR=0)。

2.用74LS245扩展并行输入接口74LS245的引脚定义----74LS245芯片7/24/2023278.4.1并行接口的简单扩展方法图示为利用74LS245扩展并行输入接口的电路。图中采用线选法选中74LS245。74LS245的端口地址为8000H,而RAM的地址范围为4000H~5FFFH。----应用74LS245扩展输入口7/24/2023288.4.28155可编程并行I/O接口扩展1.8155的引脚定义及内部结构----8155结构7/24/2023292.8155的内部寄存器及操作8.4.28155可编程并行I/O接口扩展----8155寄存器及操作8155的控制字寄存器和状态字寄存器共用一个地址,写该地址时,写入的是控制字,读该地址时,读出的是状态字。7/24/2023301)8155的控制字

8155的控制字格式如下:8.4.28155可编程并行I/O接口扩展----8155控制字控制字各位定义如下:PA:定义A口的输入/输出PA=0,定义A口输入PA=1,定义A口输出PB:定义B口的输入/输出PB=0,定义B口输入PB=1,定义B口输出7/24/2023318.4.28155可编程并行I/O接口扩展----8155控制字PAB1和PAB2:定义A口、B口和C口的工作方式。00:A口和B口为基本输入/输出口,C口为输入口。11:A口和B口为基本输入/输出口,C口为输出口。01:A口工作在选通方式,B口为基本输入输出口,PC5,PC4,PC3为输出方式,PC0~PC2提供A口选通方式的握手联络信号(PC0=INTRA,PC1=BFA,PC2=STBA)。10:A口和B口均为选通方式,PC0~PC5提供它们所需握手联络信号(PC0=INTRA,PC1=BFA,PC2=STBA,PC3=INTRB,PC4=BFB,PC5=STBB)。其中,INTRA为A口中断请求输出标志,INTRB为B口中断请求输出标志,BFA为A口缓冲器/空输出信号,BFB为B口缓冲器/空输出信号,STBA为A口数据选通输入信号,STBB为B口数据选通输入信号。7/24/2023328.4.28155可编程并行I/O接口扩展----8155控制字IEA:A口中断允许。IEA=1时允许A口中断;IEA=0时禁止A口中断。IEB:B口中断允许。IEB=1时允许B口中断;IEB=0时禁止B口中断。TM1和TM2:定义定时/计数器工作方式。00:空操作,不影响定时/计数器工作。01:立即停止定时/计数器工作。10:待定时/计数器溢出时停止工作。11:启动定时/计数器。7/24/2023332)8155的状态字

8155的状态字格式如下:8.4.28155可编程并行I/O接口扩展----8155状态字8155状态字的各位定义如下:INTRA:A口中断请求标志。BFA: A口缓冲器满标志。INTEA:A口中断允许标志。INTRB:B口中断请求标志。BFB: B口缓冲器满标志。INTEB: B口中断允许标志。TIMER:定时/计数器中断请求标志,计数溢出时置1,CPU读8155状态后清零。7/24/2023343.8155内部定时/计数器

8155的定时/计数器是一个14位的减法计数器。它有两个8位初值寄存器:高8位初值寄存器的低6位存放计数初值的高6位,最高两位确定定时/计数器的工作方式;低8位初值寄存器用于存放计数初值的低8位。计数脉冲来自TI引脚。

8155定时/计数器的初值寄存器存储数据格式如下:8.4.28155可编程并行I/O接口扩展----8155定时/计数器7/24/202335

M2和M1决定了8155定时/计数器有4种工作方式,不同的工作方式意味着在TO引脚输出不同信号。4种工作方式及TO输出波形见下表。

8.4.28155可编程并行I/O接口扩展----8155定时/计数器7/24/202336使用8155的定时/计数器时,应先对它的高低字节寄存器编程,设置工作方式和计数初值n。然后对控制字寄存器编程(控制字最高两位为11),启动定时/计数器工作。注意,硬件复位并不能初始化定时/计数器为某种工作方式或启动定时/计数器。启动和停止定时/计数器都是通过写控制字实现的。8.4.28155可编程并行I/O接口扩展----8155定时/计数器7/24/202337启动定时/计数器的步骤如下:(1)根据定时要求确定时间常数,即14位减法计数器的计数初值;(2)确定定时/计数器工作方式并按先高后低顺序将计数初值写入初值寄存器;(3)向控制字寄存器写入最高两位是11的控制字,启动定时/计数器。停止定时/计数器的方法是:向控制字寄存器写入最高两位为01的控制字,使定时/计数器立即停止计数;向控制字寄存器写入最高两位为10的控制字,使定时/计数器溢出时停止计数。注意:8155复位后,定时/计数器处于停止状态;8155对TI引脚输入的脉冲个数进行计数,但输入脉冲的频率不应高于4MHz。8.4.28155可编程并行I/O接口扩展----8155定时/计数器7/24/2023384.8155与单片机的接口电路因8155内部有输入锁存器,因而单片机的控制信号可以直接与8155连接。8155与MCS-51单片机的接口电路如下图所示。图中RAM字节地址范围是7E00H~7EFFH;命令/状态字寄存器地址是7F00H;A口地址是7F01H;B口地址是7F02H;C口地址是7F03H;定时/计数器低8位寄存器地址是7F04H;定时/计数器高8位寄存器地址是7F05H。8.4.28155可编程并行I/O接口扩展----8155接口电路7/24/202339例8-2

在上图中,将单片机片内RAM40H~4FH单元的内容,送8155芯片内的00H~0FH单元。设定8155芯片的工作方式为:A口为基本输入方式,B口为基本输出方式,C口为输入方式,定时/计数器作为方波发生器,对输入脉冲100分频。程序如下:

ORG 1000H MOV R0,#40H ;R0指向CPU片内RAM40H单元

MOV DPTR,#7E00H ;数据指针指向8155内部

;RAM7E00H单元LP: MOV A,@R0 ;数据送累加器A MOVX@DPTR,A ;数据从累加器A送8155内部RAM INC DPTR ;指向下一个8155内部RAM单元

INC R0 ;指向下一个CPU内部RAM单元

CJNE R0,#50H,LP ;数据未传送完返回 8.4.28155可编程并行I/O接口扩展----8155应用举例7/24/202340

MOV DPTR,#7F04H ;指向定时/计数器低8位

MOV A,#64H ;分频系数(64)16=(100)10 MOVX@DPTR,A ;低8位计数初值装入

INC DPTR ;指向定时/计数器高8位

MOV A,#40H ;设定时/计数器工作方式为连

;续方波(40H=01000000B) MOVX@DPTR,A ;定时/计数器工作方式及高6位

;计数初值装入

MOV DPTR,#7F00H ;数据指针指向控制字寄存器

MOV A,#0C2H ;设定A,B,C口工作方式

MOVX@DPTR,A ;启动定时/计数器

;(0C2H=11000010B) RET END8.4.28155可编程并行I/O接口扩展----8155应用举例7/24/2023418.5显示与键盘扩展 键盘、显示器是微机重要的输入/输出设备,因而键盘、显示器与微机的接口技术是微机控制系统中必须解决的问题。键盘用于输入信息。从工作原理上看,按键较少时,键盘一般采用独立按键方式;按键较多时,键盘一般采用行列结构。显示器有显示监控结果、提供用户操作界面等功能。在单片机应用系统中,常用的显示器有LED和LCD(LCM)等。

7/24/2023428.5.1LED显示器接口扩展----LED结构数码管的外形及其两种结构七段显示字形码

1.LED结构及其工作原理7/24/202343根据控制原理不同,LED显示方式可分为静态显示方式和动态显示方式。静态显示方式:若数码管显示为某一个字符时相应的发光二极管恒定地导通或截止。静态显示方式时所有数码管同时点亮,字符显示期间加在数码管上的七段码不变,即每一个数码管对应一个8位I/O接口,所以占用的硬件资源较多。动态显示方式:轮流点亮各数码管,即对显示器进行扫描。任何时刻只给一个数码管通电,通电一定时间后再给下一个数码管通电。只要刷新率足够高,动态显示方式同样可以实现稳定显示。动态显示的最大优点是节约I/O口。2.LED显示器工作方式8.5.1LED显示器接口扩展----LED工作方式7/24/202344以MCS-51单片机为核心的应用系统通常采用8155扩展LED显示器,电路如下图所示。8155的A口输出位选择码,B口输出段码,因而是动态显示方式。(图中LED器件是共阴极数码管)2.LED显示接口方法

8.5.1LED显示器接口扩展----LED接口方法7/24/202345例8-3

设计6位共阴极显示器与8155的接口电路(如上图),并写出与之对应的动态扫描显示子程序。显示数据缓冲区在片内RAM79H~7EH单元。分析:设计8155的A口作为扫描口,输出位选择码,B口作为段码输出口,都工作在基本输出方式下;A口的端口地址为7F01H,B口的端口地址为7F02H。进行扫描时,A口的低6位依次置1,依次选中从左至右的显示器。共阴极数码管在段数据表中的字形码应与共阴极数码管的字形码相同。8.5.1LED显示器接口扩展----LED接口方法举例7/24/202346编写程序如下:

ORG 1000HDSP8155: MOV DPTR,#7F00H ;指向8155控制字寄存器

MOV A,#00000011B ;设定A口和B口为基本输出方式

MOVX@DPTR,A ;向控制字寄存器写控制字DISP1: MOV R0,#7EH ;指向显示数据缓冲区末地址

MOV A,#20H ;设定扫描字,PA5为1,从左至右扫描LOOP: MOV R2,A ;暂存扫描字

MOV DPTR,#7F01H ;指向8155的A口

MOVX@DPTR,A ;输出位选择码

MOV A,@R0 ;读显示数据缓冲区一字符

MOV DPTR,#PTRN ;指向段数据表首地址

MOVCA,@A+DPTR ;查表,得段数据

MOV DPTR,#7F02H ;指向8155的B口8.5.1LED显示器接口扩展----LED接口方法举例7/24/202347

MOVX@DPTR,A ;输出段数据

CALL D1MS ;延时1ms DEC R0 ;调整指针

MOV A,R2 ;读回扫描字

CLR C ;清进位标志位

RRC A ;扫描字右移

JC PASS ;结束

AJMP LOOP ;继续显示PASS: RET ;返回D1MS:MOV R7,#02H ;延时1ms子程序DMS: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,DMS RETPTRN:DB3FH,06H,5BH,4FH,66H ;段数据表

DB6DH,7DH,07H,7FH,67H END8.5.1LED显示器接口扩展----LED接口方法举例7/24/2023488.5.2LCD显示器接口扩展

Motorola公司生产的MC14543芯片是一种常用的LCD锁存/译码/驱动电路,其引脚如图所示。MC14543的使用十分简单,只要在LD(锁存禁止)端加上高电平,BI(熄灭端)加低电平,Ph端输入方波,A,B,C,D端输入BCD码,则在译码笔形输出端就会输出与Ph同相或反相的方波信号(信号波形由BCD码的笔划译码决定),驱动对应的液晶笔划亮或暗,从而显示出数字。----LCD驱动芯片7/24/2023498.5.2LCD显示器接口扩展采用硬件译码的3位LCD接口电路

----LCD驱动电路7/24/2023508.5.2LCD显示器接口扩展例8-4

根据上图所示接口电路,编写程序将显示缓冲区中3位非压缩BCD码显示在3位LCD上。设显示缓冲区起始地址为DISBUF。程序如下:INC R0 ;取中位数据ANL A,#0FH ;高4位清零ORL A,#40H ;P1.6=1(中位LD)MOV P1,AINC R0 ;取低位数据ANL A,#0FH ;高4位清零ORL A,#80H ;P1.7=1(低位LD)MOV P1,ACLR P1.5 ;保持显示信息CLR P1.6CLR P1.7RET----LCD编程举例7/24/2023518.5.3键盘接口扩展----键盘问题(1)按键确认。判定是否有键按下。(2)去抖动。键在按下和松开时都存在抖动问题,不能将抖动误认为多次按键,可以采用软件方法去除抖动,也可以采用硬件方法去除抖动。1.键盘设计须解决的问题按键时产生的抖动信号硬件去抖动电路7/24/2023528.5.3键盘接口扩展----键盘问题1.键盘设计须解决的问题(1)按键确认。判定是否有键按下。(2)去抖动。键在按下和松开时都存在抖动问题,不能将抖动误认为多次按键,可以采用软件方法去除抖动,也可以采用硬件方法去除抖动。(3)持续按键处理。对于在规定时间内未释放的按键可以认为是一次有效按键,也可以认为是多次有效按键,或直到按键松开才认为是一次有效按键,这主要取决于系统对键盘输入的要求。(4)多键处理。若同时有一个以上的键按下,可以以先扫描到的键为唯一有效按键,也可以根据系统的实际需要解释为复合按键。7/24/2023538.5.3键盘接口扩展----独立按键键盘2.独立按键键盘

在系统中按键数目较少而且空闲I/O接口数目较多的情况下,每个按键可以独立占用一条I/O口线,称这种键盘接口方式为独立按键键盘,如图所示。图中电阻R为上拉电阻,确保无按键时I/O口为高电平。通过判断数据线的电平值即可判断是否有键按下。

7/24/2023548.5.3键盘接口扩展----行列式键盘3.行列式键盘

若每一个按键都占用一条I/O口线,当按键数目较多时,就要使用大量的I/O口线。为了减少键盘与单片机接口时所占用I/O口线的数目,通常设置两组互不连接的行线和列线,在行线与列线的交叉处设置一个按键开关,如图所示。无键按下时,行线与列线不连接,有键按下时,行线与列线接通。在这种行列式无编码键盘中,对按键的识别由软件完成,通常有两种方法:一是传统的行扫描法;二是速度较快的线反转法。本节主要讨论行扫描法。

7/24/202355下图为4×8行列式键盘与MCS-51单片机的接口电路。键盘通过8155的A口和C口与单片机连接。

8.5.3键盘接口扩展----行列式键盘接口4.行列式键盘的接口方法

7/24/2023568.5.3键盘接口扩展----行列式键盘举例,1例8-5

根据上图所示接口电路,编写行列式键盘扫描程序。分析:8155的PA设定为输出口,称其为扫描线,PA口的端口地址为7F01H。PC3~PC0设定为输入口,称其为回送线,PC口的端口地址为7F03H。键值编码形式:回送线PC0,PC1,PC2,PC3上的键值(每条回送线上有8个键,顺序从左到右)分别为:PC0:00H+(00H~07H)PC1:08H+(00H~07H)PC2:10H+(00H~07H)PC3:18H+(00H~07H)

其中,(00H~07H)的具体内容由扫描线决定,存放在R4中。7/24/2023578.5.3键盘接口扩展----行列式键盘举例,2(1)扫描是否有键按下子程序KEY1,回扫线的值存放在A中。程序如下:

ORG 1000HKEY1:MOV DPTR,#7F01H ;将PA口地址送DPTR,PA口

;作为扫描线

MOV A,#00H ;所有扫描线均为低电平

MOVX@DPTR,A ;PA口向列线输出00H INC DPTR INC DPTR ;指向PC口

MOVXA,@DPTR ;取回送线状态

CPLA ;行线状态取反

ANL A,#0FH ;屏蔽A的高半字节

RET ;返回7/24/2023588.5.3键盘接口扩展----行列式键盘举例,3(2)判断是否有键按下子程序KEY,如果有,识别按键的键码。其中DELAY1是延时子程序。程序如下:KEY: ACALLKEY1 ;检查有键闭合否

JNZ LKEY1 ;A非0说明有键按下

ACALLDELAY1 ;执行一次延时子程序(延时6ms) AJMP KEYLKEY1:ACALLDELAY1 ACALLDELAY1 ;有键闭合延时2×6ms=12ms以去抖动

ACALLKEY1 ;延时以后再检查是否有键闭合

JNZ LKEY2 ;有键闭合,转LKEY2 ACALLDELAY1 ;无键闭合,说明是干扰信号,不作处理

AJMP KEY ;延时6ms后转KEY继续等待键入LKEY2:MOV R2,#0FEH ;扫描初值送R2,设定PA0为当前扫描线

MOV R4,#00H ;回送初值送R47/24/2023598.5.3键盘接口扩展----行列式键盘举例,4LKEY4:MOV DPTR,#7F01H ;指向PA口

MOV A,R2 MOVX@DPTR,A ;扫描初值送PA口

INC DPTR INC DPTR ;指向PC口

MOV A,@DPTR ;取回送线状态

JB ACC.0,LONE ;ACC.0=1,第0行无键闭合,转LONE MOV A,#00H ;装第0行行值

AJMP LKEYP ;转计算键码LONE:JB ACC.1,LTWO ;ACC.1=1,第1行无键闭合,转LTWO MOV A,#08H ;装第1行行值

AJMP LKEYP ;转计算键码LTWO:JB ACC.2,LTHR ;ACC.2=1,第2行无键闭合,转LTHR MOV A,#10H ;装第2行行值

AJMP LKEYPLTHR:JB ACC.3,NEXT ;ACC.3=1,第3行无键闭合,转NEXT MOV A,#18H ;装第3行行值7/24/2023608.5.3键盘接口扩展----行列式键盘举例,5LKEYP:ADD A,R4 ;计算键码

PUSH ACC ;保存键码LKEY3:ACALLDELAY1 ;延时6ms ACALLKEY1 ;判断键是否继续闭合,若闭合再延时

JNZ LKEY3 POP ACC ;若键释放,则键码送A RETNEXT:INC R4 ;列号加1 MOV A,R2 JNB ACC.7,KND ;第7位为0,以扫描到最高列,转KND RL A ;循环右移一位

MOV R2,A AJMP LKEY4 ;进行下一列扫描KND: AJMP KEY ;扫描完毕,开始新的一轮DELAY1: ··· ;延时子程序(略)

END7/24/2023618.5.4键盘和显示器接口设计实例

----实例,1下图是典型实用的采用8155并行扩展键盘和显示接口电路。7/24/2023628.5.4键盘和显示器接口设计实例

----实例,2上图中只设置了32个键,如果增加C口线,可以增加按键,最多可达48个键。LED显示器采用共阴极结构,段码由8155的B口提供,位选择码由A口提供。键盘的列输入由A口提供,行输出由PC0~PC3提供。8155的RAM地址为7E00H~7EFFH,I/O地址为7F00H~7F05H。例8-6

根据上图所示键盘显示接口电路,在软件设计中将键盘查询与动态显示结合起来考虑,键盘消抖的延时子程序用显示程序替代。显示程序参照例8-3的动态扫描显示子程序DSP8155。程序如下:

7/24/2023638.5.4键盘和显示器接口设计实例

----实例,3

ORG 1000HKD1: MOV A,#00000011B ;8155初始化,PA,PB基本输出

;方式,PC输入方式

MOV DPTR,#7F00H MOVX@DPTR,AKEY1:ACALLKS1 ;调用判断是否有键闭合子程序

JNZ LK1 ;有键闭合转LK1 ACALLDSP8155 ;调用8155动态显示子程序,延时6ms AJMP KEY1LK1: ACALLDSP8155 ACALLDSP8155 ;调用两次显示,延时12ms ACALLKS1 JNZ LK2 ACALLDSP8155 ;调用8155动态显示子程序,延时6ms AJMP KEY1LK2: MOV R2,#0FEH MOV R4,#00H7/24/2023648.5.4键盘和显示器接口设计实例

----实例,4LK3: MOV DPTR,#7F01H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVXA,@DPTR JB ACC.0,LONE MOV A,#00H AJMP LKPLONE: JB ACC.1,LTWO MOV A,#08H AJMP LKPLTWO:JB ACC.2,LTHR MOV A,#10H AJMP LKPLTHR: JB ACC.3,NEXT MOV A,#18HLKP: ADD A,R4 PUSH ACCLK4: ACALLDSP8155

ACALLKS1 JZ LK4 POP ACCNEXT: INC R4 MOV A,R2 JNB ACC.7,KND RL A MOV R2,A AJMP LK3KND: AJMP KEY1KS1: MOV DPTR,#7F01H MOV A,#00H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#0FH RET END7/24/2023658.6打印机扩展----打印机特点

LASER-PP40和TPμP-16A/40A是常用的微型打印机,常用于单片机的打印机扩展。1.微型打印机的特点及性能1)LASERPP40的特点

LASERPP40是四色描绘式打印机。具有文本模式和图案模式两种工作模式。可用来描绘字符及其图形,具有较强的绘图功能。可在多种智能仪表及实时控制系统中作为微型绘图机使用。2)TPμP-16A/40A的特点

TPμP-16A/40A是一种超小型的智能点阵式打印机。TPμP-40A与TPμP-16A的接口与时序要求完全相同,操作方式相近,硬件电路及插脚完全兼容,只是指令代码不完全相同。TPμP-16每行可打印16个字符。TPμP-40A每行可打印40个字符,字符点阵码为5×7,内部有一个240种字符的字库,并有绘图功能。8.6.1TPμP-16A/40A微型打印机

7/24/2023668.6.1TPμP-16A/40A微型打印机----打印机性能

3)TPμP-40A的主要技术性能具有2KB控制程序及标准的Centironic并行接口;具有较丰富的格式简单的打印命令和灵活的打印格式;可产生全部标准的ASCII代码字符,以及128个非标准字符和图符;字符、图符和点阵图可在宽和高方向放大为2、3或4倍;每行字符的点行数(包括字符的行间距)可用命令更换,即字符行间距及每行字符的空点行在0~255间任选;带有水平和垂直制表命令,便于打印表格;具有重复打印同一字符命令,以减少输送代码的数量;带有命令格式的检错功能,当输入错误命令时,打印机立即打印出错误信息代码。7/24/2023678.6.1TPμP-16A/40A微型打印机----打印机代码

1)打印机代码

TPμP-40A/16A全部代码共256个,其中:00H无效;

01H~0FH为打印命令;

10H~1FH为用户自定义命令;

20H~7FH为标准ASCII码;

80H~FFH为非标准ASCII代码,包括少量汉字、希腊字母、块图图符和一些特殊的字符。

TPμP-16A的有效代码与TPμP-40A的不同之处仅在于01H~0FH中的指令代码,前者为16个,后者为12个,功能也不尽相同。

TPμP-40A/16A中全部字符代码为10H~FFH,字符串的结束代码,或称回车换行代码为0DH。但是,当输入代码满40/16个时,打印机自动回车。2.微型打印机的字符代码及打印命令7/24/2023688.6.1TPμP-16A/40A微型打印机----打印机命令字符代码中的10~1F为用户自定义代码,其格式如下:05XXYYlYY2YY3YY4YY5YY6其中,05:命令字节;

XX:被定义代码,10~1FH有效;

YYl~YY6:6个点阵字节。例如,打印“32.8cm”的代码为:33,32,2E,38,63,6D,0D。2)打印机命令

TPμP-40A控制打印的命令由一个命令字节和若干参数字节组成,其格式为:CCXX0…XXn其中,CC:命令代码字节,01H~0FH;

XXn:为n个参数字节,n=0~250,随不同命令而异。命令结束代码为0DH,除表8-9中代码为06H的命令必须用0DH结束外,其他均可省略。表8-9为TPμP-40A的命令代码及功能。

7/24/2023698.6.2打印机接口扩展方法----打印机接口信号

TPμP-40A微型打印机与单片机应用系统通过打印机后部的接插件及20芯扁平电缆相连,打印机接插件引脚信号如下图所示。1.打印机的接口信号DB0~DB7:单向数据线,由单片机输出至打印机。STB: 数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存器。BUSY: 打印机“忙”状态信号。高电平时表示打印机正在打印数据。它可作为中断请求信号,也可供CPU查询。ACK: 打印机的应答信号。低电平时表明打印机已取走数据线上的数据。ERR: 出错信号。当输入打印机的命令格式有错误时,打印机立即打印出一行出错信息,以提示操作者注意。7/24/2023708.6.2打印机接口扩展方法----接口信号时序

TPμP-40A微型打印机的接口时序如下图所示。选通信号STB的宽度应大于0.5μs,应答信号ACK可以不使用,而采用BUSY信号进行操作。

2.接口信号时序

7/24/2023

温馨提示

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

评论

0/150

提交评论