在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)匯編中斷程序

            51單片機(jī)匯編中斷程序

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏



            首先,介紹一下51單片機(jī)定時計數(shù)器,51有兩個定時計數(shù)器,分別為T0,T1,基本一樣,;有一點(diǎn)不同,下面我們介紹定時計數(shù)器T0
            ;了解8051的timer0中斷的程序?qū)懛?用中斷法產(chǎn)生定時
            ;上面顯示的是proteus仿真圖,下面的是源程序
            ;說明:(源程序中的中斷入口地址很重要(這個是固定的),程序中斷時,會在對應(yīng)中斷固定的
            ;入口地址進(jìn)入,因?yàn)橐?guī)定的相隔入口間的空進(jìn)有限,只能用跳轉(zhuǎn)指令跳轉(zhuǎn),最終用RETI強(qiáng)制返回
            ;這個程序把所有的中斷入口地址都寫上了,沒有用到的,用RETI直接屏蔽)
            ;運(yùn)行結(jié)果是使led燈明一下,暗一下。

            COUNT EQU 9217;對于11.0592的晶振來說,延時10ms
            LED EQU P1.1


            ORG 0000H
            LJMP RESET ;開始時跳轉(zhuǎn)轉(zhuǎn)到初始化程序中

            ORG 0003H ;外部中斷0
            RETI

            ORG 000BH ;定時器/計數(shù)器T0入口地址
            LJMP INT_TIMER0 ;跳轉(zhuǎn)到定時器/計數(shù)器中斷服務(wù)程序中去

            ORG 0013H ;外部中斷1
            RETI

            ORG 001BH ;定時器/計數(shù)器T1
            RETI

            ORG 0023H ;串行口中斷
            RETI

            ORG 0030H
            RESET:
            MOV R0,#00H
            DJNZ R0,$ ;剛開始,先進(jìn)行少量的延時,是各種工作寄存器準(zhǔn)備好
            CLR LED


            MOV TMOD,#00000001B ;設(shè)置定時器T0工作在方式1(16位)

            MOV TH0,#HIGH(65536-COUNT);設(shè)置初值(關(guān)于怎么計算,很多書上都有)
            MOV TL0,#LOW(65536-COUNT)
            ;MOV TH0,#(65536-COUNT)/256;取高八位數(shù)據(jù)(這是第二種方法)
            ;MOV TL0,#255 ;取底五位(為最大了)

            CLR TF0 ;先把溢出標(biāo)志位清零
            SETB TR0 ;開始計時
            SETB EA ;全局中斷打開
            SETB ET0 ;定時器/計數(shù)器T0溢出中斷打開

            MOV R2,#00H ;作為定時器累加器使用

            LOOP: SJMP LOOP ;在此循環(huán),等待中斷


            INT_TIMER0: ;當(dāng)TF0=1,跳轉(zhuǎn)到下面的中斷服務(wù)程序中
            INC R2 ;使R2自增一
            CLR TF0 ;重新置中斷標(biāo)志位為0
            MOV TH0,#(65536-COUNT)/256 ; 重新符初值(因?yàn)橐绯龊笞兂?了)
            MOV TL0,#255
            CJNE R2,#5,RETURN ;讓燈明暗相間50ms
            MOV R2, #00H
            CPL LED ;讓燈明暗交替變化
            RETURN:
            RETI

            END

            ;程序?qū)懲炅耍ú⒉皇呛茈y,不過就是配置一下定時器,在中斷中寫點(diǎn)處理程序罷了


            關(guān)鍵詞: 51單片機(jī)匯編中斷程

            評論


            技術(shù)專區(qū)

            關(guān)閉