2单片机IO口控制实验实验报告.docx
- 文档编号:16634841
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:20
- 大小:1.28MB
2单片机IO口控制实验实验报告.docx
《2单片机IO口控制实验实验报告.docx》由会员分享,可在线阅读,更多相关《2单片机IO口控制实验实验报告.docx(20页珍藏版)》请在冰点文库上搜索。
2单片机IO口控制实验实验报告
单片机IO口控制实验
一、实验目的
1、熟悉MCS-51的I/O结构;
2、掌握MCS-51I/O的使用方法;
3、掌握MCS-51的中断机制。
二、实验原理
1、MCS-51单片机的硬件结构片内结构:
2、内部数据存储器(字节地址为00H~0FH):
3、SFR的名称及其分布:
4、I/O端口地址:
5、P0~P3端口功能总结:
(1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。
P0口的MUX的一个输入端为“地址/数据”信号。
P2口的MUX的一个输入信号为“地址”信号。
(2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。
原因:
P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此,
P0口的输出缓冲器应为三态门。
P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。
P1~P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的-准双向口。
(3)P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
6、P0口结构及特点:
⑴P0口结构与运作
1个输出锁存器,用于进行输出数据的锁存;
2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。
⑵P0口的特点
P0口是一个双功能的端口:
地址/数据分时复用口和通用I/O口;
具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口;
为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;
单片机复位后,锁存器自动被置1;
一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;
P0口能驱动8个TTL负载。
7、P1口的结构及特点:
⑴P1口结构与运作
一个数据输出锁存器,用于输出数据的锁存;
两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;
数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。
⑵P1口的特点
P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。
作为输出口时,不需要再在片外拉接上拉电阻;
P1口读引脚输入时,必须先向锁存器写入1,其原理与P0口相同;
P1口能驱动4个TTL负载。
8、P2口结构及特点:
⑴P2口结构与运作
一个数据输出锁存器,用于输出数据的锁存;
两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;
一个多路开关MUX,它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;
数据输出驱动电路由非门M,场效应管VT和片内上拉电阻R组成。
⑵P2口的特点
P2口用作高8位地址输出线应用时,与P0口输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。
当P2口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。
作为通用I/O口使用时,P2口为准双向口,功能与P1口一样。
P2口能驱动4个TTL负载。
9、P3口结构及特点:
⑴P3口结构组成
一个数据输出锁存器,用于输出数据的锁存;
3个三态输入缓冲器,BUF1用于读锁存器,BUF2、BUF3用于读引脚和第二功能数据的缓冲输入;
数据输出驱动电路,由与非门M,场效应管VT和片内上拉电阻R组成。
⑵P3口的特点
P3口内部有上拉电阻,不存在高阻输入状态,是一个准双向口;
P3口作第二功能的输出/输入或作通用输入时,均需将相应的锁存器置1。
实际应用中,由于复位后P3口锁存器自动置1,已满足第二功能运作条件,所以可以直接进行第二功能操作;
P3口的某位不作为第二功能使用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口使用;
作通用输出/输入口使用时,输入信号取自缓冲器BUF2的输出端,作第二功能使用时,输入信号取自缓冲器BUF3的输出端;
P3口能驱动4个TTL负载。
10、IO口锁存器操作:
IO口锁存器值与IO口值不一定一致,应采用读锁存器-修改-写锁存器来进行IO控制。
11、MCS-51的中断系统:
单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。
对事件的整个处理过程,称为中断处理(或中断服务)。
12、五个中断请求源:
(1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。
(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。
(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。
(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。
(5)串行口中断请求,中断请求标志为TI或RI。
由特殊功能寄存器TCON和SCON的相应位锁存。
13、复位及中断入口地址表:
14、MCS-51中断系统的结构:
5个中断请求源;两个中断优先级,可两级嵌套。
15、中断控制:
a、中断允许寄存器IE
CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。
字节地址为A8H,可位寻址。
格式如下:
IE对中断的开放和关闭为两级控制
总的开关中断控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。
IE中各位的功能如下:
(1)EA:
中断允许总控制位
0:
CPU屏蔽所有的中断请求(CPU关中断);
1:
CPU开放所有中断(CPU开中断)。
(2)ES:
串行口中断允许位
0:
禁止串行口中断;
1:
允许串行口中断。
(3)ET1:
定时器/计数器T1的溢出中断允许位
(4)EX1:
外部中断1中断允许位
(5)ET0:
定时器/计数器T0的溢出中断允许位
(6)EX0:
外部中断0中断允许位。
MCS-51复位后,IE清0,所有中断请求被禁止。
若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。
改变IE的内容,可由位操作指令来实现,即:
SETBbit;
CLRbit。
b、中断优先级寄存器IP
两个中断优先级,可实现两级中断嵌套。
归纳为两条基本规则:
(1)低优先级可被高优先级中断,反之则不能。
(2)同级中断不会被它的同级中断源所中断。
若CPU正在执行高优先级的中断,则不能被任何中断源所中断。
中断优先级寄存器IP,其字节地址为B8H。
IP各个位的含义:
(1)PS——串行口中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
(2)PT1——定时器T1中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
(3)PX1——外部中断1中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
4)PT0——定时器T0中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
(5)PX0——外部中断0中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
由软件可改变各中断源的中断优先级。
16、INT0/1相关控制位:
IT0/IT1——触发方式选择位
0:
低电平触发方式,-INT0/1低电平时IE0/IE1=0,
INT0/1高电平时IE0/IE1=1。
1:
下降沿触发方式,检测到下降沿,则使IE0/IE1=1,CPU相应中断后自动清除IE0/IE1。
三、实验内容
(1)编写程序,用P1.0~P1.2口连LED,查询拨盘开关SW1的状态来控制LED的亮和灭(P1.7口接SW1)。
(2)编写程序,用P1.0~P1.2口连LED,用按键开关KEY1作为外部中断输入INT0控制LED的亮和灭。
(每按一次按键LED状态取反一次)。
四、protel电原理图
1、
2、
五、程序流程图
1、
YN
2、
主程序流程图
中断程序流程图
中断入口
保护现场
恢复现场
中断返回
LED点亮程序
六、程序清单
1、
ORG8000H;硬件仿真程序
LJMPMain
ORG80F0H;硬件仿真调试程序
Main:
JBP1.7,SETLED;按键没有按下时,跳转到SETLED
CLRLED:
CLRP1.0
CLRP1.1
CLRP1.2;P1.0~P1.2清零
SJMPMain
SETLED:
SETBP1.0
SETBP1.1
SETBP1.2;P1.0~P1.2置1
SJMPMain
;
END
2、
ORG8000H
LJMPMain
ORG8003H
LJMPINT0;跳转到中断服务程序
ORG8100H
Main:
CLRP1.0;给LED一个初态,熄灭
CLRP1.1
CLRP1.2
BACK1:
JBP3.2,BACK1;等待Key1中断进入,INT0引脚变低
SETBTR0;为T0的启动做准备
SETBIT0;指定INT0为边沿触发方式
SETBEX0;开放INT0中断
SETBEA;开放CPU的中断
SJMP$;等待中断
ORG8200H;INT0中断服务程序
INT0:
CPLP1.0;LED状态取反一次
CPLP1.1
CPLP1.2
RETI
;
END
七、实验记录
1、在keil环境下编辑汇编程序,且调试无差错。
将程序下载到单片机后,程序运行顺利,实现了预期的功能,即随着开关S0的状态改变,LED灯D0、D1、D2点亮或熄灭。
2、在keil环境下编辑汇编程序,且调试无差错。
将程序下载到单片机后,程序运行顺利,实现了预期的功能,即每按一次按键S0,LED灯D0、D1、D2状态取反一次。
八、实验分析
本次实验较为简单,进行的也很顺利,实现了预期的功能。
在试验过程中也加深了对I//O口和外部中断尤其是INT0的理解。
在中断实验中,进一步理解了中断服务程序的结构,即保护现场、处理中断的程序、恢复现场、中断返回。
其中RETI的作用有两个,弹出PC和清除中断服务标志(给“优先级生效”触发器清零)。
在编写服务中断程序时,有些地方需要注意:
中断程序入口处的处理;在保护现场和恢复现场时可以关闭CPU中断,一面造成混乱。
实验中也出现了一些问题,在原理图的设计上,LED缺少驱动电路,同时按键开关缺少下拉电阻,导致悬空,这些都是在以后的实验中值得注意的地方,需要改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 IO 控制 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)