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

當前位置:首頁 > 芯聞號 > 基礎(chǔ)知識科普站
[導(dǎo)讀]接收數(shù)據(jù)時,超過一定時間就算出錯. 這個超時的時間是單片機自己算出的嗎?超時的時間是由編程序的人定的,他定多長就多長從一段程序開始 實現(xiàn)電腦向 單片機發(fā)送一些數(shù)據(jù),單片機返回Iget +數(shù)據(jù)

接收數(shù)據(jù)時,超過一定時間就算出錯. 這個超時的時間是單片機自己算出的嗎?超時的時間是由編程序的人定的,他定多長就多長從一段程序開始 實現(xiàn)電腦向 單片機發(fā)送一些數(shù)據(jù),單片機返回Iget +數(shù)據(jù)

51單片機串口通信需要加超時中斷嗎?

#include #define uchar unsigned char

#define uint unsigned int unsigned char flag,a,i;//聲明標志位 flag

uchar code table[]="I get"

void init()

{

TMOD=0x20;//設(shè)置T1定時器工作方式為2 8位初值自動重裝的8位定時器 這里設(shè)置了兩個計數(shù)器的工作方式

TH1=0xfd; / /T1定時器裝初值(高八位) 控制串口通信的波特率(由定時器1的溢出率控制)

TL1=0xfd; //T1定時器裝入初值(低八位)

TR1=1; //定時器1運行控制位 置一啟動定時器1

REN=1; //允許串口接收

SM0=0; //設(shè)置串口工作方式為一

SM1=1; EA=1; //全局中斷允許位 置一開全局中斷

ES=1; //串口中斷允許位

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0;

for(i=0;i<6;i++)

{

SBUF=table[i];

while(!TI);

TI=0;//發(fā)送中斷標志 發(fā)送數(shù)據(jù)完成后觸發(fā)中斷 硬件置一 必須軟件清零

}

SBUF=a; // 串口發(fā)送數(shù)據(jù)

while(!TI);

TI=0;

ES=1;

flag=0;

}

}

}

void ser() interrupt4 //串口中斷服務(wù)程序

{

RI=0; // 收到數(shù)據(jù)硬件置一,由軟件清零

a=SBUF; //將寄存器的值 賦給a flag=1; //標志位

}

此程序中共用的串口中斷,

定時器1中斷 特殊功能寄存器SBUF

中斷響應(yīng)的條件

中斷源有中斷請求 此中斷源允許位為1 cpu開中斷(即EA=1)以上三個條件同時滿足

串口通信設(shè)置

確定串口通信波特率(編程TMOD寄存器定時器工作方式寄存器)

計算定時器初值轉(zhuǎn)載THX TLX

確定串行口工作方式(編程SCON寄存器串行口控制方式寄存器)

串行口工作在中斷方式時,要進行中斷設(shè)置如TI,RI軟件清零。

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