#include
#define uchar unsigned char
#define uint unsigned int
sbit YWDAT=P2^2;
void UartInit()
{
SCON=0x50 ;// SCON: serail mode 1, 8-bit UART
TMOD|=0x21 ;// TMOD: timer 1, mode 2, 8-bit reload,自动装载预置数(自动将TH1送到TL1);T0工作在方式1,十六位定时
PCON|=0x00 ;// SMOD=0
TH1=0xFD ;// Baud:2400 fosc=11.0592MHz 2400bps为从串口接收数据的速率
TL1=0xFD ;// 计数器初始值,fosc=11.0592MHz 因为TH1一直往TL1送,所以这个初值的意义不大
TR1=1 ;// 启动TIMER1,用于产生波特率
}
byteToSend ;
void main()
{
YWDAT=1;
UartInit();
while(!YWDAT)
{
uchar a=0x11;
SBUF=a; }
}
我用了个3K的上拉电阻。。。2.2口与常闭接的时候可以发送11,,但与常开接的时候,报警工作后没反应,COM接地。。。。是程序错了,还是。。。 |