第四章 单片机(二)_第1页
第四章 单片机(二)_第2页
第四章 单片机(二)_第3页
第四章 单片机(二)_第4页
第四章 单片机(二)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第一章 单片机原理与应用,吴振宇,概述,8051有两个16位定时/计数器。 可设置为定时和计数两种模式,在每种模式下又可设置为4种工作方式。 工作方式不同则最大定时/计数值不同。 加1计数器,计数超过所在工作方式的最大值时发生溢出,回零,同时产生中断。,控制寄存器TCON,8位寄存器,可按位寻址。 TR0/1:定时器0/1启停控制。 TF0/1:定时器0/1溢出标志,硬件复位。 中断请求受EA,ET0/1控制。,方式寄存器TMOD,8位寄存器,不可按位寻址。 GATE:门控信号。 C/T:设置工作模式为定时器或计数器。 M1 M0:工作方式设置 00 01 10 11。,控制逻辑,定时器:

2、对振荡器的12分频计数。 计数器:对T0引脚输入脉冲计数。 检测T0引脚下降沿需要2个机器周期。通常,T0上输入的脉冲频率小于100KHz。,控制逻辑,GATE决定INT0引脚信号是否参与对T0的控制。 若GATE=0,T0只受TR0控制。 若GATE=1,T0受INT1信号和TR0共同控制。此时INT0不再作为中断请求输入线。 门控信号可用于脉冲宽度的测量。,测频与测周,测频与测周均为测量脉冲信号频率的方法。 测频:在单位定时时间内对被测信号脉冲进行计数。 测周:在被测信号一个周期时间内,对某一基准时间脉冲进行计数。 主要误差是由于计数器只能进行整数计数而引入的1误差。 高频测频,低频测周。

3、,原理示意,定时/计数器是16位SFR,分为TH0和TL0两个8位。 工作方式决定最大计数值。 初值是人为设置的, 期待计数值 = 最大值 初值。 如果计数脉冲的间隔相等,则计数值就代表了时间的流逝。,工作方式 - 0,13位加1计数器,兼容48系列单片机。 由TH的8位和TL的低5位组成,TL高3位弃之不用。 最大计数值:213 = 8192 计满8192,再加1则溢出归零,产生中断请求。 如要再次使用,需要手动再次装入初值。,工作方式 - 1,16位计数器,TH和TL全部参与。 最大计数值:216 = 65536 其余特性与方式-0相同。,工作方式 - 2,8位自装入计数器。 最大计数值:

4、28 = 256 自装入即计数器溢出归零后,自动装入前一次的初值。 TH保存初值,仅用TL进行计数。 初始化时对TH和TL送相同值。,工作方式 - 3,前三种方式,T0和T1完全相同。而方式-3一般只应用于T0。 T0:两个独立的8位计数器。 TL0可设定为定时或计数模式,仍由TR0控制,并用TF0作溢出标志。 TH0只能作定时器,借用TR1和TF1。 一般只有将T1用作串口波特率发生器时,才将T0设置为方式-3,以增加一个计数器。,初始化步骤,根据需要,选择适当的模式和方式,写入TMOD。 根据期待的计数值和所选工作方式,计算初值,写入TH和TL。 开放中断,设置优先级,写入IE和IP。 控

5、制定时/计数器的起停,操作TCON。,初值的计算,计数模式:TC = M C TC:初值 M:所选方式最大计数值 C:期待计数值 定时模式:TC = M T/Ts T:期待定时时长 Ts:时钟周期的12倍 最大定时时间(以12MHz晶振为例) 方式0:Tmax = 213 1us = 8.192ms 方式1:Tmax = 65.536ms 方式2和3:Tmax = 0.256ms,初值计算举例,假设采用12MHz晶振,要定时2ms,如何设置初值? 方式2、3最大只能定时0.256ms,不用。 若采用方式0: TC = 213 2ms/1us = 6192 = 1830H 即TH = 0 xC1

6、 TL = 0 x10 若采用方式1: TC = 216 2ms/1us = 63536 = F830H 即TH = 0 xF8 TL = 0 x30,初值计算举例,假设采用12MHz晶振,要定时1s,如何设置初值? 4种方式最大只能定时65.536ms,都不满足要求。 类似情况可采用软件定时。 比如,用定时器定时10ms,再额外维持一个变量,在每次溢出中断中对其加1。变量值等于100时,即得到1s,清零该变量。,软件定时示例,volatile unsigned char cnt = 0; void ISR_Timer0() interrupt 1 cnt +; if( cnt = 100 )

7、 / your task here cnt = 0; / reload TH0 & TL0 ,关键字 volatile 指示编译器不要优化该变量。 如果某个变量可能会被“并行”地修改,应将其声明成 volatile 。 例如,某变量的值可能在中断服务程序中被修改,而在主程序中检测其值,则应用 volatile 声明之。,应用举例,采用12MHz晶振,在P1.0上输出周期为2.5秒,占空比为20%的脉冲信号。 选取合适的定时时间,太小导致频繁中断,影响效率。此例中选10ms。 高电平50次中断,低电平200次中断。,应用举例,2个方波信号,频率 f1 = 50KHz,f2 = 50Hz,分别用测

8、频、测周法测量其频率,并比较误差。 测频法:T0定时模式,开放50ms闸门;T1计数模式,对引脚脉冲计数。 测周法:待测信号高电平作时间闸门,T1定时模式。,测量结果,高频测频,低频测周。,串行通信,并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位按顺序发送或接收。 相同时钟频率下,并行比串行速度快。(为什么SATA硬盘代替了IDE硬盘?) 并行使用的传输线多,远距离传输时耗费资源。,串行通信分类,按照串行数据的同步方式,可以分为同步通信和异步通信两类。 1100 1010 0100 1110 同步通信是利用软件识别同步字符来实现数据的发送和接收。 异步通信是利用字符的再同步技术的

9、通信方式。,异步通信,数据以字节为单位组成字符帧传送。 依靠字符帧的格式来协调数据的发送和接收,即确定数据的开始与结束。 1100 1010 0100 1110 发送端和接收端使用各自的时钟来控制数据收发,彼此独立,互不同步。,字符帧格式,起始位:逻辑0低电平,向接收设备指示开始发送一帧数据。 数据位:根据需要可以取58位,低位在前高位在后。 奇偶校验位:可以选择奇校验或偶校验。 停止位:逻辑1高电平,向接收端指示一帧数据发送完毕。 空闲位:位于两相邻帧之间,根据需要,可有可无。,波特率,每秒钟传送二进制码的位数,单位是bps(bit per second)。 用于表征数据传输的速度。 收发双

10、方必须保持波特率一致。 码元传输时间:传输一位需要的时间,为波特率的倒数。 8051系列一般最高使用9600bps。,同步通信,异步通信中每帧的起始、停止位降低了有效数据的传输速率。 同步通信一次只传送一帧数据,但一帧中可以包含若干字符。 要求收发两端始终保持严格同步,故传输数据的同时还要传输时钟。 同步通信速率比异步通信高,但更复杂。,同步通信帧格式,同步字符用于确认数据字符的开始。 数据字符个数不受限制,由所需传输的数据块长度决定。 校验字符用于接收端对接收到的数据字符的正确性检验。,串行通信的制式,按数据传输方向,可分为单工、半双工、双工三种制式。单工基本已经淘汰。 半双工(Half D

11、uplex):允许信息在两个方向上传输,但收发双方间只有一个通信回路,分时发送与接收。,串行通信的制式,全双工(Full Duplex):存在两个通信回路,在任何时刻,通信中的每一方可以同时发送和接收。,电平转换,RS-232C采用负逻辑,逻辑“0”为+5 +15V,逻辑“1”为-15 -5V。 接收端+3V +15V识别为“0”,-3V -15V识别为“1”,噪声容限2V。 若采用TTL电平,经过长距离传输,可能使发送端的“1”到达接收端是衰减成“0”。 该接口与TTL电平连接时需要进行电平转换。常用芯片为MAX232/3232。,8051的串行口,51内部有一个全双工的串行口,可实现串行异

12、步通信。 若在输入/输出引脚加上电平转换器,可构成标准的RS-232接口。 有4种工作模式。 串口主要由SCON和PCON中的SMOD位控制。,串口控制寄存器SCON,SM0/1:串口方式控制。 SM2:多机通信控制位。 REN:允许接收位。 TB8/RB8:发送/接收数据位8,用于模式2和3。 TI:发送中断标志,发送完一帧后硬件置位,发送前软件复位。 RI:接收中断标志,收取完一帧后硬件置位,读取后软件复位 TI和RI合用一个中断向量,可以在响应中断后读取TI和RI值,以确定产生的是哪一个中断。,工作方式-0,同步移位寄存器 相当于一个并入串出的移位寄存器。 并行数据由内部总线进入SBUF

13、,由TxD线串行送出。 SM2,TB8,RB8应设置为0。 波特率固定为 fosc/12 一般用于外接移位寄存器扩展并口。,工作方式-1,10位异步通信。1位起始位 + 8位数据位 + 1位停止位。 SM2应设置为0。 波特率可变,受定时器控制。 发送过程: 确保TI = 0; 将待发送数据装入SBUF(SBUF = 0 xAA)。 硬件自动在数据两端添加起始和停止位。 在时钟作用下,在TxD线上依次出现10位。 完毕后维持TxD为高,并将TI置位。,工作方式-1,接收过程: 确保RI = 0和REN = 1。 检测到起始位后,在时钟作用下依次检测RxD上出现的8位数据。 检测到停止位后,将8位数据放入SBUF,并将停止位放入RB8。 用户从SBUF中读出数据(rxbuf = SBUF),并清除RI中断。,工作方式-2,3,11位异步收发,方式2为固定波特率,方式3波特率可变。 发送时将第9位数据装入TB8,既可为奇偶校验位,也可为控制位。 接收时: 若SM2 = 0,无论第9位是什么,都把数据放入SBUF,并产生中断。适用于奇偶校验。 若SM2 = 1,只有第9位是“1”时,才把数据放入SBUF,并产生中断。,波特率计算,方式0: 固定为

温馨提示

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

评论

0/150

提交评论