1. RST引脚上保持10us以上的低电平,CPU将复位。由于有内建30K上拉电阻连接到VOUT,所以仅接一个外部电容即可实现上电复位。
2. 内建PLL外接1000pF电容。
3. 内部稳压源输出(外接47uF电容)。
4. 定时器使用:
//9.8304MHz(12分频)下定时10ms初值
//定时器1,工作方式1,16位定时器
//2^16-8192=57344=E000H
#define CLK1_10MS_H 0xE0
#define CLK1_10MS_L 0x00
/****************************************
*定时器1初始化函数,方式1
****************************************/
void timer_init(void)
{
//先禁止全部中断
IEN0 = 0x00;
IEN1 = 0x00;
//定时器0初始化,定时周期10MS
TR1 = 0; //停止定时器0
TF1 = 0; //定时器1溢出标志清零
TMOD = 0x10; //定时器1工作在MODE1
TL1=CLK1_10MS_L; //装入定时器初值
TH1=CLK1_10MS_H;
TCON1 = 0x08; //选择系统时钟的1/12做为定时器1的时钟源
TR1=1; //启动定时器1
ET1=1; //允许定时器1溢出中断
}
/*****************************************************
*定时器T1中断服务程序,10ms间隔定时
****************************************************/
void Timer1_ISP(void) interrupt 3
{
EA = 0; //关全局中断
TF1 = 0; //定时器1溢出标志清零
TL1=CLK1_10MS_L; //装入定时器初值
TH1=CLK1_10MS_H;
//添加自己的代码
EA=1; //开全局中断
}
5. 中断函数设置:
注意:中断使用时,必须把相应的管脚设置为输入状态。
/******************************************************************************************
*外部中断0,中断1初始化函数
*******************************************************************************************/
void int_init(void)
{
EX0=1; //允许外部中断0
EX1=1; //允许外部中断1
IT0=1; //INT0下降沿触发
IT1=1; //INT1下降沿触发
}
/*******************************************************************************************
** 函数名称: INT0_ISP
** 函数描述: 外部中断0中断服务程序
** 输入参数: 无
** 输出参数: 无
*******************************************************************************************/
void INT0_ISP(void) interrupt 0
{
EA=0;
IE1=0;
//添加代码
EA=1;
}
/*******************************************************************************************
** 函数名称: INT1_ISP
** 函数描述: 外部中断1中断服务程序
** 输入参数: 无
** 输出参数: 无
*******************************************************************************************/
void INT1_ISP(void) interrupt 2
{
EA=0;
IE1=0;
//添加代码
EA=1;
}
6. 系统初始化设置
/**************************************************
*系统初始化
**************************************************/
void System_Init(void)
{
//设置振荡器
CLKCON=0x88; //32.768kHz加速模式,系统时钟无预分频,打开PLL振荡器
//延时2ms设置完振荡器使用PLL振荡频率后,至少等待2ms以上的时间
delay5ms(); //延时5ms
//使用PLL振荡器作为系统时钟
CLKCON=0x8c; //使用PLL时钟作为系统时钟
}