stc12c5a16s2单片机pwm要用哪个I/O口?

要怎么定义I/O口。。。谢谢

以前做过STC12C5628AD的项目。
部分程序给你参考下

//IO口初始化
void IOInit(void)
{
P0M0 = 0x00; //设置P0口 00->准双向 01->推挽 10->高阻输入 11->开漏
P0M1 = 0x00;
P1M0 = 0x87; //设置P1.0、P1.1、P1.2、P1.7高阻输入,其他全部准双向
P1M1 = 0x00;
P2M0 = 0x00; //设置P2口全部推挽输出
P2M1 = 0xFF;
P3M0 = 0x00; //设置P3.0准双向,其他P3口全部推挽输出
P3M1 = 0xFE;
}
//启动PWM
void PWMStart(void)
{
//CMOD=0x04; //PWM时钟用定时器0溢出
//AUXR=AUXR|0x80; //定时器0时钟工作于1T模式
//TMOD=(TMOD&0xF0)|0x02; //定时器0工作于8位自动重装模式
//TH0=0xF9; //0xF9->PWM 18KHz
//TL0=0xF9;
//TR0=1; //启动定时器0 此时PWM输出频率18.4KHz
CMOD = 0x02; //PWM输出频率39.0625KHz
CL = 0x00;
CH = 0x00;
CCAP3L = 0x8d; //第2路辅助PWM占空比
CCAP3H = 0x8d;
CCAPM3 = 0x42;
PCA_PWM3 = 0x00;
CCAP2L = 0x0D; //第1路辅助PWM占空比
CCAP2H = 0x0D;
CCAPM2 = 0x42;
PCA_PWM2 = 0x00;
CCAP1L = PWM1First; //第1路PWM占空比
CCAP1H = PWM1First;
CCAPM1 = 0x42;
PCA_PWM1 = 0x00;

CCAP0L = PWM0First; //第2路PWM占空比
CCAP0H = PWM0First;
CCAPM0 = 0x42;
PCA_PWM0 = 0x00;
CR=1;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-24
stc12c5a16s2单片机, 有两组 IO 口可以 用来,设置成 PWM 输出,使用方法需要 查看数据手册 第 301 页 ~ 330 页,
一般 在 使用 一种 单片机 时 需要对 该单片机 有 了解, 就是看数据手册,上管网下载一个就可以了。追问

那我查下

追答

STC 官网 有 该系列的 所有数据手册 可以下载。

追问

我查到了。。可我不会写程序,,你有没程借来参考下

追答

数据手册 里面有 例程 ,如果是为了 学习, 仔细看看 第 301 页 ~ 330 页,应该会有帮助的。
如果是 做项目 不会编程 就有的难度了。

本回答被网友采纳