?? uart.c
字號(hào):
/*-------------------------------------
UART1測(cè)試:使用波特率9600發(fā)送到單片機(jī)上
單片機(jī)將收到的程序發(fā)回PC。
---------------------------------------*/
#include "STC15F2K.h"
#include <intrins.H>
typedef unsigned char uchar;
typedef unsigned int uint;
bit busy;
uchar GetC;
void InitUART(void);
void SendData(uchar dat);
void SendString(uchar *s);
/*----------------------------
UART1初始化
-----------------------------*/
void InitUART(void)
{
SCON = 0x50; //8位可變波特率
AUXR1= AUXR1 & 0x3F;
AUXR = 0x40; //定時(shí)器1為1T模式
TMOD = 0x20; //定時(shí)器1為模式2(8位自動(dòng)重載)
TL1 = 0xDC; //設(shè)置波特率重裝值
TH1 = 0xDC;
TR1 = 1; //定時(shí)器1開(kāi)始工作
ES = 1; //使能串口中斷
EA = 1;
}
/*----------------------------
UART 中斷服務(wù)程序
-----------------------------*/
void Uart() interrupt 4 using 1
{
if (RI)
{
RI = 0; //清除RI位
GetC = SBUF; //P0顯示串口數(shù)據(jù)
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙標(biāo)志
}
}
/*----------------------------
發(fā)送串口數(shù)據(jù)
----------------------------*/
void SendData(uchar dat)
{
while (busy); //等待前面的數(shù)據(jù)發(fā)送完成
busy = 1;
SBUF = dat; //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
}
/*----------------------------
發(fā)送字符串
----------------------------*/
void SendString(uchar *s)
{
while (*s) //檢測(cè)字符串結(jié)束標(biāo)志
{
SendData(*s++); //發(fā)送當(dāng)前字符
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -