第11章 MCS-51单片机系统扩展-

合集下载

MCS-51单片机的逻辑结构及

MCS-51单片机的逻辑结构及
1
2.1 MCS-51单片机的逻辑结构及 信号引脚
MCS-51单片机结构框图 MCS-51芯片内部逻辑结构 MCS-51的信号引脚
MCS-51单片机结构框图
MCS-51芯片内部逻辑结构
1.中央处理器(CPU ) 中央处理器CPU是单片机的核心,完成运算和控 制操作。它包括运算器和控制器电路。 1 )运算器电路 运算器主要用来实现对操作数的算术、逻辑运算 和位操作的。 主要包括算术逻辑运算单元ALU、累加器ACC (A )、暂存寄存器、B 寄存器、程序状态字PSW、 两个暂存器以及BCD码运算修正电路。
其地址为0003h0023h是五个中断源的中断地址区0003h000ah外部中断0中断地址区000bh0012h定时器计数器0中断地址区0013h001ah外部中断1中断地址区001bh0022h定时器计数器1中断地址区0023h002ah串行中断地址区中断服务程序超过8个字节时在中断地址区的首地址存放一条无条件转移指令转移到中断服务程序
专用寄存器地址表
MCS-51的堆栈操作
后进先出 入栈PUSH 出栈POP 1.堆栈的功用 保护断点 保护现场
2.堆栈的开辟 MCS-51的堆栈只能开辟在芯片内部的数据存储器中。 3.堆栈指示器SP 专用寄存器地址81H SP的内容是堆栈栈顶的地址 系统复位后SP的内容是07H 4.堆栈类型
5.堆栈的使用方法 自动方式 调用子程序或中断时 指令方式 使用堆栈操作指令 PUSH、POP
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
CY AC F0 RS1 RS0 OV 未用 P
进位标志 辅助进位标志 用户标志 寄存器组选择 寄存器组选择 溢出标志 带符号数加减运算 溢出; 乘法积超过8位;除数为0 奇偶标志

第7章MCS-51单片机的常用外设扩展

第7章MCS-51单片机的常用外设扩展

(2)数据线
2732的8位数据线直接与单片机的P0口相连。P0口作 为地址/数据线分时复用。
(3)控制线
CPU执行2732中存放的程序指令时,取指阶段就是对 2732进行读操作。注意,CPU对EPROM只能进行读操作, 不能进行写操作。CPU对2732的读操作控制都是通过控制线 实现的。2732控制线的连接有以下几条:
2.硬件电路 单片机与6116的硬件连接如图7-4所示。
3.连线说明
• 地址线:A0~A10连接单片机地址总线P0.0~P0.7、P2.0、P2.1、P2.2 共11根;
• 数据线:I/O0~I/O7连接单片机的数据线,即P0.0~P0.7;
• 控制线:片选端连接单片机的P2.7,即单片机地址总线的最高位A15; 读允许线连接单片机的读数据存储器控制线;
• 对于没有内部ROM的单片机或者程序较长、片内ROM容 量不够时,用户必须在单片机外部扩展程序存储器。 MCS-51单片机片外有16条地址线,即P0口和P2口,因此 最大寻址范围为64K字节(0000H—FFFFH)。
• 这里要注意的是,MCS-51单片机有一个管脚 EA跟程序存 储器的扩展有关。如果接高电平,那么片内存储器地址范 围是0000H—0FFFH(4K字节),片外程序存储器地址范 围是1000H—FFFFH(60K字节)。如果接低电平,不使 用片内程序存储器,片外程序存储器地址范围为0000H— FFFFH(64K字节)。
1. 芯片选择
单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8 位)、6264(8K×8位)、62256(32K×8位)等。
根据题目容量的要求我们选用SRAM6116,采 用单一+5V供电,输入输出电平均于TTL兼容,具有 低功耗操作方式,管脚如图7-3所示。

MCS-51单片机大容量数据存储器扩展板设计

MCS-51单片机大容量数据存储器扩展板设计

MCS-51单片机大容量数据存储器扩展板设计
何威;周克;张超
【期刊名称】《工业控制计算机》
【年(卷),期】2013(026)001
【摘要】设计了基于MCS-51单片机的大容量(超64KB)数据存储器的扩展方案,采用具有19根地址线的大容量Flash芯片F29C51004作为扩展存储体.将数据线和地址线合并使用,对F29C51004进行分页访问,解决了单片机存储单元及端口不足的问题,释放了I/O口.文中以扩展8MB的数据存储器为例,给出了单片机扩展板的硬件电路和软件程序.
【总页数】3页(P93-94,96)
【作者】何威;周克;张超
【作者单位】贵州大学电气工程学院,贵州贵阳550025;贵州大学电气工程学院,贵州贵阳550025;贵州大学电气工程学院,贵州贵阳550025
【正文语种】中文
【相关文献】
1.MCS-51单片机存储器的综合扩展及软件设计 [J], 王联奎
2.一种新颖的基于MCS-51的大容量数据存储器的扩展及仿真 [J], 朱志斌
3.一种改进的51单片机大容量数据存储器的系统扩展 [J], 魏秋菊;张华
4.读一篇文章,作一个单片机电路(四)——初识MCS-51单片机的内部存储器结构和指令系统 [J], 黄亮
5.一种大容量数据存储器在16位单片机系统上的应用 [J], 赵文通;梁春和
因版权原因,仅展示原文概要,查看原文内容请购买。

51单片机系统.

51单片机系统.

MCS-51系列单片机(一)
MCS-51系列单片机是美国Intel公司1980年以后 推出的新产品。其性能超过了MCS-48系列单片机。该 系列有三种形式,根据片内的程序存储器的不同有以下
三种产品型号,8051(片内有4KBROM),8751 (片内有4KB EPROM)和8031(片内无ROM和
中断系统 定时/计数系统
中断系统(一)
所谓中断控制,指的是在通常情况下,单片机 执行自己的主程序,只有当外设发出中断请求时, 单片机才停止执行主程序,而去执行处理中断子程 序,在中断子程序结束后,又回到原来执行的主程 序。
MCS-51单片机共提供5个中断源。其中2个为 外部中断请求INT0和INT1;2个为片内定时/计数 器溢出中断请求TF0和TF1;1个为片内串行口中断 请求TI或RI。
44脚的封装有四个NC(空)引脚。
对外有40条引脚线,其中2条专用于主电源的引脚, 2条外接晶体的引脚,4条复用的引脚,32条I/O引 脚。
主电源引脚 :Vcc(+5V--- 40脚)和Vss(GND 20 脚);
外接晶体引脚:XTAL1(19脚)、XTAL2(18脚), 只要在这两个引脚之间接入一个晶体振荡器,单片 机就可以以此晶体的频率开始工作。常用的晶体频 率有0-24MHZ,频率越高,单片机的工作速度就越 快,但单片机的功耗就要增加。
MCS-51系列单片机(二)
除此之外,MCS-51系列还有CMOS型产品, 例如:80C51,87C51,80C31BH等。其功能 与8051完全兼容,特点是功耗低,抗干扰能 强,得到了广泛应用。
51单片机的主要资源
内部程序存储器ROM ( 以89C51为例 ):4K的存储容量; 内部数据存储器RAM:256B(128B的RAM+21B的SFR) ; 寄存器区:设有4组寄存器,每组有R0-R7八个工作寄存器; 8位并行输入输出端口:P0、P1、P2和P3; 定时/计数器:2个16位的定时/计数器; 串行口: 全双工的端口(RXD:接收端,TXD发送端); 中断系统:设有5个中断源; 系统扩展能力:可外接64K的 ROM 和64K的 RAM;

第5章 单片机存储器扩展

第5章 单片机存储器扩展

11000000000000000~1101111111111111,即C000H~DFFFH;
11100000000000000~1111111111111111,即E000H~FFFFH。
•采用地址译码器的多片程序存储器的扩展(译码法)
例3 要求用2764芯片扩展8031的片外程序存储器,分配的地
21×210 = 211
地址空间: A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最低地址: 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0000H 07FFH
最高地址: 1
MCS-51单片机寻址范围:64KB
26×210 = 216即16位地址线
地址空间: A15A14A13A12A11A10A9A8A7··A0 单片机 ·· ·· × × × × × A10A9A8A7··A0 6116 ·· ·· 2KB
25 = 32
上式中:“×”表示0或1。
即单片机地址空间中包含有32个2KB。某片6116占据的是哪 2KB不能确定——地址浮动。 只有限定A15··A11的取值才能确定6116在系统中的地址 ·· ·· 范围。如,P2.5 = 1 ,选中6116的/CS线。设P2.7 P2.5 P2.4 P2.3 假定全为1
例2 使用两片2764扩展16 KB的程序存储器,采用线选法选
中芯片。扩展连接图如图所示。以P2.7作为片选,当P2.7=0时,
选中2764(1);当P2.7=1时,选中2764(2)。因两根线(A13、A14)
未用,故两个芯片各有22=4个重叠的地址空间。它们分别为
用两片2764 EPROM的扩展连接图
则: 6116地址范围是B800H ~ BFFFH。

MCS51单片机原理及应用实验指导书

MCS51单片机原理及应用实验指导书

《MCS51单片机原理及应用》实验指导书唐山学院电工电子实验教学中心年月前言一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计技术。

3.提高应用计算机的能力及水平,提高逻辑思维及动手能力。

二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(见下图0-1),其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196单片机的扩展实验系统。

计算机和单片机实验开发系统之间是通过RS232串行接口进行通信的。

图0-1 单片机原理实验设备单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24键键盘、六位LED数码管显示、A/D及D/A转换芯片、简单输出口2个、简单输入口1个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。

在计算机软件的控制下可完成单片机基本实验及综合设计性实验项目。

所有的MCS51单片机原理及应用课程实验都是在这套实验系统上完成的。

三.对参加实验学生的要求1.阅读实验指导书,复习与实验有关的理论知识,明确实验目的,了解内容和方法。

2.按实验指导书要求进行接线和操作,经检查和指导老师同意后再通电。

3.在实验中注意观察思考,记录有关数据和程序,并由指导教师复查后才能结束实验。

4.实验后应断电并返回WINDOWS下关闭计算机,整理实验台,恢复到实验前的情况。

5.认真写实验报告,按规定格式写出程序流程图、程序、并分析实验结果、完成思考题等。

字迹要清楚,结论要明确。

爱护实验设备,遵守实验室纪律。

*注:本实验指导书适用于MCS51单片机原理及应用A、单片机原理及应用B等课程。

目录第一章MC51单片机原理及应用实验 (3)实验一P1口实验(验证性) (3)实验二外部中断实验(验证性) (5)实验三定时器实验 (7)实验四串行口实验--串并转换实验 (9)实验五数码显示实验 (11)实验六A/D转换实验 (13)实验七数字电子钟实验(综合性) (15)实验八D/A转换实验 (16)实验九简单I/O口扩展实验 (18)实验十步进电机实验 (20)实验十一直流电机实验 (22)实验十二PC机与单片机串行通信实验 (24)实验十三继电器与电子音响实验 (26)实验十四8255可编程并行接口实验 (28)实验十五键盘显示接口实验 (30)第二章单片机开发实验系统及TMSD调试程序 (32)第一节单片机开发实验系统 (32)第二节TMSD源语言调试程序简介 (35)第一章MCS51单片机原理及应用实验实验一P1口实验一.实验目的1.学习P1口的使用方法。

mcs-51系列单片机基本结构与工作原理



1)电源引脚VCC和VSS

VCC:40脚,电源端,+5V

VSS:20脚,接地端(GND)

2)时钟电路引脚

XTAL1:19脚,外接晶振输入引脚。

XTAL2:18脚,外接晶振输出引脚。

3)控制线引脚

共4根,其中3根为双功能

①RST/VPD :9脚,复位/备用电源。

RST---通过外接复位电路实现上电复位或按键复位。
直接寻址 寄存器寻址
(4)MOV 60H,@R1 直接寻址 寄存器间接寻址
表2-2 特殊功能寄存器SFR的名称及地址(一)
§ MCS-51的扩展应用
▪ 一、单片机Байду номын сангаас展的基本概念 ▪ 1、单片机最小系统:使单片机运行的最少器件构成的 ▪ 系统,就是最小系统。 ▪ 无ROM芯片:8031 必须扩展ROM,复位、晶振电路 ▪ 有ROM芯片:89C51等,不必扩展ROM,只要有复位、 ▪ 晶振电路 ▪ 2、扩展使用的三总线:
▪ 清零,用来选择8051的工作寄存器区。其选择方法见表2-1
▪ OV、( PSW.2)溢出标志位。当带符号数运算(加法或减法)结果超 ▪ 出范围(-127-+127)时,有溢出,OV=1;否则OV=0。 ▪ --、( PSW.1)用户定义标志位。 ▪ P、( PSW.0)奇偶校验位。在每个指令周期由硬件按累加器A中“1”的 ▪ 个数为奇数或偶数而为“1”或“0”。因此,P可用指示操作结果(累加器
direct
8 位内部RAM单元的地址
#data:
指令中的8 位常数。
#data16
指令中的16位常数。

《MCS51系列单片机》PPT课件


P0口经地址锁存器——A0~RAD7 ; P2.0~P2.O4—E—AW8R~A12 。
控制线:ALE接373的LE, 接RAM的 、 接RAM的 片选 , P2.5—— 。CE
,W用E线选法实现
6
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单 元开始的16个数据,传送片外数据存储器0000H开始的单元中。
; 片内待输出的数据送累加器A
MOVX @DPTR, A
; 数据输出至数据存储器6264
INC R0
INC DPTR
; 修改数据指针
DJNZ R7, AGAIN
; 判断数据是否传送完成
SJMP $
END
7
MCS-51单片机扩展外部存储器
1# 2764, ຫໍສະໝຸດ # 2764,4.2.3 MCS-51对外部存储器的扩展
; 查询等待打印机
MOV DPTR, #7FFCH ; 指向A
MOV A, @R1
; 取RAM
MOVX @ DPTR, A
; 数据输出到8255A
INC R1
; RAM地址加1
MOV DPTR, #7FFFH ; R0指向控制口
MOV A, #01H
; PC0
MOVX @ DPTR, A
; PC0=0, 产生STB的下降沿
3
3.典型扩展电路 MCS-51外扩存储器时应考虑: (1)锁存器的选择与连接; (2)片选信号产生的方法,编址电路设计; (3)存储器的选择与连接。 访问程序存储器的控制信号: ALE ——地址锁存信号 PSEN ——片外程序存储器读信号 EA ——片内/外程序存储器访问选择信号, EA=0:访问片外;EA=1:访问片内。

第8章 单片机存储器扩展


译码法的另一个优点是若译码器输出端留 有剩余端线未用时,便于继续扩展存储器或I/O 口接口电路。
译码法和线选法不仅适用于扩展存储器(包 括外RAM和外ROM),还适用于扩展I/O口(包括各 种外围设备和接口芯片)。
译码有两种方法:部分译码法和全译码法。
部分译码:存储器芯片的地址线与单片机系统的地址线顺 次相接后,剩余的高位地址线仅用一部分参加译码。部分 译码使存储器芯片的地址空间有重叠,造成系统存储器空 间的浪费。 部分译码法的一个特例是线译码。所谓线译码就是 直接用一根剩余的高位地址线与一块存储器芯片的片选 信号CS相连,同时通过非门与另一块存储器芯片的片选 信号CS相连。 全译码:存储器芯片的地址线与单片机系统的地址线顺次 相接后,剩余的高位地址线全部参加译码。这种译码方法 存储器芯片的地址空间是唯一确定的,但译码电路相对复 杂。
2 2764
8031
CE GND
EA Vss
上图为8XX51单片机扩展单片程序存储器2764的电路 图。
其8个重叠的地址范围为如下: 0000000000000000~0001111111111111,即:0000H~1FFFH; 0010000000000000~0011111111111111,即:2000H~3FFFH; 0100000000000000~0101111111111111,即:4000H~5FFFH; 0110000000000000~0111111111111111,即:6000H~7FFFH; 1000000000000000~1001111111111111,即:8000H~9FFFH; 1010000000000000~1011111111111111,即:A000H~BFFFH; 1100000000000000~1101111111111111,即:C000H~DFFFH; 1110000000000000~1111111111111111,即:E000H~FFFFH。

MCS-51系列单片机


外部程序存储器读
外部数据存储器读
MCS-51单片机的指令时序 单片机的指令时序
定时/计数器
T/C的控制寄存器
工作方式选择:TMOD
启停控制:TCON
T/C方式0,1(M1M0=00,01)
普通T/C模式
– – – – 定时:C/T=0 计数:C/T=1 13位计数模式:TH+TL低5位 16位计数模式:TH+TL
定时/计数器1不能工作在方式3,此时它可以处在其他方式(0/1/2).
串口通信
4种工作方式
– SM0,SM1:方 式控制
支持多机通信
– SM2:多机通信 控制位
串口通信工作方式
方式0:8bits同步工作方式
– 接收,发送均通过RXD – TXD用于发送同步脉冲 – 波特率固定
方式1:10bits异步方式
单片机应用 参考书:《微型计算机技术及应用》,清华大学出版社, 戴梅萼等
背景
单片机
– 在一个芯片中集成了CPU,ROM,RAM,T/C, I/O等. – 主要用于控制等领域.
我国的单片机年容量已达1-3亿片,且年增 长约16%
– 但相对于世界市场,我国的占有率还不到1%.
体系结构
CISC结构
– 应用:控制关系较复杂的场合,如通讯产品,工业控 制系统
RISC结构
– Microchip的PIC系列,Zilog的Z86系列,Atmel的 AT90S系列,韩国三星公司的KS57C系列4位单片机 – 应用:控制关系较简单的小家电
PIC单片机
初档8位单片机:PIC12C5XXX/16C5X系列
特殊程序存储区
系统复位区
– 0000H—0002H:3B,上电后第一条指令
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.4 I/O接口扩展概述扩展I/O接口与扩展存储器一样,都属于系统扩展的内容。

11.4.1 扩展的I/O接口功能扩展的I/O接口电路主要应满足以下功能要求。

1.实现和不同外设的速度匹配相对于单片机的速度而言,大多数外设的速度很慢,无法和微秒量级的单片机速度相比。

单片机在与外设间进行数据传送时,只有在确认外设已经为数据传送做好准备的前提下才能进行数据传送。

外设是否准备好,就需要I/O 接口电路与外设之间传送状态信息,以实现单片机与外设之间的速度匹配。

【例如ADC0809的EOC引脚、以及LCD1602的BUSY状态,一般慢速的设备需要查询某种状态】2.输出数据锁存与外设比,单片机的工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。

所以在扩展的I/O接口电路中应有输出数据锁存器,以保证输出数据能为慢速的接收设备所接收。

3.输入数据三态缓冲数据总线上可能“挂”有多个I/O芯片,为使传送数据时不发生冲突,只允许当前时刻正在接收数据的I/O接口使用数据总线,其余的I/O接口应处于隔离状态【高阻】,为此要求I/O接口电路能为数据输入提供三态缓冲功能。

【实际上片选信号CS为低时,打开三态门,为高电平时,三态门为高阻】11.4.2 I/O端口的编址介绍I/O端口编址之前,首先要弄清楚I/O接口和I/O端口的概念。

I/O接口是单片机与外设间的连接电路的总称。

I/O端口(简称I/O口)是指I/O接口电路中具有单元地址的寄存器或缓冲器。

一个I/O接口芯片可以有多个I/O端口,如数据口、命令口和状态口。

当然,并不是所有的外设都一定需要3种端口齐全的I/O接口。

每个I/O接口中的端口都要有地址,以便AT89C51通过读写端口来和外设交换信息。

常用的I/O端口编址有两种方式,独立编址方式与统一编址方式。

1.独立编址I/O端口地址空间和存储器地址空间分开编址。

优点是I/O地址空间和存储器地址空间相互独立,界限分明。

但需要设置一套专门的读写I/O端口的指令和控制信号。

【程序和数据存储器采用独立编址,但I/O一般不采用这样方式】2.统一编址把I/O端口与数据存储器单元同等对待。

I/O端口和外部数据存储器RAM统一编址。

因此外部数据存储器空间也包括I/O端口的地址在内。

优点是不需专门的I/O指令。

缺点是需要把数据存储器单元地址与I/O 端口的地址划分清楚,避免数据冲突。

11.4.3 I/O数据的传送方式为了实现和不同外设的速度匹配,必须根据不同外设选择恰当的I/O数据传送方式。

I/O数据传送方式有:同步传送、异步传送和中断传送。

1.同步传送同步传送又称无条件传送。

当外设速度和单片机的速度相比拟时,可采用同步传送方式,典型的同步传送是单片机和外部数据存储器之间的数据传送。

2.查询传送又称有条件传送(也称异步式传送)。

通过查询外设是否“准备好”的状态,再进行数据传送。

优点是通用性好,硬件连线和查询程序简单,缺点是工作效率较低。

3.中断传送为了提高单片机和外设之间数据传输的工作效率,通常采用中断传送方式,来实现I/O数据的传送。

单片机只有在外设准备好后,才中断主程序的执行,进入与外设数据传送的中断服务子程序,进行数据传送。

中断服务完成后又返回主程序断点处继续执行。

采用中断方式可大大提高单片机的执行效率。

11.4.3 简单I/O口扩展总线扩展驱动:当单片机外接芯片较多时,如果超出总线负载能力,必须加总线驱动器。

单向驱动器74LS244、 74LS245用于地址总线驱动;双向驱动器74LS245用于数据总线驱动。

通常通过数据缓冲器、锁存器来扩展简单I/O接口。

例如:74LS373、74LS244、74LS273、74LS245等芯片都可以作简单I/O扩展。

实际上,只要具有输入三态、输出锁存的电路,就可以用作I/O口扩展。

下图是利用74LS273和74LS244扩展的简单I/O口,其中74LS373扩展并行输出口,74LS244扩展并行输入口。

74LS273是一个带输出三态门的8位锁存器,8个输入端D0~D7,8个输出端Q0~Q7,G为数据输入锁存选通信号。

当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。

OE为输出允许端,低电平时把锁存器中的内容通过输出端输出。

74LS244是单向数据缓冲器,带两个控制端1G和2G ,当它们为低电平时,输入端D0~D7的数据输出到Q0~Q7。

11.4.4 利用74LSTTL电路扩展并行I/O口在单片机应用中,有些场合需要降低成本、缩小体积,这时采用TTL电路、CMOS电路锁存器或三态门电路也可构成各种类型的简单输入/输出口。

如图11-11所示为一个利用74LS244和74LS273芯片,将P0口扩展成简单的输入/输出口的电路。

74LS244和74LS273的工作受AT89C51的P2.0、WR、RD3条控制线控制。

74LS244作为扩展输入口,8个输入端分别接8个按钮开关。

74LS273是8D锁存器扩展输出口,接8个LED发光二极管,以显示8个按钮开关状态。

图11-11如果要实现K0~K7开关的状态通过L0~L7发光二极管显示,则相应的C 语言编程序段为:#include <absacc.h> //定义绝对地址访问……unsigned char i;i=XBYTE[0xfeff];XBYTE[0xfeff]=i;……当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后,其相应位为“0”,然后再将口线的状态经74LS273输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。

该电路的工作原理如下:当P2.0=0,RD=0(WR=1)时,选中74LS244芯片,此时若无按钮开关按下,输入全为高电平。

当某开关按下时则对应位输入为“0”,74LS244的输入端不全为“1”,其输入状态通过P0口数据线被读入AT89C51片内。

当P2.0 = 0,WR=0(RD= 1)时,选中74LS273芯片,CPU通过P0口输出数据锁存到74LS273,74LS273的输出端低电平位对应的LED发光二极管点亮。

总之,在图11-11中只要保证P2.0为“0”,其它地址位为“0”或“1”都可以。

如地址也可用F E FFH(无效位全为“1”),或0000H(无效位全为“0”)。

【注:74LS28为2输入或非门】#include <reg51.h>#include <absacc.h>#define x244_add XBYTE[0xfeff] void delay(unsigned int ms) {unsigned char i;while(ms--)for(i=0;i<120;i++);}void main(){unsigned int num=1;while(1){XBYTE[0xfeff]=num;delay(500);num=num*2;if(num==256) num=1;}}#include <reg51.h>#include <absacc.h>#define x244_add XBYTE[0xfeff]void main(){ unsigned char num;while(1){ num=XBYTE[0xfeff];P1=num;}}【注:DSW1用DIPSWC_8器件】#include <reg51.h>#include <absacc.h>void delay(unsigned int ms){ unsigned char i;while(ms--)for(i=0;i<120;i++);}void main(){ unsigned char num;while(1){ num=XBYTE[0xfeff];delay(500);XBYTE[0xfeff]=num;}}如果把P2.0改成P2.7,则只要口地址改为7FFFH就可以。

void main(){unsigned char num;while(1){num=XBYTE[0x7fff];delay(500);XBYTE[0x7fff]=num;}}把CAP88例题用74LS273、74LS139和I/O口扩展的方式进行改写#include <reg51.h>#include <absacc.h>unsigned char code zixing[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void Delay(unsigned int ms){ unsigned char i;while(ms--)for(i=0;i<120;i++);}void Display4(unsigned int d){ P1 = 0xfe;XBYTE[0x00ff]= zixing[d%10]; //个位Delay(2);P1 = 0xfd;XBYTE[0x00ff]= zixing[(d/10)%10]; //十位Delay(2);P1 = 0xfb;XBYTE[0x00ff]= zixing[(d/100)%10]; //百位Delay(2);P1 = 0xf7;XBYTE[0x00ff]= zixing[d/1000]; //千位Delay(2);}void Display8(unsigned long dd){ unsigned int high4,low4;high4=dd/10000;low4=dd%10000;P1 = 0xfe; // fe=1111 1110XBYTE[0x03ff]= zixing[low4%10]; //最低位Delay(2);P1 = 0xfd; // fd=1111 1101 XBYTE[0x03ff]= zixing[(low4/10)%10];Delay(2);P1 = 0xfb;XBYTE[0x03ff]= zixing[(low4/100)%10];Delay(2);P1 = 0xf7;XBYTE[0x03ff] = zixing[low4/1000];Delay(2);P1 = 0xef;XBYTE[0x03ff] = zixing[high4%10];Delay(2);P1 = 0xdf;XBYTE[0x03ff]= zixing[(high4/10)%10];Delay(2);P1 = 0xbf;XBYTE[0x03ff]= zixing[(high4/100)%10];Delay(2);P1 = 0x7f;XBYTE[0x03ff]= zixing[high4/1000]; //最高位Delay(2);}void main(){ unsigned int x;unsigned long y;x=3659;y=45679123;while(1){ Display4(x);Display8(y);}}54/74LS244八态缓冲器/线驱动器/线接收器(3S,两组控制)当1G、2G为高时,Y为高阻抗;当1G、2G为低时,Y=A。

相关文档
最新文档