你的电路是什么样的?我给你发个例子你看看:
include"Globle.h"
#include".\init.h"
extern WordType pca_tmp;
/******************************************************************************************
** 函数名 Timer0_init
** 参数 mode 选择工作方式
** hvalue TH0的值
** lvalue TL0的值
*******************************************************************************************
** 选择项
TIMER0_GATE_ON 选择GATE方式
TIMER0_COUNTER_ON 选择COUNTER方式,如果不选为TIMER方式
TIMER0_MODE_0 方式1
TIMER0_MODE_1 方式2
TIMER0_MODE_2 方式3
TIMER0_MODE_3 方式4
*******************************************************************************************/
void Timer0_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue)
{
TMOD&=0xf0; //清空timr0相关的设置位
TMOD|=(mode&0x0f); //设置工作方式
TH0=hvalue;
TL0=lvalue;
}
/******************************************************************************************
** 函数名 Timer1_init
** 参数 mode 选择工作方式
** hvalue TH0的值
** lvalue TL0的值
*******************************************************************************************
** 选择项
TIMER1_GATE_ON 选择GATE方式
TIMER1_COUNTER_ON 选择COUNTER方式,如果不选为TIMER方式
TIMER1_MODE_0 方式1
TIMER1_MODE_1 方式2
TIMER1_MODE_2 方式3
TIMER1_MODE_3 方式4
*******************************************************************************************/
void Timer1_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue)
{
TMOD&=0x0f; //清空timr0相关的设置位
TMOD|=mode&0xf0; //设置工作方式
TH1=hvalue;
TL1=lvalue;
}
/******************************************************************************************
** 函数名 Timer2_Init
** 参数 mode 选择工作方式
** hvalue TH0的值
** lvalue TL0的值
*******************************************************************************************
** 选择项
S_RCLK 0x20 //产生接受波特率
S_TCLK 0x10 //产生发送波特率
S_EXEN2 0x08 //外部势能 选择 T2EX有负跳变时发生重载或捕捉
S_TR2 0x04 //T2开始运行 选择 开始运行
S_CT2 0x02 //T/C选择 选择 为计数器
S_CPRL2 0x01 //捕捉 重载选择 选择 为捕捉模式
*******************************************************************************************/
void Timer2_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue)
{
T2CON=mode;
RCAP2H=hvalue;
RCAP2L=lvalue;
}
/******************************************************************************************
** 函数名 Interrupt_init
** 参数 enable 使能设置
** run 运行设置
*******************************************************************************************
** 选择项
S_TIMER1_RUN 0X40 //TIMER1 RUN FLAG
S_TIMER0_RUN 0X10 //TIMER0 RUN FLAG
S_EXTERN1_MODE 0X04 //外部中断1方式选择 1边沿触发 0电平触发
S_EXTERN0_MODE 0X01 //外部中断0方式选择 1边沿触发 0电平触发
*************************** IE ********************************************
S_GLOBLE_ENABLE 0X80 //EA 使能
S_UART_ENABLE 0X10 //串口中断使能
S_TIMER1_ENABLE 0X08 //Timer1中断使能
S_EXTERN1_ENABLE 0X04 //外部中断1使能
S_TIMER0_ENABLE 0X02 //Timer0中断使能
S_EXTERN0_ENABLE 0X01 //外部中断0使能
*******************************************************************************************/
void Interrupt_init(UBYTE enable, UBYTE run)
{
IE=enable;
TCON=run;
}
/******************************************************************************************
** 函数名 Uart_init
** 参数 mode 方式设置
*******************************************************************************************
** 选择项
S_UART_MODE0 0X00 //UART MODE 0
S_UART_MODE1 0X40 //UART MODE 1
S_UART_MODE2 0X80 //UART MODE 2
S_UART_MODE3 0XC0 //UART MODE 3
S_MULTI_COM 0X20 //多机通信
S_RECEIVE_EN 0X10 //enable receive
S_TRANSMIT_8 0X08 //发送第八位
S_RECEIVE_8 0X04 //接收第八位
*******************************************************************************************/
void Uart_init(UBYTE mode)
{
SCON=mode;
}
void Devices_init()
{
Timer0_Init(TIMER0_MODE_1, TH0_VALUE, TL0_VALUE); //定时器0初始化
//Timer1_Init(TIMER1_MODE_2, 0XF5, 0XF5); //定时器1初始化
Timer1_Init(TIMER1_MODE_2, TIMER1_BH, TIMER1_BH);
//Timer2_Init((S_RCLK|S_TCLK|S_TR2),TIMER2_BH,TIMER2_BL); //定时器2初始化
Uart_init(S_UART_MODE1|S_RECEIVE_EN); //串口初始化
Interrupt_init((S_UART_ENABLE|S_GLOBLE_ENABLE|S_TIMER0_ENABLE|S_EXTERN0_ENABLE),\
(S_TIMER0_RUN|S_TIMER1_RUN|S_EXTERN0_MODE));
#if SMOD //double baud-rate
PCON|=0x80;
#endif
ADC_CONTR=0x80;
P1M0=0xff;
P1M1=0xff;
//-----------------------------------------
CMOD=0;
CCON=0;
CL=0;
CH=0;
CCAP0L=0xAF;
CCAP0H=0x00;
CCAPM0=0x49;
EPCA_LVD=1;
CR=1;
pca_tmp.bytes.bl=0xAF;
pca_tmp.bytes.bh=0x00;
}
追问电路挺简单的