www.pudn.com > TG12864.rar > uart.c
#include "reg932.h"
#define uchar unsigned char
#define uint unsigned int
//-----ÃüÁîÁбí-------
//--------------------
uchar temp;
uchar senddata[];
uchar receivedata[];
bit flag=0;
static uchar count=0;
//--------------------------- //¹¦ÄÜ´®¿Ú³õʼ»¯ //--------------------------
void UART_Init()
{
P1M1=0x00;
P1M2=0x00; //¶Ë¿Ú³õʼ»
//----------------////-------------------------//
SCON = 0x50; //sm0.sm1=01£¬Ñ¡ÓÃģʽһ£»ren = 1£¬Ê¹ÄÜ´®ÐнÓÊÕ
SSTAT = 0x60; //½ûֹ˫»º³å£
BRGCON = 0x00;
BRGR0 = 0xF0; //9600 baud @ 7.373MHz
BRGR1 = 0x02;
BRGCON = 0x03; //ʹÄÜBRG£¬Ñ¡Óò¨ÌØÂÊ·¢ÉúÆ÷
ES = 1;
// ESR=1; //ESR=Enable Serial Recieve
// EST=1; //EST=Enable Serial Transmit
EA=1; //ʹÄÜÖж
}
//------------------------- //¹¦ÄܽÓÊÕÖÐ¶Ï //------------------------
void Rcv_ISR() interrupt 4
{ //µ±½ÓÊÕÍêÒ»¸ö×Ö½ÚRIÖÃ1½øÈëRecieveÖ
EA=0;
receivedata[count] =SBUF; //±£´æËù¶ÁÈ¡µÄÊ
RI=0; //RIÇå0ÒԵȴýÏ´η¢Ë
count++;
if(count==32)
{
count=0; //TIÇå0×¼±¸ÏÂÒ»´Î·¢
flag =1;
}
EA=1;
}
//------------------------// ·¢ËͶà×Ö½ÚÊý¾Ý //------------------------- //
void send_somedata(uchar *dat)
{
int j=0;
while(dat[j]) // send string
{
TI=0; // clear transmit interrupt flag
SBUF=dat[j]; // start sending one byte
while (!TI); // wait until sent
j++;
}
}
//------------------------// ·¢Ë͵¥×Ö½ÚÊý¾Ý //------------------------- //
void send_onedata(uchar dat)
{
TI=0; // clear transmit interrupt flag
SBUF=dat; // start sending one byte
while (!TI); // wait until sent
}
///////////////////////////////////////////////////////////////
void main()
{ UART_Init();
while(1);
}