1、课题五课题五 单片机中断系统应用单片机中断系统应用任务任务1 简易电子计分器简易电子计分器任务任务2 方波信号发生器方波信号发生器任务任务3 简易频率计简易频率计任务任务4 主从呼叫器主从呼叫器课题五课题五 单片机中断系统应用单片机中断系统应用任务任务1 简易电子计分器简易电子计分器1了解单片机中断概念及工作过程。2掌握单片机外部中断相关寄存器的设置方法。3掌握单片机外部中断初始化过程、中断处理及应用。4能够设计并制作简易电子计分器。课题五课题五 单片机中断系统应用单片机中断系统应用在举行一些体育比赛时,如乒乓球、羽毛球、排球和篮球等球类比赛,经常会用到电子计分器来给参赛的每一支队伍进行计分。
2、多功能的电子计分器不仅可以显示比赛双方的分数,而且还可以显示获胜局数及倒计时等功能。课题五课题五 单片机中断系统应用单片机中断系统应用本任务主要完成对比赛选手的计分功能,使用两位LED数码管显示参赛者的得分信息,并手动实现加、减分功能。由于是两位计数显示,因此最大计数值为99,当超过99时,重新从0开始计数。具体控制要求如下:1单片机的P0口依次连接两位一体共阴数码管ag端,分别用于显示计数值的十位和个位;2单片机的P2口任选两个端口作为两位共阴数码管的位选端;课题五课题五 单片机中断系统应用单片机中断系统应用3单片机的P3口作为按键输入端,按键具体功能见下表:按键编号按键编号连接端口连接端口
3、按键功能说明按键功能说明K1P3.2()加分按键,计数值每次加1K2P3.3()减分按键,计数值每次减1K3RST复位按键,计数值归0INT0INT1课题五课题五 单片机中断系统应用单片机中断系统应用一、中断的概念一、中断的概念 执行主程序主程序继续执行 主程序断点中断请求中断响应执行中断处理程序中断返回当 CPU 正在处理某项事务时,如果外界或者内部发生了紧急事件,要求 CPU 暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程就成为中断中断。课题五课题五 单片机中断系统应用单片机中断系统应用二、中断源二、中断源 产生中断的请求源称为中
4、断源中断源。MCS-51单片机的中断源可分为两类:外部中断外部中断和内部中断内部中断。1.外部中断源外部中断源 外部中断0(INT0):来自 P3.2 引脚,采集到低电平或者下降沿时,产生中断请求。外部中断1(INT1):来自 P3.3 引脚,采集到低电平或者下降沿时,产生中断请求。课题五课题五 单片机中断系统应用单片机中断系统应用2.内部中断源内部中断源 定时器计数器0(T0):定时功能时,计数脉冲来自片内;计数功能时,计数脉冲来自片外 P3.4 引脚。发生溢出时,产生中断请求。定时器计数器1(T1):定时功能时,计数脉冲来自片内;计数功能时,计数脉冲来自片外 P3.5 引脚。发生溢出时,产
5、生中断请求。串行口串行口:为完成串行数据传送而设置。单片机完成接受或发送一组数据时,产生中断请求。MCS-51单片机内部有5个中断源,但对于8052系列的单片机内部则增加了一个定时计数器2(T2)的中断,即有6个中断源。课题五课题五 单片机中断系统应用单片机中断系统应用三、中断特殊功能寄存器三、中断特殊功能寄存器TCON(88H)位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0 IT0 和IT1外部中断0和1触发方式控制位 IT0(IT1)1 脉冲触发方式,下降沿有效;IT0(IT1)0 电平触发方式,低电平有效。IE0和IE1外部中
6、断0和1请求标志位1定时定时/计数器控制寄存器(计数器控制寄存器(TCON)课题五课题五 单片机中断系统应用单片机中断系统应用对脉冲触发方式的外部中断,CPU响应中断后硬件自动清除中断请求标志IE0和IE1,但对电平触发方式的外部中断,由于CPU响应中断速度较快,容易导致连续多次中断,因此,选择外部中断触发方式时,最好选择下降沿触发方式。课题五课题五 单片机中断系统应用单片机中断系统应用2中断允许控制寄存器(中断允许控制寄存器(IE)IE(A8H)位地址AFHAEHADHACHABHAAHA9HA8H位符号EA/(ET2)ESET1EX1ET0EX0 EA 中断允许总控制位 EA 0 中断总禁
7、止,禁止所有中断;EA 1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。EX0和EX1 外部中断0和1允许控制位 EX0(EX1)0 禁止外部中断 0(1)的中断;EX0(EX1)1 允许外部中断 0(1)的中断。课题五课题五 单片机中断系统应用单片机中断系统应用 ET0和ET1 定时/计数器0和1中断允许控制位 ET0(ET1)0 禁止定时/计数器 T0(T1)的中断;ET0(ET1)0 允许定时/计数器 T0(T1)的中断。ES 串行中断允许控制位 ES=0 禁止串行中断;ES=1 允许串行中断。ET2 定时/计数器2中断允许控制位 (8052系列单片机使用)。
8、课题五课题五 单片机中断系统应用单片机中断系统应用3中断优先级控制寄存器(中断优先级控制寄存器(IP)IP(B8H)位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号/(PT2)PSPT1PX1PT0PX0 PX0 外部中断0优先级设定位。PT0 定时/计数器T0优先级设定位。PX1 外部中断1优先级设定位。PT1 定时/计数器T1优先级设定位。PS 串行中断优先级设定位。PT2 定时/计数器T2优先级设定位。课题五课题五 单片机中断系统应用单片机中断系统应用四、中断入口地址及响应过程四、中断入口地址及响应过程中断源中断源入口地址入口地址中断号中断号说说 明明中断优先级中断优先级外部
9、中断00003H0P3.2()引脚上的低电平/下降沿引起的中断高定时/计数器0000BH1T0计数器溢出后引起的中断外部中断10013H2P3.3()引脚上的低电平/下降沿引起的中断定时/计数器1001BH3T1计数器溢出后引起的中断串口中断0023H4串行口接收或发送完一帧数据后引起的中断定时/计数器2002BH5T2计数器溢出后引起的中断(51系列单片机没有此中断)低INT0INT1课题五课题五 单片机中断系统应用单片机中断系统应用关于中断的优先级有三条原则:1CPU同时接收到几个中断时,首先响应优先级最高的中断请求。2正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。3正在进行
10、的低优先级中断服务,能被高优先级中断请求中断。课题五课题五 单片机中断系统应用单片机中断系统应用五、五、C51中的中断函数中的中断函数1中断号中断号在C51中,每一个中断源都有一个指定的中断号,中断服务函数中必须声明对应的中断号,用中断号确定该中断服务程序是哪个中断所对应的中断服务程序。2中断函数的格式中断函数的格式函数类型函数类型 函数名(参数)函数名(参数)interrupt 中断号中断号 using 寄存器组号寄存器组号其中,函数类型和参数都取为 void。using 寄存器组号用于指定该中断函数内部使用的工作寄存器组,寄存器组号的取值为03,可以省略不作设置。课题五课题五 单片机中断系
11、统应用单片机中断系统应用3中断服务程序的执行中断服务程序的执行外部中断设置工作示意图课题五课题五 单片机中断系统应用单片机中断系统应用4外部中断初始化流程外部中断初始化流程中断入口地址定义中断入口地址定义开外部中断使能(开外部中断使能(IE)设置外部中断触发方式(设置外部中断触发方式(TCON)设置中断优先级(设置中断优先级(IP)根据中断需要开放相应中断使能根据需要对TCON中的IT0、IT1设置为脉冲或电平触发方式设置中断优先级别,当不发生中断冲突时,可不做设置根据中断使用情况定义相应入口地址课题五课题五 单片机中断系统应用单片机中断系统应用一、设计并绘制一、设计并绘制简易电子计分器简易电
12、子计分器电路原理图电路原理图课题五课题五 单片机中断系统应用单片机中断系统应用二、程序设计二、程序设计1TCON的设置的设置TCON位符号TF1TR1TF0TR0IE1IT1IE0IT0位设置00000101 TCON=0 x05;/字节操作,选择下降沿触发方式有效或 IT1=1;IT0=1;/位操作TCON的初始化设置如下:课题五课题五 单片机中断系统应用单片机中断系统应用2IE的设置的设置IE位符号EA/(ET2)ESET1EX1ET0EX0位设置10000101IE的初始化设置如下:IE=0X85;/开中断总允许(EA),开外部中断0和1的中断或 EA=1;EX1=1;EX0=1;/位操
13、作 本次设计不需要考虑中断优先的问题,因此可以省去对中断优先控制寄存器(IP)的设置,即默认外部中断()优先。在编程对中断相关控制寄存器进行设置时,既可以采用字节赋值方式,也可以采用位操作的方式。INT0课题五课题五 单片机中断系统应用单片机中断系统应用a)外部中断0服务程序b)主程序c)外部中断1服务程序根据上述设计思路编写的完整程序:课题五课题五 单片机中断系统应用单片机中断系统应用三、程序输入及仿真运行三、程序输入及仿真运行课题五课题五 单片机中断系统应用单片机中断系统应用四、制作硬件电路并调试四、制作硬件电路并调试步步 骤骤说说 明明示示 范范 图图 片片1焊接前材料准备参照元器件清单
14、表课题五课题五 单片机中断系统应用单片机中断系统应用步步 骤骤说说 明明示示 范范 图图 片片2硬件焊接电路板元件布局图课题五课题五 单片机中断系统应用单片机中断系统应用步步 骤骤说说 明明示示 范范 图图 片片3程序烧入、运行并调试加分运行图减分运行图课题五课题五 单片机中断系统应用单片机中断系统应用任务任务2 方波信号发生器方波信号发生器 1了解定时/计数器的工作原理。2掌握定时/计数器相关寄存器的设置方法。3掌握定时器中断的初始化过程及在不同工作方式下初始值的计算方法。4能够设计并制作方波信号发生器。课题五课题五 单片机中断系统应用单片机中断系统应用单片机内部含有定时器和计数器,主要用于
15、延时、定时控制、外部计数和检测等。利用单片机定时器输出指定周期的方波,既可作为其他电路的信号源,也可直接驱动音响设备,用来制作报警器和简易电子琴等电子产品。本任务将利用定时器中断方式产生如下图所示周期为1s的等宽连续正方波脉冲,并在P1.0口输出。单片机系统的外接晶振频率fOSC=12MHz。课题五课题五 单片机中断系统应用单片机中断系统应用一、定时一、定时/计数器简介计数器简介在51系列单片机内部有两个16位可编程的定时/计数器,简称为T0和T1。它们的核心部件都是16位加法计数器,当计数计满回零时,自动产生溢出发出中断请求,表示定时时间已到或计数已满,使用时可通过编程设置为定时或计数模式。
16、课题五课题五 单片机中断系统应用单片机中断系统应用定时/计数器的寄存器是一个16位的寄存器,由两个8位寄存器组成,高8位为TH,低8位为TL,见下表:定时定时/计数器名称计数器名称寄存器(高寄存器(高8位)位)寄存器(低寄存器(低8位)位)T0TH0TL0T1TH1TL1课题五课题五 单片机中断系统应用单片机中断系统应用二、定时二、定时/计数器的控制寄存器(计数器的控制寄存器(TCON)TCON(88H)位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0 TR0和TR1 定时器运行控制位 TR0(TR1)0 定时器/计数器 0(1)停止
17、工作 TR0(TR1)1 定时器/计数器 0(1)开始工作 TF0和TF1 T0和T1的溢出标志位 课题五课题五 单片机中断系统应用单片机中断系统应用对定时/计数器T0、T1的中断,CPU响应中断后,硬件自动清除中断请求标志TF0和TF1。如果编程中不使用中断服务程序,也可在主程序中利用查询中断请求标志TF0和TF1的状态,完成相应的中断功能。课题五课题五 单片机中断系统应用单片机中断系统应用TMOD(89H)位符号GATEM1M0GATEM1M0控制定时器 T1控制定时器 T0三、定时三、定时/计数器的方式控制寄存器(计数器的方式控制寄存器(TMOD)TC/TC/GATE 定时器动作开关控制
18、位,也称门控位 GATE=1 时,当外部中断引脚 ()出现高电平且控制寄存器TCON中TR0(TR1)控制位为1时,才启动定时器T0(T1)。GATE=0 时,只要控制寄存器TCON中TR0(TR1)控制位为1,便启动定时器T0(T1)。INT0INT1课题五课题五 单片机中断系统应用单片机中断系统应用 定时/计数器模式选择位 C T =0时,设置为定时器模式,定时/计数器的计数脉冲输入来自单片机内部系统时钟提供的工作脉冲(系统晶振输出脉冲经12分频),计数值乘以机器周期就是定时的时间。=1时,设置为计数器模式,定时/计数器的计数脉冲输入来自外部引脚 T0(P3.4)或 T1(P3.5)输入的
19、外部脉冲。TCTC课题五课题五 单片机中断系统应用单片机中断系统应用 M1、M0 工作方式选择位M1M0工作方式工作方式功功 能能 说说 明明00方式013位定时/计数器,TLx只用低5位01方式116位定时/计数器(常用常用)10方式2自动重装初值的8位定时/计数器,THx的值保持不变,TLx溢出时,THx的值自动装入TLx中(常用常用)11方式3仅适用于T0,T0分成2个独立的8位计数器,T1停止计数TMOD不能位寻址,只能是整个字节进行设置,如程序中TMOD=0X01;语句就是对TMOD进行整体设置。CPU复位时TMOD所有位清0。课题五课题五 单片机中断系统应用单片机中断系统应用四、定
20、时四、定时/计数器的工作方式计数器的工作方式1工作方式工作方式1该模式是一个16位定时/计数方式,最大计数值为216=65536。寄存器THx和TLx是以全16位参与操作,当要定时任意时间时,采用预置数的方法,THx赋高8位,TLx赋低8位。定时工作方式时,定时时间为:T定定=(216-初值)初值)机器周期机器周期Tm课题五课题五 单片机中断系统应用单片机中断系统应用例例 若单片机晶振频率fosc=12MHz,使用定时器T0工作在方式1下,定时50ms中断,试计算寄存器TH0和TL0装入的初始值。解:解:已知 fosc=12MHz,则:振荡周期 Tc=1/12MHz=1/12s 机器周期 Tm
21、=12Tc =12(1/12)=1s 因为 T定=(216-初值)Tm 50 000 s=(65 536-初值)1 s 所以 初值=65 536-50 000 =15 536 =3CB0H课题五课题五 单片机中断系统应用单片机中断系统应用在C51程序设计时,一般将装入初值以表达式形式赋值,这样在编译程序时会自动将计算结果换算成对应的数值赋值给THx和TLx,其初始值设置命令为:THx =(216TfOSC/12)/256=(65536TfOSC/12)/256;TLx=(216TfOSC/12)%256=(65536TfOSC/12)%256;课题五课题五 单片机中断系统应用单片机中断系统应用
22、2工作方式工作方式0该模式是一个13位定时/计数方式,最大计数值为213=8192。由寄存器THx的8位和TLx的低5位构成,TLx高3位未用。工作原理与方式1一样,定时工作方式时,定时时间为:T定定=(213-初值)初值)机器周期机器周期Tm在C51程序设计中,其初始值设置命令为:THx=(213TfOSC/12)/32=(8192-TfOSC/12)/32;TLx=(213TfOSC/12)%32=(8192-TfOSC/12)%32;课题五课题五 单片机中断系统应用单片机中断系统应用3工作方式工作方式2该模式是一个8位自动装入定时/计数方式,最大计数值为28=256。TLx用作8位计数器
23、,THx用作保存计数初值。在初始化编程时,TLx和THx由指令赋予相同的初值,一旦TLx计数溢出,则将TFx置“1”,同时将保存在THx中的计数初值自动重装入TLx,继续计数,THx中的内容保持不变,即TLx是一个自动恢复初值的8位计数器。定时工作方式时,定时时间为:T定定=(28-初值)初值)机器周期机器周期Tm在C51程序设计中,其初始值设置命令为:THx=256 Tfosc/12;TLx=256 Tfosc/12;课题五课题五 单片机中断系统应用单片机中断系统应用4工作方式工作方式3该模式下定时/计数器T0 被分成两个独立的8位定时/计数器TL0和TH0。其中,TL0既可作定时器,又可作
24、计数器使用,而TH0则被固定为一个8位定时器(不能作外部计数模式)。T0被分成两个来用,那就要两套控制及溢出标记:TL0还是用原来的T0的标记,而TH0则使用定时器T1的状态控制位TR1和TF1。TL0定时工作方式时,定时时间为:T定定=(28-初值)初值)机器周期机器周期Tm课题五课题五 单片机中断系统应用单片机中断系统应用五、定时五、定时/计数器的初始化计数器的初始化中断入口地址定义中断入口地址定义开定时中断使能(开定时中断使能(IE)确定定时器工作方式(确定定时器工作方式(TMOD)预置定时器的初值预置定时器的初值(TH/TL)启动定时器工作启动定时器工作(TCON)对TMOD进行设置,
25、确定启动方式、计数/定时功能和工作方式根据定时时间,计算出定时器的初值,并装入THx和TLx启动相应定时器开始工作根据中断需要开放相应中断使能程序头定义相应中断的入口地址课题五课题五 单片机中断系统应用单片机中断系统应用一、设计并绘制一、设计并绘制方波信号发生器方波信号发生器电路原理图电路原理图课题五课题五 单片机中断系统应用单片机中断系统应用TMOD位符号GATEM1M0GATEM1M0位设置00000001二、程序设计二、程序设计1定时中断相关SFR的设置TC/TC/(1)TMOD的设置TMOD的初始化设置如下:TMOD=0 x01;/选择定时器T0工作于方式1课题五课题五 单片机中断系统
26、应用单片机中断系统应用(2)TCON的设置TCON位符号TF1TR1TF0TR0IE1IT1IE0IT0位设置00010000TCON的初始化设置如下:TCON=0 x10;/字节操作,启用定时器T0或 TR0=1;/位操作课题五课题五 单片机中断系统应用单片机中断系统应用(3)IE的设置IE位符号EA/(ET2)ESET1EX1ET0EX0位设置10000010IE的初始化设置如下:IE=0 x82;/*字节操作,开中断总允许(EA),开定时器T0中断。*/或 EA=1;ET0=1;/位操作课题五课题五 单片机中断系统应用单片机中断系统应用2定时时间的计算本设计选择定时器T0工作于方式1,设
27、置每次定时基准为50ms,定时时间到则计数1次,连续定时10次,刚好为0.5s(500ms),然后每隔0.5s再对P1.0口输出取反一次。每次定时中断50ms时计数初始值为:TH0=(65536-50000)/256;/高八位的初始值 TL0=(65536-50000)%256;/低八位的初始值课题五课题五 单片机中断系统应用单片机中断系统应用主程序及中断服务程序设计流程图:根据上述设计思路编写的完整程序:课题五课题五 单片机中断系统应用单片机中断系统应用三、程序输入及仿真运行三、程序输入及仿真运行课题五课题五 单片机中断系统应用单片机中断系统应用四、制作硬件电路并调试四、制作硬件电路并调试步
28、骤步骤说明说明示范图片示范图片1焊接前材料准备参照元器件清单表课题五课题五 单片机中断系统应用单片机中断系统应用步骤步骤步骤步骤步骤步骤2硬件焊接电路板元件布局图3程序烧入、运行并调试示波器测量的输出波形图课题五课题五 单片机中断系统应用单片机中断系统应用任务任务3 简易频率计简易频率计 1了解定时器与计数器之间的关系。2掌握计数器中断的初始化编程。3能够设计并制作简易频率计。课题五课题五 单片机中断系统应用单片机中断系统应用利用AT89S51单片机的T0、T1定时/计数功能设计一个简易频率计,完成对输入信号频率的测量,测量结果通过六位数码管动态显示出来。测量信号频率范围设置在0100kHz,
29、具体控制要求如下:1P0口依次与一个六位一体共阴数码管的码段端相连,用作频率的输出显示。2P2口连接六位一体共阴数码管的位选端,控制数码管动态显示时的位选。3单片机的P3.4(T0)口作为被测信号的输入口。课题五课题五 单片机中断系统应用单片机中断系统应用一、频率测量原理一、频率测量原理用定时器T1来产生一个1s的时钟基准,同时计数器T0对由P3.4口输入的脉冲信号的下降沿进行累积计数,1s定时到,则其频率=M(Hz)。课题五课题五 单片机中断系统应用单片机中断系统应用TMOD位符号GATEM1M0GATEM1M0位设置00010101二、计数器相关二、计数器相关SFR1方式控制寄存器(TMO
30、D)TC/TC/TMOD的初始化设置如下:TMOD=0 x15;/T0计数功能,工作于方式1;/T1定时功能,也工作于方式1课题五课题五 单片机中断系统应用单片机中断系统应用2定时/计数器的控制寄存器(TCON)TCON位符号TF1TR1TF0TR0IE1IT1IE0IT0位设置01010000TCON的初始化设置如下:TCON =0 x50;/启用定时/计数器T0、T1 或 TR0=1;/T0开始计数;TR1=1;/T1开始定时课题五课题五 单片机中断系统应用单片机中断系统应用3中断允许控制寄存器(IE)IE位符号EA/(ET2)ESET1EX1ET0EX0位设置10001010IE的初始化
31、设置如下:IE=0 x8a;/开中断总允许(EA),/开定时/计数器T0、T1中断 或 EA=1;ET0=1;ET1=1;课题五课题五 单片机中断系统应用单片机中断系统应用一、设计并绘制一、设计并绘制简易频率计简易频率计电路原理图电路原理图h1a bc d e fg h2 3 4 5 6abcdefg123456abcdefgh234567891RP112U23456981110131274HC07XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/A
32、D633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89S51X112MHzC230pFC330pF+5VC110uFR08k2R1470RD1LED-RED+5VAMFM+-课题五课题五 单片机中断系统应用单片机中断系统应
33、用二、程序设计二、程序设计 c)计数中断)计数中断T0服务程序服务程序a)主程序主程序 b)定时中断定时中断T1服务程序服务程序 课题五课题五 单片机中断系统应用单片机中断系统应用 本次设计仅用计数方式对P3.4引脚输入的脉冲进行计数,当在频率较高时测量的相对误差较大,因此主要用于低频测量,如能综合采用计数法和测周法同步法测量方式,做到脉冲测量时的启停同步,无计数误差,将大大提高测量的精度。根据上述设计思路编写的完整程序:课题五课题五 单片机中断系统应用单片机中断系统应用三、程序输入及仿真运行三、程序输入及仿真运行课题五课题五 单片机中断系统应用单片机中断系统应用四、制作硬件电路并调试四、制作
34、硬件电路并调试 步步 骤骤说说 明明示示 范范 图图 片片1焊接前 材料准备参照元器件清单表课题五课题五 单片机中断系统应用单片机中断系统应用步骤步骤说明说明示范图片示范图片2硬件焊接电路板元件布局图课题五课题五 单片机中断系统应用单片机中断系统应用步骤步骤说明说明示范图片示范图片3程序烧入、运行并调试无输入信号时,频率值显示为“000000”Hz输入脉冲信号频率为500Hz时,显示为“498”Hz课题五课题五 单片机中断系统应用单片机中断系统应用步骤步骤说明说明示范图片示范图片3程序烧入、运行并调试输入脉冲信号频率为1000Hz时,显示为“995”Hz课题五课题五 单片机中断系统应用单片机中
35、断系统应用任务任务4 主从呼叫器主从呼叫器 1了解串行通信的基本概念及通信方式。2掌握串口不同工作方式下波特率的计算。3掌握串口中断初始化及服务程序的编写。4能够设计并制作主从呼叫器控制系统。课题五课题五 单片机中断系统应用单片机中断系统应用 工业控制中,用户常常使用单片机的串口通信功能实现与上位机的信息交换。本任务通过设计一套主从呼叫器(包含主机、从机两部分)来演示单片机的串口通信过程。主机从机课题五课题五 单片机中断系统应用单片机中断系统应用其具体控制要求为:1主机一台,安装在主控室;从机一台,放置在被控室中。2从机设置四个呼叫键,通过按键可使从机向主机发送呼叫信号,主机利用一位数码管显示
36、从机呼叫号,当从机有呼叫信号时指示灯点亮,并且向主机发送键值。3主机监视人员看到从机的呼叫信号后,可按下回应键,向从机回送信号并灭从机呼叫指示灯,告知从机已收到呼叫信号,并关闭主机上的显示信息。课题五课题五 单片机中断系统应用单片机中断系统应用一、通信的基本概念一、通信的基本概念并行通信示意图串行通信示意图计算机与外部设备或计算机与计算机之间的信息交换称为通信,通信可分为并行通信和串行通信两种基本方式。课题五课题五 单片机中断系统应用单片机中断系统应用二、串行通信的基本方式二、串行通信的基本方式 1异步通信异步通信 起始位起始位:位于数据帧的开头,占1位,为0(低电平),表示发送端开始发送一帧
37、数据。有效数据位有效数据位:紧跟起始位后,低位在前,高位在后,数据位共8位。奇偶校验位奇偶校验位:紧跟数据位后,占1位,视有效数据位中1的个数是奇数还是偶数由系统自动确定(偶数0,奇数1)。停止位停止位:位于数据帧的末尾,占一位,为1(高电平),表示一帧数据发送完毕。课题五课题五 单片机中断系统应用单片机中断系统应用2同步通信同步通信同步通信则要求发送设备和接收设备使用完全相同的时钟频率,使双方达到完全同步。同步通信以一串字符为一个传送单位,字符间不加标识位,在一串字符开始时用同步字符标识,硬件要求高,通信双方须严格同步。同步通信的传输速率高(可达56KB/s或更高),但需要保证发送设备和接收
38、设备的完全同步,因此硬件设备比较复杂。异步通信速度比较慢,但是设备简单,使用方便,对通信设备要求较低(收、发设备的时钟基本同步即可),可远距离传输数据,应用较广。课题五课题五 单片机中断系统应用单片机中断系统应用3数据通信形式数据通信形式串行通信中的数据通信形式有三种,分别为单工通信、半双工通信、全双工通信。单工通信:通信双方,一方只能发送,另一方只能接收,传送方向是单一的。课题五课题五 单片机中断系统应用单片机中断系统应用 半双工通信:通信双方只有一根传输线(共地),但任何一方都可以发送,当一方发送时,另一方只能接收。课题五课题五 单片机中断系统应用单片机中断系统应用 全双工通信:需要通信双
39、方连接两条传输线(共地),一条是将数据从甲方送到乙方,另一条是从乙方送到甲方,允许双向同时发送。51系列单片机的串行通信属于全双工通信方式。课题五课题五 单片机中断系统应用单片机中断系统应用三、单片机双机异步通信系统三、单片机双机异步通信系统课题五课题五 单片机中断系统应用单片机中断系统应用四、串口控制相关寄存器四、串口控制相关寄存器1串行数据缓冲器(串行数据缓冲器(SBUF)SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。在逻辑上,SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的SBUF,
40、一个是发送缓冲寄存器SBUF,另一个是接收缓冲寄存器SBUF。指令:SBUF =ACC /启动一次数据发送,/可向SBUF再发送下一个数指令:ACC =SBUF /完成一次数据接收,/SBUF可再接收下一个数课题五课题五 单片机中断系统应用单片机中断系统应用2串行口控制寄存器(串行口控制寄存器(SCON)SCON(98H)位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI SM0、SM1 串行口工作方式选择位。12/OSCf32/OSCfSM0SM1工作方式工作方式功功 能能 说说 明明波波 特特 率率00方式0移位寄存器(用于I/O口扩展
41、)01方式110位UART(8位数据)波特率可变(由T1溢出率确定)10方式211位UART(9位数据)或11方式311位UART(9位数据)波特率可变(由T1溢出率确定)64/OSCf课题五课题五 单片机中断系统应用单片机中断系统应用 SM2 在方式2、3时,用作多机主从串行通信时的控制位。REN 允许串行口接收控制位(相当于串行通信的开关)。REN=0 禁止串行口接收由RXD(P3.0)口输入的串行数据。REN=1 允许串行口接收由RXD(P3.0)口输入的串行数据。TB8 在方式2、3时,是发送的第9位数据,需要时由软件置位或复位。课题五课题五 单片机中断系统应用单片机中断系统应用 RB
42、8 在方式2、3时,是接收到的第9位数据;在方式1时,RB8是接收到的停止位;方式0时,不使用RB8。TI 发送中断标志位,数据发送结束后,由硬件对其置位(TI=1)。可由软件查询TI位标志,也可以向CPU申请中断,但都必须由软件清0。RI 接收中断标志位。接收数据结束后,由硬件对其置位(RI=1)。可由软件查询RI位标志,也可以向CPU申请中断,但都必须由软件清0。课题五课题五 单片机中断系统应用单片机中断系统应用在AT89S51中,串行发送中断TI和接收中断RI的中断号同是interrupt 4,因此在中断程序中必须由软件查询TI和RI的状态才能确定究竟是接收还是发送中断,进而作出相应的处
43、理。单片机复位时,SCON所有位均清0。课题五课题五 单片机中断系统应用单片机中断系统应用3电源控制寄存器(电源控制寄存器(PCON)PCON(87H)位序号D7D6D5D4D3D2D1D0位符号SMOD/GF1GF0PDIDLSMOD位为波特率倍增位。当 SMOD=1时,串行口波特率增加一倍。当 SMOD=0时,串行口波特率为设定值。当 系统复位时,SMOD=0。课题五课题五 单片机中断系统应用单片机中断系统应用五、串行口的工作方式五、串行口的工作方式1方式方式0串行口工作在方式0时,作同步移位寄存器使用,以8位数据为一帧,无起始位和停止位。串行数据由RXD(P3.0)端输入或输出,同步移位
44、脉冲由TXD(P3.1)端输出。这种工作方式常用于扩展I/O口中,外接移位寄存器实现数据并行输入或输出。工作在方式0时,波特率固定为fosc/12,即每个机器周期输入或输出一位数据。课题五课题五 单片机中断系统应用单片机中断系统应用(1)数据发送当数据写入SBUF后,从RXD端输出,在移位脉冲的控制下,逐位移入74LS164,74LS164完成数据的串并转换。当8位数据全部输出后,由硬件将TI置“1”,发出中断请求。数据由74LS164并行输出,其接口电路如下图所示,RXD端接74LS164的串行输入端A、B,TXD接74LS164的时钟脉冲输入端CLK,P2.7接74LS164的清零端。课题
45、五课题五 单片机中断系统应用单片机中断系统应用(2)数据接收要实现接收数据,必须首先把SCON中的允许接收位REN置“1”。当REN为1时,数据在移位脉冲的控制下,从RXD端输入。当接收完8位数据时,将接收中断标志位RI置“1”,发出中断请求。课题五课题五 单片机中断系统应用单片机中断系统应用2方式方式1方式1为10位异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位,其波特率可调。(1)数据发送数据写入SBUF后,就启动发送器开始发送,此时由硬件加入起始位和停止位,构成一帧数据,由TXD串行输出。发送完一帧数据后,将TI置“1”,通知CPU可以进行下一个数据的发送。课题五课题五
46、单片机中断系统应用单片机中断系统应用(2)数据接收REN=1且接收到起始位后,就开始接收一帧数据。当停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个数据,将其从SBUF中取走。(3)波特率确定)(T1322SMOD溢出率波特率课题五课题五 单片机中断系统应用单片机中断系统应用例例 串口通信波特率为9600bit/s,晶振频率fosc=11.0592MHz,使用定时器T1工作在方式2产生波特率,SMOD0,则计数器初值N=。解:解:已知 fosc=12MHz,波特率=9600 bit/s。SMOD=0,T1工作于方式2 因为 N)(25612322波特率OSCSMODf602
47、96003212(256N)11.0592 1096001232100592.11N2566FDH2533256N所以 即:TH1=0 xfd;TL1=0 xfd;课题五课题五 单片机中断系统应用单片机中断系统应用3方式方式2方式2为11位异步串行通信方式。其帧格式为1个起始位、9个数据位和1个停止位。与方式1相比增加了一个第9位数据位(D8),其功能由用户确定,是一个可编程位。(1)数据发送发送前先根据通信协议用指令设置好SCON中的TB8,然后将要发送的数据(D0D7)写入SBUF中,而D8位的内容则由硬件电路从TB8中直接送到发送移位寄存器的第9位,并以此来启动串行发送。一帧发送完毕,将
48、TI位置“1”,其他过程与方式1相同。课题五课题五 单片机中断系统应用单片机中断系统应用(2)数据接收方式2的接收过程也与方式1基本类似,所不同的只在第9位数据上,串行口把接收到的前8位数据送入SBUF,而把第9位数据送入RB8。在接收前先将REN位置“1”,将RI位清“0”。然后根据SM2的状态和接收到的RB8的状态决定串行口在数据到来后是否使RI置“1”,如RI置“1”则接收数据,否则不接收数据。课题五课题五 单片机中断系统应用单片机中断系统应用(3)波特率确定方式2的波特率是固定的,由晶振频率及SMOD的值确定。当SMOD为0时,波特率为晶振频率1/32,即fosc/32;当SMOD为1
49、时,波特率为晶振频率的1/64,即fosc/64。用公式表示为:OSC642波特率SMODf4方式方式3方式3也是11位异步串行接收/发送方式。它的工作方式与方式2一样,但方式3的波特率与方式1波特率的设置相同。课题五课题五 单片机中断系统应用单片机中断系统应用波特率波特率(bit/s)fosc(MHz)SMODT1方式方式2定时初值定时初值实际实际波特率波特率误差误差(%)960012.001F9H89287480012.000F9H44647240012.000F3H24030.13120012.000E6H12010.0011920011.05921FDH192000960011.059
50、20FDH96000480011.05920EAH48000240011.05920F4H24000120011.05920E8H12000常见波特率设置参数:常见波特率设置参数:课题五课题五 单片机中断系统应用单片机中断系统应用一、设计并绘制一、设计并绘制主从呼叫器主从呼叫器电路原理图电路原理图课题五课题五 单片机中断系统应用单片机中断系统应用二、程序设计二、程序设计 1串口的初始化本次设计中,单片机串行通信模式选择方式1,数据传送的波特率为9600bit/s,波特率不增倍(SMOD=0)。根据波特率与T1初值N的关系式,T1装入的初值为FDH,波特率初始化设置为:PCON=0 x00;/波