單片機(jī)定時(shí)器中斷原理和c語言代碼詳解_第1頁
已閱讀1頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)定時(shí)器中斷原理和單片機(jī)定時(shí)器中斷原理和C語言代碼詳解語言代碼詳解我之前都是用ARM7,單片機(jī)基本不會(huì)。但一個(gè)項(xiàng)目要用到51,所以克了一下51還是有點(diǎn)模糊,今天調(diào)了這個(gè)代碼之后,對51定時(shí)器中斷有些心得,拿來和大家共享。廢話不說了,上代碼。#define_1231_C_#include“reg51.h“#include“1231.h“sbitOE=P2^3unsignedintSystemTimevoidtimer0(void)in

2、terrupt1using3中斷部分代碼,見下文的釋疑TH0=0xdbTL0=0xffTF0=0SystemTimevoidmain()TMODTMOD|=0x01TMOD的值表示定時(shí)器工作方式選擇TH0=0xdb寫入初始值初始值可以決定定時(shí)多久TL0=0xff根據(jù)下文的木桶比喻的話,如果TH0=0x00TL0=0x00;則表示從桶底開始裝水。TH0=0xdbTL0=0xff可以這樣子理解相當(dāng)于木桶里已經(jīng)有部分液鉛在里面,TH0和TL0

3、這個(gè)兩個(gè)值表示木桶里液鉛的高度,即此時(shí)桶里只能從液鉛的高度以上開始裝4串行中斷實(shí)際上編譯的時(shí)候就是把你這個(gè)函數(shù)的入口地址方到這個(gè)對應(yīng)中斷的跳轉(zhuǎn)地址usingy這個(gè)y是說這個(gè)中斷函數(shù)使用的那個(gè)寄存器組,51里面一般有4組r0r7寄存器,一共有32個(gè),如果你的終端函數(shù)和別的程序用的不是同一個(gè)寄存器組則進(jìn)入中斷的時(shí)候就不會(huì)將寄存器組壓入堆棧返回時(shí)也不會(huì)談出來節(jié)省代碼和時(shí)間初始值算法:定時(shí)器是當(dāng)總數(shù)達(dá)到FFFFH后產(chǎn)生中斷吧!那你要讓它計(jì)數(shù)10

4、000,是不是用FFFF(16進(jìn)制)減去10000(十進(jìn)制)的數(shù)當(dāng)計(jì)數(shù)初值???TH0=(10000256)TL0=(10000%256)跟FFFF(16進(jìn)制)減去10000(十進(jìn)制)的數(shù)是一樣的。從TH0=(10000256)TL0=(10000%256)開始計(jì)數(shù),計(jì)數(shù)到10000剛好滿。跟用FFFF(16進(jìn)制)減去10000(十進(jìn)制)的數(shù)一樣?。?!寫起來更簡單,不用算?。?!看看原碼、補(bǔ)碼就知道。正數(shù)的補(bǔ)碼是對應(yīng)的二進(jìn)制數(shù),符號(hào)位為零,

5、負(fù)數(shù)的補(bǔ)碼是它的絕對值對應(yīng)的二進(jìn)制數(shù)按位取反再加一,符號(hào)位為一。無符號(hào)數(shù)不考慮符號(hào),那么這個(gè)結(jié)果就跟用FFFF減去它的絕對值一樣中斷的理解。這里將涉及到單片機(jī)中斷的應(yīng)用,在cpu的一步步按照指令運(yùn)行的過程中(主程序),可能會(huì)有其它的更緊急的需要做的事情(中斷服務(wù)程序),需要cpu暫時(shí)停止當(dāng)前的程序(主程序),做完了(中斷服務(wù)程序)之后,又可以繼續(xù)去運(yùn)行先前的程序(主程序)。就像你正在吃飯,一邊又在給水桶里放水,吃著吃著,水滿了,你就得趕

6、快去把水龍頭關(guān)掉或者換一個(gè)空的水桶,再回來吃飯。單片機(jī)的定時(shí)器就像是一個(gè)水桶,你讓它啟動(dòng)了,也就是水龍頭打開了;開始裝水了;定時(shí)在每個(gè)機(jī)器周期不斷自動(dòng)加1,最后溢出了;水桶的水不斷增加,最也就滿出來了;定時(shí)器溢出時(shí),你就要去做處理了;水桶的水滿了,你也應(yīng)該處理一下了;處理完后,單片機(jī)又可以回到剛剛開停止的地方繼續(xù)運(yùn)行;水桶處理了,先前你在做什么也可以繼續(xù)去做什么了。單片機(jī)的主程序是從0x0000開始運(yùn)行的,單片機(jī)服務(wù)程序從哪里開始運(yùn)行呢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論