|
- #include "reg51.h"
- #define u8 unsigned char
- bit busy;
- /*----------------------------
- //1、串口初始化——9600波特率
- ----------------------------*/
- void UartInit(void) //9600bps@11.0592MHz
- {
- SCON = 0x50; //8位數(shù)據(jù)
- TMOD = 0x20; //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
- TL1 = 0xFD; //設(shè)定定時(shí)初值
- TH1 = 0xFD; //設(shè)定定時(shí)器重裝值
- ET1 = 0; //禁止定時(shí)器1中斷
- TR1 = 1; //啟動(dòng)定時(shí)器1
- ES=1; //串行口中斷允許
- EA=1;
- }
- /*----------------------------
- 2、發(fā)送串口數(shù)據(jù)
- ----------------------------*/
- void SendData(u8 dat)
- {
- SBUF = dat; //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
- while(!TI); //等待TI發(fā)送完
- TI=0;
- }
- /*----------------------------
- UART 中斷服務(wù)程序
- -----------------------------*/
- void Uart() interrupt 4
- {
-
- if (RI) //串口接收中斷
- {
-
- P2=SBUF; //通過(guò)串口接收外部發(fā)送的字符
- RI = 0; //清除RI位
- }else
- {
- TI=0; //串口發(fā)送中斷
-
- }
- }
- void main(void)
- {
- UartInit();
- while(1)
- {
- SendData(P1); //發(fā)送串口數(shù)據(jù)
- }
- }
復(fù)制代碼
|
|