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

下载本文档

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

文档简介

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

2、CS单片机结构和基本原理为什么需要定时/计数器?根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务检测外部事件发生的次数MCS单片机结构和基本原理为什么需要定时/计数器?根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务检测外部事件发生的次数MCS单片机结构和基本原理为什么需要定时/计数器?根据规定的时间间隔完成某项控制功能根据需要的延时启动某项任务检测外部事件发生的次数MCS单片机结构和基本原理如何实现?软件延时采用延时电路实现固定的硬件延时采用可编程定时/计数器实现可编程定时/计数器(Timer/Counter,简称T/C)正是MCS-51单片机的一种重要的功能部件MC

3、S单片机结构和基本原理可编程定时/计数器(T/C)工作原理?例:往桶里滴水,考察其溢出时间:MCS单片机结构和基本原理可编程定时/计数器(T/C)工作原理?例:往桶里滴水,考察其溢出时间:MCS单片机结构和基本原理可编程定时/计数器(T/C)工作原理?例:往桶里滴水,考察其溢出时间:MCS单片机结构和基本原理可编程定时/计数器(T/C)工作原理?例:往桶里滴水,考察其溢出时间:MCS单片机结构和基本原理可编程定时/计数器(T/C)工作原理?例:往桶里滴水,考察其溢出时间:桶有多大?-定时/计数范围滴水的速度?-时钟源频率原来有多少水?-初值问题如何知道溢出?-溢出时的反应MCS单片机结构和基本

4、原理6.2.1 定时/计数器概述图6-1 定时/计数器结构MCS单片机结构和基本原理图6-2 定时/计数器控制逻辑 MCS单片机结构和基本原理6.2.2 单片机定时/计数器的工作方式定时器工作方式设置为定时器工作方式时,基准时间由单片机的晶振经过12分频后获得的一个脉冲信号,即机器周期信号。机器周期信号输入到加1计数器,加1计数器实现每个机器周期使T0或T1的计数寄存器数值增加1,直至计满溢出,根据计数机器周期的次数可以得到定时时间。计数器工作方式设置为计数方式时,外部脉冲信号输入到引脚T0()和T1(),CPU对外部脉冲信号进行采样计数,加1计数器由外部输入脉冲信号的下降沿触发计数。MCS单

5、片机结构和基本原理计数方式具体工作过程计数器在每个机器周期的S5P2期间采样T0和T1引脚的输入电平,若前一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。所以检测一个从1到0的跳变需要两个机器周期,即外部输入信号的周期应大于或等于两个机器周期,也就是说外部输入信号的频率必须小于晶振频率的1/24,若频率超过晶振频率的1/24,则无法准确计数脉冲个数。虽然对外部输入信号的占空比无特殊要求,但是为了确保输入信号电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。对输入脉冲信号的基本要求如图6-3所示。MCS单片机结构和基本原理图6-3 对输入脉冲宽度的要求MCS

6、单片机结构和基本原理TMOD用于控制T0和T1的工作模式。TMOD不能位寻址,只能用字节设置定时器的工作模式,低半字节设置T0,高半字节设置T1。8051系统复位时,TMOD的所有位被清0。TMOD各位的定义格式如图所示 6.2.3 工作模式寄存器 TMODGATEC/ TM1M0GATEM1C/ TM0定时器T1定时器T0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D0MCS单片机结构和基本原理M1和M0操作模式控制位。两位可形成四种编码,对应于四种模式。计数器/定时器方式选择位设置为定时方式。定时器计数8051片内脉冲,即对机器周期计数设置为计数方式。计数器的输入来自T0

7、(P3.4)或T1(P3.5)端的外部脉冲MCS单片机结构和基本原理 GATE门控位。 GATE=0,只要用软件使TR0(或TR1)置1就可以启动定时器,而不管INT0(或INT1)的电平是高还是低。 GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才能启动定时器工作。MCS单片机结构和基本原理TCON除可字节寻址外,各位还可位寻址。8051系统复位时,TCON的所有位被清0。 TCON各位的定义格式如图所示。6.2.4 启动控制寄存器TCONMCS单片机结构和基本原理6.3 定时/计数器工作模式及其应用 模式 0 及其应用 模式 1 及其应用6.3.3

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

9、00 0001 1000:; 1C18H:7192 MOV TL0, #18H SETB TR0 ;启动定时器 SETB EA ;开放定时器中断 SETB ET0 LJMP $INT_TIME0: MOV TH0, #0E0H ;对定时器重新赋值 MOV TL0, #18H RETI2 工作模式0应用MCS单片机结构和基本原理6.3.2 工作模式1及其应用 1 逻辑结构2 模式1的应用MCS单片机结构和基本原理1 模式 1 的逻辑电路结构图6-8 模式1逻辑结构图 MCS单片机结构和基本原理2 模式 1 的应用举例例6.7 用T1定时,选择工作模式1,由单片机输出50Hz的方波,晶振频率12M

10、。(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 ;重复循环MCS单片机结构和基本原理6.3.3 工作模式2及其应用 1 逻辑结构2 模式2的应用MCS单片机结构和基本原理1 模式 2 的逻辑电路结构图6-9 模式2逻辑结构 MCS单片机结构

11、和基本原理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计数器初值:156 MOV TH1,#9CH SETB EA ;开放定时器中断 SETB ET1 SETB TR1 ;启动T1计数HERE: SJMP HERE ;等待中断 RETIMCS单片机结构和基本原理6.4 综合应用举例 由于MCS-51单片机的定时/

12、计数器是可编程的,因此在使用之前需要进行初始化。在编程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。一般情况下,包括以下几个步骤:(1)确定工作方式,即对TMOD寄存器进行赋值。(2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。(3)根据是采用中断还是查询方式决定是否置位ETx允许T/C中断。(4)根据是采用中断还是查询方式决定是否置位EA使CPU开中断。(5)置位TRx启动计数。MCS单片机结构和基本原理例6-11 试选择定时/计数器T0测试INT0()引脚上输入的被测脉冲宽度,已经晶振频率12M分析:定时器可以用于测量脉冲宽度程序设计,测量外部脉冲宽度利

13、用TMOD的门控位控制很方便,当设置GATE1时,仅设置TR0(TR1)等于“1”,定时器不能被启动,还必须等外部脉冲高电平时,定时器才开始工作。测试过程如图6-11所示 图6-11 被测脉冲波形 MCS单片机结构和基本原理例6-11 源程序如下:ORG 0000H LJMP MAIN ORG 000BHLJMP INT_TIME0ORG 0030HMAIN:MOV R2,#00H ;如果被测脉冲宽度太长,则累计溢出次数MOV TMOD,#09H ;设置T0为模式1,门控方式MOV TL0,#00H ;设置初值MOV TH0,#00HSETB EA ;开放T0中断SETB ET0SETB TR

14、0 ;INT0引脚高电平到来才会启动T0JNB P3.2, $ ;等待高电平到来JB P3.2,$ ;高电平到来,启动T0开始测量CLR TR0 MOV R0,TH0 ;低电平,测量结束,保存结果MOV R1,TL0 LJMP $INT_TIME0: INC R2MOV TL0,#00HMOV TH0,#00HRETIMCS单片机结构和基本原理例6-12: 电路如图6-12所示,引脚外接发光二极管D0,要求D0以1s的间隔闪烁。已知晶振频率12M 图6-12 例6-12电路原理图 MCS单片机结构和基本原理例6-12源程序代码:1S=1000000uS=20*50000ORG 0000H LJ

15、MP MAIN ORG 000BHLJMP INT_TIME0ORG 0030HMAIN: MOV P1,#0FFH ;灯的初态MOV 30H,#00H ;软件计数器预清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 ;3

16、0H单元中的值到了20了吗?CPL P1.0 ;到了,取反P10MOV 30H, #00H ;清软件计数器T_END:MOVTH0,# 3CHMOV TL0,# 0B0H ;重置定时常数RETIMCS单片机结构和基本原理例6-13 设一交通路口设红、黄、绿三盏交通灯,当红灯亮2s后,黄灯亮400ms,绿灯亮1s,试用单片机模拟交通灯控制 分析:单片机采用发光二极管模拟交通灯控制,即利用分别接红、黄、绿三个发光二极管。但是这里用到三个定时时间(2s、400ms 、1s),难道每个定时时间都编写不同的定时程序,那么如果需要更多的定时时间,怎么办?这里还是采用软件定时器的方式,即找到这几个定时的时间的公约数,利用软件计数器就可以完成不同的延时。MCS单片机结构和基本原理例6-13源程序如下:NumberOf50ms EQU 30H ;定义软件定时器的计数次数ORG 0000HLJMP MAIN ORG 00

温馨提示

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

评论

0/150

提交评论