一、中斷及定時器工作原理
1、中斷概念:
1>CPU處理事件A發(fā)生事件B進行處理(中斷產生)
2>CPU暫時中斷當前工作,轉去處理事件B(中斷響應與中斷服務)
3>待CPU處理完B,再回來處理事件A(中斷返回)
4>51不支持中斷嵌套
圖釋:
注意:中斷服務不超過20行,盡量簡短,不要進行復雜的比較,延時運算!可以進行簡單比較,標志位,賦值的處理
保存主程序服務狀態(tài)(保護現(xiàn)場):push:入棧 保存工作狀態(tài)
恢復工作狀態(tài) pop:出棧
89C51:5個中斷源 89C52:8個中斷源
2、
可以看出,003H——00BH中有8個字節(jié),顯然是不夠程序存放的,著八個字節(jié)中存放跳轉指令
在ARM中,此表叫做中斷向量表,在ARM中可更改,在51中固定
二、定時器使用方法
void timer_init()
{
EA = 1; //打開總中斷
TMOD = 0x01; //設置定時器工作模式
TH0 = (65536 - 5000) / 256; //為定時器填初值5ms
TL0 = (65536 - 5000) % 256;
ET0 = 1; //打開定時器0
TR0 = 1;? //啟動定時器0
}
(一)、打開總中斷:
在reg52中:
/* IE */
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
EA被定義為A8H的第七位
標志位(只有0/1的)可以用bit定義
(二)、設定定時器工作方式
C/T:0定時,1計數(shù)(默認為0)
GATE:門電壓位
(三)、給定時器賦初值:
1、晶振頻率:12M,那么震蕩周期為1/12us
2、機器周期:12個震蕩周期=一個機器周期,即1us
3、51單片機為加法定時器
假如需要定時2ms,即加2000次,則定時器中填入65535-2000,即加2000溢出
TL0與TH0為兩個寄存器,合成16位,為Timer0,高八位等于65535-2000對256取整(相當于右移8位),放入TH0,低八位等于65535-2000對256取余,放入TL0
(四)、打開定時器中斷
(五)、啟動定時器
(六)、寫中斷服務函數(shù)
1、中斷服務函數(shù)無參數(shù),無返回值
2、例:
void timer_isr() interrupt 1 //中斷服務號
{
TH0 = (65536 - 5000) / 256; //重新填初值
TL0 = (65536 - 5000) % 256;
i++;
if(200 == i) //一秒到(200次,一次5ms)
{
i = 0;
led = ~led;
}
}
三、蜂鳴器
(一)、分類
1、有源蜂鳴器
2、無源蜂鳴器(大都為無源蜂鳴器,可以變音調)
(二)、有源蜂鳴器原理圖:
其中蜂鳴器部分需要方波,一般為1K的頻率,此頻率可調音調
(三)、例:
sbit beep = P0^5;
void main()
{
while(1)
{
beep = ~beep;
delay_ms(1); //時間越短,聲音越尖銳
}
}
(四)、技巧:
1、用兩個定時器時候設定工作方式:
TOMD |= 0x01;
TOMD |= 0x01;
2、關定時器:
TR1 = 0;
上一篇:51單片機計時器中斷
下一篇:對51單片機中斷系統(tǒng)的理解
推薦閱讀
史海拾趣
隨著公司業(yè)務的不斷擴展,安森德對資金的需求也日益增加。在這個關鍵時刻,公司成功獲得了數(shù)千萬人民幣的戰(zhàn)略投資。這筆資金為公司的研發(fā)、生產和市場拓展提供了有力支持。在融資的助力下,安森德加快了規(guī)模擴張的步伐,先后在多個城市設立了研發(fā)中心和辦事處,進一步提升了公司的研發(fā)實力和市場覆蓋能力。
申風(everanalog)公司于2013年在上海成立,由一群充滿激情和夢想的電子工程師組成。創(chuàng)始人施嘉銘憑借其深厚的行業(yè)經驗和前瞻性的視野,帶領團隊開始了集成電路設計的探索之旅。在初創(chuàng)階段,公司面臨著資金緊張、人才短缺等挑戰(zhàn),但團隊憑借著堅定的信念和不懈的努力,逐漸在市場上站穩(wěn)了腳跟。
Corex Intervest Inc公司在電子行業(yè)的發(fā)展歷程中,始終保持著穩(wěn)健的步伐和進取的精神。公司不斷適應市場變化和技術更新,不斷調整戰(zhàn)略方向和發(fā)展重點。在未來,公司將繼續(xù)加大研發(fā)投入,拓展新的應用領域和市場空間,為電子行業(yè)的發(fā)展貢獻更多的力量。
這五個故事展示了Corex Intervest Inc公司在電子行業(yè)中的發(fā)展歷程和取得的成就。從創(chuàng)立初期的艱難起步到技術創(chuàng)新、市場拓展、戰(zhàn)略合作和持續(xù)發(fā)展的不斷推進,Corex Intervest Inc公司始終保持著積極進取的精神和不斷創(chuàng)新的態(tài)度,在電子行業(yè)中取得了顯著的成績。
Adam Tech深知品質是企業(yè)生存和發(fā)展的基石。因此,公司始終將品質管理放在首位,通過引進先進的生產設備和技術,以及實施嚴格的質量控制流程,確保每一款產品都符合客戶的要求和行業(yè)標準。同時,公司還建立了完善的售后服務體系,及時解決客戶在使用過程中遇到的問題。這種對品質的執(zhí)著追求和持續(xù)改進的精神,使得Adam Tech在客戶中贏得了良好的口碑。
近幾年來,隨著國內外大型網(wǎng)絡運營商對網(wǎng)絡環(huán)境的建設和改造,以及ISDN、DDN、VPN、ATM等技術的應用和推廣,視頻會議系統(tǒng)的使用環(huán)境也變得越來越好。因此無論是通訊行業(yè)還是IT行業(yè),都對視頻會議領域重新進行關注,視音頻編解碼技術趨于成熟,視頻 ...… 查看全部問答∨ |
|
BOOL WINAPI WriteFile( __in HANDLE hFile, __in LPCVOID lpBuffer, __in DWORD ...… 查看全部問答∨ |
SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了??? SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了??? 急,萬分感謝. 另外,哪里有USB轉SDIO的芯片??給介紹一下?… 查看全部問答∨ |
求一發(fā)包工具,可以發(fā)送大于長度為1518的數(shù)據(jù)包 目前常規(guī)的發(fā)包工具如sniffer發(fā)送最長的包長度為1518(包含CRC),但加入vlan后數(shù)據(jù)包長度變長了,現(xiàn)需對加入vlan的數(shù)據(jù)包進行測試,有沒有哪個發(fā)包工具可以發(fā)送大于長度為1518的數(shù)據(jù)包???… 查看全部問答∨ |
初入論壇,請指教。 需要驅動一塊LCD,49mm*21mm,應該是點陣,可顯示字母及數(shù)字。 初步選型想入MSP430F425A、MSP430F4260,問題來了,425A的LCD段數(shù)是128,426是56,我該如何判斷LCD需要多少段數(shù)呢? 在論壇搜尋了半天也沒見這方面資料,望不吝賜 ...… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- EEworld獨家原創(chuàng)視頻:大話TI CC2650,邀你來看!
- 觀看TI IOT解決方案研討會 答題即可贏取更多精美好禮!
- 【EEWORLD第三十九屆】2012年06月社區(qū)明星人物揭曉!
- 永不過時的物聯(lián)網(wǎng)解決方案 Intel帶你6的飛起來!
- ADI有獎下載活動之25:ADI汽車傳感器和傳感器接口解決方案
- Vicor 更好的供電方式提升無人機飛行時間飛行半徑及有效載荷
- 考眼力:高速數(shù)字設計的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- TI 最新電容式觸控套件,免費嘗鮮中
- TI有獎直播|借助Sitara™ AM263x MCU 創(chuàng)造電氣化的未來