定時器/計數器

Similar documents
DPJJX1.DOC

微處理機期末專題

目录

串列傳輸

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft Word - 專題封面.doc

Microsoft Word - ISSFA-0109_B_SM59264_WDT_ APN_TC_.doc

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft Word - MSP430 Launchpad 指导书.docx

C语言的应用.PDF

1 TPIS TPIS 2 2

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

图 片 展 示 : 资 源 简 介 : FPGA Altera CycloneII EP2C5T144C8 (4608 个 LE) 2 路 有 源 晶 振 (50M,25M) AS & JTAG 标 准 接 口 VGA 接 口 UART 接 口 蜂 鸣 器 8bit 并 行 DAC 8 路 按 键

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

ch08.PDF

W77E58中文手册

a b c d e f g C2 C1 2

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

untitled

Microsoft Word - 第三章第一節第二節.doc

<4D F736F F D205BCAE9B0FCCDF85DC8FDC9FAC8FDCAC0CAAEC0EFCCD2BBA82E646F6378>

2005.book

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

2 12

untitled

79 SZ/SH/SM ONOFF SET/RST SZSHSM SET SET RST RESET ( ) ( ) SET XXXX SET XXXX XXXX RST XXXX RST XXXX XXXX 1(2) SZ3 SZ4 SH SM I000~I177 I000~I477 I000~I

bingdian001.com

JLX

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

PowerPoint Presentation

CC213

!!"#! " # $%%&#! ()*+ %& %,&,, &!!# # # #! "# ## # #! $# # #! %#! &# -,.$# /! 0(1 $%%& %&23%2!!!!!!!!!!!!!! %,% 4&%.&.22!!! &! 2%% 2,% %.32!,%%%,,! 56

4.进度控制(网络计划)0.ppt

<4D F736F F D20BACEECF1E2D3A3BAD6D0D2BDC0EDC2DBB5C4BACBD0C4CAC7CEB1BFC6D1A72E646F63>

<B0DACDD1D1C7BDA1BFB5B5C4C0A7C8C52E733932>

把生命托付给谁?

《中老年男性养生保健》

untitled

Timer

instructions.PDF

壹:教育文化公益慈善機關或團體免納所得稅適用標準

江 西 : 失 信 被 执 行 人 曝 光 台 写 入 两 会 报 告 摘 要 1 月 27 日, 江 西 省 十 二 届 人 大 五 次 会 议 举 行 第 二 次 全 体 会 议, 江 西 省 高 级 人 民 法 院 院 长 张 忠 厚 向 大 会 作 江 西 省 高 级 人 民 法 院 工 作

形 式 审 查 不 通 过, 将 说 明 原 因 并 予 退 回, 不 予 重 新 修 改 提 交 ( 形 式 审 查 常 见 主 要 问 题 参 考 附 件 3) ( 三 ) 申 请 人 下 载 打 印 网 上 状 态 为 请 交 纸 质 材 料 至 窗 口 受 理 的 申 报 书, 报 送 项

撤 离 你 听 到 了 吗? 它 们 已 经 进 了 墙 里 边 了 那 些 金 属 的 撞 击 声 在 狂 风 之 中 很 难 听 清, 但 断 然 不 会 有 错 围 坐 在 桌 边 的 四 人 靠 得 更 紧 了 些, 并 不 是 因 为 害 怕, 而 是 为 了 取 暖 你 们 觉 得 呢?

ebook122-3

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha


2004版中文核心期刊要目总览

Microsoft Word - PLC與GP接線說明_缺WDH_2.doc

从MCS51向AVR的快速转换.PDF

附 件 :2015 年 度 普 通 高 等 学 校 本 科 专 业 备 案 和 审 批 结 果 教 育 部 2016 年 2 月 16 日 抄 送 : 国 家 发 展 改 革 委 财 政 部 国 家 卫 生 计 生 委 国 家 中 医 药 管 理 局 部 内 发 送 : 有 关 部 领 导, 办 公

目 录 一 行 情 回 顾... 3 二 资 金 面... 4 三 现 券 市 场... 5 四 跨 期 价 差 及 最 廉 券 分 析... 7 五 后 市 展 望 及 操 作 建 议 表 1: 五 年 期 国 债 期 货 各 合 约 上 周 表 现... 3 表 2: 十 年 期 国

128K Flash EPROM 的程序?\(Bank=64K\) 切?

/ / (FC 3)...

21 flash

《將進酒》

目 录

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

untitled

untitled

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

untitled

Adam Equipment

PowerPoint 簡報

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2


第 二 章 古 代 慢 慢 睁 开 眼 睛, 我 的 面 前 出 现 一 个 女 孩 子, 大 约 十 六 七 岁, 身 穿 淡 绿 色 布 裙, 头 上 两 个 小 圆 髻 特 别 娇 俏 可 爱 医 院 什 么 时 候 出 现 这 么 一 个 可 爱 的 古 装 护 士 啊! 这 医 院 真 有

学习MSP430单片机推荐参考书

殖民地風俗管理:以纏足習慣為例

PIC16F F MPLAB 08 16F LED 15 LED

<4D F736F F D20B6C0AE78B0EDAABAC0B8A740B8D65FA7EBA7BAA54EA4E5BEC7ACE3A873C24FA55AA15E2E646F63>

Microsoft Word - F5.docx

Microsoft Word - 朗诵诵材.doc

06-07周年報告template.PDF

Car DVD API User Manual V0.2 Feb 03, 2008

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

CC213

新・明解C言語入門編『索引』

穨control.PDF

Transcription:

定時器 / 計數器 LED 應用

STC12C5410AD 系列單片機有 6 個計時器, 其中計時器 0 和計時器 1 兩個 16 位計時器, 與傳統 8051 的計時器完全相容, 也可以設置為 1T 模式, 當在計時器 1 做串列傳輸速率發生器時, 計時器 0 可以當兩個 8 位計時器用 ( 另外 4 路 PCA/PWM 可以再實現 4 個 16 位計時器 ) 當計時器 / 計數器工作在定時模式時, 特殊功能寄存器 AUXR 中的 T0x12 和 T1x12 分別決定是系統時鐘 /12 還是系統時鐘 /1( 不分頻 ) 後讓 T0 和 T1 進行計數 計時器 / 計數器 0 有 4 種工作模式 : 模式 0(13 位計時器 / 計數器 ), 模式 1(16 位計時器 / 計數器模式 ), 模式 2(8 位元自動重裝模式 ), 模式 3( 兩個 8 位計時器 / 計數器 ) 計時器 / 計數器 1 除模式 3 外, 其他工作模式與計時器 / 計數器 0 相同,T1 在模式 3 時無效, 停止計數

計時器 / 計數器的相關寄存器

除 12 T0x12=0 除 1 T0x12=1 Timer C/T=0 Counter C/T=1 ( 從 P3.5(T1),P3.4(T0) 腳輸入 ) 開始計數 :TR=1 且 (INT0=1 或 GATE=0) 當計數到最大 111 時, 再 +1 為 000, 產生 overflow, 設定 TF 旗標, 然後執行中斷

計時器 / 計數器控制寄存器 TCON TF1/TF0: 計時器 / 計數器 T1/T0 溢出標誌 T1/T0 被允許計數以後, 從初值開始加 1 計數 當最高位產生溢出時由硬體置 1 TF1/TF0, 向 CPU 請求中斷, 一直保持到 CPU 回應中斷時, 才由硬體清 0 TF1/TF0(TF1/TF0 也可由程式查詢清 0 ) TR1/TR0: 計時器 T1/T0 的運行控制位 該位元由軟體置位元和清零 當 GATE(TMOD.7/3)=0,TR1/TR0=1 時就允許 T1/T0 開始計數,TR1/TR0=0 時禁止 T1/T0 計數 當 GATE(TMOD.7/3)=1, TR1/TR0=1 且 INT1/0 輸入高電平時, 才允許 T1/T0 計數

計時器 / 計數器控制寄存器 TCON IE1/IE0: 外部中斷 1 請求源 (INT1(P3.3)/INT0(P3.2)) 標誌 IE1/IE0=1, 外部中斷向 CPU 請求中斷, 當 CPU 回應該中斷時由硬體清 0 IE1/IE0 IT1/IT0: 外部中斷 1 觸發方式控制位元 IT1/IT0=0 時, 外部中斷 1 為低電平觸發方式, 當 INT1(P3.3)/INT0(P3.2) 輸入低電平時, 置位 IE1/IE0 採用低電平觸發方式時, 外部中斷源 ( 輸入到 INT1/INT0) 必須保持低電平有效, 直到該中斷被 CPU 回應, 同時在該中斷服務程式執行完之前, 外部中斷源必須被清除 (P3.3/P3.2 要變高 ), 否則將產生另一次中斷 當 IT1/0=1 時, 則外部中斷 1/0(INT1/0) 埠由 1 0 下降沿跳變, 啟動插斷要求標誌位元 IE1/IE0, 向主機請求中斷處理

定時器 / 計數器工作模式寄存器 TMOD GATE:TMOD.7(T1)/TMOD.3(T0) 當 GATE=0, 則 TR=1, 開始計數當 GATE=1, 則 TR=1 且 INT=1, 開始計數 C/T:TMOD.6(T1)/TMOD.2(T0) C/T=0, 用作定時器 ( 從內部系統時鐘輸入 ) C/T=1, 用作計數器 ( 從 P3.5(T1),P3.4(T0) 腳輸入 )

設定定時器 TH & TL TH 和 TL 的設定值為定時器的起始值, 每進來一個脈波 +1, 直到 111 再 +1, 產生 overflow, 然後中斷 如果是模式 1(16bit) 可以計數到 65536 個脈波 若使用 12M 震盪器, 除以 12, 每秒可數 10 6 個脈波 每 ms 可數 10 3 個脈波 每個脈波時間為 10-6 秒 10000 個脈波為 10-2 秒

定時器 / 計數器工作模式寄存器 TMOD M1/M0:TMOD.5/TMOD.4,TMOD.1/TMOD.0 M1 M0 計時器 / 計數器 0 模式選擇 0 0 13 位計時器 / 計數器, 相容 8048 定時模式,TL0 只用低 5 位參與分頻,TH0 整個 8 位全用 0 1 16 位計時器 / 計數器,TL0 TH0 全用 1 0 8 位自動重裝載計時器, 當溢出時將 TH0 存放的值自動 重裝入 TL0 1 1 計時器 0 此時作為雙 8 位計時器 / 計數器 TL0 作為一個 8 位計時器 / 計數器, 通過標準計時器 0 的控制位控制 TH0 僅作為一個 8 位計時器, 由計時器 1 的控制位控制

輔助寄存器 AUXR 計時器 0 和計時器 1 復位後是傳統 8051 的速度, 即 12 分頻, 藉由寄存器 AUXR, 將 T0,T1 設置為 1T T0x12/T1x12: 計時器 0/1 速度控制位 0: 計時器 0 速度是 8051 單片機計時器的速度, 即 12 分頻 ; 1: 計時器 0 速度是 8051 單片機計時器速度的 12 倍, 即不分頻 UART_M0x6: 串口模式 0 的通信速度設置位 0:UART 串口模式 0 的速度是傳統 8051 單片機串口的速度, 即 12 分頻 ; 1 :UART 串口模式 0 的速度是傳統 8051 單片機串口速度的 6 倍, 即 2 分頻

WAKE_CLKO: 時鐘輸出和掉電喚醒 寄存器 T0_PIN_IE /T1_PIN_IE: 掉電模式下, 允許 T0(P3.4)/ T1(P3.5) 腳下降沿置 T0/T1 中斷標誌, 也能使 T0/T1 腳喚醒 powerdown. 0: 禁止 T0(P3.4)/T1(P3.5) 腳下降沿置 T0/T1 中斷標誌, 也禁止 T0/T1 腳喚醒 powerdown ; 1: 允許 T0(P3.4)/T1(P3.5) 腳下降沿置 T0/T1 中斷標誌, 也允許 T0/T1 腳喚醒 powerdown

WAKE_CLKO: 時鐘輸出和掉電喚醒 寄存器 T0CLK0/T1CLKO: 是否允許將 T0(P3.4)/T1(P3.5) 腳配置為計時器 T1 的時鐘輸出 CLKOUT0/CLKOUT1 1: 允許將 T0(P3.4)/T1(P3.5) 腳配置為計時器 T0/T1 的時鐘輸出 CLKOUT0/CLKOUT1, 此時計時器 T0/T1 只能工作在模式 2(8 位元自動重裝模式 ),CLKOUT1 輸出時鐘頻率 = T0/T1 溢出率 /2 T0/T1 工作在 1T 模式時的輸出頻率 =SYSclk/(256 - TH1)/2 T0/T1 工作在 12T 模式時的輸出頻率 =SYSclk/12/(256-TH1)/2 0: 不允許將 T0(P3.4)/T1(P3.5) 腳配置為計時器 T0/T1 的時鐘輸出 CLKOUT1

TIMER 0/1 模式 0(13 位計時器 / 計數器 ) T0 的速率由特殊功能寄存器 AUXR 中的 T0x12 决定, 如果 T0x12=0,T0 则工作在 12T 模式 ; 如果 T0x12=1,T0 则工作在 T1 模式

TIMER 0/1 模式 1(16 位計時器 / 計數器 ) TL0 的 8 位溢出向 TH0 進位,TH0 計數溢出置位 TCON 中的溢出標志位 TF0 當 GATE=0(TMOD.3) 時, 如 TR0=1, 則計時器計數 GATE=1 時, 允許由外部輸入 INT0 控制定時器 0, 這樣可實現脈寬測量 當 C/T=0 時, 多路開關連接到系統時鐘的分頻輸出,T0 對時鐘週期計數,T0 工作在定時方式 當 C/T=1 時, 多路開關連接到外部脈衝輸入 P3.4/T0, 即 T0 工作在計數方式

TIMER0 使用 16bits 模式 #define FOSC 11059200L //clock 11.0592M #define MODE 1T //Timer clock mode, comment this line is 12T mode #ifdef MODE 1T #define T1ms (65536-FOSC/1000) //1ms timer calculation method in 1T mode #else #define T1ms (65536-FOSC/12/1000) //1ms timer calculation method in 12T mode #endif #define T1msH T1ms/256 #define T1msL T1ms%256

主程式 void main(){ AUXR = 0x80; // TMOD = 0x01; //set timer0 as mode1 (16-bit) TL0 = T1msL; //initial timer0 low byte TH0 = T1ms H; //initial timer0 high byte TR0 = 1; //timer0 start running ET0 = 1; //enable timer0 interrupt EA = 1; //open global interrupt switch }

TIMER0 中斷程式 /* Timer0 interrupt routine */ void tm0_1ms() interrupt 1 using 1 { TL0 = T1msL; //reload timer0 low byte TH0 = T1msH; //reload timer0 high byte // 每次中斷為 1ms, 要設定 1 秒可使用 count 計數 1000 次 if (count-- == 0) //1ms * 1000 -> 1s { count = 1000; //reset counter P2^0 =! P2^0; //work LED flash } }

TIMER 0/1 模式 2(8 位元自動重裝模式 ) TL0 的溢出不僅置位 TF0, 而且 TH0 容重新入 TL0, TH0 內容由軟件預置, 重裝時 TH0 內容不變

TIMER 0/1 模式 2(8 位元自動重裝模式 ) 在此模式下, 當 T0CLKO/WAKE_CLKO.0=1 時, P1.0/ADC0 管腳配置定時器 0 的時鐘輸出 CLKOUT0 輸出時鐘頻率 = T0 溢出率 /2 如果 C/T=0, 定時器 / 計數器 T0 對內部系統計數, 則 : T0 工作在 1T 模式 (AUXR.7/T0x12=1) 的輸出時鐘頻率 =(SYSclk)/(256-TH0)/2 T0 工作在 12T 模式 (AUXR.7/T0x12=0) 的輸出時鐘頻率 =(SYSclk)/12/(256-TH0)/2 如果 C/T=1, 定時器 / 計數器 T0 對外部脈衝輸入 (P1.0ADC0) 計數, 則 : 輸出時鐘頻率 = (T0_Pin_CLK) / (256-TH0) / 2

TIMER0 使用 8bits 模式 #include "reg51.h" sfr AUXR = 0x8e; //Auxiliary register //T0 interrupt service routine void t0int( ) interrupt 1 //T0 interrupt (location at 000BH) {. }

void main() { AUXR = 0x80; //timer0 work in 1T mode TMOD = 0x06; //set timer0 as counter mode2 (8-bit auto-reload) TL0 = TH0 = 0xff; //fill with 0xff to count one time TR0 = 1; //timer0 start run ET0 = 1; //enable T0 interrupt EA = 1; //open global interrupt switch while (1); }

模式 3( 兩個 8 位元數目器 ) 模式只適用於定時器計數器 0 對計時器 0, 此模式下計時器 0 的 TL0 及 TH0 作為 2 個獨立的 8 位元數目器 下圖為模式 3 時的定時器 0 邏輯圖 TL0 佔用計時器 0 的控制位 :C/T GATE TR0 INT0 及 TF0 TH0 限定為計時器功能 ( 計數器週期 ), 佔用計時器 1 的 TR1 及 TF1 此時,TH0 控制計時器 1 中斷

範例 5-1 功能要求 : 1. 亮偶數 LED 燈, 其他關閉, 延遲 0.5 秒 2. 亮奇數 LED 燈, 其他關閉, 延遲 0.5 秒 3. 使用 TIMER0, 中斷 電路說明 : 8 顆 LED 接在 P2, 低電位亮, 高電位不亮

範例 5-1

範例 5-1

範例 5-1

範例 5-2 功能要求 : 1. LED0 亮, 其他關閉, 延遲 0.5 秒 ; 依序點亮 LED0-LED7 2. LED7 亮之後, 按相反順序, 依序點亮 LED7-LED0 3. 使用 TIMER0, 中斷 電路說明 : 8 顆 LED 接在 P2, 低電位亮, 高電位不亮

範例 5-2

範例 5-2

範例 5-2

作業 5-1 LED 從 0-7 週而復始的顯示

作業 5-2 LED 週而復始的依序亮 0-7, 1-6, 2-5, 3-4, 4-3, 5-2, 6-1, 7-0

作業 5-3 1. LED 依序亮 0-7 2. LED7 亮, 且 LED 依序亮 0-6 3. LED6,7 亮, 且 LED 依序亮 0-5 4. LED5,6,7 亮, 且 LED 依序亮 0-4 5. LED4,5,6,7 亮, 且 LED 依序亮 0-3 6. LED3,4,5,6,7 亮, 且 LED 依序亮 0-2 7. LED2,3,4,5,6,7 亮, 且 LED 依序亮 0-1 8. LED1,2,3,4,5,6,7 亮, 且 LED0 亮 9. 週而復始由 1-8

作業 5-4 1. 週而復始顯示 0-0xFF, 即 0=00000000 1=00000001 2=00000010 3=00000011 4=00000100 5=00000101 6=00000110 7=00000111 8=00001000 FF=11111111 2. 使用 TIMER0 的中斷計時

~ END ~