1、第十章 MCS51 单片机/人机对话系统的接口扩展技术基本要求:熟悉常用接口电路硬件、基本要求:熟悉常用接口电路硬件、软件的设计方法软件的设计方法第一节 简单I/O口的扩展一、用一、用74LS373扩展扩展8位并行输入口位并行输入口 图图10-1 8031 10-1 8031 和和7474LS373 LS373 的接口的接口 8031的输入数据子程序:的输入数据子程序:MOV DPTR,#0BFFFH MOVX A,DPTR二、用二、用74LS273和和74LS244分别扩展分别扩展8位并行位并行I/O口口 图图10-2 10-2 简单的输入输出接口简单的输入输出接口 图10-2所示相应的地址
2、为:相应的地址为:输入口(输入口(74LS244)输出口(输出口(74LS273)P2口口 P0口口 P2口口 P0口口 10 B 01 B 0 2 0 0 H 0 1 0 0 H注:考虑到输入操作时注:考虑到输入操作时 信号有效,输出操作时信号有效,输出操作时 有效,故图有效,故图102中仅有一个输入中仅有一个输入/输出口时可以共用一个地址号,比如仅使用输出口时可以共用一个地址号,比如仅使用P2.0=0(低低电平时)作为片选信号,则输入口与输出口的地址号为电平时)作为片选信号,则输入口与输出口的地址号为:0 B,即为即为0000H从而可进一步简化线路。从而可进一步简化线路。RDWR输入操作:
3、输入操作:MOV DPTR,#0200H MOVX A,DPTR输出操作输出操作:MOV DPTR,#0100H MOVX DPTR,A第二节第二节 简易键盘设计技术简易键盘设计技术一、键盘硬件设计举例一、键盘硬件设计举例 图图10-6 815510-6 8155作键盘接口作键盘接口 如图如图10-610-6所示所示延时子程序:延时子程序:DIR:MOV R7,#0CH ;延时延时6msDL;MOV R6,#0FFHDL6:DJNZ R6,DL6 DJNZ R7,DL RET判断是否有键闭合子程序:判断是否有键闭合子程序:KSI:MOV DPTR,#0101H ;建立建立A口地址口地址 MOV
4、 A,#00H ;A口送口送00H MOVX DPTR,A INC DPTR INC DPTR ;建立建立C口地址口地址 MOV A,DPTR ;读读C口口 CPL A ;A取反,无键按下则全取反,无键按下则全0 ANL A,#0FH ;屏蔽屏蔽A高半字节高半字节 RET二、键盘软件设计二、键盘软件设计键盘扫描程序键盘扫描程序KEY1:ACALL KS1 ;检查有键闭合否检查有键闭合否 JNZ LK1 ;A非非0则转移则转移N1:ACALL DIR ;调用显示子程序,延时调用显示子程序,延时6ms AJMP KEY1 ;LK1:ACALL DIR ;有键闭合二次延时有键闭合二次延时 ACALL
5、 DIR ;延时延时12ms去抖动去抖动 ACALL DIR ;再检查有键闭合否再检查有键闭合否 JNZ LK2 ;有键闭合,转有键闭合,转LK2 ACALL DIR ;AJMP KEY1 ;无键闭合,延时无键闭合,延时6ms后转后转KEY1 LK2:MOV R2,#0FEH;扫描初值送扫描初值送R2 MOV R4,#00H ;扫描列号送扫描列号送R4 LK4:MOV DPTR,#0101H;建立建立A口地址口地址 MOV A,R2 ;MOVX DPTR,A ;扫描初值送扫描初值送A口口 INC DPTR ;INC DPTR ;指向指向C口口 MOVX A,DPTR ;读读C口口 JB ACC
6、.0,LONE ;ACC.0=1,第第1行无键闭合,转行无键闭合,转LONE MOV A,#00H ;装第装第1行行值行行值 AJMP LKP ;LONE:JB ACC.1,LTWO ;ACC.1=1,第第2行无键闭合,转行无键闭合,转LTWO;MOV A,#08H ;装第装第2行行值行行值 AJMP LKPLTWO:JB ACC.2,LTHR ;ACC.2=1,第第3行无键闭合,转行无键闭合,转LTHR MOV A,#10H ;装第装第3行行值行行值 AJNP LKP ;LTHR:JB ACC.3,NEXT ;ACC.3=1,第第4行无键闭合,转行无键闭合,转NEXT MOV A,#18H
7、;装第装第4行行值行行值LKP:ADD A,R4 ;计算键值计算键值 PUSH ACC ;保护键值保护键值LK3:ACALL DIR ;延时延时6ms ACALL KS1 ;查键是否继续闭合,若闭合再延时查键是否继续闭合,若闭合再延时 JNZ LK3 ;POP ACC ;若键起,则键码送若键起,则键码送A RETNEXT:INC R4 ;扫描列号加扫描列号加1 MOV A,R2 ;JNB ACC.7,KND ;若第若第7位为位为0,则已扫描完最高行转,则已扫描完最高行转KND RL A ;循环右移一位循环右移一位 MOV R2,A ;AJMP LK4 ;进行下一列扫描进行下一列扫描KND:AJ
8、MP KEY1 ;扫描完毕开始新的一次扫描完毕开始新的一次第三节第三节 LED 显示系统设计技术显示系统设计技术一、简易开关指示接口电路一、简易开关指示接口电路图图10-10 10-10 开关指示接口电路开关指示接口电路 程序如下:程序如下:ORG 1000HMAIN:MOV DPTR,#3FFFH ;建立控制端口地址建立控制端口地址 MOV A,#90H ;控制字控制字 MOVX DPTR,A ;写写8255控制字控制字 MOV DPTR,#3FFCH ;建立建立A口地址口地址 MOVX A,DPTR ;读读A口口 CPL A ;取反取反 INC DPTR ;建立建立B口地址口地址 MOVX
9、 DPTR,A ;写写B口口 SJMP$END二、二、LED显示器硬件系统设计显示器硬件系统设计 1.共阴极共阴极 1.静态显示静态显示 2.共阳极共阳极 2.动态显示动态显示图图10-13 610-13 6位动态显示器接口位动态显示器接口 假定位控口地址假定位控口地址0101H,段控口地址段控口地址0102H。以以R0存放当前位控值,存放当前位控值,DL1为延时子程序。为延时子程序。DIR:MOV R0,#79H ;建立显示缓冲区首址建立显示缓冲区首址 MOV R3,#01H ;从右数第一位显示器开始从右数第一位显示器开始 MOV A,R3 ;位控码初值位控码初值LD0:MOV DPTR,#
10、0101H ;位控口地址位控口地址 MOVX DPTR,A ;输出位控码输出位控码 INC DPTR ;得段控口地址得段控口地址 MOV A,R0 ;取出显示数据取出显示数据DIR0:ADD A,#0DH MOVC A,A+PC ;查表取字形代码查表取字形代码DIR1:MOVX DPTR,A ;输出段控码输出段控码 ACALL DL1 ;延时延时 INC R0 ;转向下一缓冲单元转向下一缓冲单元 MOV A,R3 JB ACC.0,LD1 ;判是否到最高位,到则返回判是否到最高位,到则返回 RL A ;不到,向显示器高位移位不到,向显示器高位移位 MOV R3,A ;位控码送位控码送R3保存保
11、存 AJMP LD0 ;继续扫描继续扫描LD1:RET DSEG:DB 3FH,06H,5BH,4FH,66H,6DH ;段数据表段数据表DSEG1:DB 7DH,07H,7FH,6FH,77H,7CHDSEG2:DB 39H,5EH,79H,71H,73H,3EH DSEG3:DB 31H,6EH,1CH,23H,40H,03H DSEG4:DB 18H,00H,00H,00H DL1:MOV R7,#02H ;延时子程序延时子程序DL:MOV R6,#0FFH DL6:DJNZ R6,DL6 DJNZ R7,DL RET三、键盘显示器综合应用实例三、键盘显示器综合应用实例图图10-15 1
12、0-15 键盘键盘/显示器接口电路显示器接口电路 第四节第四节 TP-P40微型打印机的扩展应用技术微型打印机的扩展应用技术 一、一、TP-P40 与与8031的简单连接电路的简单连接电路 图图10-17 803110-17 8031与微型打印机的简单连接电路与微型打印机的简单连接电路 1.中断控制方式中断控制方式ORG 0000H AJMP MAIN ORG 0003H AJMP INT0 ORG 0500HMAIN:MOV SP,#42H ;设置堆栈指针设置堆栈指针 MOV R0,#63H ;需打印的数据长度需打印的数据长度 MOV R0,#20H ;数据存放的首地址数据存放的首地址 SE
13、TB EA ;开放开放CPU中断中断 SETB EX0 ;开放开放/INT0中断中断 SETB IT0 ;设置边沿触发中断设置边沿触发中断 MOVX A,R0 ;从存储单元取数从存储单元取数 MOV P1,A ;送至送至P1口口 CLR P3.0 ;使使/STB为低电平,启动打印机为低电平,启动打印机 STEB P3.0 ;使使/STB为高电平为高电平 SJMP$ORG 0100HINT0:INC R0 ;存储单元地址加存储单元地址加1 MOVX A,R0 ;取数取数 MOV P1,A ;送至送至P1口口 CLR P3.0 ;使使/STB产生负脉冲产生负脉冲 STEB P3.0 DJNZ R7
14、,NEXT ;判断数据是否送完判断数据是否送完 CLR EX0 ;禁止禁止/INT0中断中断NEXT:RETI2.查询方式控制查询方式控制 ORG 2000H MOV DPTR,#0BFFFH MOV R0,#20H MOV R6,#32H LOOP:MOV A,R0 MOVX DPTR,A STEB P0.7 LOOP1:MOVX A,DPTR JB ACC.7,LOOP1 INC R0 DJNZ R6,LOOP SJMP$END图图10-18 8031与微型与微型TP-P40的连接电路的连接电路三、三、8255作为作为TP-P40微型打印机的接口微型打印机的接口 图图10-19 82551
15、0-19 8255作打印机接口作打印机接口 MOV R0,#7FH ;控制寄存器地址控制寄存器地址 MOV A,#88H ;工作方式控制字工作方式控制字 MOVX R0,A ;写入工作方式控制字写入工作方式控制字TP:MOV R0,#7EH ;C口地址口地址TP1:MOVX A,R0 ;读读C口口 JB ACC.7,TP1 ;BUSY=1,继续查询继续查询 MOV R0,#7CH ;A口地址口地址 MOV A,R1 ;取缓冲区数据取缓冲区数据 MOVX R0,A ;打印数据送打印数据送8255 INC R1 ;指向下一单元指向下一单元 MOV R0,#7EH ;C口地址口地址 MOV A,#0
16、0H ;输出输出/STB脉冲脉冲 MOVX R0,A MOV A,#01H MOVX R0,A DJNZ R2,TP ;数据长度减数据长度减1,不为,不为0继续继续 RET第五节第五节 数字拨码盘的扩展应用技术数字拨码盘的扩展应用技术一、应用系统接口电路一、应用系统接口电路(一)(一)则程序如下:则程序如下:MOV DPTR,#0BFFFHMOVX A,DPTRMOV 30H,AMOV DPTR,#7FFFHMOVX A,DPTRMOV 31H,A图图10-21 BCD码拨盘接口电路(一)码拨盘接口电路(一)二、应用系统接口电路(二)二、应用系统接口电路(二)MOV R0,#30H MOV P1,#7FHMOV A,P1SWAP AMOV R0,AMOV P1,#0BFH MOV A,P1XCHD A,R0INC R0MOV P1,#0DFHMOV A,P1SWAP AXCH A,R0MOV P1,#0EFH MOV A,P1XCHD A,R0RET图图10-22 10-22 BCDBCD码拨盘接口电路(二)码拨盘接口电路(二)