單片機(jī)
C:\Documents and Settings\21008895\桌面hi,高手些
小弟想用AT89S52 單片機(jī) 通過232給PC 發(fā)個(gè)字符串,實(shí)際驗(yàn)證 的時(shí)候在PC的超級(jí)終端上什么都沒有,到底是什么問題呢?:Q
程序如下:
#include
#include
unsigned char ch;
bit read_flag=0 ;
void init_serialcom(void)//串口通信初始設(shè)定
{
SCON =0x50;//UART為模式1,8位數(shù)據(jù),允許接收
TMOD|=0x20; //定時(shí)器1為模式2,8位自動(dòng)重裝
PCON |= 0x80 ;//SMOD=1;
TH1 = 0xFD ;//Baud:19200 fosc="11".0592MHz
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TI=1;
}
//向串口發(fā)送一個(gè)字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while(TI== 0);
TI= 0 ;
}
//串口接收中斷函數(shù)
void serial () interrupt 4 using 3
{
if (RI)
{
RI = 0 ;
ch=SBUF;
read_flag= 1 ; //就置位取數(shù)標(biāo)志
}
}
main()
{
init_serialcom(); //初始化串口
while ( 1 )
{
if (read_flag)//如果取數(shù)標(biāo)志已置位,就將讀到的數(shù)從串口發(fā)出
{
read_flag= 0 ; //取數(shù)標(biāo)志清0
send_char_com(ch);
}
}
}