<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        AT89C51單片機定時器終端模式和查詢設置

        作者:未知   來源:不詳   點擊數:  更新時間:2014年06月16日   【字體:


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

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

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮