您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 第四模块 单片机定时计数器项目实训
第四模块单片机定时/计数器项目实训项目9定时/计数器查询方式的应用任务4-9-1使用定时器T0查询方式控制P2口流水灯任务4-9-2使用定时器T1查询方式控制单片机发出1KHz音频任务4-9-3将计数器T0计数的结果送LED数码管显示任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器1.定时/计数器的结构MCS-51单片机内部的定时/计数器的结构如图所示,定时/计数器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时/计数器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能寄存器TMOD控制定时/计数器的工作方式,TCON则用于控制定时/计数器T0和T1的启动和停止,同时管理定时/计数器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1、TH1和TCON进行初始化编程,以定义它们的工作方式和控制定时/计数器T0和T1的启动和停止。任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器2.特殊功能寄存器TMOD和TCON的格式①定时/计数器的方式控制寄存器TMOD:功能是控制定时/计数器的工作方式。字节地址为89H,不可以进行位操作,在上电和复位时TMOD的初始值为00H。其格式如下表所示:D7D6D5D4D3D2D1D0GATAM1M0GATAM1M0T1T02.特殊功能寄存器TMOD和TCON的格式①定时/计数器的方式控制寄存器TMOD:功能是控制定时/计数器的工作方式。字节地址为89H,不可以进行位操作,在上电和复位时TMOD的初始值为00H。其格式如下表所示:TMOD各位的意义:寄存器TMOD中的高4位用来控制定时/计数器T1,低4位用来控制定时/计数器T0。(1)GATE:门控制位,用来控制定时/计数器的启动模式。(2):定时/计数器功能选择位。(3)M1M0:定时/计数器工作方式设置位。M1M0=00工作方式013位定时/计数器,最大计数值213=8192M1M0=01工作方式116位定时/计数器,最大计数值216=65536M1M0=10工作方式2初值自动重装8位定时/计数器,最大计数值28=256M1M0=11工作方式32个8位定时/计数器,仅适用于T0任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器2.特殊功能寄存器TMOD和TCON的格式②定时/计数器控制寄存器TCON,字节地址为88H,位地址为88H—8FH,其格式如下表所示:TCON各位的意义:TCON的高四位用于控制定时/计数器的启停和中断请求:(1)TF1/TF0:定时/计数器T1/T0的溢出标志位。(2)TR1/TR0:定时/计数器T1/T0的运行控制位。TCON的低四位与中断有关,将在第五模块中加以说明。D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器3.定时/计数器的工作方式①工作方式0当方式控制寄存器TMOD中定时/计数器T0的M1M0=00时,定时/计数器T0处于工作方式0。定时/计数器T0工作方式0的电路逻辑结构如下图所示(定时/计数器T1与其完全类似)。工作方式0是13位计数结构的工作方式,其计数器由TH0的全部8位和TL0的低5位构成,TL0的高3位没有使用。当=0时,多路开关接通振荡脉冲的12分频输出,13位计数器以次进行计数,这就是定时工作方式。当=1时,多路开关接通计数引脚P3.4,外部计数脉冲由单片机引脚P3.4输入。当计数脉冲发生负跳变时,计数器加1,这就是T0的计数工作方式。任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器3.定时/计数器的工作方式②工作方式1当方式控制寄存器TMOD中定时/计数器T0的M1M0=01时,定时/计数器T0处于工作方式1。此时,定时/计数器T0工作方式1的电路逻辑结构如下图所示(定时/计数器T1与其完全类似)。任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器3.定时/计数器的工作方式③工作方式2当方式控制寄存器TMOD中定时/计数器T0的M1M0=10时,定时/计数器T0处于工作方式2。此时,定时/计数器T0工作方式2的电路逻辑结构如下图所示(定时/计数器T1与其完全类似)。任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器3.定时/计数器的工作方式④工作方式3当方式控制寄存器TMOD中定时/计数器T0的M1M0=11时,定时/计数器T0处于工作方式3。此时,定时/计数器T0工作方式3的电路逻辑结构如下图所示。在工作方式3模式下,定时/计数器T0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全类似。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器T0的控制位已被TL0占用,因此只能借用定时/计数器T1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器T0可以构成二个定时器或者一个定时器和一个计数器。任务4-9-1使用定时器T0查询方式控制P2口流水灯一、MCS-51单片机的定时/计数器3.定时/计数器的工作方式④工作方式3如果定时/计数器T0工作于工作方式3,那么定时/计数器T1的工作方式就不可避免受到一定的限制。因为定时/计数器T1的一些控制位已被定时/计数器T0借用,所以定时/计数器T1只能工作在方式0、方式1或方式2下,等效电路如下图所示。在这种情况下,定时/计数器T1通常作为串行口的波特率发生器使用,以确定串行通信的速率。因为已没有TF1可用,TF1已被定时/计数器T0借用了,所以只能把计数溢出直接送给串行口。当作波特率发生器使用时,只需设置好工作方式,即可自动运行。如要停止它的工作,需送入一个把它设置为方式3的方式控制字即可,这是因为定时/计数器T1本身就不能工作在方式3,如硬把它设置为方式3,自然会停止工作。任务4-9-1使用定时器T0查询方式控制P2口流水灯二、定时/计数器中定时/计数初值的设定设单片机时钟电路的振荡频率为11.0592MHz,则经12分频后得到的机器周期为:MCS-51单片机的定时/计数器T1和T0都是增量计数器,因此不能直接将要计数的值作为初值放入寄存器中,而是将计数的最大值(溢出值)减去实际要计数的值,将差值存入寄存器中。所以定时/计数器计数初值的计算公式如下:012121.08511.0592oscTssf2n计数初值实际计数值式中,n为由工作方式决定的定时/计数器位数。在工作方式0下,n取13,;在工作方式1下,n取16,。162655361328192任务4-9-1使用定时器T0查询方式控制P2口流水灯二、定时/计数器中定时/计数初值的设定例如,在工作方式1下,要用定时器T0定时50ms,在C语言程序设计中,要做如下几样工作:1.设置定时/计数器T0工作方式:TMOD=0x01;//TMOD=00000001B,低四位GATE=0,=0,M1M0=01语句中TMOD低四位设置定时/计数器T0。=0,T0为定时器功能;M1M0=01,定时器T0工作于方式1。2.计算实际计数值:实际计数值可按下式计算:50460831.085mss定时时间实际计数值机器周期3.确定定时器T0的计数初值:定时/计数器T0计数初值为,用C语言将其存入寄存器TH0与TL0中,语句如下:TH0=(65536-46083)/256;//定时器T0的高8位赋初值TL0=(65536-46083)%256;//定时器T0的低8位赋初值4.启动定时器T0:用C语言启动定时器T0工作,语句如下:TR0=1;//启动定时器T0三、硬件电路设计四、软件程序设计任务4-9-1使用定时器T0查询方式控制P2口流水灯任务4-9-2用定时器T1查询方式控制单片机发出1KHz音频一、单片机发音的频率控制1.单片机发音频率控制原理用单片机驱动蜂鸣器发音时,只要让单片机送给蜂鸣器的电平信号每隔音频的半周期取反一次,即可使蜂鸣器发出相应音频的声音。2.运用C语言编程控制发音频率的方法用单片机驱动蜂鸣器发音时,电平信号的取反时间要由定时器来控制。以1kHz音频发音为例,其音频的半周期为0.5ms,即500μs。则要计数的脉冲数为500/1.085=460(次)。由于这个计数值不大,所以可以用定时器的方式0(最大计数值为8192)来定时。若使用定时器T1,则具体实施如下:①设置定时/计数器T1工作方式:TMOD=0x00;//TMOD=00000000B,高四位GATE=0,=0,M1M0=00语句中TMOD高四位设置定时/计数器T1。=0,T1为定时器功能。M1M0=00,定时器T1工作于方式0。任务4-9-2用定时器T1查询方式控制单片机发出1KHz音频一、单片机发音的频率控制②确定定时器T1的计数初值:定时/计数器T1计数初值为,用C语言将其存入寄存器TH1与TL1中,语句如下:TH1=(8192-460)/32;//定时器T1的高8位赋初值TL1=(8192-460)%32;//定时器T1的低5位赋初值③启动定时器T1:用C语言启动定时器T1工作,语句如下:TR1=1;//启动定时器T113(2460)(8192460)二、硬件电路设计三、软件程序设计任务4-9-2用定时器T1查询方式控制单片机发出1KHz音频一、锁存器及其应用1.74HC573锁存器简介74HC573锁存器是八进制3态非反转透明锁存器。它是高性能的硅门CMOS器件,SL74HC573跟LS/AL573的管脚一样,器件的输入是和标准CMOS输出兼容的;加上拉电阻,能和LS/ALSTTL输出兼容。74HC573锁存器的引脚分布图如图所示:74HC573锁存器共有20只脚。1脚为输入使能端;2~9脚为数据输入端;12~19脚为数据输出端;11脚为锁存控制端LE。其功能如下表所示:OE输入输出锁存使能LEDQLHHHLHLLLLX不变HXXZ74HC573锁存器当输入使能端为低电平时,允许数据输入;当输入使能端为高电平时,输出端呈高阻态。当锁存使能端LE为高电平时,这些器件的锁存对于数据是透明的(也就是说输出与输入同步);当锁存使能端LE为低电平时,符合建立时间和保持时间的数据会被锁存。OEOEOE任务4-9-3将计数器T0计数的结果送LED数码管显示一、锁存器及其应用2.锁存器的作用在LED和数码管显示方面,要维持数据的显示,尤其是多位数码管需要选通显示的情况下,往往要持续地快速地刷新显示。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。锁存器的使用就可以大大地缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器用来处理显示信息的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完数据的变化后可以有更多的时间来执行其他的任务。这就是锁存器在LED数码管显示方面的作用:把处理器从持续刷新数码显示的冗余工作中解放出来,节省了宝贵的处理时间,提高了处理器的工作效能。任务4-9-3将计数器T0计数的结果送LED数码管显示二、硬件电路设计三、软件程序设计任务4-9-3将计数器T0计数的结果送LED数码管显示
本文标题:第四模块 单片机定时计数器项目实训
链接地址:https://www.777doc.com/doc-3228559 .html