版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、方式0應用通過設置TMOD寄存器中的M1M0位00選擇定時器方式0,方式0的計數(shù)位數(shù)是13位,對T0來說,TL0寄存器的低5位(高3位未用)和TH0寄存器的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向cpu發(fā)出中斷請求。其邏輯圖如下定時器方式0位13位計數(shù)器,最多能裝載的個數(shù) 2的13次方=8192個,當TL0和TH0的初始值為0時,最多經(jīng)過8192個機器周期該計數(shù)器就會溢出一次,向cpu申請中斷。THX=(8192-N)/32 TLX=(8192-N)%32。機器周期=12 X (1/時鐘頻率)單片機定時器程序的步驟: 對TMOD賦值、計算初值、中
2、斷方式,對IE賦值,開放中斷、使TR0或TR1置位,啟動定時器讓發(fā)光二極管以1s亮滅閃爍 代碼:#include#define uchar unsigned char#define uint unsigned intsbit led1=P10;/ 假定發(fā)光二極管接P10口uchar num;void main()TMOD=0x00;/設置定時器0的工作方式為0TH0=(8192-4607)/32;/裝初值TL0=(8192-4607)%32;EA=1;/開總中斷ET0=1;/開定時器0中斷TR0=1;/啟動定時器0while(1)if( num=20 )num=0;led1=led1;void
3、 T0_time() interrupt 1TH0=( 8192-4607 )/32;TL0=( 8192-4607 )%32;num ;方式1應用定時器方式1 位16位計數(shù)器,最多能裝載的個數(shù) 2的16次方=65536個,當TL0和TH0的初始值為0時,最多經(jīng)過65536個機器周期該計數(shù)器就會溢出一次,向cpu申請中斷。TH0=(65536-N)/256;TL0=(65536-N)/256;。機器周期=12 X (1/時鐘頻率)#include #define uchar unsigned char#define uint unsigned int sbit led1=P00;uchar t
4、;void main()TMOD=0x01; TH0=(65536-50000)/256;TL0=(65536-50000)/256;EA=1; ET0=1; TR0=1; while(1) if(t=20)t=0;led1=led1;void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)/256; t+;方式2應用在定時器的方式0和1中,當計數(shù)溢出后,計數(shù)器變?yōu)?,因此在循環(huán)定時過程中反復的裝初值必然會影響到定時的精度。方法2可解決裝初值的問題。通過設置TMOD寄存器中的M1M0位為10選擇定時器方式2,方式2被稱為
5、8位初值自動重裝的8位定時器/計數(shù)器,THX被稱為常數(shù)緩沖器,當TLX溢出時,在TFX置1時的同時,還自動的將THX中的常數(shù)重新裝入TLX中,使TLX從初值開始重新計數(shù),這樣避免了人為軟件重裝初值所帶來的時間誤差,從而提高定時精度代碼,讓發(fā)光二極管以1s亮滅閃爍#include#define uint unsigned intsbit led1=P10;/二極管接P10口uint num;void main()TMOD=0x02;TH0=6;/ TH0、TL0取6和下面的num取3686是為了得到1s的時間。也可取其他的數(shù)字TL0=6;EA=1;ET0=1;TR0=1;while( 1 )if
6、( num=3686 )num=0;led1=led1;void T0_time() interrupt 1num ;方式3應用方式3只適用于定時器/計數(shù)器 T0,當設定定時器T0處于方式3時,定時器T1不計數(shù)。方式3將T0分成2個獨立的8位計數(shù)器TL0和TH0,定時器3的邏輯結構圖分析上圖可知,定時器被分成2個獨立的計數(shù)器。其中TL0為正常的8位計數(shù)器,計數(shù)溢出后置位TF0,向cpu發(fā)出中斷申請,之后再重裝初值。TH0也被固定為一個8位計數(shù)器,它占用定時器T1的中斷請求標志TF1和定時器啟動控制位TR1。代碼 讓第一個二極管1s閃爍、第二個二極管0.5s閃爍#include#define u
7、char unsigned char#define uint unsigned intsbit led1=P10;/二極管接一個P10口另一個接P12口sbit led2=P11;uint num_1,num_2;void main()TMOD=0x03;TH0=6;/ TH0、TL0取6和下面的num取3686是為了得到1s的時間。也可取其他的數(shù)字TL0=6;EA=1;ET0=1;ET1=1;TR1=1;TR0=1;while( 1 )if( num=3686 )num_1=0;led1=led1;if( num_2=1843 )num_2=0;led2=led2;void TL0_time
8、() interrupt 1TL0=6;num_1 ;void TH0_time() interrupt 3TH0=6;num_2 ;256的意思:定時器0設置于模式1時,計數(shù)寄存器為16位模式,由高8位TH0和低8位TL0兩個8位寄存器組成,當設定計算值為65536-50000=15536(D)時,轉換為十六進制就是3CB0(H),此時,TH0=3C,TL0=B0分別裝入即可,為了免除這些計算步驟,很多編程者采用“TH0=(65536-50000)/256;TL0=(65536-50000)%256“的編程方式,去讓單片機自己去計算結果,那么為什么要介入256呢?其實并不難理解,做一下101
9、6進制的換算就知道了,256(D)=0100(H),這里01就是高8位的數(shù)據(jù),00就是低8位的數(shù)據(jù),通俗點說,15536(D)里有多少個256,就相當于高8位有多少數(shù)值,就是除的關系了,商存入高8位寄存器后余下的數(shù)存入低8位即可,取商計算就是TH0=(65536-50000)/256;而取余計算就是TL0=(65536-50000)%256 。TMOD |= 0x01;請問中間“ |=”是什么意思?P3 &= 0x7f意思為 P3=P3&0x7f 表示P3的最高位(P3.7)清0,不影響P3其他位 P3 |= 0x80意思是 P3=P3|Ox80 表示P3的最高位(P3.7)為1,不影響P3其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文體產(chǎn)業(yè)市場調(diào)研報告
- 融資擔保人還款合同
- 員工晉升與降職人事策略
- 玻璃加工電動工具租賃合約
- 建筑工程車輛租賃合同
- 跑馬場遮陽棚建設合同
- 2025年度220系列駁接件在石油化工項目的管道連接服務合同3篇
- 航空公司員工保險條例
- 2025年大數(shù)據(jù)暗股投資技術服務合同模板3篇
- 鐵路工程砌體施工合同
- 豎井工程地質勘察報告
- 2024屆安徽省物理八年級第一學期期末復習檢測試題含解析
- 全國主要城市氣象參數(shù)
- 宣城消防鋼樓梯施工方案
- 框架柱的配筋計算二
- IPC-7530A-2017 CN群焊工藝溫度曲線指南(再流焊和波峰焊)
- 初期支護設計驗算
- 石關煤礦緊急避險系統(tǒng)管理制度及技術檔案匯編
- 醫(yī)院醫(yī)務科科長崗位競聘答辯PPT課件(帶內(nèi)容)
- 2023年華僑、港澳、臺聯(lián)考高考語文試卷(含解析)
- 快上來吧要開車了課件
評論
0/150
提交評論