通信方式
并行
適合短距離通信,并行通信控制簡(jiǎn)單、相對(duì)傳輸速度快(8位一起傳輸)。
串行
只能一位一位的傳送。
同步(了解)
建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙。
發(fā)送方對(duì)接收方的同步可以通過(guò)外同步和自同步
異步(常)
以字符(構(gòu)成的幀)為單位進(jìn)行傳輸。數(shù)據(jù)位從低到高傳送。
格式:
這里的空閑時(shí)間是任意的。
串行通信的制式(傳輸方向)
單工(僅能沿一個(gè)方向)
半雙工(可進(jìn)行雙向,但需分時(shí))
全雙工
串行通信的錯(cuò)誤校驗(yàn)
奇偶校驗(yàn)
在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1/0)。奇校驗(yàn)時(shí),數(shù)據(jù)中1的個(gè)數(shù)與檢驗(yàn)位1的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中1的個(gè)數(shù)與校驗(yàn)位1的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收字符時(shí),對(duì)1的個(gè)數(shù)進(jìn)行校驗(yàn),若字符不一致,則說(shuō)明傳輸數(shù)據(jù)過(guò)程中出現(xiàn)錯(cuò)誤。
代碼和校驗(yàn)
發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時(shí),同時(shí)對(duì)數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,一致則無(wú)差。
循環(huán)冗余校驗(yàn)
通過(guò)某種數(shù)學(xué)預(yù)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用語(yǔ)對(duì)磁盤(pán)信息的傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)。
串口的基本結(jié)構(gòu)
SBUF:51單片機(jī)中的特殊寄存器,串行數(shù)據(jù)緩沖器(一個(gè)接收一個(gè)發(fā)送),兩個(gè)其實(shí)是共用的一個(gè)地址99H,但是兩個(gè)在物理上面是分開(kāi)的。
當(dāng)發(fā)送使用時(shí),就采用SBUF=XXX; (XXX為需要傳送的數(shù)據(jù))
當(dāng)接收使用時(shí),采用XXX=SBUF;
記得因?yàn)槭谴械乃詡鬏敹际且晃灰晃贿M(jìn)行的。
T1溢出率:T1計(jì)時(shí)器的溢出頻率(就是計(jì)時(shí)器每次低位計(jì)滿向高位進(jìn)位時(shí)間的倒數(shù))
用處:用于計(jì)算波特率(每秒傳輸二進(jìn)制代碼的位數(shù))
實(shí)現(xiàn)單片機(jī)與電腦之間的互相傳送字符串通信
工具:STC-ISP
代碼:
#include
#include
#define uc unsigned char
#define uint unsigned int
uc flag,i,flag_t,s[50]="",j=0,flag_n=0;
uc code table[]="I get ";
void init()
{
TMOD=0x20; //定時(shí)器工作方式,選擇了定時(shí)器1,工作方式2 八位初值自動(dòng)重裝的8位定時(shí)器。
TH1=0xfd; //定時(shí)器1初值 ,設(shè)置波特率為9600 晶振11.0529MHZ?
TL1=0xfd;
TR1=1; //開(kāi)啟定時(shí)器1
SM0=0;
SM1=1; //10位異步接收,(8位數(shù)據(jù))波特率可變
REN=1; //允許串行口接收位
EA=1; //允許中斷(總閘)
ES=1; //允許串口中斷
}
void main()
{
init();
while(1)
{
if(flag==1)
{ if(flag_n!=0) //使第二個(gè)及以后I get xx 換行,不與You transfer在一行(單純?yōu)榱烁袷胶每矗?/p>
{TI=1;
printf(" ");
while(!TI);
TI=0;
}
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI);
TI=0;
}
for(i=0;s[i]!='#'&&i<50;i++)
{
SBUF=s[i];
while(!TI);
TI=0;
}
flag=0;
}
if(flag_t==1) //發(fā)送完畢之后,在電腦端輸出。
{
TI=1; //printf之前必須將T1置為1才行。
printf (" You transfer %s",s);
while(!TI);
TI=0;
flag_t=0;
}
}
}
void ser() interrupt 4
{
if(RI) //接收數(shù)據(jù),手動(dòng)將RI清0
{
RI=0;
if(flag==0&&j!=0)//1.循環(huán)賦值為' 西安市| 百家乐官网五湖四海娱乐场开户注册| 豪享博百家乐的玩法技巧和规则| 粤港澳百家乐官网娱乐平台| 亿酷棋牌世界下载手机版| 百家乐开放词典新浪| 安桌百家乐官网游戏百家乐官网| 香港六合彩彩色图库| 百家乐皇室百家乐| 百家乐官网桌子黑色| 澳门百家乐官网有哪些| 鸿胜博娱乐| 环球百家乐娱乐城| 百家乐游戏官网| 百家乐官网赌场群| 蓬安县| 德州扑克 单机| 金冠百家乐的玩法技巧和规则 | 澳门百家乐官网破解| 百家乐官网算牌皇冠网| 沙龙国际娱乐网站| 菲利宾太阳城娱乐网| 七胜百家乐娱乐场| 百家乐游戏如何玩| 百家乐官网如何赚洗码| 金木棉百家乐官网网络破解| 百家乐官网有电脑游戏吗| 皇冠足球开户| 财神娱乐城打不开| 大发888怎么能不卡| 威尼斯人娱乐怎么样| 哪家百家乐优惠最好且信誉不错 | 皇家百家乐官网出租平台| 百家乐官网模拟游戏下载| 库尔勒市| 柳江县| 即时比分直播| 线上娱乐网站| 网上百家乐可靠| 百家乐模拟分析程序| 新澳博百家乐娱乐城|