亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

STC15W408AS單片機(jī)定時(shí)器/計(jì)數(shù)器的相關(guān)寄存器_世界看熱訊

2023-06-16 10:17:09 來(lái)源:小猿豬哥

一、定時(shí)器計(jì)數(shù)器簡(jiǎn)介

STC15W408AS只有定時(shí)器0和定時(shí)器2,工作工作位定時(shí)器或者計(jì)數(shù)器模式。定時(shí)器/計(jì)數(shù)器的核心部件是一個(gè)加法計(jì)數(shù)器,其本質(zhì)是對(duì)脈沖進(jìn)行計(jì)數(shù)。只是計(jì)數(shù)脈沖來(lái)源不同:如果計(jì)數(shù)脈沖來(lái)自系統(tǒng)時(shí)鐘,則為定時(shí)方式,此時(shí)定時(shí)器/計(jì)數(shù)器每12個(gè)時(shí)鐘或者每1個(gè)時(shí)鐘得到一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)值加1;如果計(jì)數(shù)脈沖來(lái)自單片機(jī)外部引腳(T0為P3.4,T1為P3.5,T2為P3.1,T3為P0.7,T4為P0.5),則為計(jì)數(shù)方式,每來(lái)一個(gè)脈沖加1。

當(dāng)定時(shí)器/計(jì)數(shù)器T0、T1及T2工作在定時(shí)模式時(shí),特殊功能寄存器AUXR中的T0x12、T1x12和T2x12分別決定是系統(tǒng)時(shí)鐘/12還是系統(tǒng)時(shí)鐘/1(不分頻)后讓T0、T1和T2進(jìn)行計(jì)數(shù)。

定時(shí)器/計(jì)數(shù)器0有4種工作模式:模式0(16位自動(dòng)重裝載模式),模式1(16位不可重裝載模式),模式2(8位自動(dòng)重裝模式),模式3(不可屏蔽中斷的16位自動(dòng)重裝載模式)。定時(shí)器T2的工作模式固定為16位自動(dòng)重裝載模式。T2可以當(dāng)定時(shí)器使用,也可以當(dāng)串口的波特率發(fā)生器和可編程時(shí)鐘輸出。


(資料圖片)

二、定時(shí)器/計(jì)數(shù)器的相關(guān)寄存器

2.1 定時(shí)器/計(jì)數(shù)器0/1控制寄存器TCON

TCON為定時(shí)器/計(jì)數(shù)器T0、T1的控制寄存器,同時(shí)也鎖存T0、T1溢出中斷源和外部請(qǐng)求中斷源等,TCON格式如下:

TCON : 定時(shí)器/計(jì)數(shù)器中斷控制寄存器 (可位尋址)

TF0:T0溢出中斷標(biāo)志。T0被允許計(jì)數(shù)以后,從初值開(kāi)始加1計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí),由硬件置“1”TF0,向CPU請(qǐng)求中斷,一直保持CPU響應(yīng)該中斷時(shí),才由硬件清0(也可由查詢軟件清0)。

TR0: 定時(shí)器T0的運(yùn)行控制位。該位由軟件置位和清零。當(dāng)GATE(TMOD.3)=0,TR0=1時(shí) 就允許T0開(kāi)始計(jì)數(shù),TR0=0時(shí)禁止T0計(jì)數(shù)。當(dāng)GATE(TMOD.3)=1,TR0=1且INT0輸 入高電平時(shí),才允許T0計(jì)數(shù),TR0=0時(shí)禁止T0計(jì)數(shù)。

2.2 定時(shí)器/計(jì)數(shù)器工作模式寄存器TMOD

定時(shí)和計(jì)數(shù)功能由特殊功能寄存器TMOD的控制位C/T進(jìn)行選擇,TMOD寄存器的各位信息如下表所列??梢钥闯?,2個(gè)定時(shí)/計(jì)數(shù)器有4種操作模式,通過(guò)TMOD的M1和M0選擇。2個(gè)定時(shí)/計(jì)數(shù)器的模式0、1和2都相同,模式3不同,各模式下的功能如下所述。

寄存器TMOD各位的功能描述

2.3 輔助寄存器AUXR

STC15系列單片機(jī)1T 的8051單片機(jī),為兼容傳統(tǒng)8051,定時(shí)器0 , 復(fù)位后是傳統(tǒng)8051的速度,即12分頻,這是為了兼容傳統(tǒng)8051。但也可不進(jìn)行12分頻,通過(guò)設(shè)置新增加的特殊功能寄存器AUXR,將T0,T1,T2 設(shè)置普通111條機(jī)器指令執(zhí)行速度是固定的,快4到24倍,無(wú)法改變。

AUXR格式如下:

AUXR : 輔助寄存器

2.4 定時(shí)器T0和T1的中斷控制寄存器:IE和IP

三、測(cè)試程序

3.1 定時(shí)器0模式0(16位自動(dòng)重裝載模式)

#include "stc15.h"#define uint unsigned intuint t = 0;void main(){  P1M0 = 0x02;  P1M1 = 0x00;// 定時(shí)器 0   AUXR |= 0x80;  // 定時(shí)器0 1T模式  TMOD = 0x00;   // 定時(shí)器模式0 16位自動(dòng)重載模式  TL0 = 0xAE;  TH0 = 0xFB;    // 計(jì)數(shù)值 100us@11.0592MHz  TR0 = 1;       // 定時(shí)器開(kāi)始計(jì)時(shí)  ET0 = 1;       // 使能定時(shí)器1中斷  EA  = 1;       // 打開(kāi)總中斷  while (1);}void tm1_isr() interrupt 1{  t = t + 1;  if(t >= 100){ // 100 * 100us = 10ms P1.1端口取反輸出    t = 0;    P11 = !P11;  }}

通過(guò)示波器可以測(cè)得波形搞好是50Hz,每個(gè)周期20ms。

這里有個(gè)問(wèn)題就是定時(shí)器的初始值的計(jì)算。

定時(shí)器定時(shí)時(shí)長(zhǎng)(100us) = SYSclk/(65536 - [TH0,TL0]), SYSclk = 11.0592MHz。

這里計(jì)算得到[TH0,TL0] = 64430,轉(zhuǎn)換為十六進(jìn)制就是FBAE,則TH0 = FB,TL0 = AE。

3.2 定時(shí)器2作為計(jì)數(shù)器

#include "stc15.h"void main(){  P1M0 = 0x02;  P1M1 = 0x00;    P11 = 0;       // 初始設(shè)置為0  AUXR |= 0x1C;  //  定時(shí)器2 工作為計(jì)數(shù)器模式 P3.1為計(jì)數(shù)引腳  允許計(jì)數(shù)器運(yùn)行  T2L = 0x00;  T2H = 0x00;  while(1)  {    if(T2L==16) // 計(jì)數(shù)器到了16 就把P1.1口輸出取反            {       T2L=0X00;      P11 = !P11;    }  }}

定時(shí)器0個(gè)定時(shí)器2都可以工作位定時(shí)器/計(jì)數(shù)器模式,這里為了區(qū)分就把定時(shí)器2作為計(jì)數(shù)器使用了。

標(biāo)簽:

上一篇:【環(huán)球播資訊】功率放大電路的分類和要求
下一篇:最后一頁(yè)