实验四、中断实验
一、实验目的
1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。 2、掌握中断响应及处理的编程方法。
二、实验原理
MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。 如表:
IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。
三、实验电路
电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、 LED-YELLOW、RES、TRAFFICLIGHTS
四、实验内容
参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真; 2、程序下载到单片机实验板上验证; (实验板数码管的驱动程序见附件)。 五、程序流程图
六、实验预习
1、学习外部中断的有关知识。 2、提前编写程序,写出预习报告。
七、实验报告
1、总结出实验的详细步骤。 2、写出调试正确的程序及框图。
实验五 串行通讯实验
一、实验目的
1.了解MCS-51单片机串行口(UART)的结构,PC机串行通讯的基本
要求,串行通讯的原理和数据交换过程。
2.掌握单片机与PC机间进行串行通讯的编程方法。
3.了解实现串行通讯的硬件环境,数据格式的协议,数据交换的协议。 二、实验原理
MSC-51和AT89系列单片机中使用的是是全双工的UART(异步串行通信接口)。UART有两种工作状态:同步串行通信状态和异步串行通信状态。
相关的寄存器要有SBUF,SCON,PCON。
SBUF 数据缓冲寄存器 这是一个可以直接寻址的串行口专用寄存器。SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。
SCON 串行口控制寄存器 通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。它的各个位的具体定义如下:
(MSB) SM0 SM1 SM2 REN TB8 RB8 TI (LSB) RI SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。
SM0 SM1 模 式 0 0 1 0 1 0 0 1 2 功 能 同步移位寄存器 8位UART 9位UART 波特率 fosc/12 可变 fosc/32或fosc/64 1
SM2在模式2、模式3中为多处理机通信使能位。在模式0中要求该位为0。
REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。REM是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那
1 3 9位UART 可变