資源簡(jiǎn)介
PIC單片機(jī)uart通信,通過(guò)proteus仿真,可以通過(guò)虛擬串口,與串口調(diào)試助手連調(diào)

代碼片段和文件信息
#include?//包含單片機(jī)內(nèi)部資源預(yù)定義
#ifndef?uchar
#define?uchar?unsigned?char
#define?uint?unsigned?int
#endif
//__CONFIG(0x2129);
bit?rec_flag; //串口中斷標(biāo)志位,有串口中斷,置1
uchar?uartdata; //串口數(shù)據(jù)保存到此位置中
void?Uart_char(uchar?dat);//串口發(fā)送一個(gè)數(shù)據(jù)
/*************************************************************
函數(shù)原型:void?main(void)
功????能:等待串口發(fā)送中斷到來(lái),將接收到的設(shè)計(jì)再通過(guò)串口發(fā)回
*************************************************************/
void?main(void)
{
TRISB1=1;
TRISB2=1;
SPBRG=0X19;??????????????????//設(shè)置波特率為9600BPS
TXSTA=0X24;? ?//使能串口發(fā)送,選擇高速波特率
RCSTA=0X90;? ?//使能串口工作,連續(xù)接收
RCIE=0X1;? ?//使能接收中斷
GIE=0X1;? ?//開(kāi)放全局中斷
PEIE=0X1; ?//使能外部中斷
//INTCON=0X00;
/* while(1)?????????????? ?//查詢模式下
{
RCIE=1; ?
while(RCIF==0);
RCIE=0;
Send_char(RCREG);
}
*/
while(1)?? //中斷模式下,等待中斷的到來(lái)
{
if(rec_flag==1)?????????//如果接收中斷到來(lái)?
{
rec_flag=0;?????????//接收標(biāo)志清零?
Uart_char(uartdata);?//將接收來(lái)的數(shù)據(jù)發(fā)送到串口
}
}?
}
/**********************************************
函數(shù)原型:void?Uart_char(uchar?dat)
功????能:將dat數(shù)據(jù)通過(guò)串口傳送出去
**********************************************/
void?Uart_char(uchar?dat)
{?
TXREG=dat; //將dat數(shù)據(jù)存入TXREG
// TXEN=1;? //啟動(dòng)發(fā)送,TSR開(kāi)始移位操作。
while?(TRMT==0); //判斷是否TSR發(fā)送完畢,未完等待。
// TXEN=0;? //關(guān)發(fā)送功能,防止TXREG空時(shí),TXIF產(chǎn)生置位
}
/**********************************************
函數(shù)原型:void?interrupt?usart(void)
功????能:串口接收到數(shù)據(jù),接受發(fā)來(lái)的數(shù)據(jù)將接
??????收到數(shù)據(jù)標(biāo)志位rec_flag置1
**********************************************/
void?interrupt?usart(void)
{
if(RCIF)?//判斷是否為串口接收中斷
{
rec_flag?=?1;
//RCIF=0;
uartdata?=?RCREG;?//?接收數(shù)據(jù)并存儲(chǔ)
//TXREG=recdata?;?//把接收到的數(shù)據(jù)發(fā)送回去
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????5632??2012-07-11?08:51??PIC_uart\16c73.cod
?????文件???????3403??2012-07-11?08:51??PIC_uart\16c73.cof
?????文件????????877??2012-07-11?08:51??PIC_uart\16c73.hex
?????文件??????????0??2012-07-11?08:51??PIC_uart\16c73.lde
?????文件????????983??2012-07-11?08:10??PIC_uart\16c73.mcp
?????文件????????733??2012-07-12?07:44??PIC_uart\16c73.mcs
?????文件??????25088??2012-07-11?08:54??PIC_uart\16c73.mcw
?????文件???????4059??2012-07-11?08:51??PIC_uart\16c73.sym
?????文件?????119570??2012-07-12?07:45??PIC_uart\232.DSN
?????文件????????962??2012-07-12?07:45??PIC_uart\232.PWI
?????文件?????119571??2012-07-10?23:34??PIC_uart\Last?Loaded?232.DBK
?????文件???????1974??2012-07-12?14:24??PIC_uart\main.c
?????文件??????????0??2012-07-11?08:51??PIC_uart\main.cce
?????文件??????20073??2012-07-11?08:51??PIC_uart\main.lst
?????文件???????3176??2012-07-11?08:51??PIC_uart\main.obj
?????文件??????25280??2012-07-11?08:51??PIC_uart\main.rlf
?????文件???????7560??2012-07-11?08:51??PIC_uart\main.sdb
?????目錄??????????0??2012-07-13?22:23??PIC_uart
-----------?---------??----------?-----??----
???????????????338941????????????????????18
評(píng)論
共有 條評(píng)論