新唐 N76E003 單片機8051彙編 PWM測試程序

;測試PWM5輸出端口P0.3,LED閃爍端口是P1.5

;以下是彙編代碼

;功能寄存器定義

SFRS    EQU    91H
TA        EQU    0C7H

PWMCON0    EQU    0D8H
PWMCON1    EQU    0DFH
CKCON    EQU    08EH
PWMPL    EQU    0D9H
PWMPH    EQU    0D1H
PWM0L    EQU    0DAH
PWM0H    EQU    0D2H
PWM1L    EQU    0DBH
PWM1H    EQU    0D3H
PWM2L    EQU    0DCH
PWM2H    EQU    0D4H
PWM3L    EQU    0DDH
PWM3H    EQU    0D5H
PWM4L    EQU    0CCH;Page1
PWM4H    EQU    0C4H;Page1
PWM5L    EQU    0CDH;Page1
PWM5H    EQU    0C5H;Page1
PIOCON0    EQU    0DEH
PIOCON1    EQU    0C6H
PDTEN    EQU    0F9H
PDTCNT    EQU    0FAH
PMEN    EQU    0FBH
PMD        EQU    0FCH
PBD        EQU    0D7H
PNP        EQU    0D6H
PWMINTC    EQU    0B7H
P0M1    EQU    0B1H
P0M2    EQU    0B2H
P1M1    EQU    0B3H
P1M2    EQU    0B4H
P2S        EQU    0B5H
P3M1    EQU    0ACH
P3M2    EQU    0ADH
CKDIV    EQU    095H;系統時鐘除頻
;功能位定義
CLRPWM    BIT    PWMCON0.4
PWMF    BIT    PWMCON0.5
LOAD    BIT    PWMCON0.6
PWMRUN    BIT    PWMCON0.7

;程序入口
ORG    0000H
LJMP    MAIN
ORG    0100H
MAIN:
    ANL    P1M1,#11011111B
    ORL    P1M2,#00100000B;P1.5推輓
    ANL    P0M1,#11110111B
    ORL    P0M2,#00001000B;P0.3推輓
    MOV    PIOCON0,#00100000B;設置P0.3用作PWM5輸出
    ORL    PWMCON1,#00000011B;PWM時鐘爲系統時鐘16M的1/8=2Mhz
    CLR    CLRPWM
    ANL    PWMCON1,#00111111B;羣組模式禁止
    
    MOV    PWMPH,#07H
    MOV    PWMPL,#0CFH
;PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>   
;               = (16MHz/8)/(0x7CF + 1)                                
;               = 1KHz (1ms)

;載入PWM5的佔空比值
    MOV    TA,#0AAH
    MOV    TA,#55H
    ORL    SFRS,#00000001B    ;Page1
    MOV    PWM5H,#02H
    MOV    PWM5L,#0CFH
    MOV    TA,#0AAH
    MOV    TA,#55H
    ANL    SFRS,#11111110B    ;Page0
    SETB    LOAD        ;載入佔空比相關數值
    SETB    PWMRUN        ;運行PWM
    ;LJMP    $    
    
LED:    
    SETB    P1.5
    LCALL    DL500MS
    CLR        P1.5
    LCALL    DL500MS
    LJMP    LED
    
DL500MS: ;誤差 0us
    MOV R7,#0F1H
DL1:
    MOV R6,#48H
DL0:
    MOV R5,#0E5H
    DJNZ R5,$
    DJNZ R6,DL0
    DJNZ R7,DL1
    NOP
    NOP
    RET
END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章