版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五
外部中断与串行通信项目描述 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川广安武胜县招聘社区工作者62人考试参考题库及答案解析
- 2026新疆和田民丰县丝路尼雅文化传媒旅游投资有限公司招聘7人考试备考试题及答案解析
- 2026贵州遵义市正安县县直机关事业单位面向全县考调54人考试参考题库及答案解析
- 2026浙江杭州市西湖区青少年宫诚聘教职工(非事业)10人笔试备考试题及答案解析
- 2026上半年四川阿坝州汶川县人民医院(阿坝州第二人民医院)考核招聘专业技术人员5人笔试参考题库及答案解析
- 2026贵州桐宸酒业有限公司招聘2人备考题库及参考答案详解一套
- 2026西北工业大学动力与能源学院陕西省“四主体一联合”空天动力工业软件校企联合研究中心招聘1人考试模拟试题及答案解析
- 2026陕西渭南市韩城市事业单位进校园招聘高层次人才34人备考题库附答案详解(综合题)
- 2026青岛科技大学招聘人员14人备考题库及完整答案详解
- 2026上海音乐学院附中工作人员公开招聘备考题库(2026年第一批)有完整答案详解
- 2026贵州省住房资金管理中心招聘工作人员1人备考题库含答案详解(考试直接用)
- 2026储能入市背景下的投资测算工具设计逻辑深度研究报告
- 2026四川省阿坝州州级事业单位考试调动37人重点基础提升(共500题)附带答案详解
- 《药理学》课件-第十章 肾上腺素能系统药物
- 甘肃卷2024年高考真题化学试题(含答案)
- 第6课-祖国怀抱最温暖《可爱的中国》新疆地方教材(小学版)教案
- DB35T 1585-2021 电梯使用管理单位安全管理规则
- 国开(内蒙古)2024年《创新创业教育基础》形考任务1-3终考任务答案
- 《机床数控技术 第4版》课件全套 李郝林 第1-9章 概述、数控加工程序编制 -自由曲线及曲面的加工
- JJG 693-2011可燃气体检测报警器
- 《基本乐理》课件-第五课 和弦
评论
0/150
提交评论