|
|
#include "reg51.h"
#include "intrins.h"
sfr CCON = 0xd8;
sbit CF = CCON^7;
sbit CR = CCON^6;
sbit CCF2 = CCON^2;
sbit CCF1 = CCON^1;
sbit CCF0 = CCON^0;
sfr CMOD = 0xd9;
sfr CL = 0xe9;
sfr CH = 0xf9;
sfr CCAPM0 = 0xda;
sfr CCAP0L = 0xea;
sfr CCAP0H = 0xfa;
sfr PCA_PWM0 = 0xf2;
sfr CCAPM1 = 0xdb;
sfr CCAP1L = 0xeb;
sfr CCAP1H = 0xfb;
sfr PCA_PWM1 = 0xf3;
sfr CCAPM2 = 0xdc;
sfr CCAP2L = 0xec;
sfr CCAP2H = 0xfc;
sfr PCA_PWM2 = 0xf4;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
CCON = 0x00;
CMOD = 0x08; //PCA時鐘為系統(tǒng)時鐘
CL = 0x00;
CH = 0x00;
//--6位PWM--
CCAPM0 = 0x42; //PCA模塊0為PWM工作模式
PCA_PWM0 = 0x80; //PCA模塊0輸出6位PWM
CCAP0L = 0x20; //PWM占空比為50%[(40H-20H)/40H]
CCAP0H = 0x20;
//--7位PWM--
CCAPM1 = 0x42; //PCA模塊1為PWM工作模式
PCA_PWM1 = 0x40; //PCA模塊1輸出7位PWM
CCAP1L = 0x20; //PWM占空比為75%[(80H-20H)/80H]
CCAP1H = 0x20;
//--8位PWM--
// CCAPM2 = 0x42; //PCA模塊2為PWM工作模式
// PCA_PWM2 = 0x00; //PCA模塊2輸出8位PWM
// CCAP2L = 0x20; //PWM占空比為87.5%[(100H-20H)/100H]
// CCAP2H = 0x20;
//--10位PWM--
CCAPM2 = 0x42; //PCA模塊2為PWM工作模式
PCA_PWM2 = 0xc0; //PCA模塊2輸出10位PWM
CCAP2L = 0x20; //PWM占空比為96.875%[(400H-20H)/400H]
CCAP2H = 0x20;
CR = 1; //啟動PCA計時器
while (1);
}
這個例程是三個IO同時輸出嗎 能只讓一個IO輸出嗎 |
|