新概念51单片机C语言--07 MCS-51 单片机的系统扩展_第1页
新概念51单片机C语言--07 MCS-51 单片机的系统扩展_第2页
新概念51单片机C语言--07 MCS-51 单片机的系统扩展_第3页
新概念51单片机C语言--07 MCS-51 单片机的系统扩展_第4页
新概念51单片机C语言--07 MCS-51 单片机的系统扩展_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、第七章第七章 MCS-51 MCS-51 单片机的系统扩展单片机的系统扩展 本章主要介绍51系列单片机系统扩展问题,在本章中要研究较多的硬件方面及硬软结合方面的问题,本章与第一章关系密切,在学习本章内容之前,要先明确51系列单片机本身的系统资源,可先复习一下前面几章的有关单片机硬件组成方面的内容。 本章将介绍以下具体内容: 系统扩展的含义、单片机的地址总线和数据总线、常见系统扩展电路举例。7.0 前言 1.系统扩展的含义 单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说有时感到以上资源中的一种或几种不够用,这就需要在

2、单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。 2.系统扩展分类-单一功能的扩展 综合功能的扩展3.系统扩展需要解决的问题- 单片机与相应芯片的接口电路连接(即地址总线、数据总线、控制总线的连接)与编程。 51系列单片机没有专用的对外地址总线和数据总线,其P0口和P2口既是通用I/O口,同时P0口还是分时复用的双向数据总线和低8位地址总线(一般需要加一级锁存器),而P2口则是高8位地址总线。4.单片机的地址总线和数据总线(1)单一功能的系统扩展 存储器的扩展(程序存储器、数据存储器、E2PROM ) 外部中断源的扩展(简单门电路) 并行口的扩展(8

3、155)(2)综合功能的扩展 外部RAM、定时器、并行口扩展(8155) 存储器、并行口、定时器扩展(多芯片)5.常见系统扩展电路 .程序存储器的作用-存放程序代码或常数表格 .扩展时所用芯片-一般用只读型存储器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。 .扩展电路连接 - 用EPROM 2764扩展程序存储器。 .存储器地址分析-究竟单片机输出什么地址值时,可以指向存储器中的某一单元。7.1 存储器的扩展7.1.1 程序存储器的扩展2764-8K EPROM2764-8K EPROM27642764引脚功能引脚功能A0A0A12A12地址线地址线 CE CE选片选片 OE

4、OE读读D0D0D7D7数据线数据线VPPA12A7A6A5A4A3A2A1A0D0D1D2GNDVccPGMN.CA8A9A11OEA10CED7D6D5D4D32764.扩展时所用芯片1编程脉冲编程脉冲输入输入 PGM PGM编程电源编程电源 Vpp VppD7D6D5D4D3D2D1D0G74LS373GND+5VEQ7Q6Q5Q4Q3Q2Q1Q0.扩展时所用芯片2 373 373引脚功能引脚功能D0D0D6D6数据输入数据输入 E E输出允许输出允许 G G数据输出数据输出 Q0 Q0Q7Q7使能端使能端当E=0,G=1时, 输出Q=输入D(透明);当E=0,G=0时, 输出Q端不变(

5、锁存)当E=0,输出高阻态. .扩展电路连接扩展电路连接图7-4 扩展电路单片机单片机 8031P2.0:.A8.ALEPSEN74LS373G2764A7.A0O0.O7P0.0P0.0 :P0.7P0.7OECEQ0.Q7D0.D7 8031 8031 27642764数据数据总线的连接:P0.0-P0.7(数据总线)-O0-O7地址地址总线的连接:P0.0-P0.7(地址总线低8位)- A0-A7P2.0-P2.4(地址总线高8位中的5位)- A8-A12控制控制总线的连接: PSEN(程序存储器允许,即读指令) - OE ALE(地址锁存允许)-接373的使能端G 经过锁存器经过锁存器

6、373373 A12P2.4一个机器周期一个机器周期ALEPSENP2P0地址地址A8A15地址地址A8A15A0A7A0A7指令码指令码指令码指令码图7-2 从外存取指令时序图一个机器周期ALEPSENP2P0地址地址A8A8A15A15地址地址A8A15A0A0A7A7A0A0A7A7指令码指令码指令码指令码单片机单片机 8031P2.0:.A8.ALEPSEN74LS373G2764A7.A0O0.O7P0.0P0.0 :P0.7P0.7OECEQ0.Q7D0.D7A12P2.4.存储器地址分析-究竟单片机输出什么地址值时,可以指向存储器中的某一单元。指向存储器中的某一单元。 80318

7、031 P2.4 P2.4 P2.0 P0.7 P2.0 P0.7P0.0P0.0 选中单元(27322732 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0) A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0) 0 0 0 0 0 0 0 0 0 0 0 0 0(0000H)0 0 0 0 0 0 0 0 0 0 0 0 0 1(0001H)1 0 0 0 0 0 0 0 0 0 0 0 1 0(0002H)2 0 0 0 0 0 0 0 0 0 0 0 1 1(0003H)3 0 0 0 0 0 0 0 0 0 0 1

8、0 0(0004H)4 . . . 1 1 1 1 1 1 1 1 1 1 1 1 1(1FFFH) 8K-1 可见,当单片机输出地址可见,当单片机输出地址0000H0000H1FFFH1FFFH时,选中时,选中27642764的的0 08K-18K-1号单元,号单元,即按照上面电路扩展的即按照上面电路扩展的4K4K存储器的地址范围是存储器的地址范围是0000H0000H1FFFH1FFFH(共(共8K8K字字节)。节)。 请思考请思考:请同学们结合图7.2来分析图7.4中373 的作用,并说明没有它行不行?为什么? . .扩展时所用芯片扩展时所用芯片. .程序存储器的作用程序存储器的作用.

9、.扩展电路连接扩展电路连接. .存储器地址分析存储器地址分析程序存储程序存储器的扩展器的扩展7.1.2 7.1.2 数据存储器的扩展数据存储器的扩展.数据存储器的作用-存放数据,可改写.扩展时所用芯片-一般用静态读写型存储器芯片SRAM,也可以用E2PROM、FLASH芯片等.扩展电路连接 - 用SRAM 6264扩展程序存储器。.存储器地址分析-究竟单片机输出什么地址值时,可以指向存储器中的某一单元。.扩展时所用芯片6264-8K SRAM6264-8K SRAM6264引脚功能A0A0A12A12地址线 CE选片 OE读D0D7数据线N.CA12A7A6A5A4A3A2A1A0D0D1D2

10、GNDVccWECSA8A9A11OEA10CED7D6D5D4D36264写 WE. .扩展电路连接扩展电路连接图7-9 扩展电路数据数据总线的连接:总线的连接:P0.0P0.7P0.0P0.7(数据总线)(数据总线)-D0D7-D0D7 地址地址总线的连接:P0.0P0.7(地址总线低8位)- A0A7P2.0P2.4(地址总线高8位中的5位)- A8A12控制控制总线的连接:总线的连接: RDRD(读外部数据(读外部数据) - OE - OE WRWR(写外部数据)(写外部数据)- WE - WE ALEALE(地址锁存允许)(地址锁存允许)-接接373373的使能端的使能端 G G 经

11、过373 A86264WE单片机单片机 8031P2.0:.A8.ALERD74LS373GA7.A0P0.0P0.0 :P0.7P0.7OECEQ0.Q7D0.D7A12P2.4WR8031803162646264一个机器周期ALEPSENP2P0地址A8A15A0A7三态数据D0D7入图7-6 读外部数据RAM时序图RD一个机器周期ALEPSENP2P0地址A8A15A0A7数据D0D7出图7-7 写外部数据RAM时序图WR一个机器周期ALEPSENP2P0地址A8A15A0A7三态数据D0D7入RD图4.4 读外部数据RAM时序图单片机单片机 8031P2.0P2.1P2.2A8A9A1

12、0ALERD74LS373G6264A7A6A5A4A3A2A1A0O0O1O2O3O4O5O6O7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7OECEQ0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7WEWRP2.7P2.3P2.4A11A12. .存储器地址分析存储器地址分析-究竟单片机输出什么地址值时,可以究竟单片机输出什么地址值时,可以指向存储器中的某一单元。指向存储器中的某一单元。 80318031 P2.7P2.7 P2.4 P2.4 P2.0P2.0 P0.7 P0.0 选中单元(62646264 CE A12 A11 A8 A7 A6 A5 A

13、4 A3 A2 A1 A0) 0 X X 0 0 0 0 0 0 0 0 0 0 0 0 0(0000H) 0 0 X X 0 0 0 0 0 0 0 0 0 0 0 0 1(0001H) 1 0 X X 0 0 0 0 0 0 0 0 0 0 0 1 0(0002H) 2 0 X X 0 0 0 0 0 0 0 0 0 0 0 1 1(0003H) 3 0 X X 0 0 0 0 0 0 0 0 0 0 1 0 0(0004H) 4 . . . 0 X X 1 1 1 1 1 1 1 1 1 1 1 1 1(1FFFH) 8K-1 可见,可见,当单片机输出地址当单片机输出地址0000H1FF

14、FH时,选中时,选中62646264的的08K-1号号单元,即按照上面电路扩展的单元,即按照上面电路扩展的4K存储器的地址范围是存储器的地址范围是0000H1FFFH(共(共8K字节)。字节)。 请注意,与扩展程序存储器相比较,有以下不同点:. 存储器芯片为可读可写的静态RAM芯片,有读写控制引脚OE和WE。.单片机输出的对数据存储器的读写控制信号分别是RD(而不再是读程序存储器时的PSEN)和WR。. .扩展时所用扩展时所用芯片芯片. .数据存储器的作用数据存储器的作用. .扩展电路连扩展电路连接接. .存储器地址存储器地址分析分析数据存储数据存储器的扩展器的扩展2864-8K E2864-

15、8K E2 2PROMPROM2864引脚功能A0A12地址线 CE选片 OE读D0D7数据线N.CA12A7A6A5A4A3A2A1A0D0D1D2GNDVccWEN.CA8A9A11OEA10CED7D6D5D4D32864. .扩展时所用芯片扩展时所用芯片写 WE7.1.3 7.1.3 E E2 2PROMPROM的扩展的扩展单片机单片机 8031P2.4P2.4P2.0P2.0A8A12ALERD74LS373G2864A7A6A5A4A3A2A1A0D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7OECEQ0Q1Q2Q3Q4Q5Q6Q7

16、D0D1D2D3D4D5D6D7WEWRWRP2.7P2.7PSEN&图图7-9 28647-9 2864扩展电路图扩展电路图 请思考请思考:什么情况下图7-9中的与门输出低电平,使E2PRAM的内容可以被读出,读出的是什么方面的内容?图中扩展的E2PRAM是外部数据存储器?外部程序存储器?两者都扩展了?7.2 7.2 并行口的扩展并行口的扩展7.2.1 7.2.1 并行口的简单扩展并行口的简单扩展输出口-利用锁存器扩展并行口扩展的分类并行口扩展的分类 利用锁存器、缓冲器进行并行口简单扩展进行并行口简单扩展 用可编程并行接口芯片进行扩展用可编程并行接口芯片进行扩展输入口-利用缓冲器扩展

17、8031 1 1WRRDP2.7GQ0.Q7P0.0.P0.7D0.D7Q0.Q7D0.D7CLK图图7-10 7-10 并行口的简单扩展并行口的简单扩展2732447.2.2 7.2.2 可编程并行接口芯片可编程并行接口芯片81558155的扩展的扩展一、一、81558155的结构及引脚的结构及引脚81558155的结构的结构81558155256256字节字节RAMRAM三个可编程并行口三个可编程并行口PAPA口,口,8 8位位PBPB口,口,8 8位位PCPC口,口,6 6位位1414位二进制减法计数器位二进制减法计数器8155芯片的内部结构256B256B静态静态RAMRAM A A

18、定时器定时器B B C C 口APA0PA7口BPB0PB7PC0PC5口CIO/ MAD0AD7CEALERDWRRESET定时器输入定时器输出接单片机接外设接外设接外设图7.11b81558155引脚功能引脚功能PC3PC4 PC5 IO/ MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMER INRESETTIMER OUTAD0-AD7AD0-AD7三态地址三态地址/ /数据线数据线 IO/ M IO/ M端口端口/ /存储存储

19、器选择器选择 RD RD读读ALEALE地址锁存地址锁存允许允许写写 WR WR选片选片 CE CE定时器输定时器输入入TIMER INTIMER IN定时器输定时器输出出TIMER OUTTIMER OUTPA0-PA7PA0-PA7A A口端口线口端口线PB0-PB7PB0-PB7B B口端口线口端口线PC0-PC5PC0-PC5C C口端口线口端口线图7.11aPA0-PA7端口A的I/O线(8位,接外设)PB0-PB7端口B的I/O线(8位,接外设)PC0-PC5端口C的I/O线(6位,接外设)AD0-AD7三态地址/数据复用线(8位,一般接单片机P0口,CPU与8155之间的地址、数

20、据、命令、状态等信号都通过它来传送)端口/存储器 选择控制 “0”选择片内RAM “1”选择片内I/O口TIMER IN8155片内定时器/计数器的计数脉冲输入引脚TIMER OUT8155片内定时器/计数器的计满回零输出引脚分别是对8155片内的RAM或I/O口的的读、写控制信号ALE地址锁存引脚选片RESET复位引脚IO/ MRD、WRCEI/OI/O口地址口地址-当IO/ M 加高电平时1. 8155的RAM和I/O口地址RAMRAM地址-当IO/ M 加低电平时此时AD0-AD7上得到的地址值是指8155的某一RAMRAM单元的地址,地址范围是 0000 0000-1111 1111分

21、别指向8155 RAM 的256256个存储单元。此时AD0-AD7 (仅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具体端口地址分配是:二、二、81558155的工作原理的工作原理AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0I/O端口 0 0 00 0 0命令/状态口 0 0 10 0 1A口 0 1 00 1 0B口 0 1 10 1 1C口 1 0 01 0 0计数器低8位 1 0 11 0 1计数器高6位8155的RAM和I/O口地址分配 2. 81552. 8155的

22、使用(分二种情况:片内的使用(分二种情况:片内RAMRAM的使用的使用 各各端口端口的使用)的使用) 8155 8155内内RAMRAM的使用:与一般外部数据存储器的使用基本一样,唯一区别是事先要使IO/ M 为低电平。81558155各各端口端口(包括定时器)的使用:A、B、C各端口可工作于不同的工作方式,使用前要进行初始化初始化(写命令字到命令口)。81558155命令字含义命令字含义 PAPBPC1PC2IEAIEBTM1TM2PBPB、PAPAA A口、口、B B口数据传送方向口数据传送方向0 0输入输入1 1输出输出0000C C口输入,口输入,A A、B B口基本口基本I/OI/O

23、方式方式1111C C口输出,口输出,A A、B B口基本口基本I/OI/O方式方式0101PC3-PC5PC3-PC5输出,输出,A A口选通方式,口选通方式,B B口基本口基本I/OI/O方式方式1010A A、B B口选通方式口选通方式PC2PC2、PC1PC1C C口数据传送方向及口数据传送方向及ABAB口工作方式口工作方式IEAIEA、IEB IEB A A、B B口中断允许控制口中断允许控制0 0禁止禁止1 1允许允许TM1TM1、TM2TM2定时器定时器/ /计数器控制计数器控制00 00 空操作空操作01 01 停止定时器停止定时器10 10 记满回零停止计数记满回零停止计数1

24、1 11 启动启动8155内部有一个14位减法计数器,计数脉冲来自其引脚“TIMER IN”,使用定时器前要先装入“时间常数”-14位二进制数。其格式为:8155定时器/计数器 D15D15 D14D14 D13D13 D12D12 D11D11 D10D10D9D9D8D8D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0M2M2M1M1T13T13 T12T12 T11T11 T10T10T9T9T8T8T7T7T6T6T5T5T4T4T3T3T2T2T1T1T0T0高6位计数值低8位计数值定时器方式M2 M1M2 M100 单方波01 连续方波10 单脉冲11 连续脉冲 三

25、三. .扩展电路的连接举例扩展电路的连接举例-见图见图7-127-12,接口电路非常,接口电路非常简单,基本上是相同信号对接。简单,基本上是相同信号对接。 8031803181558155RESETRDWRALEP2.0P2.7P0.0P0.1P0.2P.03P0.4P0.5P0.6P0.7RESETRDWRALEIO/MCEAD0AD1AD2AD3AD4AD5AD6AD7口口APA0PA7口口BPB0PB7PC0PC5口口C图图7-127-12请思考请思考:对比图7-4(2764的扩展),为什么图7-12中扩展8155时,单片机P0口输出的地址信号没有经过373锁存而是直接接到8155的地址

26、/数据复用线上了?四四. . 应用举例-(见教材p139例)设8155与单片机连接电路如图7-127-12,现要求其A口为基本输入方式,B口为基本输出方式,定时器为方波发生器,对8031输入脉冲进行24分频,编制初始化程序段。解:首先分析各端口地址-见教材P138表7-9。 命令状态口地址为7F00H A口地址为7F01H B口地址为7F02H C口地址为7F03H 定时器低8位地址7F04H 定时器高6位地址7F05H8155的控制字为0C2H:PAPBPC1PC2IEAIEBTM1TM2 1 1 0 0 0 0 1 01 1 0 0 0 0 1 0补充题补充题1 1: 根据图7-12的电路

27、,把8155的PB口设置成输入方式,PA口设置成输出方式,并把PB口输入的数据与8031 P1口输入的数据相“异或”,结果从PA口输出。试写出满足此要求的程序。MOV DPTR,#7F00HMOV DPTR,#7F00HMOV A,#0C2HMOV A,#0C2HMOVX DPTR,AMOVX DPTR,AMOV DPTRMOV DPTR,#7F05H#7F05H24分频即计数初值为24(000000 0011000B=18H)加上定时计数控制01(连续方波),则送往定时计数器的时间常数及定时控制字应为 01000000 00011000B=4018HMOV A,#40HMOV A,#40HM

28、OVX DPTR,AMOVX DPTR,AMOV DPTR,#7F04HMOV DPTR,#7F04HMOV AMOV A,#18H#18HMOV DPTRMOV DPTR,A A TM2 TM1 IEB IEA PC2 PC1 PB PA 0 0 0 0 0 0 0 1即控制字为01H01H,(注:此处PC2 PC1取1 1也可以)依图依图7-127-12电路,电路,81558155的六个端口地址分配如下的六个端口地址分配如下P2.7P2.7P2.0 P0.7P2.0 P0.7 P0.0 P0.0 I/O I/O端口端口 0 X X X X X X 1 X X X X X 0 0 0 命令/

29、状态口 0 X X X X X X 1 X X X X X 0 0 1 A口 0 X X X X X X 1 X X X X X 0 1 0 B口 0 X X X X X X 1 X X X X X 0 1 1 C口 0 X X X X X X 1 X X X X X 1 0 0 计数器低8位 0 X X X X X X 1 X X X X X 1 0 1 计数器高6位地址地址7F00H7F01H7F02H7F03H7F04H7F05H解:解:根据题目要求,要先初始化8155(设置其端口的输入输 出方式-这里PB口输入,PA口输出),其控制字如下:SJMP $SJMP $所以程序如下:所以程序

30、如下:MOV DPTRMOV DPTR,#7F00H #7F00H ;选中;选中81558155命令口命令口MOV A,#01H MOV A,#01H ;控制字;控制字01H01HMOVX DPTR,A MOVX DPTR,A ;控制字;控制字01H01H送送81558155命令口命令口 MOV DPTRMOV DPTR,#7F02H #7F02H ;选中;选中8155 PB8155 PB口口MOVX A, DPTR MOVX A, DPTR ;从;从PBPB口输入数据口输入数据XRL A,P1 XRL A,P1 ;与;与8031 P18031 P1口内容口内容“异或异或”MOV DPTRMO

31、V DPTR,#7F01H #7F01H ;选中;选中8155 PA8155 PA口口MOVX DPTR,A MOVX DPTR,A ;从;从PAPA口输出数据口输出数据补充题补充题2 2:根据图7-12电路,设计一段程序把8155片内RAM全部填满FFH。 解:根据图7-12的电路,8155片内RAM地址是0000H00FFH,又由于是对8155片内RAM操作,不需要初始化芯片,P2.7P2.7P2.0 P0.7P2.0 P0.7 P0.0 P0.0 RAM RAM单元单元 0 X X X X X X 0 0 0 0 0 0 0 0 0 0号地址地址0000H 0 X X X X X X 0

32、 1 1 1 1 1 1 1 1 255号00FFH程序如下:程序如下:SJMP $SJMP $MOV R7, #00H MOV R7, #00H ;R7R7作计数器,从作计数器,从0 0开始共减开始共减256256次再到次再到0 0MOV A,#0FFH MOV A,#0FFH ;准备送;准备送FFHFFHMOV DPTR,#0000H MOV DPTR,#0000H ;DPTRDPTR指向第一个单元指向第一个单元LOOP: MOVX DPTR,A LOOP: MOVX DPTR,A ;送数;送数INC DPTR INC DPTR ;调整指针,指向下一个单元;调整指针,指向下一个单元DJNZ

33、 R7,LOOP DJNZ R7,LOOP ;循环控制;循环控制1.1.综合功能的扩展综合功能的扩展:使用具有综合功能的芯片、使用具有综合功能的芯片、 使用多个芯片扩展。使用多个芯片扩展。(1 1)综合功能芯片扩展- 8155 使用具有综合功能的可编程可编程芯片8155来同时扩展单片机的I/O口、定时器、外部数据存储器RAM。补充(2 2)多芯片扩展-使用多个芯片来进行综合功能扩展。8031 373G27166116(2)6116(1)8155P0P2.2-P2.0PSENALEWRRDABCG2AG2BG1P1.0A0A7A8A10D7D0D7D0D7D0 CECECSOEA0A7A8A10

34、WEWEOEOEWERDALEAD0AD7CEY2Y1Y0+5VIO/ MPAPBPCP2.3P2.4P2.5P2.6P2.7需要弄清以下几个问题:.选片问题-选片选片信号的功能是:当某个芯片的选片选片信号接低电平时,意味着该芯片被选中,而当其接高电平时,意味着该芯片没有被选中,此时就好象该芯片没有连接到电路中(实际上是其各引脚处于高阻态)。在这部分以前所有扩展电路中所用的芯片的选片选片信号引脚CE,都是直接接地或者接某一P2口线的。芯片138是3:8译码器,它在这里的作用是输出选片信号:其输出端Y0、Y1、Y2分别用来选择8155、6116(1)、6116(2)。138的引脚及功能见下表:.

35、 译码器问题-控控 制制 引引 脚脚输输 入入 引引 脚脚输输 出出 引引 脚脚G1 G2A G2BG1 G2A G2BC B AY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y01 0 00 0 01 1 1 1 1 1 1 01 0 00 0 11 1 1 1 1 1 0 11 0 00 1 01 1 1 1 1 0 1 11 0 00 1 11 1 1 1 0 1 1 11 0 01 0 01 1 1 0 1 1 1 11 0 01 0 11 1 0 1 1 1 1 11 0 01 1 01 0 1 1 1 1 1 11 0 01 1 10 1

36、1 1 1 1 1 1 138 功能表功能表 请思考请思考:b.b.为什么图中 6116(1)的地址范围是 0800H-0FFFH?而 6116(2)的地址范围是 1000H-17FFH?a.a.为什么图中的8155的各端口地址分别是 0000H、0001H、0005H, 而其内部RAM地址范围是 0000H-00FFH?a.a.由由图可知 图中8155的CE接138的Y0, 138的G2B、G2A和CBA分别接到8031的P2.7-P2.3P2.7-P2.3,所以要选中8155,即要CE=0,则必有Y0=0, 由Y0=0得到必有G1=1,且G2A=G2B=0,CBA=000, 即8031的P

37、2.7-P2.3=00000P2.7-P2.3=00000时,时,选中81558155,在此前提下,当8031的P0口输出地址是 00000000-11111111,且IO/ M=0时,选中8155的RAM单元,所以其内部RAM地址范围是 0000H-00FFH 。当8031的P0口输出地址是XXXXX000-XXXXX101,且IO/ M=1时,选中8155的各端口,即P2.7 P2.7 P2.0 P0.7 P2.0 P0.7 P0.0 P0.0 端口端口 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (0000H) 命令口 0 0 0 0 00 0 0

38、0 0 0 0 0 0 0 0 0 0 0 0 1 (0001H) PA口 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 (0002H) PB口 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 (0003H) PC口 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 (0004H)计数器低 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 (0005H)计数器高所以8155的各端口地址分别是 0000H、0001H、0005H。b.b.同理可得61166116(

39、1 1)和)和61166116(2 2)的地址范围分别是0800H-0FFFH0800H-0FFFH和和1000H-17FFH1000H-17FFH:.图中61166116(1 1)的CE接138的Y1Y1,所以要选中61166116(1 1),则必有Y1=0,由Y1=0得 必有G1=1,且G2A=G2B=0,CBA=001, 即8031的P2.7-P2.3=00001P2.7-P2.3=00001时,时,选中61166116(1 1),在此前提下,当8031的P2.2-P2.0,P0.7-P0.0输出地址 000 0000 0000 -111 1111 1111时,选中61166116(1

40、1)中的某一个单元,也即61166116(1 1) 的地址范围是: 0000 1000 0000 0000-0000 1111 1111 1111 即 0800H-0FFFH(共2K)。同样分析可知61166116(2 2)的地址范围是1000H-17FFH1000H-17FFH 7.4.1 显示器及接口一、 LED结构与原理DpgfedcbaD7 D6 D5 D4 D3 D2 D1 D0+5VDp g f e d c b a共阳极如共阳极时,输出1 1 1 1 1 0 0 0 即 F8H时,显示“7”。字型表见表5.9。Dp g f e d c b a共阴极abcdefg7.4 7.4 键盘

41、及显示接口键盘及显示接口(见教材p146153)二、LED接口(分静态、动态).静态LED-亮度大,硬件、软件相对简单,可以 用并行或串行方式。8031 WR P2.7 P2.6aDp373P0aDp37311117-15 并行输出的静态显示电路.动态LED分时使各数码管轮流点亮,硬件简单。8155同相驱动反向驱动C5C4C3C2C1C0PB0PB1. .PB7PA0PA1.PA5图 7-17 扫描式显示电路共阴极数码管原理: 8155的PB口输出字型码到所有数码管的ag各段(1亮,0暗), PA口输出位选字,选中某一个数码管(因为加了一级反相器,所以1亮,0暗), 使该数码管显示相应的字型,

42、其余数码管不亮。 轮流点亮每个数码管并不断扫描,最后各数码管得到稳定的字型显示。参考程序参考程序MOD:MOV R0,#CWR ;指向;指向8155命令口命令口MOV A,#03H ;设命令字,;设命令字,PA口、口、PB口输出口输出MOVX R0,A ;初始化;初始化8155DIR:MOV R0,#DIS0 ;指向片内显示缓冲区首地址;指向片内显示缓冲区首地址MOV R3,#01H ;选中;选中C0数码管数码管0000 0001ACALL DL1 ;调延时子程序;调延时子程序MOV A,R3 ;INC DPTR ;指向;指向8155的的PB口口LD0:MOV DPTR,#POA ;指向;指向

43、8155的的PA口口MOV A,R0 ;取要显示的数;取要显示的数MOVC A,A+PC ;查表求得字型码;查表求得字型码MOVX DPTR,A ;送字型码(段值);送字型码(段值) MOVX DPTR,A ;送位扫描值;送位扫描值 ADD A,#0DH ;加上偏移量;加上偏移量INC R0 ;指向下一个要显示的数;指向下一个要显示的数MOV A,R3JB ACC.5,ELD1 ;判断扫描到;判断扫描到C5数码管没有数码管没有ELD1:RETMOV R3,ADSEG:DB 3FH,06H,5BH,4FH,66H,6DH请思考:请思考:LEDLED静态、动态接口分别有什么特点?静态、动态接口分别

44、有什么特点? RL A ;未扫描到;未扫描到C5,扫描码左移,扫描码左移1位位AJMP LD0 DSEG1:DB 7DH,07H,7FH,67H,77H,7CHDSEG2:DB 39H,5EH,79H,71HELD1:MOV R7, #02H ;延时子程序;延时子程序DL:MOV R6,#0FFHDL6:DJNZ R6,DL6DJNZ R7,DLRET7.4.2.键盘及接口-扫描(判断哪个键按下)、去抖动、判断按键是否抬起(以防止重复进行键处理)。 前沿抖动前沿抖动后沿抖动后沿抖动键按下键按下闭合稳定闭合稳定键释放键释放 a.键盘接口要解决的问题一、键盘工作原理8031+5VI/OP1R8 b

45、.独立式键盘工作原理请思考请思考:什么是键抖动?为什么键盘要考虑去抖动?一般常用哪两种去抖动的方法?原理-当任何一个键被按下时,与其相连的输入线被置成 “0”,平时该线为“1”。键处理程序键处理程序ORG 2000HSTART:MOV A ,#0FFH ;先置;先置P1口为口为“1”MOV P1,AMOV A,P1 ;输入键状态;输入键状态JNB ACC.0, P0F ;查询;查询0号键号键JNB ACC.1, P1F ;查询;查询1号键号键JNB ACC.2, P2F ;查询;查询2号键号键JNB ACC.3, P3F ;查询;查询3号键号键JNB ACC.4, P4F ;查询;查询4号键号

46、键JNB ACC.5, P5F ;查询;查询5号键号键JNB ACC.6, P6F ;查询;查询6号键号键JNB ACC.7, P7F ;查询;查询7号键号键LJMP START键盘扫描键盘扫描P0F:LJMP PROM0 ;入口地址表;入口地址表P1F:LJMP PROM1P6F:LJMP PROM6P7F:LJMP PROM7PROM0:. ;0号键功能程序号键功能程序PROM7:. ;7号键功能程序号键功能程序.LJMP START ;0号键处理完返回键盘扫描号键处理完返回键盘扫描LJMP START ;7号键处理完返回键盘扫描号键处理完返回键盘扫描.c.行列式键盘工作原理(见教材p15

47、0151)+5V I/O接口X3X2X1X0Y3Y2Y1Y05.1K4特点:节省I/O口线过程:先判断有无键按下列线输出0000,然后输入行线状态,若没有键按下,则行线状态为全1( 1111 );若有任一键按下,则行线状态不为全(1111);再确认哪个键被按下列线逐行输出0(如1110),然后输入行线状态,若没有键按下,则行线状态为全1( 1111 );若有任一键按下,则行线状态不为全为1(如0111,说明右上角那个键被按下)确定每个键的键值负逻辑表示-行列线数据直接组合,上例中的各键值分别为:77H、7BH 、7DH 、7EH、B7H 、BBH 、BDH、BEH、D7H、DBH、DDH、DE

48、H、E7H、EBH、EDH、EEH、负逻辑表示负逻辑表示-行列线数据求反组合,上例中的各行列线数据求反组合,上例中的各键值分别为:键值分别为:88H、84H 、82H 、81H、48H 、44H 、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H、(2 2)键盘扫描的控制方式)键盘扫描的控制方式程序控制扫描方式程序控制扫描方式-连续扫描连续扫描定时控制扫描方式定时控制扫描方式-定时扫描定时扫描中断控制扫描方式中断控制扫描方式-中断后扫描中断后扫描a.程序控制扫描方式以8155扩展I/O口组成的行列式键盘为例+5V8155PA7PA6.PA0PC0PC1PC2PC3

49、5.1K4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310 12 34 5 678 9 10 11 12 1314 1516 1718 19 20 21222324 2526 27 28 2930318155扩展I/O口组成的行列式键盘8155PA口地址7F01HPC口地址7F03H8155:PA口输出列扫描信号 PC口输入行状态信号.判断有无键按下PA口输出00H PC口输入行状态信号,若PC3PC01111,有键按下.去抖动延时510ms后再判断有无键按下.再确认哪个键被按下及其键号8155的PA口依次输出下列扫描字:PA7 PA6 PA5 PA4 PA3 PA2 P

50、A1 PA0 1 1 1 1 1 1 1 0 FEH1 1 1 1 1 1 0 1 FDH0 1 1 1 1 1 1 1 7FH8155的PC口输入行状态,可能为下列之一:PC5 PC4 PC3 PC2 PC1 PC0 1 1 1 0 EH 1 1 0 1 DH 1 0 1 1 BH 0 1 1 1 7H则每个键的键值(列行组合)FE E 、FD E 、 FB E 、 F7 E 、EF E、DE E、BF E、 7F E FE D 、FD D 、 FB D 、 F7 D 、EF D、DE D、BF D、 7F D FE B 、FD B 、 FB B 、 F7 B 、EF B、DE B、BF B、 7F B FE 7 、 FD 7 、 FB 7 、 F7 7、 EF 7、 DE 7、 BF 7、 7F 7 每个键的键号(自己安排)N=行首键号+列号.判断按键是否抬起(以防止重复进行键处理)等待键

温馨提示

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

评论

0/150

提交评论