88
第第第 第第第 第第第第第第第 第第第 第第第 第第第第第第第 9.1 9.1 并并 并并 I/O I/O 并并并并 并并并并 9.1.1 9.1.1 第第第第 第第第第 I/O I/O 第第第第 第第第第 9.1.2 8155 9.1.2 8155 RAM RAM 第第第第 第第第第 / / 第第第第第第第第第第第第第 第第第第第第第第第第第第第 9.2 9.2 - - 第第第第第第第第第第 第第第第第第第第第第 9.2.1 9.2.1 第第第第第第第第第 第第第第第第第第第 9.2.2 LED 9.2.2 LED 第第第第第第第第第第 第第第第第第第第第第 9.2.3 9.2.3 第第第第第第第第 第第第第第第第第 /LED /LED 第第第第第第第 第第第第第第第 9.3 A/D 9.3 A/D 第第第第第第第第 第第第第第第第第 9.4 D/A 9.4 D/A 第第第第第第第第 第第第第第第第第

第九章 应用系统配置及接口技术

  • Upload
    ellis

  • View
    158

  • Download
    4

Embed Size (px)

DESCRIPTION

第九章 应用系统配置及接口技术. 9.1 并行 I/O 口的扩展 9.1.1 简单并行 I/O 口的扩展 9.1.2 8155 带 RAM 和定时器 / 计数器的可编程并行接口芯片 9.2 人 - 机通道配置与接口技术 9.2.1 键盘接口及处理程序 9.2.2 LED 显示器接口及显示程序 9.2.3 串行口控制的键盘 /LED 显示器接口电路 9.3 A/D 转换器及接口技术 9.4 D/A 转换器及接口技术. 9.1 并行 I/O 口的扩展. 9.1.1 简单并行 I/O 口的扩展 在稍微大的系统,单片机片的并行口便不够用,需要扩展。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第九章 应用系统配置及接口技术

第九章 应用系统配置及接口技术第九章 应用系统配置及接口技术• 9.1 9.1 并行并行 I/OI/O 口的扩展口的扩展• 9.1.1 9.1.1 简单并行简单并行 I/OI/O 口的扩展口的扩展• 9.1.2 81559.1.2 8155 带带 RAMRAM 和定时器和定时器 // 计数器的可编程并行接口芯片计数器的可编程并行接口芯片• 9.2 9.2 人人 -- 机通道配置与接口技术机通道配置与接口技术• 9.2.1 9.2.1 键盘接口及处理程序键盘接口及处理程序• 9.2.2 LED9.2.2 LED 显示器接口及显示程序显示器接口及显示程序• 9.2.3 9.2.3 串行口控制的键盘串行口控制的键盘 /LED/LED 显示器接口电路显示器接口电路• 9.3 A/D9.3 A/D 转换器及接口技术转换器及接口技术• 9.4 D/A9.4 D/A 转换器及接口技术转换器及接口技术

Page 2: 第九章 应用系统配置及接口技术

9.19.1 并行并行 I/OI/O 口的扩展口的扩展

9.1.1 9.1.1 简单并行简单并行 I/OI/O 口的扩展口的扩展 在稍微大的系统,单片机片的并行口便不够用,在稍微大的系统,单片机片的并行口便不够用,

需要扩展。需要扩展。 所谓简单扩展,就是使用通用的所谓简单扩展,就是使用通用的 7474 系列的系列的 TTTT

LL 或或 40004000 系列的系列的 CMOSCMOS 芯片扩展芯片扩展。。

Page 3: 第九章 应用系统配置及接口技术

9.1.1 9.1.1 简单简单 I/OI/O 接口的扩展方法接口的扩展方法 常用常用 74LS24474LS244 作输入接口芯片,起缓冲作用;用作输入接口芯片,起缓冲作用;用 7474

LS273LS273 作输出接口芯片,起锁存作用。作输出接口芯片,起锁存作用。

Page 4: 第九章 应用系统配置及接口技术

1G , 2G 为 H 时, Y 为高阻;1G , 2G 为 L 时, Y=A

Page 5: 第九章 应用系统配置及接口技术

扩展的输入输出口地址均为:扩展的输入输出口地址均为:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.

2 P0.1 P0.02 P0.1 P0.0

ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ 0 0 ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ ⅹⅹ 除了除了 P2.0P2.0 以外均取以外均取 11 ,则扩展的输入输出,则扩展的输入输出

口地址写成口地址写成 1616 进制数均为:进制数均为: FEFFHFEFFH 上面电路的功能是:按下某键,对应的上面电路的功能是:按下某键,对应的 LEDLED

发光。发光。其程序为:其程序为: MOV DPTRMOV DPTR ,, #0FEFFH#0FEFFHLPLP :: MOVX AMOVX A ,, @DPTR@DPTR MOVX @DPTRMOVX @DPTR ,, AA SJMP LPSJMP LP

Page 6: 第九章 应用系统配置及接口技术

9.1.2 9.1.2 扩展扩展 81558155 可编程外围可编程外围并行接口芯片并行接口芯片

关于关于 IntelIntel 的的 8155/81568155/8156 :是一多功能的可编程外:是一多功能的可编程外围接口芯片,内部资源有围接口芯片,内部资源有 256B256B 的的 RAMRAM ,, 22 个个 88 位、位、11 个个 66 位的位的 I/OI/O 口和口和 11 个个 1414 位的“减位的“减 1”1” 计数器。计数器。 4040脚双列直插封装脚双列直插封装。 。

Page 7: 第九章 应用系统配置及接口技术

1. 81551. 8155 的结构与引脚的结构与引脚

Page 8: 第九章 应用系统配置及接口技术

2. 81552. 8155 的的 RAMRAM 和和 I/OI/O 口地址口地址 其地址按片外其地址按片外 RAMRAM 统一编址(统一编址( 1616 位)。位)。 CECE 、、 IO/MIO/M 接单片机的高接单片机的高 88 位地址。位地址。一、一、 I/OI/O 口(即片内寄存器)地址口(即片内寄存器)地址 CE=0CE=0 、、 IO/M=1IO/M=1 ,,

低低 33 位选择寄存器位选择寄存器

Page 9: 第九章 应用系统配置及接口技术

二、二、 256B RAM256B RAM 的地址的地址 CE=0CE=0 、 ,由高、 ,由高 88 位地址控制;低位地址控制;低 88 位选择位选择 RR

AMAM 的的 256256 个存储单元个存储单元。。3 81553 8155 的寄存器(的寄存器( 66 个)个)

Page 10: 第九章 应用系统配置及接口技术

一、命令寄存器一、命令寄存器 地址:地址: *****000B*****000B

输入输出

PC3~PC5 出

工作控制

Page 11: 第九章 应用系统配置及接口技术

二、状态寄存器二、状态寄存器 11 、、地址地址:: *****000B*****000B 22 、格式及各位的意义、格式及各位的意义

Page 12: 第九章 应用系统配置及接口技术

三、三、 PAPA 寄存器寄存器 是是 PAPA 口引脚口引脚 PA0~PA7PA0~PA7 的映射的映射 地址地址:: *****001B*****001B四、四、 PBPB 寄存器寄存器 是是 PBPB 口引脚口引脚 PB0~PB7PB0~PB7 的映射的映射 地址地址:: *****010B*****010B五、五、 PCPC 寄存器寄存器 是是 PCPC 口引脚口引脚 PC0~PC7PC0~PC7 的映射的映射 地址地址:: *****011B*****011B

Page 13: 第九章 应用系统配置及接口技术

六、定时器六、定时器 // 计数器寄存器计数器寄存器 是一是一 1414 位计数器,对应有两个寄存器,最高两位设位计数器,对应有两个寄存器,最高两位设

定输出波形。定输出波形。11 、地址:、地址:两个寄存器的地址分别为:两个寄存器的地址分别为: *****100B*****100B22 、寄存器格式 、寄存器格式 *****101B*****101B

Page 14: 第九章 应用系统配置及接口技术

M2M1M2M1 的意义的意义(决定输出波形)(决定输出波形)::

Page 15: 第九章 应用系统配置及接口技术

4 81554 8155 芯片的使用芯片的使用一、作片外一、作片外 256B RAM256B RAM 用用 低低 88 位地址范围为:位地址范围为: 00H~FFH00H~FFH二、作扩展二、作扩展 I/OI/O 口用口用 PAPA 口、口、 PB PB 口、口、 PC PC 口口注意:工作方式、地址注意:工作方式、地址三、作定时器扩展用三、作定时器扩展用 一般先写计数常数,再写命令字。一般先写计数常数,再写命令字。

Page 16: 第九章 应用系统配置及接口技术

5 80315 8031 与与 81558155 的接口及简单编程的接口及简单编程一、一、 80318031 与与 81558155 的连接方法的连接方法

Page 17: 第九章 应用系统配置及接口技术
Page 18: 第九章 应用系统配置及接口技术

二、二、 81558155 的基本操作程序段的基本操作程序段 11 、对、对 81558155 中的中的 RAMRAM 进行操作进行操作例例 1 1 (( 11 )向)向 8155RAM8155RAM 中的中的 5FH5FH 单元写入数据单元写入数据 32H32H ;; (( 22 )从)从 8155RAM8155RAM 中的中的 98H98H 单元读取数据。单元读取数据。程序段如下:程序段如下:(( 11 )写数据:)写数据: MOV DPTRMOV DPTR ,, #7E5FH#7E5FH MOV AMOV A ,, #32H#32H MOVX @DPTRMOVX @DPTR ,, AA(( 22 ) 读数据:) 读数据: MOV DPTRMOV DPTR ,, #7E98H#7E98H MOVX A MOVX A ,, @DPTR@DPTR

Page 19: 第九章 应用系统配置及接口技术

22 、对、对 81558155 中的中的 I/OI/O 口和定时器进行操作口和定时器进行操作 例例 2 2 设置设置 81558155 ,使用,使用 I/OI/O 口和定时器:使口和定时器:使 AA 口为口为

基本输入方式,基本输入方式, BB 口为基本输出方式;定时器作方波口为基本输出方式;定时器作方波发生器,对输入的脉冲进行发生器,对输入的脉冲进行 2424 分频。试编程实现之。分频。试编程实现之。

思路:思路:先对定时器赋初值和设定输出波形,向定时先对定时器赋初值和设定输出波形,向定时器器 // 计数器寄存器中写;再设定计数器寄存器中写;再设定 AA 、、 BB 口的工作方式口的工作方式和传输方向,并启动定时器工作,向命令寄存器中写。和传输方向,并启动定时器工作,向命令寄存器中写。

程序段如下:程序段如下:

Page 20: 第九章 应用系统配置及接口技术

(( 11 )对定时器赋初值和设定输出波形:)对定时器赋初值和设定输出波形: 定时器定时器 // 计数器寄存器地址:计数器寄存器地址: 7F04H7F04H 、、 7F05H7F05HMOV DPTRMOV DPTR ,, #7F04H#7F04HMOV AMOV A ,, #24#24MOVX @DPTRMOVX @DPTR ,, A A INC DPTRINC DPTRMOV AMOV A ,, #01000000B#01000000BMOVX @DPTRMOVX @DPTR ,, AA(( 22 )设定)设定 AA 、、 BB 口的工作方式并启动定时器工作:口的工作方式并启动定时器工作: 命令寄存器地址:命令寄存器地址: 7F00H7F00HMOV DPTRMOV DPTR ,, #7F00H#7F00HMOV AMOV A ,, #11000010B#11000010BMOVX @DPTRMOVX @DPTR ,, A A

Page 21: 第九章 应用系统配置及接口技术

• 9.2 9.2 人人 -- 机通道配置与接口技术机通道配置与接口技术• 9.2.1 9.2.1 键盘接口及处理程序键盘接口及处理程序• 9.2.2 LED9.2.2 LED 显示器接口及显示程序显示器接口及显示程序• 9.2.3 9.2.3 串行口控制的键盘串行口控制的键盘 /LED/LED 显示器接显示器接

口电路口电路

Page 22: 第九章 应用系统配置及接口技术

9.2.1 9.2.1 键盘接口及处理程序键盘接口及处理程序

•键盘可以分为独立连接式和行列式(矩阵式)两类,每一类按其译码方法又都可分为编码及非编码两种类型.

•1 )独立式非编码键盘接口及处理程序

Page 23: 第九章 应用系统配置及接口技术

(( 11 )独立式键盘电路:)独立式键盘电路:独立式键盘电路:每个按键单独占有一根独立式键盘电路:每个按键单独占有一根 I/OI/O 接口引线。接口引线。优点优点 :: 电路简单电路简单 ;; 缺点缺点 :: 当键数较多时当键数较多时 ,, 要占用较多的要占用较多的 I/OI/O 线线 ..程序程序 P/231P/231

键盘接口形式:

P1.0

P1.1

P1.7

+5v

Page 24: 第九章 应用系统配置及接口技术

检查键盘是否有检查键盘是否有键被按下,消除按键被按下,消除按键抖动。键抖动。

硬件电路消除抖硬件电路消除抖动或软件消除抖动。动或软件消除抖动。

抖动时间< 10ms

开关动作时间> 100ms

“ 1 ”

“ 0 ”

< 10ms

前沿抖动 后沿抖动

& I/O接口

+5v

+5v

消除抖动电路

开关单片机

Page 25: 第九章 应用系统配置及接口技术

下列程序为省略了软件去抖动措施的程序下列程序为省略了软件去抖动措施的程序

Start:mov a,#0ffhStart:mov a,#0ffh mov P1,amov P1,aMov a,P1Mov a,P1PL1:JNB ACC.0,P0fPL1:JNB ACC.0,P0f JNB ACC.1,P1FJNB ACC.1,P1F JNB ACC.2,P2FJNB ACC.2,P2F JNB ACC.3,P3FJNB ACC.3,P3F JNB ACC.4,P4FJNB ACC.4,P4F JNB ACC.5,P5FJNB ACC.5,P5F JNB ACC.5,P6FJNB ACC.5,P6F JNB ACC.6,P7FJNB ACC.6,P7F LJMP STARTLJMP START

P0F:LJMP PROM0P0F:LJMP PROM0P1F:LJMP PROM1P1F:LJMP PROM1 ……… ………..P7F:LJMP PROM7P7F:LJMP PROM7PROM0:….PROM0:…. LJMP STARTLJMP STARTPROM1:…..PROM1:….. LJMP STARTLJMP START……....PROM7:….PROM7:…. LJMP STARTLJMP START

Page 26: 第九章 应用系统配置及接口技术

例例 9-1 :9-1 : 设计一个有设计一个有 44 个独立式按键盘接口个独立式按键盘接口 ,, 并编写并编写键扫 描程序键扫 描程序

KEY:MOV KEY:MOV P1,#0FFHP1,#0FFH

MOV A,P1MOV A,P1

CPL ACPL A

ANL A,#0FFHANL A,#0FFH

JZ KEYJZ KEY

LCALL D-10MSLCALL D-10MS

MOV A,P1MOV A,P1

CPL ACPL A

ANL A,#0FHANL A,#0FH

JZ KEYJZ KEY

MOV B,AMOV B,A

MOV A,P1MOV A,P1

CPL ACPL AANL A,#0FHANL A,#0FHKEY1:JNZ KEY1KEY1:JNZ KEY1 LCALL D-10MSLCALL D-10MS MOV A,BMOV A,B JB ACC.0,PKEY1JB ACC.0,PKEY1 JB ACC.1,PKEY2JB ACC.1,PKEY2 JB ACC.2,PKEY3JB ACC.2,PKEY3 JB ACC.3,PKEY4JB ACC.3,PKEY4EKEY:RETEKEY:RETPKEY1:LCALL K1PKEY1:LCALL K1 RETRETPKEY2:LCALL K2PKEY2:LCALL K2 RETRET

PKEY3:LCALL K3PKEY3:LCALL K3 RETRETPKEY4:LCALL K4PKEY4:LCALL K4 RETRETD-10MS:MOVR7,#10HD-10MS:MOVR7,#10HDS1:MOV R6,#0FFHDS1:MOV R6,#0FFHDS2:DJNZ R6,DS2DS2:DJNZ R6,DS2 DJNZ R7,DS1DJNZ R7,DS1 RETRET

Page 27: 第九章 应用系统配置及接口技术

(( 22 )矩阵式键盘:)矩阵式键盘:

0 1

+5v C0

C1

R0

R1

键盘I/O 接

Page 28: 第九章 应用系统配置及接口技术

      •   非编码式键盘识别按键的方法有两种 : 一是行扫描法 , 二是线反转法。

• 1) 行扫描法• 通过行线发出低电平信号 , 如果该行线所连接

的键没有按下的话 , 则列线所接的端口得到的是全“ 1” 信号 , 如果有键按下的话 , 则得到非全“ 1” 信号。

• 为了防止双键或多键同时按下 , 往往从第 0 行一直扫描到最后 1 行 , 若只发现 1 个闭合键 , 则为有效键 , 否则全部作废。

• 找到闭合键后 , 读入相应的键值 , 再转至相应的键处理程序。

Page 29: 第九章 应用系统配置及接口技术

2) 线反转法

线反转法也是识别闭合键的一种常用方法 , 该法比行扫描

速度快 , 但在硬件上要求行线与列线外接上拉电阻。

先将行线作为输出线 , 列线作为输入线 , 行线输出全“ 0”

信号 , 读入列线的值 , 然后将行线和列线的输入输出关系互换 ,

并且将刚才读到的列线值从列线所接的端口输出 , 再读取行线

的输入值。那么在闭合键所在的行线上值必为 0 。这样 , 当一

个键被按下时 , 必定可读到一对唯一的行列值。

Page 30: 第九章 应用系统配置及接口技术

键盘处理程序任务:键盘处理程序任务:1.1. 键输入:键输入: 检查键盘是否有键被按下,消除按键抖动。确定被按键的键 检查键盘是否有键被按下,消除按键抖动。确定被按键的键

号,获取键号。号,获取键号。 硬件电路消除抖动或软件消除抖动。硬件电路消除抖动或软件消除抖动。

2.2.键译码:键译码: 键号为键盘位置码,根据键号查表得出被按键的键值。键号为键盘位置码,根据键号查表得出被按键的键值。键值:数字键键值:数字键 00~~ 99 ;; 字符键字符键 0AH0AH~~ 0FH0FH ;; 功能键功能键 10H10H~ 。~ 。键码键码 == 行首键号行首键号 ++列号列号(键号必须依次是从左至右书写) (键号必须依次是从左至右书写) 或键码或键码 == 列首键号列首键号 ++行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)

Page 31: 第九章 应用系统配置及接口技术

3.3. 键处理:键处理: 根据键值转移到不同程序段。根据键值转移到不同程序段。 若键值属于数字、字符键,则调用显示数若键值属于数字、字符键,则调用显示数

字和字符的子程序。字和字符的子程序。 若键值属于功能键,则进行多分支转移,若键值属于功能键,则进行多分支转移,

执行各个功能程序段。执行各个功能程序段。

延时等待 10ms

仍有按键信号?Y

有按键信号? N

Y

N

键盘处理

按键释放? N

Y

二、键盘接口方法:二、键盘接口方法:11 、利用单片机本身的并行口;、利用单片机本身的并行口;22 、利用单片机本身的串行口;、利用单片机本身的串行口;33 、利用通用接口芯片、利用通用接口芯片 81558155 、、 82558255等;等;44 、利用专用接口芯片、利用专用接口芯片 82798279等。等。

三、键盘接口的控制方式:三、键盘接口的控制方式:11 、随机方式:每当、随机方式:每当 CPUCPU 空闲时执行键盘扫描程序。空闲时执行键盘扫描程序。22 、中断方式:键的按下引起中断后,单片机对键盘进行扫描。、中断方式:键的按下引起中断后,单片机对键盘进行扫描。33 、定时方式:单片机定时地对键盘进行扫描。、定时方式:单片机定时地对键盘进行扫描。

Page 32: 第九章 应用系统配置及接口技术

按键处理程序:按键处理程序:

延时消抖

键扫描求键号

延时等待

键译码求键值

修改显示缓冲区 跳转各功能程序

有按键输入?

确有按键?

按键释放?

是数字键?

Y

Y

Y

N

N

N

Y

N

Page 33: 第九章 应用系统配置及接口技术

11 、使用、使用 81558155 作键盘接口:作键盘接口:接口应用:接口应用:

P2.7=0 , P2.0=1 :A 口地址为: 7F01H ;C 口地址为: 7F03H 。

扫描法:列线输出,行线输入。扫描法:列线输出,行线输入。列线逐列输出列线逐列输出 00 ,某行有按键,,某行有按键,

行线输入就为行线输入就为 00 ;;若无按键,行线输入全部为若无按键,行线输入全部为 11 。。

ALE

RD

WR

P0

80C51

ALE

RD

WR

RESET8155

IO/M

CE

8

P2.7P2.0

AD7~0

. . .

+5V

PA7PA6

PA0

PA1

PC0

PC1PC2PC3

0 1 6 7

8 9 14 15

键码键码 == 行首键号行首键号 ++ 列号列号(键号必须依次是从左至右书写) (键号必须依次是从左至右书写) 或键码或键码 == 列首键号列首键号 ++ 行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)

Page 34: 第九章 应用系统配置及接口技术

2. 键盘接口电路

图 采用 8155 的键盘接口电路

Page 35: 第九章 应用系统配置及接口技术

判定有无键闭合的子程序:判定有无键闭合的子程序:MOVMOV DPTRDPTR ,, #7F01H#7F01HMOVMOV AA ,, #00H#00H ;; AA 口送口送 00H00HMOVXMOVX @DPTR@DPTR ,, AAINCINC DPTRDPTRINCINC DPTRDPTR ;建立;建立 CC 口地址口地址MOVXMOVX AA ,, @DPTR@DPTR ;读;读 CC 口口CPLCPL AA ;; AA 取反,无键按下则全“取反,无键按下则全“ 0”0”ANLANL AA ,, #0FH#0FH ;屏蔽;屏蔽 AA 高半字节(高半字节( CC 口只口只 44

位)位)RETRET执行执行 KS1KS1子程序的结果是:有闭合键则(子程序的结果是:有闭合键则( AA )≠ )≠ 00 ;; 无闭合键则(无闭合键则( AA ))== 00 。。CPL ACPL A ;负逻辑不直观,常采取行列线加反相器或;负逻辑不直观,常采取行列线加反相器或 软件求反的方法把键盘改成正逻辑。软件求反的方法把键盘改成正逻辑。

KS1 :

Page 36: 第九章 应用系统配置及接口技术

键盘扫描子程序如下:(硬件线路如图,键盘扫描子程序如下:(硬件线路如图, 81558155 的的 AA口、口、 BB 口、口、 CC 口和控制口地址分别为口和控制口地址分别为 7F01H7F01H 、、 7F02H7F02H 、、7F03H7F03H ,设,设 8155A8155A已在主程序中初始化。已设定为已在主程序中初始化。已设定为 AA 口口方式方式 00 输出,输出, CC 口的低口的低 44 位方式位方式 00 输入。)输入。)

KEY1 : ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,( A )≠ 0 转消抖

延时KEY2 : ACALL TM6ms

AJMP KEY1 ;无键按下返回LK1 : ACALL TM12ms ;调 12 ms延时子程序

ACALL KS1 ;查有无键按下,若有则真有键按下 JNZ LK2 ;键 (A)≠ 0逐列扫描 AJMP KEY2 ;不是真有键按下,返回

LK2 : MOV R2 , #0FEH ;初始列扫描字( 0 列)送入 R2 MOV R4 , #00H ;初始列( 0 列)号送入 R4

LK4 : MOV DPTR , #7F01H ; DPTR指向 8155PA 口 MOV A , R2 ;列扫描字送至 8155PA 口 MOVX @DPTR , A INC DPTR ; DPTR指向 8155PC 口 INC DPTR

Page 37: 第九章 应用系统配置及接口技术

MOVX AMOVX A ,, @DPTR @DPTR ;从;从 8155 PC8155 PC 口读入行状态口读入行状态 JB JB ACC.0ACC.0 ,, LONE LONE ;查第;查第 00 行无键按下,转查第行无键按下,转查第 11 行行 MOV AMOV A ,, #00H #00H ;第;第 00 行有键按下,行首键码行有键按下,行首键码 #00H→A#00H→A AJMP LKP AJMP LKP ;转求键码;转求键码

LONELONE : : JB ACC.1JB ACC.1 ,, LTWO LTWO ;查第;查第 11 行无键按下,转查第行无键按下,转查第 22 行行 MOV AMOV A ,, #08H #08H ;第;第 11 行有键按下,行首键码行有键按下,行首键码 #08H→A#08H→A AJMP LKP AJMP LKP ;转求键码;转求键码

LTWOLTWO :: JB ACC.2JB ACC.2 ,, LTHR LTHR ;查第;查第 22 行无键按下,转查第行无键按下,转查第 33 行行 MOV AMOV A ,, #10H #10H ;第;第 22 行有键按下,行首键码行有键按下,行首键码 #10H→A#10H→A AJMP LKP AJMP LKP ;转求键码;转求键码

LTHRLTHR :: JB ACC.3JB ACC.3 ,, NEXT NEXT ;查第;查第 33 行无键按下,转该查下一列行无键按下,转该查下一列 MOV AMOV A ,, #18H #18H ;第;第 33 行有键按下,行首键码行有键按下,行首键码 #18H→A#18H→A

LKPLKP : : ADD AADD A ,, R4 R4 ;求键码,键码;求键码,键码 == 行首键码行首键码 ++列号列号 PUSH ACC PUSH ACC ;键码进栈保护;键码进栈保护

LK3LK3 : : ACALL KS1 ACALL KS1 ;等待键释放;等待键释放JNZ LK3 JNZ LK3 ;键未释放,等待;键未释放,等待POP ACC POP ACC ;键释放,键码→;键释放,键码→ AARET RET ;键扫描结束,出口状态;键扫描结束,出口状态 (A)=(A)= 键码键码

Page 38: 第九章 应用系统配置及接口技术

NEXTNEXT : : INC INC R4 R4 ;准备扫描下一列,列号加;准备扫描下一列,列号加 11 MOV MOV AA ,, R2 R2 ;取列扫描字送累加器;取列扫描字送累加器 AA JNB JNB ACC.7ACC.7 ,, KEND KEND ;判断;判断 88 列扫描否?扫描完返回列扫描否?扫描完返回 RL RL A A ;扫描字左移一位,变为下一列扫描字;扫描字左移一位,变为下一列扫描字 MOV MOV R2R2 ,, A A ;扫描字送入;扫描字送入 R2R2保存保存 AJMP LK4 AJMP LK4 ;转下一列扫描;转下一列扫描

KENDKEND :: AJMP KEY1 AJMP KEY1 KS1KS1 : : MOV MOV DPTRDPTR ,, #7F01H#7F01H ;; DPTRDPTR指向指向 8155PA8155PA 口口

MOV MOV AA ,, #00H #00H ;全扫描字→;全扫描字→ AA MOVX @DPTRMOVX @DPTR ,, A A ;全扫描字送往;全扫描字送往 8155PA8155PA 口口 INC INC DPTR DPTR ;; DPTRDPTR指向指向 8155PC8155PC 口口 INC INC DPTR DPTR MOVX AMOVX A ,, @DPTR @DPTR ;读入;读入 PCPC 口行状态口行状态 CPL CPL A A ;变正逻辑,以高电平表示有键按下;变正逻辑,以高电平表示有键按下 ANL ANL AA ,, #0FH#0FH ;屏蔽高;屏蔽高 44 位,只保留低位,只保留低 44 位行线值位行线值 RET RET ;出口状态:;出口状态: (A)≠0(A)≠0 时有键按下时有键按下

Page 39: 第九章 应用系统配置及接口技术

TM12msTM12ms:: MOV R7MOV R7 ,, #18H #18H ;延时;延时 12 ms12 ms 子程序子程序TMTM :: MOV R6MOV R6 ,, #0FFH#0FFHTM6TM6 : : DJNZ R6DJNZ R6 ,, TM6TM6

DJNZ R7DJNZ R7 ,, TMTM RETRET

TM6msTM6ms: : MOV R7MOV R7 ,, #0CH #0CH ;延时;延时 6 ms6 ms 子程序子程序TM2TM2 : : MOV R6MOV R6 ,, #0FFH#0FFHTM62TM62 : : DJNZ R6DJNZ R6 ,, TM6TM6

DJNZ R7DJNZ R7 ,, TMTM RETRET

Page 40: 第九章 应用系统配置及接口技术

22 、使用、使用 82798279 作键盘接口:作键盘接口: P207P207图图7.367.36

ALE

RD

WR

P0

80C51

CLK

RD

WR

8279

A0

CS

8

P2.7P2.0

. . .

SL0SL1

RL0

DB

+5V

74LS156

SL2

RL1

RL4RL5

P2.7=0 时:A0=P2.0=1 :命令口地址为: 7FFFH ;A0=P2.0=0 :数据口地址为: 7EFFH 。 (程序略)

键码键码 == 行首键号行首键号 ++ 列号列号(键号必须依次是从左至右书写) (键号必须依次是从左至右书写)

0 1 3 4

5 6 7 8

74LS15674LS156 为双为双 2-42-4译码器译码器 // 分配分配器器

Page 41: 第九章 应用系统配置及接口技术

33 、使用中断方式作键盘接口:、使用中断方式作键盘接口:

80C51

+5V

P1.4

P1.7

P1.5

P1.6

P1.0P1.1P1.2P1.3

﹠INT1

当有键按下时, INT1 为低,向 CPU 发出中断申请,在中断服务

程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。

0

48

12

15

9

13

键码键码 == 列首键号列首键号 ++ 行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)

2 36 7

10 11

14 15

Page 42: 第九章 应用系统配置及接口技术

• BUFF EQU 30HBUFF EQU 30H

• KEYADR:MOV A,SBUFKEYADR:MOV A,SBUF

• CJNE A,#0FH,KYARD1CJNE A,#0FH,KYARD1

• AJMP DIGPROAJMP DIGPRO

• KYARD1:JC DIGPROKYARD1:JC DIGPRO

• KEYTBL:MOV DPTR,#JMPTBLKEYTBL:MOV DPTR,#JMPTBL

• CLR CCLR C

• SUBB A,#10H SUBB A,#10H

• RL ARL A

• JMP @A+DPTRJMP @A+DPTR

• JMPTBL:AJMP AAAJMPTBL:AJMP AAA

• AJMP BBB AJMP BBB

• AJMP CCCAJMP CCC

• AJMP DDDAJMP DDD

• …… ……..

Page 43: 第九章 应用系统配置及接口技术

下面的程序是用行扫描法进行键扫描的程序 , 其中 KS1

为判键闭合的子程序。 有键闭合时( A ) =0 。 DIR 为数码显示器扫描显示子程序 , 执行一遍的时间约 6 ms 。 程序执行后 , 若键闭合 , 键值存入 A 中 , 键值的计算公式是 : 键值 =

行号 ×4+ 列号 ; 若无键闭合 , 则 A 中存入标志 FFH 。 KEY1:LCALL KS1 ; 检查有无闭合键 ?

JNZ LK1 ; ( A ) =0, 有键闭合则转

LJMP LK8 ; 无闭合键则返回 LK1: LCALL DIR ; 延时 12 ms

LCALL DIR ; 清抖

LCALL KS1 ; 再检查有键闭合否 ?

JNZ LK2 ; 有键闭合则转

LJMP LK8 ; 无键闭合则返回

Page 44: 第九章 应用系统配置及接口技术

LK2: MOV R3, # 00H ; 行号初值送 R3

MOV R2, # FEH ; 行扫描初值送 R2

LK3: MOV DPTR, # 0101H ; 指向 8155 口 A

MOV A, R2 ; 行扫描值送 A

MOVX @DOTR, A ; 扫描 1 行

INC DPTR

INC DPTR ; 指向 8155 口 C

MOVX A, @DPTR ; 读入列值

ANL A, # 0FH ; 保留低 4 位

MOV R4, A ; 暂存列值

CJNZ A, # 0FH, LK4 ; 列值非全“ 1” 则转

MOV A, R2 ; 行扫描值送 A

Page 45: 第九章 应用系统配置及接口技术

JNB ACC.7, LK8 ; 扫至最后一行则转

RL A ; 未扫完 , 则移至下一行

MOV R2, A ; 行值存入 R2 中

INC R3 ; 行号加 1

SJMP LK3 ; 转至扫描下一行

LK4: MOV A, R3 ; 行号送入 A

ADD A, R3 ; 行号 ×2

MOV R5, A

ADD A, R5 ; 行号 ×4

MOV R5, A ; 存入 R5 中

MOV A, R4 ; 列值送 A

Page 46: 第九章 应用系统配置及接口技术

LK5: RRC A ; 右移一位

JNC LK6 ; 该位为 0 则转

INC R5 ; 列号加 1

SJMP LK5 ; 列号未判完则继续

LK6: MOV 20H, R5; 存键值

LK7: LCALL DIR ; 扫描一遍显示器

LCALL KS1 ; 发扫描信号

JNZ LK7 ; 键未释放等待

LCALL DIR ; 键已释放

LCALL DIR ; 延时 12 ms, 清抖

MOV A, 20H ; 键值存入 A 中

KND: RET

Page 47: 第九章 应用系统配置及接口技术

LK8: MOV A, # FFH ; 无键标志 FFH 存入 A 中

RET

KS1: MOV DPTR, # 0101H ; 判键子程序

MOV A, # 00H ; 全扫描信号

MOVX @DPTR, A ; 发全扫描信号

INC DPTR

INC DPTR ; 指向 8155 口 C

MOVX A, @DPTR ; 读入列值

ANL A, # 0FH ; 保留低 4 位

ORL A, # F0H ; 高 4 位取“ 1”

CPL A ; 取反 , 无键按下则全“ 0”

RET

Page 48: 第九章 应用系统配置及接口技术

9.2.2 LED9.2.2 LED 显示器接口及显示程序显示器接口及显示程序1. LED显示器结构与原理

Page 49: 第九章 应用系统配置及接口技术

各段码位的对应关系如下 :

Page 50: 第九章 应用系统配置及接口技术

表 十六进制数及空白与 P 的显示段码

Page 51: 第九章 应用系统配置及接口技术

• LED LED 显示器有静态显示和动态显示两种方式显示器有静态显示和动态显示两种方式• (1) (1) 静态显示方式编程容易静态显示方式编程容易 ,, 管理也简单管理也简单 ,, 但占用但占用 I/I/

OO 口线资源较多口线资源较多 ..• (2)(2) 动态显示简化电路动态显示简化电路 ,, 因人眼的视觉暂留时间为因人眼的视觉暂留时间为 0.0.

1s(100ms),1s(100ms), 所以每位显示的间隔不必超过所以每位显示的间隔不必超过 20ms,20ms,• 并保持延时一段时间,以造成视觉暂留效果,给人并保持延时一段时间,以造成视觉暂留效果,给人

看上去每个数码管总在亮,这种方式称为软件扫描看上去每个数码管总在亮,这种方式称为软件扫描显示.显示.

Page 52: 第九章 应用系统配置及接口技术

2. LED显示器接口电路

6 位动态显示器接口

Page 53: 第九章 应用系统配置及接口技术

显示子程序流程图

Page 54: 第九章 应用系统配置及接口技术

程序清单如下 :

DIR: MOV R0, # 79H ; 显示缓冲区首址送 R0

MOV R3, # 01H ; 使显示器最右边位亮

MOV A, R3

LD0: MOV DPTR, # 0101H ; 扫描值送 PA 口

MOVX @ DPTR, A

INC DPTR ; 指向 PB 口

MOV A, @R0 ; 取显示数据

ADD A, # 12H ; 加上偏移量

MOVX A, @A+PC ; 取出字形

MOVX @ DPTR, A ; 送出显示

Page 55: 第九章 应用系统配置及接口技术

ACALL DL1 ; 延时

INC R0 ; 缓冲区地址加 1

MOV A, R3;

JB ACC.5, LD1 ; 扫到第 6 个显示位了吗?

RL A ; 没有 , R3 左环移一位 , 扫描下一个显示位

MOV R3, A

AJMP LD0

LD1: RET

DSEG: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH ; 显示段码表

DSEG1: DB 7DH, 07H, 7FH, 6FH, 77H, 7CH

Page 56: 第九章 应用系统配置及接口技术

DSEG2: DB 39H, 5EH, 79H, 71H, 73H, 3EH

DSEG3: DB 31H, 61H, 1CH, 23H, 40H, 03H

DSEG4: DB 18H, 00H, 00H, 00H

DL1: MOV R7, # 02H[DW]; 延时子程序

DL: MOV R6, # 0FFH

DL6: DJNZ R6, DL6

DJNZ R7, DL

RET

Page 57: 第九章 应用系统配置及接口技术

9.2.3 9.2.3 串行口控制的键盘串行口控制的键盘 /LED/LED 显示器接口电路显示器接口电路

•见 见 P/245 P/245

Page 58: 第九章 应用系统配置及接口技术

7.4.3 键盘显示器接口 8279

1. 8279 的组成及引脚

8279 芯片有 40 条引脚 , 由单一 +5 V 电源供电。 它主要由以下几部分组成 :

( 1 ) I/O 控制和数据缓冲器 ;

( 2 ) 控制和定时寄存器及定时控制部分 ;

( 3 ) 扫描计数器 ;

( 4 ) 回送缓冲器与键盘去抖动控制电路 ;

( 5 ) FIFO (先进后出)寄存器和状态电路 ;

( 6 ) 显示器地址寄存器及显示 RAM 。

Page 59: 第九章 应用系统配置及接口技术

图 8279 的引脚图

Page 60: 第九章 应用系统配置及接口技术

2. 8279 的接口电路与应用

8031 与 8279 接口连接框图

Page 61: 第九章 应用系统配置及接口技术

• 9.3 A/D9.3 A/D 转换器及接口技术转换器及接口技术•

9.4 D/A9.4 D/A 转换器及接口技术转换器及接口技术

Page 62: 第九章 应用系统配置及接口技术

9.3 A/D 转换器接口

1. 概述

A/D 转换器用以实现模拟量向数字量的转换。 按转换原理可分为 4 种 : 计数式、 双积分式、逐次逼近式以及并行式A/D 转换器。逐次逼近式 A/D 转换器是一种速度较快 , 精度较高的转换器 , 其转换时间大约在几微秒到几百微秒之间。常用的这种芯片有 :

( 1 ) ADC0801~ADC0805 型 8 位 MOS 型 A/D 转换器 ;

( 2 ) ADC0808/0809 型 8 位 MOS 型 A/D 转换器 ;

( 3 ) ADC0816/0817 型 8 位 MOS 型 A/D 转换器 ;

Page 63: 第九章 应用系统配置及接口技术

量化间隔和量化误差是 A/D 转换器的主要技术指标之一。

量化间隔由下式计算 : 12

n

满量程输入电压

其中 n 为 A/D 转换器的位数。 量化误差有两种表示方法 : 一种是绝对量化误差 ; 另一种是相对量化误差。 绝对量化误差

22

量化间隔

12

1n

相对量化误差

Page 64: 第九章 应用系统配置及接口技术

逐次比较型逐次比较型 D/AD/A 转换器原理图转换器原理图 ::

•     

Page 65: 第九章 应用系统配置及接口技术

2. 典型 A/D 转换器芯片 ADC0809 简介

ADC0809 是采用 CMOS 工艺制造的双列直插式单片 8 位 A/D 转换器。分辨率 8 位,精度 7 位,带 8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。

启动信号为脉冲启动方式,最大可调节误差为 ±1LSB ,ADC0809 内部没有时钟电路,故 CLK 时钟需由外部输入,fclk 允许范围为 500kHz~1MHz ,典型值为 640kHz 。每通道的转换需 66~73 个时钟脉冲,大约 100~110μs 。

工作温度范围为 -40℃~+85℃ 。功耗为 15mW ,输入电压范围为 0~5V ,单一 +5V 电源供电。它可以直接与 Z80 、8085 、 8080 、 8031 等 CPU 相连,也可以独立使用。

Page 66: 第九章 应用系统配置及接口技术

图 ADC0809 的内部结构

Page 67: 第九章 应用系统配置及接口技术

图 ADC0809 引脚图

Page 68: 第九章 应用系统配置及接口技术

表 9.9 地址码与输入通道的对应关系

Page 69: 第九章 应用系统配置及接口技术

图 ADC0809 时序图

Page 70: 第九章 应用系统配置及接口技术

3. ADC0809 与 8031 的中断方式 接口电路

图 AD

C0809

中断方式硬件接

Page 71: 第九章 应用系统配置及接口技术

这里将 ADC0809 作为一个外部扩展的并行 I/O 口 , 直接由 8031 的 P2.0 和 WR 脉冲进行启动。因而其端口地址为 0FEFFH 。用中断方式读取转换结果的数字量 , 模拟量输入通道选择端 ADD A 、 ADD B 、 ADD C 分别与 8031 的 P0.

0 、 P0.1 、 P0.2 直接相连 , CLK 由 8031 的 ALE 提供。

启动数据转换 :

例如选中 0 通道 C 、 B 、 A 为 000 , MOV DPTR, # 0FEFFH ; 端口地址送 DPTR

MOV A, # 00H ; 选择 0 通道输入 MOVX @DPTR, A ; 启动输入

Page 72: 第九章 应用系统配置及接口技术

转换数据的传送:转换数据的传送:

MOV DPTR, # 0FEF8H ; 端口地址送 DPTR

MOVX A, @DPTR ; 读取 IN0 的转换结果

Page 73: 第九章 应用系统配置及接口技术

4.“4.“ 转换数据传送”的时机转换数据传送”的时机

• (1)(1) 定时传送方式(定时传送方式( AD0809AD0809 转换时间为转换时间为 128US128US ))

• (2)(2) 查询方式查询方式

• (3) (3) 中断方式中断方式

Page 74: 第九章 应用系统配置及接口技术

(1)(1) 定时传送方式定时传送方式用定时传送方式,对8个通道的模拟量逐个进行用定时传送方式,对8个通道的模拟量逐个进行 A/DA/D 转换.转换.

MAIN: MOV R1,#dataMAIN: MOV R1,#data MOV DPTR,#7FF8HMOV DPTR,#7FF8H MOV R7,#08HMOV R7,#08H MOV R2,#00HMOV R2,#00H LOOP:MOV A,R2LOOP:MOV A,R2 MOVX @DPTR,AMOVX @DPTR,A LCALL DELAYLCALL DELAY MOVX A,@DPTRMOVX A,@DPTR MOV @R1,AMOV @R1,A INC DPTRINC DPTR INC R1INC R1 INC R2INC R2 DJNZ R7,LOOPDJNZ R7,LOOP RETRET DELAY: ….. ;DELAY: ….. ; 延时延时 128us128us

Page 75: 第九章 应用系统配置及接口技术

• MAIN: MOV R1,#dataMAIN: MOV R1,#data• MOV DPTR,#7FF8HMOV DPTR,#7FF8H• MOV R7,#08HMOV R7,#08H• MOV R2,#00HMOV R2,#00H• LOOP:MOV A,R2LOOP:MOV A,R2• MOVX @DPTR,AMOVX @DPTR,A• HERE: JNB P1.0,$HERE: JNB P1.0,$• MOVX A,@DPTRMOVX A,@DPTR• MOV @R1,AMOV @R1,A• INC DPTRINC DPTR• INC R1INC R1• INC R2INC R2• DJNZ R7,LOOPDJNZ R7,LOOP• RETRET

(2)(2) 查询方式  查询方式   (EOC(EOC 与单片机的与单片机的 P1.0P1.0 连接)连接)

Page 76: 第九章 应用系统配置及接口技术

ORG 0000H

AJMP INADC

ORG 1000H

INADC: SETB IT1 ; INT1 设为边沿触发

SETB EA ; 开中断 INT1

SETB EX1

MOV DPTR, # 0FEF8H ; 端口地址送DPTR

MOV A, # 00H ; 选择 0 通道输入

MOVX @DPTR, A ; 启动输入

HERE: SJMP HERE

(3) (3) 中断方式中断方式

Page 77: 第九章 应用系统配置及接口技术

•ORG 0013H

•AJMP PINT1

•PINT1: … MOV DPTR, # 0FEF8H ; 端口地址送 DPTR MOVX A, @DPTR ; 读取 IN0 的转换结果

MOV 50H, A ; 存入 50H 单元

MOV A, # 00H

MOVX @DPTR, A ; 启动 A/D, IN0 通道输入并转换 RETI ; 返回

Page 78: 第九章 应用系统配置及接口技术

9.4 D/A 转换器接口

1. D/A 转换器的性能指标

( 1 ) 分辨率。分辨率是 D/A 转换器对输入量变化敏感程度的描述 , 与输入数字量的位数有关。如果数字量的位数为 n,

则 D/A 转换器的分辨率为 2-n 。

( 2 ) 建立时间。建立时间是描述 D/A 转换速度的一个参数 , 具体是指从输入数字量变化到输出达到终值误差 ±1/2L

SB (最低有效位)时所需的时间。通常以建立时间来表明转换速度。

( 3 ) 接口形式。 D/A 转换器有两类 : 一类不带锁存器 ,

另一类则带锁存器。对于不带锁存器的 D/A 转换器 , 为保存单片机的转换数据 , 在接口处要加锁存器。

Page 79: 第九章 应用系统配置及接口技术

2. 典型 D/A 转换器 DAC0832 简介

DAC0832 内部结构框图

Page 80: 第九章 应用系统配置及接口技术

DAC 0832DAC 0832 芯片引脚:芯片引脚:

• DI0~DI7:DI0~DI7: 数据输入数据输入• CS:CS: 片选端(低电平有效)片选端(低电平有效)• Rfb:Rfb: 反馈电阻端(反馈电阻端( 15K15K 电阻已固化在芯片内)电阻已固化在芯片内)• VREF:VREF: 参考电压参考电压• ILEILE :数据锁存允许信号(高电平有效):数据锁存允许信号(高电平有效)• XFER:XFER: :数据传送控制信号(输入):数据传送控制信号(输入)• IOUT1:IOUT1: 电流输 出1(接运放的反向输入端)电流输 出1(接运放的反向输入端)• IOUT2:IOUT2: 电流输 出2(接运放的同向输入端)电流输 出2(接运放的同向输入端)• WR1:WR1: 第1写信号第1写信号• WR2:WR2: 第2写信号第2写信号

Page 81: 第九章 应用系统配置及接口技术
Page 82: 第九章 应用系统配置及接口技术

图 DAC0832 的引脚图

Page 83: 第九章 应用系统配置及接口技术

3. DAC0832 与 MCS - 51 的接口及应用

1) 单缓冲方式

图 DAC0832 单缓冲方式接口电路

Page 84: 第九章 应用系统配置及接口技术

执行下面的几条指令就能完成一次 D/A 转换 :

MOV DPTR, # 7FFFH ; 指向 DAC0832

MOV A, # DATA ; 数字量装入 A

MOVX @DPTR, A; 完成一次 D/A 输入与转换

Page 85: 第九章 应用系统配置及接口技术

2) 双缓冲方式

图 DAC0832 双缓冲方式接口电路

Page 86: 第九章 应用系统配置及接口技术

MOV DPTR, # 0DFFFH ; 指向 DAC0832(1)

MOV A, # data1 ; data1 送入 DAC0832(1) 中锁存

MOVX @ DPTR, A ;

MOV DPTR, # 0BFFFH ; 指向 DAC0832(2)

MOV A, # data2 ; data2 送入 DAC0832(2) 中锁存

MOVX @DPTR, A

MOV DPTR, # 7FFFH ; 给 0832(1) 和 (2) 提供 WR 信号

MOVX @DPTR, A ; 同时完成 D/A 转换输出

Page 87: 第九章 应用系统配置及接口技术

图 阶梯波形图

Page 88: 第九章 应用系统配置及接口技术

产生阶梯波的程序如下 :

START: MOV A, # 00H ;

MOV DPTR, # 7FFFH ; 0832 的地址送 DPTR

MOV R1, # 0AH ; 台阶数为 10

LP: MOVX @DPTR, A ; 送数据至 0832

CALL DELAY ; 1 ms 延时

DJNZ R1, NEXT ; 不到 10 台阶转移

SJMP START ; 产生下一个周期

NEXT: ADD A, # 10 ; 台阶增幅

SJMP LP ; 产生下一台阶

DELAY: MOV 20H, # 249 ; 1 ms 延时程序

AGAIN: NOP

NOP

DJNZ 20H, AGAIN