日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]從定時(shí)器開始說中斷什么叫中斷?這個(gè)對(duì)于剛進(jìn)入MCU界的人來說是一個(gè)難以了解的問題,因?yàn)槲业谝淮螌W(xué)單片機(jī)的時(shí)候就不完全不了解什么叫中斷。后來慢慢來知道原來中斷是單片機(jī)運(yùn)行到一半突然飛到某個(gè)地方運(yùn)行某些東西運(yùn)

定時(shí)器開始說中斷什么叫中斷?這個(gè)對(duì)于剛進(jìn)入MCU界的人來說是一個(gè)難以了解的問題,因?yàn)槲业谝淮螌W(xué)單片機(jī)的時(shí)候就不完全不了解什么叫中斷。后來慢慢來知道原來中斷是單片機(jī)運(yùn)行到一半突然飛到某個(gè)地方運(yùn)行某些東西運(yùn)行后又飛回來而已。

后來學(xué)著學(xué)著就了解到中斷的意義了,不過對(duì)于第一次接觸單片機(jī)的人來說,還是很難解說的清楚的。

所以這里我做個(gè)比喻吧。假設(shè)你客廳的電話來電時(shí),有鈴聲和閃光提示,而你在房間看書,那么有電話來的時(shí)候,你聽到鈴聲,然后放下手上的書,并用書簽記錄你的頁數(shù),再出去聽電話。聽完后,回到房間,從書簽標(biāo)記的位置繼續(xù)看你的書。

OK,分析上面的幾個(gè)動(dòng)作,電話響并被你聽到,那是中斷來了;你用書簽標(biāo)記位置,那是現(xiàn)場(chǎng)保護(hù);聽電話,就是執(zhí)行中斷咯;聽完電話,你要從你剛才標(biāo)記的地方繼續(xù)看書,那就是中斷執(zhí)行完畢后回到原中斷處繼續(xù)執(zhí)行程序。這個(gè)就是中斷的過程了。

假設(shè)沒有了中斷的話,你會(huì)如何?你會(huì)用掃描法:電話不會(huì)響鈴了,只有閃光,但你必須在房間看書,那你只能每看幾段,就跑出去看看是否有電話到,如果沒有,就跑回去看書,如果有了,那你就聽電話吧。很明顯,掃描法效率非常低,因?yàn)槟忝靠匆粫?huì)書就得花時(shí)間看看電話的閃光以判斷是否有電話的到來,這樣你看書的效率就大大減低了。而且掃描法還有個(gè)最大的缺點(diǎn),就是中斷丟失,試想如果你掃描的間隔過大(就是看很久書才去看一下電話),那你極有可能丟了幾個(gè)重要的來電。

其實(shí)上面的比喻,正能很好地表現(xiàn)中斷的作用——其實(shí)中斷就是為了處理突發(fā)事件。

對(duì)于單片機(jī)來說,突發(fā)的事情實(shí)在太多了,例如用戶對(duì)單片機(jī)輸入數(shù)據(jù),按鍵,那都是單片機(jī)本身無法估計(jì)的事情。外來數(shù)據(jù)的突然進(jìn)入,也屬于突發(fā)事件。這些外部來的突發(fā)信號(hào),一般就由單片機(jī)的外部中斷來處理。外部中斷其實(shí)就是一個(gè)管腳的狀態(tài)改變引起的中斷,在之后會(huì)說。

這里先介紹定時(shí)器和定時(shí)器中斷:

在測(cè)量控制系統(tǒng)中,常常需要實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)定時(shí)控制、定時(shí)測(cè)量或定時(shí)中斷等。也常需要計(jì)數(shù)器以實(shí)現(xiàn)對(duì)外部事件的計(jì)數(shù)。MCS-51單片機(jī)中有兩個(gè)(增強(qiáng)型有三個(gè))十六位的定時(shí)計(jì)數(shù)器T0,T1,簡(jiǎn)稱定時(shí)器0和定時(shí)器1,兩者均為可編程定時(shí)計(jì)數(shù)器。

——以上P話抄自《單片微型計(jì)算機(jī)與接口技術(shù)》94頁第一段-_-#!!!!!

其實(shí)你問清楚什么叫定時(shí)器,我真的不知道用什么言語來說。剛學(xué)的時(shí)候,聽過這樣一句話“定時(shí)器是單片機(jī)上的寶貴資源”,當(dāng)時(shí)不了解,為什么這個(gè)資源是寶貴的呢??后來才慢慢知道定時(shí)器的偉大所在。當(dāng)然這個(gè)是需要一定的時(shí)間來領(lǐng)悟的咯,在這里你還是踏踏實(shí)實(shí)地往下看吧:)

一開始我就說了,看本教材的時(shí)候你手上需要至少一本單片機(jī)的基礎(chǔ)書,什么書隨便買本就是了,反正現(xiàn)在的單片機(jī)書啊,都是你抄我我抄你的了,都一個(gè)樣,最重要的還是例子吧。拿起你的書看看單片機(jī)的中斷寄存器和定時(shí)器寄存器吧,咱們要開始寫程序咯,時(shí)間是不等人D~~~~

單片機(jī)方式0是13位的,從來就沒用過,有16位不用你用13位?真浪費(fèi)也~~~

然后是計(jì)算裝入值,16位啊,就是16位2進(jìn)制,2的16次方,就是65536了。16位定時(shí)器就是從某個(gè)所謂的裝入值開始自加,加到65536就計(jì)滿,如果你允許定時(shí)器中斷,那就有中斷來臨。所以16位方式裝入值的計(jì)算很簡(jiǎn)單:

65536-你要計(jì)算的脈沖數(shù)=裝入值

但我們一般是要定時(shí)時(shí)間的,而不是單單計(jì)多少個(gè)脈沖,所以你要計(jì)算的脈沖數(shù)要轉(zhuǎn)化為時(shí)間,跟你說,一個(gè)脈沖的時(shí)間就是一個(gè)機(jī)器周期,51的機(jī)器周期就是12/晶振值。如果你的晶振是12M那么這樣一除就是1US咯。1US整數(shù),算什么都好算,所以你現(xiàn)在知道為什么這么多12M,24M的晶振買了吧,都是為51準(zhǔn)備的咯。

#i nclude "reg51.h"

void initTimer(void)

{

TMOD=0x1;

TH0=0xd8;

TL0=0xf0;

}

void timer0(void) interrupt 1

{

TH0=0xd8;

TL0=0xf0;

//add your code here.

}

void main(void)

{

initTimer();

TR0=1;

ET0=1;

EA=1;

while(1);

}

上面的代碼是12M晶振下定時(shí)10000US的程序,也就是10MS發(fā)生一次中斷。initTimer()是初始化函數(shù),設(shè)置定時(shí)值和中斷的。

10000US在12M晶振下就是100000個(gè)機(jī)器周期了,65536-100000=55536=D8F0(十六進(jìn)制),所以上面就是TH0=0xd8;TL0=0xf0;

void timer0(void) interrupt 1就是定時(shí)器0中斷函數(shù),我們不需要理會(huì)匯編的中斷先,只需要知道當(dāng)中斷來臨的時(shí)候,程序就自動(dòng)跳到timer0(void)這個(gè)函數(shù)運(yùn)行了,運(yùn)行完后就會(huì)回到原來中斷處繼續(xù)執(zhí)行原先的程序。

interrupt是C51中的關(guān)鍵字,后面跟有interrupt的函數(shù)都是中斷函數(shù),那么對(duì)應(yīng)哪個(gè)中斷呢?請(qǐng)大家參考:一開始為大家介紹的 Keil Software –Cx51 編譯器用戶手冊(cè) 中文完整版,(名字太長了,以后叫KEIL手冊(cè))的第125頁。

中斷號(hào) 中斷地址

0 0003H

1 000BH

2 0013H

3 001BH

4 0023H

5 002BH

6 0033H

7 003BH

8 0043H

9 004BH

10 0053H

11 005BH

12 0063H

13 006BH

14 0073H

15 007BH

16 0083H

17 008BH

18 0093H

19 009BH

20 00A3H

21 00ABH

22 00B3H

23 00BBH

24 00C3H

25 00CBH

26 00D3H

27 00DBH

28 00E3H

29 00EBH

30 00F3H

31 00FBH

看到了吧,中斷號(hào)就是對(duì)應(yīng)中斷進(jìn)入地址的,至于什么是中斷進(jìn)入地址?那就是發(fā)生某個(gè)中斷的時(shí)候單片機(jī)自動(dòng)跳進(jìn)的一個(gè)地址段了.

對(duì)于定時(shí)器0來說,就是000BH,所以對(duì)應(yīng)中斷號(hào)1。其他中斷地址看看書就知道了。由上面的表可以看出,KEILC支持32個(gè)中斷,不過到現(xiàn)在為止,我還沒看到過有51單片機(jī)有32個(gè)中斷的:)

好了,進(jìn)入調(diào)試實(shí)踐中了,把上面的代碼敲進(jìn)去吧,又或者直接下載我這個(gè)編譯好的工程:

timer0

進(jìn)入工程后,你需要設(shè)置點(diǎn)東西:

Debug Information是調(diào)試信息,你選擇這個(gè)東西,才可以在C語言上進(jìn)行仿真(不管是軟還是硬仿真),否則你的仿真環(huán)境是匯編的!

軟仿真設(shè)置:

Go till main()就是在仿真的時(shí)候直接跳到MAIN函數(shù)上。如果沒有選,那就由0地址開始運(yùn)行。這里說個(gè)概念,在C51中,mian()函數(shù)并不代表0地址的,要知道,keilc在一開始的時(shí)候是需要經(jīng)過比較多的初始化,例如清空RAM內(nèi)容,設(shè)置堆棧等東西,這些都是不需要你做的,你的用戶程序也不包括這些,做完這些初始化后,KEIL才自動(dòng)跳到你的mian進(jìn)行處理.

軟件仿真是可以選晶振的,我們選的12M。下面的這些東西你就按圖中的來選吧,具體內(nèi)容以后再說。

如果編譯成功的話,那么我們就開始第一次的軟件仿真咯:

上面的是已經(jīng)進(jìn)入仿真狀態(tài)的了,因?yàn)槲覀冞x擇了Debug Information所以可以在C下面調(diào)試,也因?yàn)檫x擇了Go till main()我們可以看到一開始就有個(gè)箭頭指著main()的第一句話。而程序旁深色的東東,也就是我圈著的東西,就是有效代碼段,程序只會(huì)在那里跑,也就是那個(gè)黃色箭頭只會(huì)在那個(gè)區(qū)域跑。現(xiàn)在你已經(jīng)可以仿真的了,可以選單步,全速來運(yùn)行了。關(guān)于KEIL的具體仿真,將在下一章為大家解說。

擴(kuò)展閱讀:51單片機(jī)中斷系統(tǒng)詳解

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉