#include "C8051F020.h"
#include "sysinit.h"
#include <stdio.h>
unsigned int s_counter = 100;
void main(void)
{
CloseWDT(); //关闭看门狗
SysClkInit(); //配置系统时钟,使用外部晶振,系统上电默认使用内部2M时钟
PortInit(); //I/O端口配置
CR=1; // 允许PCA0 计数器定时器
//PCA0CN = 0X40; //允许PCA0计数器工作CF=1 P236
PCA0L = 0x00; //PCA0计数器置初始值
PCA0H = 0x00;
PCA0MD = 0X05; //选择计数器时钟为系统时钟 ,ECF置一 P237
PCA0CPM0 = 0xcA;//选择8位PWM,比较器功能使能,PWM脉宽8位使能,禁止捕捉比较中断 P238
PCA0CPL0 = 128; //设置捕获比较计数器初始值,必须先设定低8位再设定高8位
PCA0CPH0 =128; //由高8位设置占空比
EIE1 = 0X08; //允许 PCA0 的中断请求
TMOD = 0x00; //16位计数
TH0 = 0xff;
TL0 = 0xf0;
CKCON = 0x08; //系统时钟
ET0 = 1;
TR0 = 1;
EA=1;
while(1)
{
}
}
void PCA0_ISR(void) interrupt 9 //PCA0中断服务函数
{
CF = 0;
CCF0 = 0;
}
void Timer0_ISR(void) interrupt 1 //定时器0中断服务函数
{
TF0 = 0;
TH0 = 0xf5;
TL0 = 0xe7;
}
评论0