第5章MCS51单片机的输入输出通道接口
- 格式:ppt
- 大小:760.50 KB
- 文档页数:56


少年易学老难成,一寸光阴不可轻 - 百度文库
1 MCS-51单片机的引脚和输入输出端口
MCS-51有4组8位I/O口,共占用32个引脚:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口。
P0口(P0.0~P0.7)占用32~39脚;
P1口(P1.0~P1.7)占用1~8脚;
P2口(P2.0~P2.7)占用21~28脚;
P3口(P3.0~P3.7)占用10~17脚;
这四个口的主要功能如下:
(1) P0 口是一个8位不带内部上拉电阻的漏极开路型准双向I/O口,因此该口输出时需外接上拉电阻,而P1 、P2 和P3口都是带内部上拉电阻的8位双向I/O口。
(2) 在访问片外ROM时,P0口分时兼作数据总线和低8位地址线;P2口作高位地址线。
(3) 内部带程序存储器的芯片,在EPROM编程和程序验证时,P1输入低8位地址,P2输入高8位地址,P0输入指令代码。(注:P1、P2作输入口时,必须要使每位先置“1”,才能读入外部数据。)
(4) P3口除作双向I/0口外还兼有专用功能。
P0口和P2口:
图1为P0口和P2口其中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能像P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。
P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为216=64k,所以8051最大可外接64kB的程序存储器和数据存储器
第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)
1. 试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?
(1)MOV A,#19H
ADD A,#66H
(2)MOV A,#5AH
ADD A,#6BH
2. 已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?
(1) ADDC A,R0, (2)ADDC A,31H
(3) ADDC A,@R0, (4) ADDC A,#85H
3. 已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。
4. 试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?
CLR C
MOV A,#52H
SUBB A,#0B4H
5. 已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?
(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R1
6. 试写出能完成85+59的BCD加法程序,并对工作过程进行分析。
7. 已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。
8. 已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?
(1) MOV A, #0FFH ANL A, R0
(2) MOV A, #0FH ANL A, 30H
(3) MOV A, #0F0H ANL A, @R0
(4) MOV A, #80H ANL 30H, A
编制mcs51单片机汇编语言程序:测量引脚-INT1(P3.3)输入的正脉冲宽度
编制mcs51单片机汇编语言程序:测量引脚/INT1
(P3.3)输入的正脉冲宽度
假设正脉冲宽度不超过定时器的值
设T1方式1,利用门控位GATE1来启动定时器。定时器的值乘以T即为脉冲宽度。
ORG 1000H
START:MOV TMOD,#90H
MOV TH1,#00H
MOV TL1,#00H
Wait0:JB P3.3,Wait0 ;等待P3.3低电平
SETB TR1 ;软件启动定时器
Wait1:JNB P3.3,Wait1 ;等待P3.3高电平,上升沿启动定时器
Wait2:JB P3.3,Wait2 ;等待P3.3低电平,下降沿关闭定时器
第5章数字输入输出接口设计
243 第5章 数字输入输出系统设计
本章习题
5-1为什么要进行逻辑电平变换,有哪些常用逻辑电平?变换的原则(什么情况下需要
逻辑变换)是什么?
答:
1、不同逻辑电平之间如果不进行逻辑电平的变换,由于逻辑电平的不一致,使发送的0
和1信息到达接收端无法正确识别0和1逻辑信息,即无法进行正确地相互交互,因此对于
不同逻辑电平必须进行逻辑电平的转换方能连接。
2、常见逻辑电平转换的方法如下:
(1)限流电阻加钳位二极管方式进行同相逻辑电平转换接口
(2)用电阻与三极管构成的逻辑电平转换接口
(3)仅用两只电阻成的逻辑电平转换接口
(4)用专用逻辑电平转换芯片进行逻辑电平转换
(5)采用光电耦合器实现逻辑电平隔离转换
当需要转换电平的引脚比较多时,可以采用多路逻辑电平转换专用芯片来完成电平的转
换,它的特点是转换电平连接简单,使用方便可靠。
采用光耦起到电气隔离和逻辑电平转换双重功能。
3、转换原则
两个不同逻辑器件A和B,必须满足以下原则:
VOH(A)≥VIH(B)且VOL(A)≤VIL(B)
A和B才能正确匹配,已经知道VOL(A)≤VIL(B)是现有器件都具备的,因此仅考虑VOH(A)
≥VIH(B)。如果不能满足这一条件,就需要进行逻辑电平的转换。
5-2当输出电平高于输入电平时,有几种逻辑转换方法?如何转换?
答:输出端的电平高于输入端的电平时,可采用多种转换方式:
(1)用限流电阻加钳位二极管方式进行逻辑电平的转换 54
R
47KC20pD1
D2输出输入VDDVCC
VSSVCC
VSSVDD>VCC
VSSVSS
(2)用电阻与三极管构成的逻辑电平转换 嵌入式系统原理及应用(第三版 )
244
244 56ABC
Title
NumberRevisionSize
B
Date:10-Mar-2013Sheet of File:E:\嵌入式工程师考试\嵌入式系统工程师考试教材用图.DDBDrawn By:R1