專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AT89C51單片機(jī)定時(shí)器終端模式和查詢(xún)?cè)O(shè)置

作者:未知   來(lái)源:不詳   點(diǎn)擊數(shù):  更新時(shí)間:2014年06月16日   【字體:


T1為定時(shí)模式,定時(shí)65.536ms,P2.0對(duì)應(yīng)的LED等閃爍一次,T0計(jì)數(shù)模式,計(jì)數(shù)脈沖從P3.4腳用按鍵輸入,按一次,記一次,所以計(jì)數(shù)初值為0FFFFh,沒(méi)按一次,產(chǎn)生一個(gè)溢出,P2.5對(duì)應(yīng)的LED閃爍,同時(shí)數(shù)碼管加1顯示。
一、定時(shí)/計(jì)數(shù)器終端模式
        org 0000h
        ljmp bb               ;跳轉(zhuǎn)到主程序入口bb處
        org 000bh             ;定時(shí)器0中斷響應(yīng)從這里開(kāi)始執(zhí)行
        cjne r2,#9d,xx       
        mov r2,#00h
        ljmp xx11
        org 001bh             ;定時(shí)器1中斷響應(yīng)從這里開(kāi)始執(zhí)行
         ljmp xxx

bb:     mov p1,#3fh           ;主程序入口處
        mov tmod,#05h     ;05h=0000 0101B設(shè)置T1定時(shí)T0計(jì)數(shù)模式,0定時(shí),1計(jì)數(shù)
                                      ;0013位二進(jìn)制計(jì)數(shù)模式0,高4位控制T1
                                      ;0
1
16位二進(jìn)制計(jì)數(shù)模式1,低4位控制T0
        mov dptr,#0300h       ;查表入口地址存放
        mov r2,#00h                 
        setb et0              ;和setb 0afh效果相同 
        setb ea               ;和setb 0abh相同
        setb et1              ;和setb 0a9h相同
        setb tr0
        setb tr1
       
        mov th0,#0ffh         ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
        mov tl0,#0fdh         ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第一次開(kāi)始計(jì)數(shù)初值)
        sjmp $                   ;程序執(zhí)行時(shí),原地踏步等待語(yǔ)句,在沒(méi)有中斷請(qǐng)求時(shí),
                                      ;在此位置原地踏步計(jì)數(shù)定時(shí)計(jì)數(shù),有請(qǐng)求時(shí)跳到中斷入口執(zhí)行中斷
xx:        inc r2
xx11:    mov th0,#0ffh      ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
           mov tl0,#0fdh      ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第二次以后開(kāi)始計(jì)數(shù)初值)  
           mov a,r2
           movc a,@a+dptr
           cpl p2.5
           mov p1,a           
           reti
xxx:       mov th1,#00h      ;計(jì)數(shù)器1的計(jì)數(shù)初值的高8位
            mov tl1,#00h     ;計(jì)數(shù)器1的計(jì)數(shù)初值的低8位
            cpl p2.0
            reti
           org 0300h         ;七段顯示嗎表格入口
           db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
          end
二、定時(shí)/計(jì)數(shù)器查詢(xún)模式
          org 0000h
          ljmp bb                  ;跳轉(zhuǎn)到主程序入口bb處
bb:     mov tmod,#15h     ;主程序入口處
                                        ;設(shè)置T1定時(shí)模式,工作在計(jì)數(shù)方式0,設(shè)置T0計(jì)數(shù)模  
                                        ;式工作在計(jì)數(shù)方式1
        mov dptr,#0300h       ;查表入口地址存放        
                             
        clr et0                 ;關(guān)定時(shí)/計(jì)數(shù)器0中斷
        setb ea               ;和setb 0abh相同,開(kāi)總中斷開(kāi)關(guān)
        setb et1              ;和setb 0a9h相同,開(kāi)定時(shí)/計(jì)數(shù)器1中斷   
        setb tr0
        setb tr1       
        mov th0,#0ffh        ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
        mov tl0,#0ffh         ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第一次開(kāi)始計(jì)數(shù)初值)
  CX: JBC  TF0, xx        ;查詢(xún)定時(shí)/計(jì)數(shù)器0溢出標(biāo)志位,有溢出跳轉(zhuǎn)xx執(zhí)行
         JBC  TF1, xxx      ;查詢(xún)定時(shí)/計(jì)數(shù)器1溢出標(biāo)志位,有溢出跳轉(zhuǎn)xxx執(zhí)行
         sjmp CX               ;無(wú)溢出,跳CX繼續(xù)查詢(xún)
   ;溢出是在THi和TLi計(jì)數(shù)滿(mǎn),超過(guò)FFFFH時(shí),TFi被自動(dòng)置1,中斷和查詢(xún)都是根
   ;據(jù)這個(gè)標(biāo)志是否為1來(lái)響應(yīng)的。
                         
xx:       mov th0,#0ffh      ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
           mov tl0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第二次以后開(kāi)始計(jì)數(shù)初值)  
           cjne r2,#10d,xx11      
           mov r2,#00h
xx11:      mov a,r2
           movc a,@a+dptr   ;查表,用七段碼顯示計(jì)數(shù)數(shù)字
           cpl p2.5                 ;并讓P2.5上的LED有閃爍效果
           mov p1,a               ;顯示數(shù)字效果從P1口輸出
           inc r2                     ;加1計(jì)數(shù)  
           ret
xxx:       mov th1,#00h      ;計(jì)數(shù)器1的計(jì)數(shù)初值的高8位
           mov tl1,#00h     ;計(jì)數(shù)器1的計(jì)數(shù)初值的低8位
           cpl p2.0             ;t0定時(shí)模式,定時(shí)到讓P2.0取反,LED達(dá)到閃爍效果
           ret
           org 0300h         ;七段顯示嗎表格入口
    db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
          end  
關(guān)閉窗口

相關(guān)文章