国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用STC12C5410單片機內置PWM模塊產生可調頻率的PWM信號-自己創(chuàng)作_yu5315...
用STC12C5410單片機內置PWM模塊產生可調頻率的PWM信號-自己創(chuàng)作
2007年09月02日 星期日 下午 02:25

;定義 STC12C2052 系列 MCU 特殊功能寄存器
IPH         EQU      0B7H                ;中斷優(yōu)先級高位寄存器

EPCA_LVD EQU      IE.6                ;PCA/LVD 中斷允許位。
                    ;要打開 PCA 中斷還要打開相應的 ECF,ECCF0,ECCF1 位
                    ;要打開 LVD 中斷還要打開相應的 ELVDI 位
CH          EQU      0xF9                ;PCA 計數(shù)器高8位。
CL          EQU      0xE9                ;PCA 計數(shù)器低8位。

;------------------------
CCON        EQU      0D8H                ;PCA 控制寄存器。
CCF0        EQU      CCON.0              ;PCA 模塊0 中斷標志, 由硬件置位, 必須由軟件清0。
CCF1        EQU      CCON.1              ;PCA 模塊1 中斷標志, 由硬件置位, 必須由軟件清0。
CR          EQU      CCON.6              ;1:允許 PCA 計數(shù)器計數(shù), 必須由軟件清0。
CF          EQU      CCON.7              ;PCA計數(shù)器溢出標志,由硬件或軟件置位,必須由軟件清0。

;------------------------
CMOD        EQU      0D9H                ;PCA 工作模式寄存器。
;CMOD.7        CIDL: idle 狀態(tài)時 PCA 計數(shù)器是否繼續(xù)計數(shù), 0: 繼續(xù)計數(shù), 1: 停止計數(shù)。

;CMOD.2        CPS1: PCA 計數(shù)器脈沖源選擇位 1。
;CMOD.1        CPS0: PCA 計數(shù)器脈沖源選擇位 0。
;              CPS1      CPS0
;               0         0       內部時鐘, fosc/12。
;               0         1       內部時鐘, fosc/2。
;               1         0       Timer0 溢出。
;               1         1       由 ECI/P3.4 腳輸入的外部時鐘。

;CMOD.0        ECF: PCA計數(shù)器溢出中斷允許位, 1--允許 CF(CCON.7) 產生中斷。
;------------------------

CCAP0H      EQU      0FAH                ;PCA 模塊0的捕捉/比較寄存器高 8 位。
CCAP1H      EQU      0FBH                ;PCA 模塊1的捕捉/比較寄存器高 8 位。
CCAP2H      EQU      0FCH        ;PCA 模塊2的捕捉/比較寄存器高 8 位。
CCAP3H     EQU      0FDH        ;PCA 模塊3的捕捉/比較寄存器高 8 位。

CCAP0L      EQU      0EAH                ;PCA 模塊0的捕捉/比較寄存器低 8 位。
CCAP1L      EQU      0EBH                ;PCA 模塊1的捕捉/比較寄存器低 8 位。
CCAP2L      EQU      0ECH
CCAP3L      EQU      0EDH

;------------------------
PCA_PWM0 EQU      0F2H                ;PCA 模塊0 PWM 寄存器。
PCA_PWM1 EQU      0F3H                ;PCA 模塊1 PWM 寄存器。
PCA_PWM2 EQU      0F4H
PCA_PWM3 EQU      0F5H


;PCA_PWMn:       7         6         5         4         3         2         1         0
;                -         -         -         -         -         -       EPCnH     EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,與 CCAPnH 組成 9 位數(shù)。
;B0(EPCnL): 在 PWM 模式下,與 CCAPnL 組成 9 位數(shù)。

;------------------------
CCAPM0      EQU      0DAH                ;PCA 模塊0的工作模式寄存器。
CCAPM1      EQU      0DBH                ;PCA 模塊1的工作模式寄存器。
CCAPM2      EQU      0DCH
CCAPM3      EQU      0DDH


;CCAPMn:       7         6         5         4         3         2         1         0
;              -       ECOMn     CAPPn     CAPNn     MATn      TOGn      PWMn      ECCFn
;
;ECOMn = 1:允許比較功能。
;CAPPn = 1:允許上升沿觸發(fā)捕捉功能。
;CAPNn = 1:允許下降沿觸發(fā)捕捉功能。
;MATn     = 1:當匹配情況發(fā)生時, 允許 CCON 中的 CCFn 置位。
;TOGn     = 1:當匹配情況發(fā)生時, CEXn 將翻轉。
;PWMn     = 1:將 CEXn 設置為 PWM 輸出。
;ECCFn = 1:允許 CCON 中的 CCFn 觸發(fā)中斷。
  
;ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;     0        0        0       0       0       0       0      0x00      未啟用任何功能。
;     x        1        0       0       0       0       x      0x21      16位CEXn上升沿觸發(fā)捕捉功能。
;     x        0        1       0       0       0       x      0x11      16位CEXn下降沿觸發(fā)捕捉功能。
;     x        1        1       0       0       0       x      0x31      16位CEXn邊沿(上、下沿)觸發(fā)捕捉功能。
;     1        0        0       1       0       0       x      0x49      16位軟件定時器。
;     1        0        0       1       1       0       x      0x4d      16位高速脈沖輸出。
;     1        0        0       0       0       1       0      0x42      8位 PWM。


AUXR EQU 8EH //1T模式 特殊寄存器。
CLK_DIV EQU 0C7H     //時鐘分頻寄存器

 

     TIMER0_RELOAD_1 EQU 2AH


     PWM_PULSE_WIDTH EQU 0ECH        設置占空比


     ORG     0000H
     LJMP     MAIN
     ORG     0050H


MAIN:
     MOV     SP,#40H
     ACALL     PCA_INITIATE
     ACALL     TIMER0_INITIATE
     ACALL     SET_F //對系統(tǒng)時鐘進行分頻。進行2分頻


MAIN_LOOP:
     MOV     TH0,#TIMER0_RELOAD_1
     MOV     TL0,#TIMER0_RELOAD_1
  
  
     MOV     A,#PWM_PULSE_WIDTH
     MOV     CCAP0H,A
     ACALL     DELAY


     SJMP     $
    


PCA_INITIATE:
     MOV     CMOD,#1000100B
     MOV     CCON,#00H
     MOV     CL,#00H
     MOV     CH,#00H


     MOV     CCAPM0,#42H
     MOV     PCA_PWM0,#00H
     MOV     CCAP0H,#PWM_PULSE_WIDTH


     SETB     CR
     RET


TIMER0_INITIATE:
     MOV     TMOD,#02H
     MOV     AUXR,#80H        //將T0設置成1T模式
     MOV     TH0,#TIMER0_RELOAD_1
     MOV     TL0,#TIMER0_RELOAD_1
     SETB     TR0
     RET


SET_F:
     MOV     CLK_DIV,#00000001B        //對內部時鐘進行2分頻
     RET

 

DELAY:
     CLR     A
     MOV     R1,A
     MOV     R2,A
     MOV     R3,#80H


DELAY_LOOP:
     NOP
     NOP
     NOP
     DJNZ     R1,DELAY_LOOP
     DJNZ     R2,DELAY_LOOP
     DJNZ     R3,DELAY_LOOP
     RET


     END

總結:     我用12C5410單片機內置的PWM模塊產生可調頻率的PWM信號,這里主要是運用了定時器0的溢出率來改變信號的周期.

             這段程序的表現(xiàn)是:產生周期為20ms占空比為0.075的信號,也就是信號里的高電平寬度是1.5ms,低電平寬度是18.5ms.我將T0設置為1T模式,并且還對整個系統(tǒng)時鐘進行分頻.    

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
STC12C5201AD單片機的PWM功能的應用總結
STC15系列CCP/PWM/PCA介紹
stc單片機IO配置與PWM
stc單片機PCA的自帶PWM編程實例參考
基于單片機的恒溫控制器的設計和實現(xiàn)
基于STC系列單片機的SPWM波形實現(xiàn)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服