MCS—单片机结构和基本原理_第1页
MCS—单片机结构和基本原理_第2页
MCS—单片机结构和基本原理_第3页
MCS—单片机结构和基本原理_第4页
MCS—单片机结构和基本原理_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、MCS单片机结构和基本原理l 背景知识背景知识6.1 定时和计数的基本概定时和计数的基本概念念l 背景知识背景知识TH1 TL1TH0 TL0TMODTCON为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务根据需要的延时启动某项任务为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务根据

2、需要的延时启动某项任务检测外部事件发生的次数检测外部事件发生的次数为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务根据需要的延时启动某项任务检测外部事件发生的次数检测外部事件发生的次数为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务根据需要的延时启动某项任务检测外部事件发生的次数检测外部事件发生的次数为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间

3、隔完成某项控制功能根据需要的延时启动某项任务根据需要的延时启动某项任务检测外部事件发生的次数检测外部事件发生的次数为什么需要定时为什么需要定时/ /计数器计数器? ?根据规定的时间间隔完成某项控制功能根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务根据需要的延时启动某项任务检测外部事件发生的次数检测外部事件发生的次数如何实现如何实现? ?软件延时软件延时采用延时电路实现固定的硬件延时采用延时电路实现固定的硬件延时采用可编程定时采用可编程定时/ /计数器实现计数器实现可编程定时可编程定时/ /计数器计数器(Timer/Counter,(Timer/Counter,简称简称T/C)T/

4、C)正是正是MCS-51MCS-51单片机的一种重要的功能部件单片机的一种重要的功能部件可编程定时可编程定时/ /计数器计数器(T/C)(T/C)工作原理工作原理? ?例例: :往桶里滴水往桶里滴水, ,考察其溢出时间考察其溢出时间: :可编程定时可编程定时/ /计数器计数器(T/C)(T/C)工作原理工作原理? ?例例: :往桶里滴水往桶里滴水, ,考察其溢出时间考察其溢出时间: :可编程定时可编程定时/ /计数器计数器(T/C)(T/C)工作原理工作原理? ?例例: :往桶里滴水往桶里滴水, ,考察其溢出时间考察其溢出时间: :可编程定时可编程定时/ /计数器计数器(T/C)(T/C)工作

5、原理工作原理? ?例例: :往桶里滴水往桶里滴水, ,考察其溢出时间考察其溢出时间: :可编程定时可编程定时/ /计数器计数器(T/C)(T/C)工作原理工作原理? ?例例: :往桶里滴水往桶里滴水, ,考察其溢出时间考察其溢出时间: :桶有多大桶有多大?-?-定时定时/ /计数范围计数范围滴水的速度滴水的速度?-?-时钟源频率时钟源频率原来有多少水原来有多少水?-?-初值问题初值问题如何知道溢出如何知道溢出?-?-溢出时的反应溢出时的反应6.2.1 定时/计数器概述图6-1 定时/计数器结构图6-2 定时/计数器控制逻辑 6.2.2 单片机定时/计数器的工作方式定时器工作方式定时器工作方式设

6、置为定时器工作方式时,基准时间由单片机设置为定时器工作方式时,基准时间由单片机的晶振经过的晶振经过12分频后获得的一个脉冲信号,即机器周分频后获得的一个脉冲信号,即机器周期信号。机器周期信号输入到加期信号。机器周期信号输入到加1计数器,加计数器,加1计数器计数器实现每个机器周期使实现每个机器周期使T0或或T1的计数寄存器数值增加的计数寄存器数值增加1,直至计满溢出,根据计数机器周期的次数可以得到定直至计满溢出,根据计数机器周期的次数可以得到定时时间。时时间。计数器工作方式计数器工作方式设置为计数方式时,外部脉冲信号输入到引脚设置为计数方式时,外部脉冲信号输入到引脚T0()和()和T1(),()

7、,CPU对外部脉冲信号进行采样计数,对外部脉冲信号进行采样计数,加加1计数器由外部输入脉冲信号的下降沿触发计数。计数器由外部输入脉冲信号的下降沿触发计数。计数方式具体工作过程计数器在每个机器周期的计数器在每个机器周期的S5P2期间采样期间采样T0和和T1引引脚的输入电平,若前一个机器周期采样值为脚的输入电平,若前一个机器周期采样值为1,下一个,下一个机器周期采样值为机器周期采样值为0,则计数器加,则计数器加1。所以检测一个从。所以检测一个从1到到0的跳变需要两个机器周期,即外部输入信号的周期的跳变需要两个机器周期,即外部输入信号的周期应大于或等于两个机器周期,也就是说外部输入信号的应大于或等于

8、两个机器周期,也就是说外部输入信号的频率必须小于晶振频率的频率必须小于晶振频率的1/24,若频率超过晶振频率的,若频率超过晶振频率的1/24,则无法准确计数脉冲个数。虽然对外部输入信号,则无法准确计数脉冲个数。虽然对外部输入信号的占空比无特殊要求,但是为了确保输入信号电平在变的占空比无特殊要求,但是为了确保输入信号电平在变化之前至少被采样一次,要求电平保持时间至少是一个化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。对输入脉冲信号的基本要求如图完整的机器周期。对输入脉冲信号的基本要求如图6-3所所示。示。图6-3 对输入脉冲宽度的要求TMOD用于控制用于控制T0和和T1的工作模

9、式。的工作模式。TMOD不能位寻址,只能用字节设置定时器的不能位寻址,只能用字节设置定时器的工作模式,低半字节设置工作模式,低半字节设置T0,高半字节设置,高半字节设置T1。8051系统复位时,系统复位时,TMOD的所有位被清的所有位被清0。TMOD各位的定义格式如图所示各位的定义格式如图所示 6.2.3 工作模式寄存器工作模式寄存器 TMODGATE C/ T M1 M0 GATEM1C/ TM0定时器定时器T1定时器定时器T0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D0M1和M0操作模式控制位。两位可形成四种编码,对应于四种模式。TC /计数器/定时器方式选择位0/T

10、C设置为定时方式。定时器计数8051片内脉冲,即对机器周期计数1/TC设置为计数方式。计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲 GATE门控位。 GATE=0,只要用软件使TR0(或TR1)置1就可以启动定时器,而不管INT0(或INT1)的电平是高还是低。 GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才能启动定时器工作。TCON除可字节寻址外,各位还可位寻址。8051系统复位时,TCON的所有位被清0。 TCON各位的定义格式如图所示。6.2.4 启动控制寄存器TCON6.3 定时定时/计数器工作模式及其应计数器工作模式及其应

11、用用 模式 0 及其应用 模式 1 及其应用6.3.3 模式 2 及其应用6.3.4 模式 3 及其应用6.3.1 工作模式0及其应用 1 逻辑结构逻辑结构2 模式模式0的应用的应用1 逻辑结构逻辑结构图6-7 模式0时的逻辑结构图 例例6.4 用用T0定时,选择工作模式定时,选择工作模式0,由单片机输出占空比为,由单片机输出占空比为50、周期为周期为2ms的方波,晶振频率为的方波,晶振频率为12M。 (T=2mS=2000uS)源程序如下:源程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP INT_TIME0 ORG 0030HMAIN: MOV TMOD,

12、#00H ;设置工作方式设置工作方式 MOV TH0, #0E0H ;设;设初始值:初始值:1110 0000 0001 1000:; 1C18H:7192 MOV TL0, #18H SETB TR0 ;启动;启动定时器定时器 SETB EA ;开放;开放定时器中断定时器中断 SETB ET0 LJMP $INT_TIME0: MOV TH0, #0E0H ;对定时器重新赋值;对定时器重新赋值 MOV TL0, #18H RETI2 工作模式0应用6.3.2 工作模式1及其应用 1 逻辑结构逻辑结构2 模式模式1的应用的应用1 模式模式 1 的逻辑电路结构的逻辑电路结构图6-8 模式1逻辑结

13、构图 2 模式模式 1 的应用举例的应用举例例例6.7 用用T1定时,选择工作模式定时,选择工作模式1,由单片机输出,由单片机输出50Hz的方的方波,晶振频率波,晶振频率12M。(T=20mS=20000uS)源程序如下:ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV TMOD,#10H ;设置T1为模式1 SETB TR1 ;启动定时LOOP: MOV TH1,#0D8H ;送初值:55536: MOV TL1,#0F0H JNB TF1,$ ;查询定时时间到否 CLR TF1 ;产生溢出,清标志位 CPL P1.1 ;取反 SJMP LOOP ;重复循环6.3

14、.3 工作模式2及其应用 1 逻辑结构逻辑结构2 模式模式2的应用的应用1 模式模式 2 的逻辑电路结构的逻辑电路结构图6-9 模式2逻辑结构 2 模式模式 2 的应用举例的应用举例例例6-10:利用定时器:利用定时器T1的模式的模式2对外部信号计数。要求每计满对外部信号计数。要求每计满100次,将次,将 引脚取反。引脚取反。源程序:源程序:ORG 0000H LJMP MAIN ORG 001BH LJMP INT_TIME1 ORG 0030HMAIN: MOV TMOD,#60H ;设置;设置T1为模式为模式2,外部计数方式外部计数方式 MOV TL1,#9CH ;T1计数器初值计数器初

15、值:156 MOV TH1,#9CH SETB EA ;开放定时器中断;开放定时器中断 SETB ET1 SETB TR1 ;启动;启动T1计数计数HERE: SJMP HERE ;等待中断;等待中断 RETI6.4 综合应用举例综合应用举例 由于由于MCS-51单片机的定时单片机的定时/计数器是可编程的,因此在使计数器是可编程的,因此在使用之前需要进行初始化。在编程时主要注意两点:第一要能正用之前需要进行初始化。在编程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。一般情况下,包确写入控制字;第二能进行计数初值的计算。一般情况下,包括以下几个步骤:括以下几个步骤:(1)确定

16、工作方式,即对)确定工作方式,即对TMOD寄存器进行赋值。寄存器进行赋值。(2)计算计数初值,并写入寄存器)计算计数初值,并写入寄存器TH0、TL0或或TH1、TL1中。中。(3)根据是采用中断还是查询方式决定是否置位)根据是采用中断还是查询方式决定是否置位ETx允许允许T/C中断。中断。(4)根据是采用中断还是查询方式决定是否置位)根据是采用中断还是查询方式决定是否置位EA使使CPU开开中断。中断。(5)置位)置位TRx启动计数。启动计数。例例6-11 试选择定时试选择定时/计数器计数器T0测试测试INT0()引脚上()引脚上输输入的被测脉冲宽度,已经晶振频率入的被测脉冲宽度,已经晶振频率1

17、2M分析:定时器可以用于测量脉冲宽度程序设计,测量外分析:定时器可以用于测量脉冲宽度程序设计,测量外部脉冲宽度利用部脉冲宽度利用TMOD的门控位控制很方便,当设置的门控位控制很方便,当设置GATE1时,仅设置时,仅设置TR0(TR1)等于)等于“1”,定时器不能被启动,还必,定时器不能被启动,还必须等外部脉冲高电平时,定时器才开始工作。须等外部脉冲高电平时,定时器才开始工作。测试过程如图测试过程如图6-11所示所示 图6-11 被测脉冲波形 例例6-11 源程序如下:源程序如下:ORG 0000H LJMP MAIN ORG 000BHLJMP INT_TIME0ORG 0030HMAIN:M

18、OV R2,#00H ;如果被测;如果被测脉冲宽度太长,则累计溢出次数脉冲宽度太长,则累计溢出次数MOV TMOD,#09H ;设置;设置T0为模为模式式1,门控方式,门控方式MOV TL0,#00H ;设置初值;设置初值MOV TH0,#00HSETB EA ;开放;开放T0中断中断SETB ET0SETB TR0 ;INT0引脚高电平引脚高电平到来才会启动到来才会启动T0JNB P3.2, $ ;等待高电平到来;等待高电平到来JB P3.2,$ ;高电平到来,启动;高电平到来,启动T0开始测量开始测量CLR TR0 MOV R0,TH0 ;低电平,测量结;低电平,测量结束,保存结果束,保存

19、结果MOV R1,TL0 LJMP $INT_TIME0: INC R2MOV TL0,#00HMOV TH0,#00HRETI例例6-12: 电路如图电路如图6-12所示,引脚外接发光二极管所示,引脚外接发光二极管D0,要求要求D0以以1s的间隔闪烁。已知晶振频率的间隔闪烁。已知晶振频率12M 图6-12 例6-12电路原理图 例例6-12源程序代码:源程序代码:1S=1000000uS=20*50000ORG 0000H LJMP MAIN ORG 000BHLJMP INT_TIME0ORG 0030HMAIN: MOV P1,#0FFH ;灯的初态;灯的初态MOV 30H,#00H ;

20、软件计数器预清;软件计数器预清0MOV TMOD,#01H ;定时;定时/计数器计数器0工作于方式工作于方式1MOV TH0,#3CH MOV TL0,#0B0H;初值;初值15536,计,计50000次次SETB EA ;开总中断允许;开总中断允许SETB ET0 ;开定时;开定时/计数器计数器0允许允许SETBTR0 ;定时;定时/计数器计数器0开始运行开始运行LOOP: AJMP LOOP ;真正工作时;真正工作时,这里可写任意程序这里可写任意程序INT_TIME0: INC 30H ;定时器;定时器0的中断处理程序的中断处理程序MOVA,30HCJNE A, #20,T_END ;30H单元中的值到了单元中的值到了20了吗了吗?CPL P1.0 ;到了;到了,取反取反P10MOV 30H, #00H ;清软件计数器;清软件计数器T_END:MOVTH0,# 3CHMOV TL0,# 0B0H ;重置定时常数;重置定时常数RETI例例6-13 设一交通路口设红、黄、绿三盏交通灯,当红灯亮设一交通路口设红、黄、绿三盏交通灯,当红灯亮2s后,后,黄灯亮黄灯亮400ms,绿

温馨提示

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

评论

0/150

提交评论