1. 程式人生 > >51微控制器組合語言程式設計:用定時器控制輸出矩形波

51微控制器組合語言程式設計:用定時器控制輸出矩形波

80C51微控制器的時鐘頻率為12MHz,利用定時器T1和P1.0輸出矩形脈衝。
波形只畫出了2段:一段為100us 另一段為50us。
要完全的、完整的、詳細的編寫此程式的過程!謝謝
懸賞分:5 | 解決時間:2011-1-9 15:24
------------------------
最佳答案:
用一個定時器定時50us,也可以達到題目要求。
在我的空間裡面有類似的問題和解答。

        ORG   0000H
        SJMP  START
        ORG   001BH          ;T1中斷入口.
        SJMP  T1_INT
START:
        MOV  TMOD,  #20H     ;設定T1定時方式2
        MOV  TH1,  #206      ;自動重新裝入方式.
        MOV  TL1,  #206      ;定時時間
        MOV  IE,  #10001000B ;開放總中斷和T1中斷.
        SETB TR1             ;啟動T1
        MOV  R2,  #3         ;週期是3×50us
        SJMP $               ;等著吧.
T1_INT:
        SETB P1.0            ;輸出高.
        DJNZ R2,  T1_END     ;R2-1
        CLR  P1.0            ;減到0,就輸出低電平.
        MOV  R2,  #3
T1_END:
        RETI                 ;中斷返回.
END                          ;完.
------------------------
回答時間:2011-1-9 13:05
回答者: 做而論道 | 十四級  採納率:37%
提問者對於答案的評價:謝謝咯 很感謝
原題網址:

http://zhidao.baidu.com/question/213175472.html
=========================================== 
已知51微控制器系統晶振頻率為12MHz,請利用定時器1工作方式1,中斷方式在P2.3輸出頻率為10Hz的方波。
寫出定時設計過程及完整程式碼
問題補充:用匯編的   麻煩寫一下
懸賞分:10 | 解決時間:2011-1-10 13:58
------------------------
最佳答案:

        ORG   0000H
        SJMP  START
        ORG   001BH          ;T1中斷入口.
        SJMP  T1_INT
START:
        MOV  TMOD, #10H     ;設定T1定時方式1
        MOV  TH1, #(65536-50000) / 256   ;送入初始值.
        MOV  TL1, #(65536-50000) MOD 256 ;定時
        MOV  IE, #10001000B ;開放總中斷和T1中斷.
        SETB TR1            ;啟動T1
        SJMP $              ;等著吧.
T1_INT:
        MOV  TH1, #(65536-50000) / 256   ;重新送入初始值.
        MOV  TL1, #(65536-50000) MOD 256 ;定時
        CPL   P2.3          ;輸出方波.
        RETI                ;中斷返回.
END                         ;完.
------------------------
回答時間:2011-1-10 13:47
回答者: 做而論道 | 十四級  採納率:37%
原題網址:

http://zhidao.baidu.com/question/212987769.html
===========================================
微控制器程式設計

選用T0操作模式1用於定時,由P1.7輸出週期為5ms方波的控制程式,設晶振fosc=6MHz。      
懸賞分:50 | 解決時間:2011-1-9 14:25
------------------------
最佳答案:

        ORG  0000H
        MOV  TMOD, #01H    ;T0方式1定時.
        SETB TR0            ;啟動T0
LOOP:
        MOV  TH0, #(65536-5000/2/2) / 256   ;送入初始值.
        MOV  TL0, #(65536-5000/2/2) MOD 256 ;定時
        JNB  TF0, $         ;等待定時完成.
        CLR  TF0            ;清除標誌.
        CPL  P1.7           ;輸出方波.
        SJMP LOOP           ;無限迴圈.
END                         ;完.
------------------------
回答時間:2011-1-9 10:23
回答者: 做而論道 | 十四級  採納率:37%
提問者對於答案的評價:謝謝
原題網址:

http://zhidao.baidu.com/question/213894811.html
===========================================