24-高级PWMA-PWMB-PWMC-PWMD-PWME-PWMF输出测试程序,STC32G144K246实验箱演示程序
24-高级PWMA-PWMB-PWMC-PWMD-PWME-PWMF输出测试程序,STC32G144K246实验箱演示程序主程序main.C代码如下(汇编版本在附件中):
/*---------------------------------------------------------------------*/
/* --- Web: www.STCAI.com ---------------------------------------------*/
/* --- BBS: www.STCAIMCU.com-----------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
/*---------------------------------------------------------------------*/
/*************功能说明 **************
本例程基于STC32G144K246为主控芯片的实验箱进行编写测试。
使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。
edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。
高级 PWMA,PWMB,PWMC,PWMD,PWME,PWMF 每组4个通道都可独立实现PWM输出.
高级 PWMA,PWMC,PWME 每个通道可输出2路互补对称的PWM信号.
PWM周期和占空比可以自定义设置,最高可达65535.
下载时, 选择时钟 48MHz (用户可自行修改频率).
******************************************/
#include "pwm.h"
/****************本地常量声明**************/
/****************本地变量声明**************/
/****************本地函数声明**************/
/***************** 主函数 *********************/
void main(void)
{
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
P0M1 = 0x00; P0M0 = 0xff; //设置为推挽输出
P4M1 = 0xc0; P4M0 = 0x02; //P41设置为推挽输出, P46,P47高阻输入(实验箱与P87,P86相连)
P6M1 = 0x00; P6M0 = 0xff; //设置为推挽输出
P7M1 = 0x00; P7M0 = 0xff; //设置为推挽输出
P8M1 = 0x00; P8M0 = 0xff; //设置为推挽输出
P9M1 = 0x00; P9M0 = 0xff; //设置为推挽输出
PAM1 = 0x00; PAM0 = 0xff; //设置为推挽输出
PBM1 = 0x00; PBM0 = 0xff; //设置为推挽输出
PWMA_Init();
PWMB_Init();
PWMC_Init();
PWMD_Init();
PWME_Init();
PWMF_Init();
P41 = 0; //打开LED电源
EA = 1; //打开总中断
while (1);
}
页:
[1]