?? uart.c
字號:
/*-------------------------------------
UART1測試:使用波特率9600發送到單片機上
單片機將收到的程序發回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; //定時器1為1T模式
TMOD = 0x20; //定時器1為模式2(8位自動重載)
TL1 = 0xDC; //設置波特率重裝值
TH1 = 0xDC;
TR1 = 1; //定時器1開始工作
ES = 1; //使能串口中斷
EA = 1;
}
/*----------------------------
UART 中斷服務程序
-----------------------------*/
void Uart() interrupt 4 using 1
{
if (RI)
{
RI = 0; //清除RI位
GetC = SBUF; //P0顯示串口數據
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙標志
}
}
/*----------------------------
發送串口數據
----------------------------*/
void SendData(uchar dat)
{
while (busy); //等待前面的數據發送完成
busy = 1;
SBUF = dat; //寫數據到UART數據寄存器
}
/*----------------------------
發送字符串
----------------------------*/
void SendString(uchar *s)
{
while (*s) //檢測字符串結束標志
{
SendData(*s++); //發送當前字符
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -