单片机原理及应用项目化教程课件项目五 外部中断与串行通信_第1页
单片机原理及应用项目化教程课件项目五 外部中断与串行通信_第2页
单片机原理及应用项目化教程课件项目五 外部中断与串行通信_第3页
单片机原理及应用项目化教程课件项目五 外部中断与串行通信_第4页
单片机原理及应用项目化教程课件项目五 外部中断与串行通信_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

项目五

外部中断与串行通信项目描述 STC89C52单片机有两个外部中断输入引脚P3.2和P3.3,在P3.2引脚接一个独立按键,当按下按键时,触发外部中断,单片机的外部中断程序向PC机开始发送一个字符,利用串口调试助手在PC机的调试终端上出现程序中所设定的字符。STC89C52外部中断5.1.1外中断触发电路

硬件电路如下图所示,分析电路可知,当按键S1没有按下时由于上拉电阻的作用,P3.2端口为高电平,当按键按下以后,P3.2端口直接与地相接,因此P3.2端口为低电平,因此每按一次按键S1,P3.2端口电平都会有一个由高到低的跳变,从而触发外部中断。STC89C52外部中断

我们的KST-51开发板上没有独立按键,因此须将4*4矩阵键盘电路做一些变动。若要将下图中的按键K1应用为上图中的S1,软/硬件需做如下变动:将Keyout1端口接低电平,即程序初始化时将P2.3端口输出低电平,此外,还需将KeyIn1端口(对应P2.4引脚)与P3.2引脚相连,在此项目操作之前,大家需要用一根跳线将P2.4引脚与P3.2引脚相连。STC89C52外部中断5.1.2外中断初始化

外部中断的初始化主要是对外部中断相关的寄存器初始化,由第四章中断的知识可知,与外部中断相关的寄存器有3个:TCON、IE、IP寄存器。(1)TOCN寄存器TCON中与外部中断有关的位有四位:IT0和IT1,IE0和IE1,IT0/IT1用于控制外部中0的触发方式,其含义如下: IT0(IT1)=1脉冲触发方式,下降沿有效。 IT0(IT1)=0电平触发方式,低电平有效。STC89C52外部中断IE0/IE1:外部中断申请标志位(由硬件自动置位,中断响应后转向中断服务程序时,由硬件自动清0)IE0/IE1=0:没有外部中断申请;IE0/IE1=1:有外部中断申请。

本项目将P3.2引脚(对应外部中断0)的中断输入信号设置为下降沿触发,因此IT0应置为1,由于TCON寄存器可以位寻址,为了不影响其它位的设置,可用IT0=1(或汇编语言SETBIT0)来设置,或者用逻辑或操作TCON|=0x01来实现。STC89C52外部中断(2)IE寄存器

EAESET1EX1ET0EX0IE寄存器中与外部中断0有关的位有两位:中断总开关EA和外部中断0中断允许位EX0,要开放外部中断0的中断,必须将EA和EX0都置1,用位操作指令(EA=1;EX0=1)或用逻辑操作指令IE|=0x81。STC89C52外部中断(3)中断优先级控制寄存器IP

PSPT1

PX1

PT0PX0IP寄存器中与外部中断0相关的位为PX0,可通过语句PX0=1将外部中断0设置为高优先级,通过语句PX0=0将外部中断0设置为低优先级。本项目中只有一个中断,因此不需要对其优先级设置,单片机复位后IP=0x00,所有中断优先级都默认为低优先级。综上所述,本项目外部中断的初始化程序为:

IT0=1; EA=1; ET0=1;串行通信5.2.1串行口介绍1、串行通信与并行通信

在微型计算机中,通信(数据交换)有两种方式:并行通信和串行通信。

并行通信——是指计算机与I/O设备之间通过多条传输线交换数据,数据的各位同时进行传送。

串行通信——是指计算机与I/O设备之间仅通过一条传输线交换数据,数据的各位是按顺序依次一位接一位进行传送。串行通信二者比较:

串行通信的数据传输速率相对较低,但通信距离长,可以从几米到几公里,因此串行适用于长距离而速度要求不高的场合。电脑上的9针座(也称串口)就是串行通信。

并行通信的传输速率高,但传输距离短,一般不超过30米,而且成本高(要采用多条数据线)。电脑输出数据到打印机采用的就是并行通信。串行通信2、串行通信的分类与制式(1)串行通信的分类

串行通信可以分为同步通信和异步通信两类。在单片机中,主要使用异步通信方式。(2)串行通信制式

根据信息的传送方向,串行通信可以进一步分为单工、半双工和全双工三种。

如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。

如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。

如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。串行通信3、同步通信与异步通信(1)同步通讯异步通信的概念

同步和异步都属于串行数据传送方式,但二者的传送格式有所不同。同步方式的一帧内含有很多数据位,而异步方式一帧内只含有几个数据位。如果要传送一大堆数据,同步方式只给这串数据进行一次外包装(即添加“头帧”、“尾帧”、“校验”帧),而异步方式在传送这串数据时则要对数据的每一个字节分别加以包装(即添加“头”位、“尾”位和校验)。

显然在相同的数据传输波特率下,同步方式比异步方式的传送速度快,但同步方式要求收发双方在整个事件传送过程中始终保持严格同步,这将增加硬件上的难度,而异步通信只要求每帧(字节)的传送中短时间保持同步即可,实现起来要容易得多。串行通信(2)同步、异步数据通信格式串行通信4、串行接口的结构(1)数据缓冲寄存器SBUF

两个SBUF,一个用于发送(只写);一个用于接收(只读)。映象地址均为99H。(2)数据发送与接收控制

发送控制器在波特率作用下,将发送SBUF中的数据由并到串,一位位地传输到发送端口;接收控制器在波特率作用下,将接收接收端口的数据由串到并,存入接收SBUF中。串行通信5、MCS-51的串行接口概述(1)有一个可编程全双工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)(2)管脚:TXD(P3.1)、RXD(P3.0)(3)可同时发送、接收数据(Transmit/Receive)(4)有四种工作方式,帧格式有8、10、11位。(5)波特率(Baudrate)可设置

波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。串行通信6.MCS-51串行接口寄存器(1)串行口数据缓冲器-----SBUF共2个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。(2)控制寄存器-----SCON串行通信SM0,SM1:串行口4种工作方式控制位。

=00:方式0,8位同步移位寄存器,其波特率为fosc/12;

=01:方式1,10位UART,其波特率为可变,由定时器控制;

=10:方式2,11位UART,其波特率为fosc/64或fosc/32;

=11:方式3,11位UART,其波特率为可变,由定时器控制。其中:fosc为系统晶振频率。RI,TI:串行口收/发数据中断标志位=0:没有串行口发送/接收中断申请;=1:有串行口发送/接收中断申请。RB8:在方式2、3中,用于存放收到的第9位数据;在双机通信中,作为奇偶校验;在多机通信中,用作区别地址帧/数据帧的标志。TB8:在方式2、3中,是要发送的第9位数据;在双机通信中,用于对接收到的数据进行奇偶校验;在多机通信中,用作判断地址帧/数据帧,TB8=0,为数据,TB8=1,为地址。REN:串行口接收允许控制位

=1:表示允许接收;

=0:禁止接收。SM2:串行口多机通信控制位,作为方式2、方式3的附加控制位。串行通信串行通信(3)电源及波特率选择寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可以位寻址,字节地址为87H。其格式如下表所示。SMOD为波特率选择位。SMOD:串行通信只用该位,为1时,波特率×2;为0时不变。串行通信7、STC89C52串行口的波特率(1)方式0和方式2

在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。在方式2中,波特率取决于PCON中的SMOD值,当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即:

串行通信(2)方式1

方式1的波特率是可变的,由定时器T1的计数溢出率决定。串行通信

当定时器T1做波特率发生器使用时,通常是工作在模式2,即自动重装载的8位定时器,此时TL1作计数用,自动重装载的值在TH1内。设计数的预置值(初始值)为X,那么每过256-X个机器周期,定时器溢出一次。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。溢出周期为:(3)方式3

方式3的波特率由定时器T1的计数溢出率决定,确定方法与工作方式1中的完全一样。串行通信(4)常用波特率及误差晶振频率MHz波特率b/sSMODTH1包装初值实际波特率误差12.0096001F9H89237%12.0048000F9H44607%12.0024000F3H24040.16%12.0012000E6H12020.16%11.0592192001FDH19200011.059296000FDH9600011.059248000EAH4800011.059224000F4H2400011.059212000E8H12000

由上表可以看出,当晶振频率为12MHz时,实际波特率与标准波特率之间存在一定误差,用串行口进行数据收、发时数据有时会出错。当晶振频率为11.0592MHz时,容易获得标准的波特率,并且没有误差,所以很多单片机系统都选用这个看起来“怪”的晶振频率。串行通信5.2.2串行口初始化

串行口初始化主要是对相关寄存器的初始化,主要包括SCON、PCON的设置以及波特率的设置,与波特率设置相关的寄存器为TMOD、TH1、TL1以及TCON。①SCON寄存器

本项目中设置串行口的工作方式为方式1(SM0,SM1=01),10位异步接收/发送,波特率可变,由定时器控制;允许串行口接收数据(REN位为1),其余位为默认设置。因此SCON初始化为0x50;②PCON寄存器波特率不倍增,SMOD为0,PCON初始化为0x0。串行通信③TMOD寄存器

设置定时器T1工作在方式2,自动重新装入计数初值的8位定时器/计数器,为串行通信提供波特率,因此TMOD初始化为0x20.④TH1、TL1寄存器

设置通信波特率为9600b/s,开发板上晶振为11.0592MHz,查表可得TH1、TL1的初值为0xFD。⑤TCON寄存器 TCON寄存器中只有一位TR1在此串行通信中用到,用于启动定时器T1,初始化为TR1=1。串行通信5.2.3串口助手使用说明

下载软件STC-ISP带有串口助手,在界面右边第三个选项卡,如下图所示。图中串口助手有三个区域:接收缓冲区(用于显示串口接收到的字符)、发送缓冲区(用于输入待发送的字符)、多字符串发送区(用于多个字符串循环发送)。在本项目中,按下P3.2端口按键后,单片机串口发送一个字符,并出现在接收缓冲区中。接收缓冲区发送缓冲区多字符串发送区串行通信

在使用串口助手之前需要进行一些相关设置,在S

温馨提示

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

最新文档

评论

0/150

提交评论