CH-单片机原理与接口技术ch-IO接口(定时器+串口)_第1页
CH-单片机原理与接口技术ch-IO接口(定时器+串口)_第2页
CH-单片机原理与接口技术ch-IO接口(定时器+串口)_第3页
CH-单片机原理与接口技术ch-IO接口(定时器+串口)_第4页
CH-单片机原理与接口技术ch-IO接口(定时器+串口)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第6章内部定时器/计数器及串行接口6.1定时器/计数器的结构及工作原理6.2与定时器/计数器有关的SFR6.3工作方式6.4定时器/计数器应用举例6.5MCS-51单片机的串行接口6.6串行口的应用6.1定时器/计数器的结构及工作原理加法计数:溢出设标志位计数对象:计数器:外部事件,外部输入端T0(P3.4)或T1(P3.5)定时器:内部时钟工作模式:TMOD工作控制:TCON计数状态:X=M-N定时状态:X=M-定时时间/TT=1/晶振频率×126.2与定时器/计数器有关的SFR计数器THTL设置计数次数定时器/计数器方式寄存器TMOD设置工作方式定时器/计数器控制寄存器TCON开关控制与溢出标志计数器TH0和TL0,字节地址8CH和8AHTH1和TL1,字节地址8DH和8BH功能:①脉冲源计数②溢出后将自动置位相应的中断申请标志位。注;①不可以位寻址。②只能按字节分两条指令读写16位码,而不有用一条指令读写双字节。③在T0和T1正在计数的时候,允许动态读取计数值。地址89H,不可位寻址(1)GATE(位TMOD.3)——门控位(2)C//T(TMOD.2位)——定时或计数功能选择位(3)M1和M0(TMOD.1和TMOD.0位)——工作方式选择位定时器/计数器方式寄存器TMODM1M0方式说明00013位定时器(TH的8位和TL的低5位)01116位定时器/计数器102自动重装入初值的8位计数器113

T0分成两个独立的8位计数器,T1在方式3时停止工作定时器/计数器控制寄存器TCON字节地址为88H,可位寻址,位地址8CH~8FHTR0(TCON.4)——T0的运行控制位TF0(TCON.5)——T0溢出兼中断申请标志位TR1(TCON.6)——T1的运行控制位TF1(TCON.7)——T1溢出兼中断申请标志位MCS-51中断系统4.中断响应(1)由硬件自动生成一个长调用指令LCALLaddr16。其入口地址已经由系统设定。这些人口地址是:(2)生成了LCALL指令后,CPU执行该指令,首先将程序计数器PC当前的内容压人堆栈,称为保护断点。再将中断入口地址装入PC,使程序执行,于是转向相应的中断入口地址由于各个中断人口地址只相差8个字节单元,一般情况下难以存放一个完整的中断服务程序。因此,一般是在这个中断人口地址处存放一条无条件转移指令(LJMPaddr16)指令,使程序转移到addr16处,在这里执行中断服务程序。6.1定时器/计数器的结构及工作原理加法计数:溢出设标志位计数状态:X=M-N定时状态:X=M-定时时间/TT=1/晶振频率×126.3工作方式1、方式06.3工作方式2、方式16.3工作方式3、方式26.3工作方式4、方式3只适用于T0,若T1设置为方式3,则停止工作。TH0借用了T1的控制位TR1和TF1TI可设置为方式0~2用于任何不需要中断控制的场合TH0只能用于定时6.1定时器/计数器的结构及工作原理加法计数:溢出设标志位计数对象:计数器:外部事件,外部输入端T0(P3.4)或T1(P3.5)定时器:内部时钟工作模式:TMOD工作控制:TCON计数状态:X=M-N定时状态:X=M-定时时间/TT=1/晶振频率×126.4定时器/计数器应用举例TMOD和TCON的初始化T0和T1的初值中断,需考虑SP、IE和IP方式0的应用方式1的应用方式2的应用方式3的应用方式0的应用方波输出:输出周期为2ms的方波,设单片机晶振频率为6MHz设计分析:选用定时器/计数器T0作定时器输出为P1.0引脚每隔1ms对P1.0取反步骤计算定时初值确定工作模式中断设计:确定堆栈位置SP开中断IE设中断优先级IP设置定时初值TH、TL设置工作模式TMOD设置堆栈位置SP设中断优先级IP打开定时器TCON开中断IE

ORG0000H AJMPSTART;复位入口

ORG000BH AJMPTOINT;T0中断入口

ORG0030HSTART:TOINT: MOVSP,#60H;初始化程序

MOVTH0,#0F0H;T0赋初值

MOVTL0,#0CH MOVTMOD,#00H SETBTR0;启动T0

SETBET0;开T0中断

SETBEA;开总允许中断MAIN: AJMPMAIN;主程序

CPLP1.0 MOVTL0,#0CH MOVTH0,#0F0H RET精度不高一是中断服务子程序执行时间未计入T0定时二是从中断申请到CPU响应这个中断所经历的时间未计人T0定时T0中断嵌套时定时精度更差。误差补偿。方式1的应用计数任务设计分析:T1计数GATE门控计数溢出清零中断,R0累计溢出次数步骤计算定时初值确定工作模式中断设计:确定堆栈位置SP开中断IE设中断优先级IP某生产线的传送带上不断地有产品单向传送,产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。红灯亮时停止统计,红灯灭时才在上次统计结果的基础上继续统计,试用单片机定时器/计数器T1的方式1完成该项产品的计数任务。

ORG0000H AJMPSTART;复位入口

ORG001BH AJMPT1INT;T1中断入口

ORG0100HSTART: ORG0A00HT1INT:DISP: MOVSP,#60H;初始化程序

MOVTCON,#00H MOVTMOD,#0D0H MOVTH1,#00H

MOVTL1,#00H MOVR0,#00H;清中断次数计数单元

MOVP3,#28H;设置P3.5第二功能

SETBTR1;启动T1 SETBET1;开T1中断

SETBEA;开总中断 MAIN:ACALLDISP;主程序,调显示子程序

… INCR0;中断服务子程序

RETI … ;显示子程序

RET方式3的应用外部中断扩展一用户系统中已使用了两个外部中断源,并置定时器T1于方式2,作串行口波特率发生器用,现要求再增加一个外部中断源,并由P1.0口输出一个5kHz的方波(设晶振频率为6MHz)。设计分析:T1:方式2;T0:方式3TL0:计数,外部事件1次,触发T0中断TH0:定时,每隔100μs对P1.0取反步骤计算定时初值确定工作模式中断设计:确定堆栈位置SP开中断IE设中断优先级IP

MOVTL0,#0FFH MOVTH0,#206 MOVTL1,#BAUD1 ;BAUD根据波特率要求设置常数

MOVTH1,#BAUD2 MOVTMOD,#27H ;置T0工作方式3,TL0工作于计数器方式

MOVTCON,#55H ;启动定时器T0、T1

;置外部中断0和1为边沿激活方式 MOVIE,#9FH;开放全部中断

;TL0溢出中断服务程序(由000BH单元转来):TL0INT:MOVTL0,#0FFH…;外部引脚T0引起中断处理程序

RETI ;TH0溢出中断服务程序(由001BH转来):TH0INT:MOVTH0,#206CPLP1.0RETI6.5MCS-51单片机的串行接口6.5.1串行通信的基本概念串行通信概述RS—232C总线标准6.5.2MCS—51单片机串行口与串行口有关的特殊功能寄存器串行口的4种工作模式6.5.3多机通信串行通信概述1.数据通信基本原理2.异步串行通信的字符格式3.异步串行通信的信号形式4.串行通信的数据通路形式5.串行通信的传送速率1.数据通信基本原理并行数据通信串行数据通信同步传送异步传送数据的各位同时进行传送的方式。速度快、效率高,成本高。仅适合于短距离传送(30m)。数据的各位按顺序一位一位传送的方式。传送速度慢、效率低,成本低。适合于远距离传送。各位二进制码之间都没有间隔。发送与接收时钟始终保持严格同步。按帧传送数据。以字符为单位发送和接收,每个字符必须用起始位和停止位作为字符开始和结束的标志,来建立发送与接收之间的同步。每帧内部各位均采用固定的时间间隔。帧与帧之间的时间间隔是随机的。2.异步串行通信的字符格式

3.异步串行通信的信号形式4.串行通信的数据通路形式单工半双工双工5.串行通信的传送速率波特率:串行口每秒钟发送或接收的数据位数

1boud=1bit/sRS—232C总线标准1)采用25芯插头座2)以不同极性的电压表示逻辑值:-3一-25V表示逻辑1(mark)+3一+25V表示逻辑0(space)3)标准数据传送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200baud6.1定时器/计数器的结构及工作原理设置定时初值TH、TL设置工作模式TMOD设置堆栈位置SP设中断优先级IP打开定时器TCON开中断IE6.5MCS-51单片机的串行接口6.5.1串行通信的基本概念串行通信概述RS—232C总线标准6.5.2MCS—51单片机串行口与串行口有关的特殊功能寄存器串行口的4种工作模式6.5.3多机通信与串行口有关的特殊功能寄存器串行口寄存器SBUF串行通信控制寄存器串行控制寄存器SCON电源控制寄存器PCON中断允许寄存器IE串行控制寄存器SCON字节地址98H,可位寻址,98H~9FHSM0、SM1:操作模式定义SM2:多机通信时的接收允许标志位。模式0中,SM2必须是0。模式1中,若SM2=1且没有接收到有效的停止位,则RI不会被激活。模式2和3中,若SM2=1,且接收到的第9位数据(RB8)是0,则接收中断标志(RI)不会被激活。REN:允许接收位。由软件置位或清零。TB8:发送数据位8,RB8:接收数据位8。SM0SM1模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可变(T1溢出率)fOSC/64或fOSC/32可变(T1溢出率)电源控制寄存器PCON字节地址为87H,不可位寻址SMOD串行口波特率系数的控制位:SMOD=1时,波特率加倍,否则不加倍波特率的设置:SM0SM1模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可变(T1溢出率)fOSC/64或fOSC/32可变(T1溢出率)串行口的4种工作模式工作模式0

工作模式1工作模式2和工作模式3工作模式0

P3.0(RXD)管脚输出或输入P3.1(TXD)管脚输出移位脉冲波特率:固定值,fosc的1/12用途:输出:普通串行、串行—并行输入:普通串行、并行—串行每一个移位脉冲将使RXD端输出或者输入一位二进制码将单片机的串行口扩展为若干并行输出口工作模式0:输出普通串行当一个数据写入SBUF时,就开始发送。发送控制器送出移位信号,使发送移位寄存器的内容右移一位,直至最高位(D7位)移出后,停止发送数据和移位脉冲。完成了发送一帧数据的过程,并置发送中断标志TI为1,申请中断或用于查询。串行—并行外接扩展芯片串行输入/8位并行输出的移位寄存器74LSl64。

工作模式0:输入普通串行REN=1和RI=0时,启动一次接收过程S6P2时刻,SBUF写入11111110,TXD端输出移位脉冲每个移位脉冲,SBUF左移,RXD接收1位数据进入SBUF0SBUF7=0时,进行最后一次移位,RI置1并行—串行外接扩展芯片8位并行输入/串行输出的移位寄存器74LSl65。

工作模式1波特率可变的8位异步通信接口波特率:T1送来的溢出信号的16或32分频数据位由P3.0(RXD)端接收,由P3.1(TXD)端发送。一帧信息为10位:一位起始位(0)8位数据位(低位在前)一位停止位(1)工作模式1发送TI=0,当一个数据写入SBUF时,开始发送16或32个T1溢出,传送1位发送结束,TI=1接收RI=0,REN=1,启动采样RXD:“1”到“0”的负跳变,启动接收每个移位脉冲,接收1位数据进入SBUF接收8位后RI=0,SM2=1且停止位为1或SM2=0,接收有效:停止位送RB8,RI=1否则接收无效,接收器复位,继续接收器以选定波特率的16倍的速率采样RXD引脚上的电平,第7、8、9个脉冲期间采样接收信号,三取二,抑制干扰。采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。工作模式2和模式39位异步通信接口波特率:工作模式2:fosc的16或32分频工作模式3:T1送来的溢出信号的16或32分频每帧数据结构11位起始位(0)8位数据位(低位在先)第10位是用户定义位(SCON中的TB8或RB8)停止位(1)工作模式2和模式3发送TI=0,当一个数据写入SBUF时,开始发送(SBUF和TB8进入移位寄存器)移位脉冲,移位,传送1位,TB8发送结束,TI=1接收RI=0,REN=1,启动采样RXD:“1”到“0”的负跳变,启动接收每个移位脉冲,接收1位数据进入SBUF接收8位后RI=0,(SM2=1且TB8=1)或SM2=0,接收有效:第9位送RB8,RI=1否则接收无效,接收器复位,继续6.5.3多机通信每一个从机系统有一个对应的地址编码模式2或3的接收方式,且SM2置1,允许串行口中断先送出一地址字节,称地址帧,第9位是”1’’此时各从机的串行口接收到的第9位(RB8)都为“1”,则置中断标志RI为“1”每一台从机都检查一下所接收的主机发送的地址是否与本机相符。若为本机地址,则清除SM2,不符则保持SM2=1。主机发送数据块,称数据帧,第9位是“0”各从机接收到的RB8为“0”,则只有与主机联系上的从机(SM2=0的从机,地址对上的从机)才会置中断标志RI为“1”,接收主机的数据,实现与主机的信息传递。其余从机因SM2=1,且第9位RB8=0,不满足接收数据的条件,而将所接收的数据丢失。串行控制寄存器SCON字节地址98H,可位寻址,98H~9FHSM0、SM1:操作模式定义SM2:多机通信时的接收允许标志位。模式0中,SM2必须是0。模式1中,若SM2=1且没有接收到有效的停止位,则RI不会被激活。模式2和3中,若SM2=1,且接收到的第9位数据(RB8)是0,则接收中断标志(RI)不会被激活。REN:允许接收位。由软件置位或清零。TB8:发送数据位8,RB8:接收数据位8。SM0SM1模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可变(T1溢出率)fOSC/64或fOSC/32可变(T1溢出率)6.6串行口的应用1.串行口的编程设置串行口操作模式SCON(2)设定接收/发送的波特率设置PCON初始化T1设定溢出率(3)模式2或3发送,写入第9位数据TB8(4)中断:SP、IE、IP2.串行口的应用串行口的应用扩展8位并行输入口 当开关K合上时,输入8个开关状态设计分析工作模式0开关K输入到8051的P1.0引脚采用查询方式。START:

MOVSCON,#10H ;串行口模式0并启动接收JBP1.0,$;开关K未合上,等待

SETBP1.1;165并行输入数据

CLRP1.1;开始串行移位 JNBRI,$;查询RICLRRI;查询结束,清RIMOVA,SBUF;输入数据;根据A处理不同任务

SJMPSTART;准备下一次接收串行口的应用双机通信甲机发送(采用查询方式):

温馨提示

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

评论

0/150

提交评论