您当前的位置:五五电子网电子知识单片机-工控设备51单片机P89LPC932的PWM DA转换 正文
P89LPC932的PWM DA转换

P89LPC932的PWM DA转换

点击数:7327 次   录入时间:03-04 12:02:19   整理:http://www.55dianzi.com   51单片机

/**************************Asm版**********************************/
/*实验目的:
测试CCU模块的PWM输出功能(控制占空比)
占空比由TOR2H,TOR2L及OCRAH,ORCAL控制
通过控制占空比获得所需电压值
*/

    $NOMOD51
    $INCLUDE(REG932.INC)    //

    PLEEN    BIT    TCR20.7

    ORG    0000H
    AJMP    MAIN
    
    ORG    0100H
MAIN:
     MOV     P2M1,#0x00    ;设置端口模式
     MOV     P2M2,#0xFF    ;设置P26,OCA为推挽输出

     MOV     TCR21,#0x04    ;分频操作

     MOV     TOR2H,#0x00    ; 重装值 0x00FF=255
     MOV     TOR2L,#0xF0    ; -> PWM 周期
     MOV     A,TCR21
    ANL    A,#0x80
     MOV     TCR21,A

     MOV     OCRAH,#0x00    ;控制占空比
     MOV     OCRAL,#0xA0    ;
     MOV     A,TCR21
    ANL    A,#0x80
     MOV     TCR21,A

     MOV     CCCRA,#0x01

    SETB    PLEEN        ; 启动 PLL
    SETB    OCA
LOOP:
    JNB    PLEEN,LOOP    ;等待直到PLL锁定

     MOV     TCR20,#0x82    ; 设置输出模式,非反相PWM

    SJMP    $
    RET

    END

/************************************************************/

/**************************C版*********************************/
/*实验目的:
测试CCU模块的PWM输出功能(控制占空比)
占空比由TOR2H,TOR2L及OCRAH,ORCAL控制
通过控制占空比获得所需电压值
*/

#include <Reg932.h>
sbit    PLEEN=TCR20^7;

main()
{
    P2M1=0x00;        //设置端口模式
    P2M2=0xFF;        //设置P26,OCA为推挽输出

    TCR21=0x04;        //分频操作

    TOR2H=0x00;        // 重装值 0x00FF=255
    TOR2L=0xF0;        // -> PWM 周期
    TCR21|=0x80;

    OCRAH=0x00;        //控制占空比
    OCRAL=0xA0;        //
    TCR21|=0x80;

    CCCRA=0x01;

    PLEEN=1;            // 启动 PLL
    OCA=1;
    while(PLEEN==0);    // 等待直到PLL锁定

    TCR20=0x82;        // 设置输出模式,非反相PWM

    while(1);    
}
/******************************************************************/




本文关键字:暂无联系方式51单片机单片机-工控设备 - 51单片机