• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    單片機(jī)外部中斷的教學(xué)和自學(xué)方法研究與設(shè)計(jì)

    2013-12-31 00:00:00脫建智
    電子世界 2013年20期

    【摘要】外部中斷是單片機(jī)接收外部器件的信號而不占用CPU常規(guī)時(shí)間的實(shí)用技術(shù),是單片機(jī)技術(shù)的一個(gè)難點(diǎn)?;谖以簡纹瑱C(jī)實(shí)驗(yàn)室的基本實(shí)驗(yàn)條件,經(jīng)過近四個(gè)學(xué)期的研究和教學(xué)實(shí)踐驗(yàn)證,設(shè)計(jì)了適用于高職高專相關(guān)專業(yè)教學(xué)和自學(xué)單片機(jī)外部中斷的一種方法,實(shí)驗(yàn)表明該方法可以實(shí)現(xiàn)良好的教學(xué)效果。

    【關(guān)鍵詞】單片機(jī);外部中斷;優(yōu)先級;教學(xué)方法

    1.前言

    在多年的機(jī)電一體化技術(shù)專業(yè)《單片機(jī)原理及應(yīng)用》課程的授課過程中,逐漸總結(jié)出了該課程的重點(diǎn)和難點(diǎn),其中,單片機(jī)外部中斷是重中之重。

    2.實(shí)驗(yàn)設(shè)備介紹

    我院采用的是自主研發(fā)的單片機(jī)實(shí)踐教學(xué)設(shè)備,如圖1所示。

    圖1 單片機(jī)實(shí)踐教學(xué)設(shè)備

    控制核心為STC89C52RC單片機(jī),采用DIP40封裝,該系列單片機(jī)具備極為方便的程序下載方式,是目前保有率較高的一款通用單片機(jī)。顯示器采用六個(gè)共陽極數(shù)碼管,P2口作為數(shù)碼管的位選信號,P0口信息作為數(shù)碼管的顯示段碼。兩類輸入設(shè)備均采用機(jī)械式自復(fù)位按鍵,其一是4*4矩陣按鍵,其二是P3口的獨(dú)立式按鍵。P3.2和P3.3分別是外部中斷0和外部中斷1的觸發(fā)信號,KEY2和KEY3兩個(gè)按鍵產(chǎn)生的低電平信號和由1到0的下降沿信號可以觸發(fā)中斷。設(shè)備的部分原理圖如圖2所示。

    3.中斷原理

    3.1 中斷基本原理

    中斷技術(shù)是指CPU要中斷當(dāng)前正在處理而未完成的任務(wù)一,先去完成任務(wù)二,待任務(wù)二完成之后再繼續(xù)完成先前未完成的任務(wù)一。在這里任務(wù)一可以是C代碼的任何一個(gè)函數(shù)或者是主函數(shù),任務(wù)二是中斷處理子函數(shù)。

    可以觸發(fā)單片機(jī)中斷的信號被叫做中斷觸發(fā)信號,單片機(jī)配置兩個(gè)外部中斷源INT0和INT1,他們的觸發(fā)信號分別是由P3.2和P3.3兩條管腳輸入的,低電平觸發(fā)INT0。外部中斷觸發(fā)信號的形式可以通過IT0和IT1兩個(gè)控制位來配置,控制位設(shè)置為0,其觸發(fā)相應(yīng)中斷的信號形式為低電平觸發(fā),若設(shè)置為1則為控制引腳出現(xiàn)由1到0的下降沿的時(shí)候觸發(fā)。兩類信號均可以通過連接在P3口的獨(dú)立式按鍵實(shí)現(xiàn)。

    3.2 中斷優(yōu)先級

    中斷優(yōu)先級有兩層意義。第一層意義是中斷源的默認(rèn)優(yōu)先級,他們依次從高到低是INT0,定時(shí)器0,INT1,定時(shí)器1,串行口。第二層意義是中斷源的自定義優(yōu)先級,一般設(shè)置兩級自定義優(yōu)先級,若將中斷源的優(yōu)先級控制位設(shè)置為高電平1,則為高級中斷,反之為低級中斷。自定義優(yōu)先級同為高級中斷或者低級中斷的中斷源,他們的中斷優(yōu)先級由默認(rèn)優(yōu)先級決定。

    4.中斷的實(shí)驗(yàn)驗(yàn)證

    為了充分解析單片機(jī)的中斷技術(shù),結(jié)合上述中斷原理,研究設(shè)計(jì)了一系列實(shí)驗(yàn)?zāi)K,各模塊詳見下列程序清單。

    #include

    unsigned char code table[]={0xc0, 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,

    0x8e};//共陽極數(shù)碼管顯示段碼。

    unsigned char counter,ValueS,ValueG; //定義三個(gè)無符號字符型變量。

    void DelayXms(unsigned char i);

    void display();

    void main()

    {

    EA=1;//打開總中斷“開關(guān)”。

    EX0=1;//打開INT0“開關(guān)”。

    EX1=1;//打開INT1“開關(guān)”。

    IT0=1;//INT0觸發(fā)引腳P3.2低電平0觸發(fā)(IT0=1將配置該觸發(fā)引腳出現(xiàn)1->0下降沿時(shí)觸發(fā)中斷)。

    IT1=0;//INT1觸發(fā)引腳P3.3低電平0觸發(fā)(IT1=1將配置該觸發(fā)引腳出現(xiàn)1->0下降沿時(shí)觸發(fā)中斷)。

    PX0=0;//設(shè)置INT0為低級中斷。

    PX1=1;//設(shè)置INT1為高級中斷。

    while(1){display();}//主函數(shù)循環(huán)的主體是顯示工作。

    }

    void WINT0()interrupt 0//INT0處理函數(shù)。模塊一:實(shí)現(xiàn)計(jì)數(shù)值加一。

    {

    DelayXms(5);//消除機(jī)械式自復(fù)位按鍵的抖動(dòng)。

    if(INT0==0)//INT0=P3.2。

    {counter++;}//計(jì)數(shù)值加一。

    if(counter==10)

    {counter=0;}//計(jì)數(shù)值逢十清零。

    }

    void WINT11()interrupt 2//INT1處理函數(shù)。模塊二:實(shí)現(xiàn)最左邊一個(gè)數(shù)碼管顯示0。

    {

    P2=0x01;

    P0=table[0];

    display();

    }

    void display()//模塊三:最右邊兩位數(shù)碼管的動(dòng)態(tài)顯示計(jì)數(shù)值。

    {

    ValueS=counter/10;//取整,十位。

    ValueG=counter%10;//取余,個(gè)位。

    P2=0x20;

    P0=table[ValueG];

    DelayXms(3);

    P2=0X10;

    P0=table[ValueS];

    DelayXms(3);

    }

    void DelayXms(unsigned char i)//模塊四:X毫秒延時(shí)。

    {

    while(--i)

    {

    unsigned char j = 250;

    while(--j);

    }

    }

    (1)實(shí)驗(yàn)一:設(shè)置INT0為下降沿觸發(fā)方式(IT0=1),中斷處理函數(shù)為模塊一計(jì)數(shù)值加一。實(shí)驗(yàn)結(jié)果表明單片機(jī)可以順利的將按鍵的按下次數(shù)顯示出來。

    (2)實(shí)驗(yàn)二:設(shè)置INT0為低電平觸發(fā)方式(IT0=0)。實(shí)驗(yàn)結(jié)果表明單片機(jī)不能夠正常顯示按鍵按下次數(shù)。因?yàn)殡娖接|發(fā)方式的時(shí)候,只要觸發(fā)信號引腳是低電平就要申請中斷加一,人工按下機(jī)械式按鍵,將會(huì)被單片機(jī)掃描為多次低電平,出現(xiàn)重復(fù)加一,顯示亂碼的情況??梢詳U(kuò)展到INT1,收獲同樣的實(shí)驗(yàn)結(jié)果。

    (3)實(shí)驗(yàn)三:采用默認(rèn)優(yōu)先級,設(shè)置INT0為低電平0觸發(fā),一直按下KEY2實(shí)現(xiàn)顯示0功能。設(shè)置INT1為下降沿觸發(fā),按下KEY3一次實(shí)現(xiàn)加一功能。實(shí)驗(yàn)第一步,單獨(dú)按KEY3可以順利實(shí)現(xiàn)加一功能;第二步,保持KEY2按下狀態(tài),因?yàn)榈碗娖?觸發(fā)的緣故,CPU將不斷的實(shí)現(xiàn)INT0的顯示0的功能,這時(shí)候按下KEY3是不能夠?qū)崿F(xiàn)加一功能的,因?yàn)镮NT0的優(yōu)先級要高于INT1。

    (4)實(shí)驗(yàn)四:設(shè)置INT0實(shí)現(xiàn)加一功能而INT1實(shí)現(xiàn)顯示0的功能。實(shí)驗(yàn)第一步,單獨(dú)的KEY2和KEY3的功能可以分別實(shí)現(xiàn);第二步,在保持KEY3按下的情況下,再來按KEY2可以實(shí)現(xiàn)加一功能。

    (5)實(shí)驗(yàn)五:通過自定義優(yōu)先級的方式將INT1設(shè)置為高級中斷(PX1=1),INT0設(shè)置為低級中斷(PX0=0),重復(fù)實(shí)驗(yàn)三和實(shí)驗(yàn)四可以達(dá)到類似的效果。

    5.總結(jié)

    經(jīng)過近幾年的實(shí)踐教學(xué),研究設(shè)計(jì)了適用于高職高專機(jī)電一體化技術(shù)相關(guān)專業(yè)教學(xué)和自學(xué)單片機(jī)外部中斷的一種方法,其中涵蓋了簡單可行的五個(gè)實(shí)驗(yàn),實(shí)驗(yàn)表明該方法可以實(shí)現(xiàn)良好的教學(xué)效果。

    參考文獻(xiàn)

    [1]脫建智.基于自適應(yīng)算法的圓柱狀旋轉(zhuǎn)顯示屏的研究與設(shè)計(jì)[J].電子世界,2013,7:155.

    [2]脫建智.高職單片機(jī)技術(shù)的理論與實(shí)踐一體化教學(xué)研究[J].中國職工教育,2012.12:136.

    [3]脫建智.一種基于單片機(jī)的矩陣式鍵盤的設(shè)計(jì)與應(yīng)用[J].中國新通信.2012,24:52.

    作者簡介:脫建智(1981—),男,山東青州人,碩士,講師,現(xiàn)供職于濰坊工程職業(yè)學(xué)院,研究方向:機(jī)電一體化系統(tǒng)。

    安龙县| 南木林县| 文昌市| 射洪县| 东城区| 乌恰县| 塔城市| 崇文区| 陵水| 曲周县| 依安县| 道真| 肃南| 海口市| 留坝县| 疏附县| 英山县| 桐梓县| 马关县| 朝阳区| 柳州市| 云南省| 小金县| 博罗县| 大埔区| 吉安县| 临西县| 高台县| 巫溪县| 永吉县| 本溪| 遂宁市| 柯坪县| 孝昌县| 丹东市| 上林县| 乌鲁木齐县| 宜兰县| 卫辉市| 儋州市| 临漳县|