chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于AT89C51系統(tǒng)時(shí)鐘中斷的應(yīng)用

電子工程師 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:工程師姚遠(yuǎn)香 ? 2018-07-21 11:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

功能強(qiáng)大的時(shí)鐘中斷

單片機(jī)程序設(shè)計(jì)中,設(shè)置一個(gè)好的時(shí)鐘中斷,將能使一個(gè)CPU發(fā)揮兩個(gè)CPU的功效,大大方便和簡(jiǎn)化程序的編制,提高系統(tǒng)的效率與可操作性。我們可以把一些例行的及需要定時(shí)執(zhí)行的程序放在時(shí)鐘中斷中,還可以利用時(shí)鐘中斷協(xié)助主程序完成定時(shí)、延時(shí)等操作。

下面以6MHz時(shí)鐘的AT89C51系統(tǒng)為例,說(shuō)明時(shí)鐘中斷的應(yīng)用。

定時(shí)器初值與中斷周期時(shí)鐘中斷無(wú)需過(guò)于頻繁,一般取20mS(50Hz)即可。如需要百分之一秒的時(shí)基信號(hào),可取10mS(100Hz)。這里取20mS,用定時(shí)器T0工作于16位定時(shí)器方式(方式1)。T0的工作方式為:每過(guò)一個(gè)機(jī)器周期自動(dòng)加1,當(dāng)計(jì)滿0FFFFh,要溢出時(shí),便會(huì)產(chǎn)生中斷,并由硬件設(shè)置相應(yīng)的標(biāo)志位供軟件查詢。即中斷時(shí)比啟動(dòng)時(shí)經(jīng)過(guò)了N+1個(gè)機(jī)器周期。所以,我們只要在T0中預(yù)先存入一個(gè)比滿值0FFFFh小N的數(shù),然后啟動(dòng)定時(shí)器,便會(huì)在N個(gè)機(jī)器周期后產(chǎn)生中斷。這個(gè)值便是所謂的“初值”。下面計(jì)算我們需要的初值:時(shí)鐘為6MHz,12個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期,20mS中有10000個(gè)機(jī)器周期。(10000)10=(2710)16,則0FFFFh-2710h+1=0D8F0h。由于響應(yīng)中斷、保護(hù)現(xiàn)場(chǎng)及重裝初值還需要7~8個(gè)機(jī)器周期,把這個(gè)值再加上7,即T0應(yīng)裝入的初值是0D8F7h。每次中斷進(jìn)入后,先把A及PSW的值壓入堆棧,然后即把0D8F7h裝入T0。

設(shè)置一個(gè)單元,每次中斷加1我們可以取內(nèi)部RAM中一個(gè)單元,取名為INCPI(Increase Per Interrupt),在中斷中,裝完T0初值后,用INCINCPI指令將其加一。從這個(gè)單元中,無(wú)論中斷程序還是主程序,都可以從中獲得20mS的1~256之間任意整數(shù)倍的信號(hào)。例如:有一段向數(shù)碼管送顯的程序,需要每0.5秒執(zhí)行一次以便刷新顯示器,便可以設(shè)一單元(稱為等待單元)W_DISP,用/MOV A,INCPI/ADD A,#25/MOV W_DISP,A/語(yǔ)句讓其比當(dāng)前的INCPI值大25,然后在每次中斷中檢查是否于INCPI值相等。若相等,說(shuō)明已過(guò)了25個(gè)中斷周期,便執(zhí)行送顯程序,并且讓W(xué)_DISP再加上25,等待下個(gè)0.5秒。我們可以設(shè)置多個(gè)等待單元,以便取出多個(gè)不同的時(shí)基信號(hào)。讓中斷程序在每次中斷時(shí)依次查詢各個(gè)等待單元是否與INCPI相等,若相等,則執(zhí)行相應(yīng)的處理,并重新設(shè)置該等待單元的值,否則跳過(guò)。例如:用0.5秒信號(hào)刷新或閃爍顯示器,用1秒信號(hào)產(chǎn)生實(shí)時(shí)時(shí)鐘,或輸出一定頻率的方波,以一定間隔查詢輸入設(shè)備等。

在中斷中讀鍵通常,我們?cè)谥鞒绦蛑凶x鍵盤,步驟為:掃描鍵盤,若有鍵按下,則延時(shí)幾十毫秒去抖動(dòng),再次確認(rèn)此鍵確實(shí)按下,然后處理該鍵對(duì)應(yīng)的工作,完成后再次重上述步驟。但這有兩點(diǎn)不足:1.處理相應(yīng)工作時(shí)無(wú)法鎖存按鍵的輸入,即可能漏鍵。2.延時(shí)去抖時(shí)CPU無(wú)法做其它事情,效率不高。如果把讀鍵放入時(shí)鐘中斷中,則可避免上述不足。方法為:如果兩次相鄰的中斷中都讀到同一個(gè)鍵按下,則這個(gè)鍵是有效的(達(dá)到了去抖目的),并將其鎖存到先入先出(隊(duì)列)的鍵盤緩沖區(qū),等主程序來(lái)處理。這樣,主程序處理按鍵的同時(shí),仍可響應(yīng)鍵盤的輸入。緩沖區(qū)深度通??稍O(shè)為8級(jí),若鎖存的鍵數(shù)多于8個(gè),則忽略新的按鍵,并報(bào)警提示用戶新的按鍵將無(wú)效。若鍵盤緩沖隊(duì)列停滯的時(shí)間大大長(zhǎng)于主程序處理按鍵所需要的最大時(shí)間,說(shuō)明主程序已出錯(cuò)或跑飛,可以在中斷用指令將系統(tǒng)復(fù)位,起到了看門狗的目的。

主程序中的延時(shí)由于有常開(kāi)的時(shí)鐘中斷,所以當(dāng)主程序中有需要時(shí)間較短、精度較高的延時(shí)時(shí),應(yīng)暫時(shí)把時(shí)鐘中斷關(guān)閉。而程序中需要時(shí)間較長(zhǎng)、精度不高的延時(shí)時(shí),便可仿照下需的寫(xiě)法,避免多層嵌套的循環(huán)延時(shí)。

例:在P1.1輸出1秒的高電平脈沖

MOV A,INCPI

INC A

CJNE A,INCPI$ ;等待一次中斷處理完成

SETB P1.1 ;設(shè)P1.1為H,脈沖開(kāi)始

ADD A,#50 ;50個(gè)20mS為1秒

CJNE A,INCPI,$ ;等中斷將INCPI加一50次

CLR P1.1 ;設(shè)P1.1為L(zhǎng),脈沖結(jié)束

結(jié)束語(yǔ):從上看出,要靈活地應(yīng)用時(shí)鐘中斷,將任務(wù)合理分配給中斷和主程序,并且二者要分工明確,接口簡(jiǎn)單。這其中的技巧還需要大家在實(shí)踐中多多摸索與體會(huì)。另外要注意:應(yīng)盡量縮短中斷處理程序的執(zhí)行時(shí)間,更不要長(zhǎng)于20mS。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1946

    瀏覽量

    134143
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    911

    瀏覽量

    43346
  • AT89C51
    +關(guān)注

    關(guān)注

    27

    文章

    543

    瀏覽量

    82732
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LMK5C33216 超低抖動(dòng)時(shí)鐘同步器

    該LMK5C33216是一款高性能網(wǎng)絡(luò)時(shí)鐘發(fā)生器、同步器和抖動(dòng)衰減器,具有先進(jìn)的參考時(shí)鐘選擇和無(wú)中斷開(kāi)關(guān)功能,旨在滿足通信基礎(chǔ)設(shè)施應(yīng)用的嚴(yán)格要求。 該LMK5
    的頭像 發(fā)表于 09-11 17:19 ?620次閱讀
    LMK5<b class='flag-5'>C</b>33216 超低抖動(dòng)<b class='flag-5'>時(shí)鐘</b>同步器

    請(qǐng)問(wèn)系統(tǒng)時(shí)鐘源可以從 MS51 系列的外部晶體 (HXT) 中選擇嗎?

    系統(tǒng)時(shí)鐘源可以從 MS51 系列的外部晶體 (HXT) 中選擇嗎?
    發(fā)表于 08-25 06:29

    AT89C51 單片機(jī)中文資料

    電子發(fā)燒友網(wǎng)站提供《AT89C51 單片機(jī)中文資料.pdf》資料免費(fèi)下載
    發(fā)表于 06-24 15:29 ?1次下載

    三相反應(yīng)式步進(jìn)電機(jī)智能控制系統(tǒng)設(shè)計(jì)

    方案采用AT89C51單片機(jī)內(nèi)部定時(shí)器改變 CP脈沖的頻率,從而實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速進(jìn)行控制。經(jīng)過(guò)理論及試驗(yàn)研究,該系統(tǒng)實(shí)現(xiàn)了步進(jìn)電機(jī)調(diào)速與正反轉(zhuǎn)的控制功能,能夠在較寬頻率范圍內(nèi)實(shí)現(xiàn)三相反應(yīng)式步進(jìn)電機(jī)轉(zhuǎn)逸調(diào)節(jié)
    發(fā)表于 06-13 09:31

    時(shí)鐘系統(tǒng)推薦,時(shí)鐘系統(tǒng)哪家好?賽思時(shí)鐘系統(tǒng)助力中國(guó)氣象科學(xué)研究院構(gòu)建智慧氣象網(wǎng)絡(luò)

    時(shí)鐘系統(tǒng)推薦,時(shí)鐘系統(tǒng)哪家好?賽思時(shí)鐘系統(tǒng)助力中國(guó)氣象科學(xué)研究院構(gòu)建智慧氣象網(wǎng)絡(luò)
    的頭像 發(fā)表于 05-20 09:32 ?585次閱讀
    <b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>推薦,<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>哪家好?賽思<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>助力中國(guó)氣象科學(xué)研究院構(gòu)建智慧氣象網(wǎng)絡(luò)

    51單片機(jī)C語(yǔ)言學(xué)習(xí)筆記

    c51語(yǔ)言快速入門
    發(fā)表于 03-24 14:04 ?3次下載

    EE-188:使用C語(yǔ)言在ADSP-219x DSP上實(shí)現(xiàn)中斷驅(qū)動(dòng)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《EE-188:使用C語(yǔ)言在ADSP-219x DSP上實(shí)現(xiàn)中斷驅(qū)動(dòng)系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:06 ?0次下載
    EE-188:使用<b class='flag-5'>C</b>語(yǔ)言在ADSP-219x DSP上實(shí)現(xiàn)<b class='flag-5'>中斷</b>驅(qū)動(dòng)<b class='flag-5'>系統(tǒng)</b>

    EE-192:使用C語(yǔ)言在Blackfin處理器上創(chuàng)建中斷驅(qū)動(dòng)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《EE-192:使用C語(yǔ)言在Blackfin處理器上創(chuàng)建中斷驅(qū)動(dòng)系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 01-03 15:03 ?0次下載
    EE-192:使用<b class='flag-5'>C</b>語(yǔ)言在Blackfin處理器上創(chuàng)建<b class='flag-5'>中斷</b>驅(qū)動(dòng)<b class='flag-5'>系統(tǒng)</b>

    STC89C51是不是不可以通過(guò)串口讀取ADS1118的數(shù)據(jù),因?yàn)閱纹瑱C(jī)是8位的?

    STC89C51是不是不可以通過(guò)串口讀取ADS1118的數(shù)據(jù),因?yàn)閱纹瑱C(jī)是8位的?
    發(fā)表于 12-20 06:11

    求解答!用STC89C51系列數(shù)字秒表

    實(shí)驗(yàn)室學(xué)51單片機(jī),用STC89C51系列,作業(yè)太難了,求佬給源代碼幫助一下謝謝 1.通過(guò)定時(shí)器,8位數(shù)碼管,8個(gè)獨(dú)立按鍵完成1000秒以內(nèi)的數(shù)字秒表,最小分辨0.1秒,設(shè)置啟動(dòng)計(jì)秒鍵,暫停計(jì)秒鍵
    發(fā)表于 12-08 16:48

    c51單片機(jī)中斷

    返回:當(dāng)中斷服務(wù)程序執(zhí)行完后,CPU 會(huì)從堆棧中恢復(fù)之前保存的程序計(jì)數(shù)器(PC)和其他關(guān)鍵寄存器的值,然后繼續(xù)執(zhí)行被中斷的程序。 中斷的優(yōu)勢(shì) 實(shí)時(shí)性 :可以及時(shí)響應(yīng)外部事件。例如,在一個(gè)工業(yè)控制
    發(fā)表于 11-25 21:43

    基于51單片機(jī)的7人多數(shù)投票表決器設(shè)計(jì)

    設(shè)計(jì)編號(hào):P13 1.主要功能: ? ? ? ? ? 基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89
    的頭像 發(fā)表于 11-09 09:48 ?2361次閱讀
    基于<b class='flag-5'>51</b>單片機(jī)的7人多數(shù)投票表決器設(shè)計(jì)

    京準(zhǔn)時(shí)鐘科普:關(guān)于北斗衛(wèi)星同步時(shí)鐘的那些事?

    京準(zhǔn)時(shí)鐘科普:關(guān)于北斗衛(wèi)星同步時(shí)鐘的那些事?
    的頭像 發(fā)表于 10-29 09:28 ?959次閱讀
    京準(zhǔn)<b class='flag-5'>時(shí)鐘</b>科普:<b class='flag-5'>關(guān)于</b>北斗衛(wèi)星同步<b class='flag-5'>時(shí)鐘</b>的那些事?

    TMS320C6000系統(tǒng)時(shí)鐘電路示例

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000系統(tǒng)時(shí)鐘電路示例.pdf》資料免費(fèi)下載
    發(fā)表于 10-28 10:33 ?0次下載
    TMS320<b class='flag-5'>C</b>6000<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時(shí)鐘</b>電路示例

    基于51單片機(jī)的手動(dòng)數(shù)字時(shí)鐘

    具體實(shí)現(xiàn)功能由51單片機(jī)+8位共陰數(shù)碼管+獨(dú)立按鍵構(gòu)成。具體功能:(1)利用數(shù)碼管顯示時(shí)分秒,顯示格式為“時(shí)-分-秒”;(2)利用6個(gè)按鍵控制時(shí)、分、秒,設(shè)定好后自動(dòng)開(kāi)始時(shí)鐘顯示;(3)設(shè)置秒復(fù)位
    的頭像 發(fā)表于 10-22 14:12 ?806次閱讀
    基于<b class='flag-5'>51</b>單片機(jī)的手動(dòng)數(shù)字<b class='flag-5'>時(shí)鐘</b>