日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]//-------------------------------------------------------------------------------------------------------------------//程序名稱:串口通信程序//功能:實(shí)現(xiàn)單片機(jī)與PC之間的串口通信,PC向單片機(jī)發(fā)送,單片機(jī)

//-------------------------------------------------------------------------------------------------------------------

//程序名稱:串口通信程序

//功能:實(shí)現(xiàn)單片機(jī)與PC之間的串口通信,PC向單片機(jī)發(fā)送,單片機(jī)返回PC所發(fā)的內(nèi)容

//硬件連接:單片機(jī)的P3.0 P3.1經(jīng)max232電平轉(zhuǎn)化后與PC串口相連

//測試情況:本程序已經(jīng)由我親自上機(jī)測試,確保無誤

//-------------------------------------------------------------------------------------------------------------------

#include
#define uint unsigned int
#define uchar unsigned char
uchar num,flag;
void main()
{

TMOD=0X20;//設(shè)置定時1為工作方式2
TH1=0XFD;//設(shè)置定時器初始值
TL1=0XFD;
TR1=1; //啟動定時器
SCON=0X50;
EA=1;//開總中斷
ES=1;//開串口中斷

while(1)
{

if(flag==1) //flag為標(biāo)志位,當(dāng)flag==1時,說明此時已經(jīng)發(fā)生串口中斷,也就是說此時PC已經(jīng)向單片機(jī)發(fā)送了數(shù)據(jù)
{
EA=0; //為防止受影響,關(guān)閉所有中斷
flag=0;//清標(biāo)志位
SBUF=num;//將串口收到的值num存放在串口發(fā)送寄存器中
while(!TI); //TI是串口發(fā)送標(biāo)志位,當(dāng)發(fā)送完畢后,硬件自動置1,所以一般此句話的意思叫等待發(fā)送完畢
TI=0;//清發(fā)送標(biāo)志位,以便下次中斷后能再次發(fā)送
EA=1; //開總中斷
}
}
}

void ser() interrupt 4 //中斷服務(wù)子程序
{
RI=0; //RI接受標(biāo)志位,為0時允許接收,接收完畢后置1
num=SBUF; //串口接收寄存器接收到的值賦給變量num
flag=1; //中斷標(biāo)志位置1
}

注:有時候?qū)τ谛率謥碚f,有些特殊功能寄存器或者一些 位 的操作不理解,其實(shí)只要翻開課本查一下這個是什么作用,對于程序就明白怎么寫了,比如本文的 RI TI SCON SBUF等等 ,讀懂了他們的作用自熱而然的就知道怎么用了。查資料很重要


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉