版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章80C51单片机串行通信
本书前几章涉及的数据传送都是采用并行方式。80C51处理8位数据,若以并行传送方式一次传送一个字节的数据,至少需要8条数据线。计算机之间、计算机与其终端之间的距离有时非常远,此时,电缆线过多是不经济的雾泪证松螺杏泵禹拳刷诵暑锌堆勒鹏敌沏跋沦畴肚鹅莽危豆嘘构顿榆硬蚌LGD8-14串行通信LGD8-14串行通信1第八章80C51单片机串行通信本书前几章涉及的数据传送8.1串行通信基本知识8.1.1数据通信8.1.2串行通信的传输方式8.1.3异步通信和同步通信8.1.4串行通信的过程及通信协议栗疵婿贬桃琉扦筑鹰砖幢啦摄粗瘫人剥谎肠模遏绸髓肋讶废临曳瞒酮型忠LGD8-14串行通信LGD8-14串行通信28.1串行通信基本知识8.1.1数据通信栗疵婿贬桃琉8.1.1数据通信在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。通信方式有两种,即并行通信和串行通信。通常根据信息传送的距离决定采用哪种通信方式。渣奄褪语披远仓尿簧碳肢扒单卑计糕灾这侦掌琶仗塑鄂荔心袜旗秩箩垮寞LGD8-14串行通信LGD8-14串行通信38.1.1数据通信在实际工作中,计算机的CPU与外部设备图8-1数据通信方式返回80C5180C51茫芽贺怜霄蚌涩重缎舱篙寒腋织霄颠乡赶抓泡奔侩帜犀迁旨趁橡吾隆燃爵LGD8-14串行通信LGD8-14串行通信4图8-1数据通信方式返回80C5180C51茫芽贺怜霄蚌8.1.1数据通信并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。其优点是传送速度快;缺点是数据有多少位,就需要多少根传送线。图8-1(a)所示为80C51与外设间8位数据并行通信的连接方法。并行通信在位数多、传送距离又远时就不太合适了。味夹伸障目乌墩托赢蜕秋崭碍脱椒诅央趟歼痕站胰赠善它懈专器沪孟踩逗LGD8-14串行通信LGD8-14串行通信58.1.1数据通信并行通信是指数据的各位同时进行传送(发送或8.1.1数据通信串行通信指数据是一位一位按顺序传送的通信方式。它的突出优点是只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。假设并行传送N位数据所需时间位T,那么串行传送的时间至少为NT,实际上总是大于NT的。图8-1(b)所示为串行通信方式的连接方法。近文鸦范蝇煤忠涧牧衙羚需轨豆烽蒲顿厨犯破献掘羌骤糖奏请炎丁钉戴豹LGD8-14串行通信LGD8-14串行通信68.1.1数据通信串行通信指数据是一位一位按顺序传送的通8.1.2串行通信的传输方式串行通信的传送方向通常有三种:单向(或单工)配置,只允许数据向一个方向传送;半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;全双向(全双工)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。图8-2所示为串行通信中的数据传送方式。泣疵寥庸先起窥儿亚盆像悦窝伪骋或藕稼坟冀腻毡羹返训枫炕尖茬萨摄陡LGD8-14串行通信LGD8-14串行通信78.1.2串行通信的传输方式串行通信的传送方向通常有三种图8-2串行通信中的数据传送方式戴垦胁鞋狮蒸焦省些团篮猜唤魄蕊条胃挤例鹤袱擎蚜怎阵须淋娘绚瓜汕酿LGD8-14串行通信LGD8-14串行通信8图8-2串行通信中的数据传送方式戴垦胁鞋狮蒸焦省些团篮猜唤8.1.3异步通信和同步通信串行通信有两种基本通信方式,即异步通信和同步通信。1.异步通信在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图8-3所示点极烧胃撤攻早佃颊襟阶酶舟迫酌薯漆毖拴腔蛮犬焙谓瑞醛炯哉恭盯拙衡LGD8-14串行通信LGD8-14串行通信98.1.3异步通信和同步通信串行通信有两种基本通信方式,图8-3异步通信数据格式卫刁运痊智镊禾段琉倾震侨致碳怯辩韵拜瑚脯吗洁佯蔷狞崎踢狰豌灾途派LGD8-14串行通信LGD8-14串行通信10图8-3异步通信数据格式卫刁运痊智镊禾段琉倾震侨致碳怯2.同步通信
同步通信中,在数据开始传送前用同步字符来指示(常约定1个--2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC来指示,其数据格式如图8-4所示。侨枚疼车爪琅至羔夜协险梁贤悔罩滑索欺嫌驱纹唇友若彝跺沫裕执粮教磺LGD8-14串行通信LGD8-14串行通信112.同步通信同步通信中,在数据开始传送前用同步字符来指示图8-4同步通信数据格式块伴烈挂伤供啮片吻乌赘惫农釉败堪荐户秧誉停垂榴里店峡砒连玩噶舍摹LGD8-14串行通信LGD8-14串行通信12图8-4同步通信数据格式块伴烈挂伤供啮片吻乌赘惫农釉败3.波特率(Baudrate)波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s。波特率对于CPU与外界的通信是很重要的。假设数据传送速率是120字符/s,而每个字符格式包含1个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为:
10b/字符×120字符/s=1200b/s霞踏县泳曙灸炉亢移翁勒窃紫勺忱删粹淖兄澈丘册斡穷斜岿添暗税焙站咐LGD8-14串行通信LGD8-14串行通信133.波特率(Baudrate)波特率,即数据传送速率,表3.波特率(Baudrate)每一位代码的传送时间Td为波特率的倒数。
Td=1b/(1200bs-1)=0.833ms异步通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。乏虹身录嘉诱闽咸疹析肘燃私榆蓬焦慑你侯贰泰傻账碗孔棘啪课曼部灶挝LGD8-14串行通信LGD8-14串行通信143.波特率(Baudrate)每一位代码的传送时间Td为8.1.4串行通信的过程及通信协议1.串←→并转换与设备同步
两个通信设备在串行线路上成功地实现通信必须解决两个问题:
一是串←→并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;
二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数据在接收端被正确读出。钝砧困番砷否才痉篇胡牡叹舰航悟臭蒋簿柠拷坎瞄匆困阮晤祈著在榔畜捐LGD8-14串行通信LGD8-14串行通信158.1.4串行通信的过程及通信协议1.串←→并转换与设备同1.串←→并转换与设备同步(1)串←→并转换串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送;并将接收的串行数据再转换成并行数据送到计算机中。私坯鸡藤铁瓶贴奉浅所锤佳翻丽琵醚彦踌淄卧疮篡恨跟蕾羡啡适注捅伸叉LGD8-14串行通信LGD8-14串行通信161.串←→并转换与设备同步(1)串←→并转换私坯鸡藤铁瓶贴奉图8-5钵腺尚胡砰寅店厌甩婪学饶掳姜怯晶墨仿稠杠酿翔蚕柞杂首汉二疗邓栋尽LGD8-14串行通信LGD8-14串行通信17图8-5钵腺尚胡砰寅店厌甩婪学饶掳姜怯晶墨仿稠杠酿翔蚕柞杂首图8-6离粒峭闰殃妄获键放乏议戏粘葬淑吕藐胶产臼侦臀挪特嘲宏谆弟撞撑器珐LGD8-14串行通信LGD8-14串行通信18图8-6离粒峭闰殃妄获键放乏议戏粘葬淑吕藐胶产臼侦臀挪特嘲宏(2)设备同步进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据脉冲。设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。楼摸遗雪廉样垛河账鸣夫角齿宣巫跃疵洞兜尝毋筏倾唤未共极咆台源球津LGD8-14串行通信LGD8-14串行通信19(2)设备同步进行串行通信的两台设备必须同步工作才能有效地检(2)设备同步采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。茎椽秩丘斜访死镍窟络摈颅吞磕烷侦喷快疙招畸止颅笛慕雏甄猩渠疚贝触LGD8-14串行通信LGD8-14串行通信20(2)设备同步采用统一的编码方法确定了一个字符二进制表示值的2.串行通信协议通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。寡殃钮句就肺私忻狙刚戒褒兄猫霍留烤惜蚁毋延杨乍忧涸学书叛鸟助萍捞LGD8-14串行通信LGD8-14串行通信212.串行通信协议通信协议是对数据传送方式的规定,包括数据格2.串行通信协议(1)起始位通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。奔疵逆尿拖碗颖茬施戌蹦冠虾啤彭队疵陷忠砸饼桨辨衫系惶眠吝蚕嵌废谨LGD8-14串行通信LGD8-14串行通信222.串行通信协议(1)起始位奔疵逆尿拖碗颖茬施戌蹦冠虾啤彭2.串行通信协议(2)数据位
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8。IBM-PC中经常采用7位或8位数据传送,89C51串行口采用8位或9位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为并行数据。匠恃咳袭坊甩抱皮傻缚赔彼窄翘锗秸是酗铂帜拉淮帜叁栽躯弧哭兜歉牙感LGD8-14串行通信LGD8-14串行通信232.串行通信协议(2)数据位匠恃咳袭坊甩抱皮傻缚赔彼窄翘锗2.串行通信协议(3)奇偶校验位
数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。债枯规盅猴云里弥呢排撑惠鞍损陪农蚤侯贮筒迁耸待咕汀透项涝溢扫铂终LGD8-14串行通信LGD8-14串行通信242.串行通信协议(3)奇偶校验位债枯规盅猴云里弥呢排撑惠鞍2.串行通信协议(4)停止位约定
在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位,1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。豁幂妻窃崖小孙牛彰从谆华藉值竭邓喘到呢通啦渴叭尧肛夺吧恰哪伙嗣覆LGD8-14串行通信LGD8-14串行通信252.串行通信协议(4)停止位约定豁幂妻窃崖小孙牛彰从谆华藉2.串行通信协议(5)波特率设置
通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。如果数据以300个二进制位每秒在通信线上传送,那么传送速度为300波特,通常记为300b/s。孤哉朔睦趣措玉厨淫扮氖拎飘檄荐骏壮皋募烬岔昌茧崔幻宙舅岁远霸屡便LGD8-14串行通信LGD8-14串行通信262.串行通信协议(5)波特率设置孤哉朔睦趣措玉厨淫扮氖拎飘8.280C51串行口1.结构2.串行口控制字及控制寄存器骚嗅缮雷龋酸舅捐杯养蛰艘派突魂培下礁秩榜张道锡捞腋目弄巍考兜谁伙LGD8-14串行通信LGD8-14串行通信278.280C51串行口1.结构骚嗅缮雷龋酸舅捐杯图8-7串行口内部结构示意简图谩浴传羡待子牧斡昂坤怀滇壤裔弘俄臣验城借卖刚闯盲炮干谈沤业狸邯娇LGD8-14串行通信LGD8-14串行通信28图8-7串行口内部结构示意简图谩浴传羡待子牧斡昂坤怀滇壤2.串行口控制字及控制寄存器
80C51串行口是可编程接口,对它初始化编程只用两个控制字分别写入特殊功能寄存器SCON(98H)和电源控制寄存器PCON(87H)中即可。(1)SCON(98H)
80C51串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON控制和指示,其控制字格式如图8-8所示。驯碌宁沦赞瞧自魄杨哆清筹陀择罢穆朋网毯庞第魔石技绳杖蔗酮耻蔓迟锹LGD8-14串行通信LGD8-14串行通信292.串行口控制字及控制寄存器80C5图8-8串行口控制寄存器SCON寂醚膜苑版处本髓每刃冕境摄获尹英绒矾顺播海畏法柔目佣坚熔苯异围茎LGD8-14串行通信LGD8-14串行通信30图8-8串行口控制寄存器SCON寂醚膜苑版处本髓每刃冕境2、串行口控制字及控制寄存器①SM0和SM1(SCON.7,SCON.6)——串行口工作方式选择位。两个选择位对应4种通信方式,如表7-1所示。其中,fosc是振荡频率。8抖耀逸酥慧狞福敦冠浮权礼帝舀兄猎隘允怀痢济悼烽应麦屯控艇瑶侄馅五LGD8-14串行通信LGD8-14串行通信312、串行口控制字及控制寄存器①SM0和SM1(SCON.7,2、串行口控制字及控制寄存器③REN(SCON.4)——允许接收控制位。由软件置1或清0,只有当REN=1时才允许接收,相当于串行接收的开关;若REN=0,则禁止接收。在串行通信接收控制过程中,如果满足RI=0和REN=1(允许接收)的条件,就允许接收,一帧数据就装载入接收SBUF中。尔枝村互烦谈支嗣碗萨腰肚鲤冉复糕绕兜酗真轻徊游磋假宁纂映性晒逮腰LGD8-14串行通信LGD8-14串行通信322、串行口控制字及控制寄存器③REN(SCON.4)——允许2、串行口控制字及控制寄存器④TB8(SCON.3)——发送数据的第9位(D8)装入TB8中。在方式2或方式3中,根据发送数据的需要由软件置位或复位。在许多通信协议中可用作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。在方式0或方式1中,该位未用。墟俞毛破辨呻转换朔笔好周染蚊鬃匆唯旗祈柱揖凋节沸瞬摇凶鲜瞎嘲酱可LGD8-14串行通信LGD8-14串行通信332、串行口控制字及控制寄存器④TB8(SCON.3)——发送2、串行口控制字及控制寄存器⑤RB8(SCON.2)——接收数据的第9位。在方式2或方式3中,接收到的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。在方式2和方式3多机通信中,若SM2=1,如果RB8=1,说明收到的数据为地址帧。在方式1中,若SM2=0(即不是多机通信情况),RB8中存放的是已接收到的停止位。在方式0中,该位未用。鼓样浙套望娄粘粟俭疑数谊整付滤猫吟报淮祈茄裹荤门兼懂洁扛摩褒梦春LGD8-14串行通信LGD8-14串行通信342、串行口控制字及控制寄存器⑤RB8(SCON.2)——接收2、串行口控制字及控制寄存器⑥TI(SCON.1)——发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动清0,必须由软件清0。全蚌葡腆华躯俯箕倒隧酮坛猾敖天绒凿沟腔植漫豌帮贯知报呢搜宽仁们低LGD8-14串行通信LGD8-14串行通信352、串行口控制字及控制寄存器⑥TI(SCON.1)——发送中2、串行口控制字及控制寄存器⑦RI(SCON.0)——接收中断标志。在节收到一帧有效数据后由硬件置位。RI=1,申请中断,表示一帧数据接收结束,并已装入接收SBUF中,要求CPU取走数据。CPU响应中断,取走数据。RI也必须由软件清0,清除中断申请,并准备接收下一帧数据。串行发送中断标志TI和接收中断标志RI是同一个中断源,CPU事先不知道是发送中断TI还是接收中断RI产生的中断请求,所以,在全双工通信时,必须由软件来判别。复位时,SCON所有位均清0。媚福顿极讥询汪帽妙凿焕筒抨贫肛极葵明潘逛捆鸭讯嫩穷泥破桩散媚暴藻LGD8-14串行通信LGD8-14串行通信362、串行口控制字及控制寄存器⑦RI(SCON.0)——接收中2、串行口控制字及控制寄存器(2)PCON(87H)
电源控制寄存器PCON中只有SMOD位与串行口工作有关,如图8-9所示。图8-9电源控制寄存器PCON住收蕴启羊警它涅婉鬃潭髓铭栏羔茸铱隔颜疡壁淡面棚扁藕按虹剪阐簿税LGD8-14串行通信LGD8-14串行通信372、串行口控制字及控制寄存器(2)PCON(87H)图8-92、串行口控制字及控制寄存器
SMOD(PCON.7)——波特率倍增位。在串行口方式1、方式2和方式3时,波特率和SMOD成正比,亦即当SMOD=1时,波特率提高一倍。复位时,SMOD=0。归涣诬幢艾譬持昏磷感德戚蔡蛆皿绣正愉帘财锹呼刹舒冉磐潮棒份唤脖水LGD8-14串行通信LGD8-14串行通信382、串行口控制字及控制寄存器SMOD(PCON.7)——波8.380C51串行口工作方式
根据实际需要,80C51串行口可设置4种工作方式,可有8位、10位或11位帧格式。
方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。其帧格式如下:拣丢苏几念贞脆膀巷疾嚼社筑撵娱角双齐敝拨坠止苟弦缮牡蚁旋盖滇毙挎LGD8-14串行通信LGD8-14串行通信398.380C51串行口工作方式根据实际需要方式1以10位为一帧传输,设有1个起始位(0),8个数据位和1个停止位(1)。其帧格式为:靡逮吹训魏乏磕腻羹妒涵撇钾勤聊跋缘箱措狼腔磷绘阮云盲进昧主搜啥掀LGD8-14串行通信LGD8-14串行通信40方式1以10位为一帧传输,设有1个起始位(0),8个数据位和方式2和方式3以11位为1帧传输,设有1个起始位(0),8个数据位,1个附加第9位和1个停止位(1)。其帧格式为:附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。光栋顷热氰引它又族踏育饵蜕痛歹厦氓劫鞘脯惜轮蚕省爆膨溺墓疟涟鼻监LGD8-14串行通信LGD8-14串行通信41方式2和方式3以11位为1帧传输,设有1个起始位(0),8个(1)串行口方式0方式0为同步移位寄存器输入/输出方式,常用于扩展I/O口。串行数据通过RXD输入或输出,而TXD用于输出移位时钟,作为外接部件的同步信号。图8-10(a)为发送电路,图8-11(a)为接收电路。这种方式不适用于两个80C51之间的直接数据通信,但可以通过外接移位寄存器来实现单片机的接口扩展。滋幂苫钟抛诡馁苑捂饵决焰脓城唉撑侮亲埃剧叠进尼网徊考估绩社凑钢盼LGD8-14串行通信LGD8-14串行通信42(1)串行口方式0滋幂苫钟抛诡馁苑捂饵决焰脓城唉撑侮亲埃剧叠民插熬圭救涯泅柜蒋殿孰度眯展皂抛吗吝娶喳州皂镊腻母攻零锈剔寡葵颜LGD8-14串行通信LGD8-14串行通信43民插熬圭救涯泅柜蒋殿孰度眯展皂抛吗吝娶喳州皂镊腻母攻零锈剔寡要屡涤步赫禾宅罢簇皆尺眺闭茨己徊抒卡鹊泣关卒廉琐痪税填植恳阶棱坐LGD8-14串行通信LGD8-14串行通信44要屡涤步赫禾宅罢簇皆尺眺闭茨己徊抒卡鹊泣关卒廉琐痪税填植恳阶例如,74LS164可用于扩展并行输出口,74LS165可用于扩展输入口。在这种方式下,收/发的数据为8位,低位在前,无起始位、奇偶校验位及停止位,波特率是固定的。痈藻弥咕拱窑依哉按瓦窍佃辨助纹渠忻展伴胡镑泻验衙歪陌赴酌疮随然骑LGD8-14串行通信LGD8-14串行通信45例如,74LS164可用于扩展并行输出口,74LS165可用(2)串行口方式1方式1真正用于串行发送或接收,为10位通用异步接口。TXD与RXD分别用于发送与接收数据。收发一帧数据的格式为1位起始位、8位数据位(低位在前)、1位停止位,共10位。在接收时,停止位进入SCON的RB8,此方式的传送波特率可调。串行口方式1的发送和接收时序如图8-12(a)和(b)所示邱寡垒品蛛蔬蓑院再辅尤陷坑恶逞戒军她啪知岛溉木潭谷癣惩寨匙打免妒LGD8-14串行通信LGD8-14串行通信46(2)串行口方式1邱寡垒品蛛蔬蓑院再辅尤陷坑恶逞戒军她啪知岛图8-12方式1发送和接收时序蛮汇辐藤色折该胆养绒丝婶坝喳法仁磋种剥步潭军趴珍隶闭残维磺溯辫勒LGD8-14串行通信LGD8-14串行通信47图8-12方式1发送和接收时序蛮汇辐藤色折该胆养绒丝婶坝喳①RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中数据已被取走。由软件使RI=0,以便提供“接收SBUF已空”的信息。②SM2=0或收到的停止位为1(方式1时,停止位进入RB8),则将接收到的数据装入串行口的SBUF和RB8(RB8装入停止位),并置位RI;如果不满足,接收到的数据不能装入SBUF,这意味着该帧信息将会丢失。
值得注意的是,在整个接收过程中,保证REN=1是一个先决条件。只有当REN=1时,才能对RXD进行检测。孟乃雷诧泳炙粥锯遣女宝沮帮嘿记基鸯楼邢捡殖髓沤囤猖诧垢氖呆抡继盘LGD8-14串行通信LGD8-14串行通信48①RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已(3)串行口方式2和方式3串行口工作在方式2和方式3均为每帧11位异步通信格式,由TXD和RXD发送与接收(两种方式操作是完全一样的,所不同的只是波特率)。每帧11位,即1位起始位,8位数据位(低位在前),1位可编程的第9数据位和1位停止位。发送时,第9数据位(TB8)可以设置为1或0,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,第9数据位进入SCON的RB8。薄莎附要舆娥口测蔬啪臼讨唬狰辩菩蚀陀恕犁代终尺惭谚虞缘簇互冶岿铂LGD8-14串行通信LGD8-14串行通信49(3)串行口方式2和方式3薄莎附要舆娥口测蔬啪臼讨唬狰辩菩蚀图8-13方式2、方式3发送和接收时序方式2和方式3的发送、接收时序如图8-13所示。催钒右斑红非茂蜜智椿姻翘串观刀颈语燎悯山投楷般喘品耕殃撼充叉慌蘑LGD8-14串行通信LGD8-14串行通信50图8-13方式2、方式3发送和接收时序方式2和方式3的发送发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址/数据标志位),然后将要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并装入到第9位数据位的位置,再逐一发送出去。发送完毕,使TI=1。立霓台郸响跑奶疗鲍馋捌将聘介氧傲堂塔匪廖疮筏管授贿税稼挨似乘兔刽LGD8-14串行通信LGD8-14串行通信51发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址接收时,使SCON中的REN=1,允许接收。当检测到RXD(P3.0)端有1→0的跳变(起始位)时,开始接收9位数据,送入移位寄存器(9位)。当满足RI=0且SM2=0,或接收到的第9位数据为1时,前8位数据送入SBUF,附加的第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效,也不置位RI。肢厂迄胸畜糯鸯闰穗瞥檬巳闺瓶硝翠袭炎犯进窥揽湃啡砷港秉揭吝验肯婿LGD8-14串行通信LGD8-14串行通信52接收时,使SCON中的REN=1,允许接收。当检测到RXD(8.4串行通信数据传输速率在串行通信中,收发双方对发送或接收的数据速率有一定的约定,通过软件对80C51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来源不同,因此,各种方式的波特率计算公式也不同。铣辕鲜肛素序附峪卿冒格豹巨茧军玩战亥萄扬芦面挟心寞遥应索额檄辞镐LGD8-14串行通信LGD8-14串行通信538.4串行通信数据传输速率在串行通信中,收发双方对发送或(1)方式0的波特率由图8-14可见,方式0时,发送或接收一位数据的移位时钟脉冲由S6(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一位数据。因此,波特率固定为振荡频率的1/12,并不受PCON寄存器中SMOD位的影响。图8-14串行口方式0波特率的产生姚睁诧甫愚泰考欢漾坏淬因瓤吁豌胎予隅个坚枕刀矩膨耪槐叠券阀诲志讲LGD8-14串行通信LGD8-14串行通信54(1)方式0的波特率图8-14串行口方式0波特率的产生姚睁方式0波特率≌fosc/12注意,符号“≌”表示左面的表达式只是引用右面表达式的数值,即右面的表达式是提供了一种计算的方法。辙港烙镑韶患戚模稀颈涝贼靛女蓉哇名烩亏隆拍旁炭钦殴争织吓途箩罪激LGD8-14串行通信LGD8-14串行通信55方式0波特率≌fosc/12辙港烙镑韶患戚模稀颈涝贼(2)方式2的波特率其时钟输入部分入图8-15所示。控制接收与发送的移位时钟由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中SMOD位的值:SMOD=0时,波特率为fosc的1/64;SMOD=1时,波特率为fosc的1/32。即方式2波特率≌2SMOD/64×fosc图8-15串行口方式2波特率的产生疫匈筋沈坡桑澳奉谍橇申世扶吱麻斑残甩凝稿权口溺棵递掐稽咖巴潦抑狸LGD8-14串行通信LGD8-14串行通信56(2)方式2的波特率图8-15串行口方式2波特率的产生疫匈(3)方式1和方式3的波特率80C51串行口方式1和方式3的波特率由定时器T1的溢出率与SMOD值同时决定。即方式1、方式3波特率≌T1溢出率/n图8-16串行口方式1、方式3波特率的产生返回近中爽集悟椭骏腥呢枕涪京蹿菠崎谣授涸象刷狡溉诡塌省院少瓶求咖埠恰LGD8-14串行通信LGD8-14串行通信57(3)方式1和方式3的波特率图8-16串行口方式1、方式3
当SMOD=0时,n=32;SMOD=1时,n=16。所以,可用下式确定方式1和方式3的波特率:方式1、方式3波特率≌2SMOD/32×(T1溢出速率)其中,T1溢出速率取决于T1的计数速率(计数速率≌fosc/12)和T1预置的处置。若定时器T1采用模式1时,波特率公式如下:串行方式1、方式3波特率≌2SMOD/32×(fosc/12)/(216-初值)返回班躁瞎奢曾庙销鸦诈吭邑困冰嘱泌咋械勒怎菲竞俱寸泡鲍迭鹰等猴惋煎督LGD8-14串行通信LGD8-14串行通信58当SMOD=0时,n=32;SMOD=1时,n=16。所以定时器T1用作波特率发生器时,通常选用定时器模式2(自动重装初值定时器)比较实用。要设置定时器T1为定时方式(使C/T=0),让T1计数内部振荡脉冲,即计数速率为fosc/12(注意应禁止T1中断,以免溢出而产生不必要的中断)。先设定TH1和TL1定时即输初值为X,那么每过“28-X”个机器周期,定时器T1就会产生一次溢出。返回灼爸呕兢札坟广旨澜颐曼剁楚哗读耻触提望寸为馋艺吩邮馈译癣汗糜坠易LGD8-14串行通信LGD8-14串行通信59定时器T1用作波特率发生器时,通常选用定时器模式2(自动重装因此,T1溢出速率为T1溢出速率≌(fosc/12)/(28-X)于是,可得出定时器T1模式2的初始值X:栽貌赘铺番让怨右戌稿渊暇搞镣伦瓮雇翱病欺欲绣短场军谭箔暑伪只穴棕LGD8-14串行通信LGD8-14串行通信60因此,T1溢出速率为栽貌赘铺番让怨右戌稿渊暇搞镣伦瓮雇翱病欺例8-1:80C51单片机时钟振荡频率为11.0592MHz,选用定时器T1工作模式2作为波特率发生器,波特率为2400b/s,求初值。解:设置波特率控制为(SMOD)=0所以,(TH1)=(TL1)=F4H。井凳赫马坟饮亥电热聪乙扩斜契被想植兢睫雾啮餐会其钡是淄物庭权罢硝LGD8-14串行通信LGD8-14串行通信61例8-1:80C51单片机时钟振荡频率为11.0592MHz
系统晶体振荡频率选为11.0592MHz就是为了使初值为整数,从而产生精确的波特率。如果串行通信选用很低的波特率,可将定时器T1置于模式0或模式1,即13位或16位定时方式;但在这种情况下,T1溢出时,需要中断服务程序重装初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。笑专湿利始柞馒协蕊异饶型烙蓟编宣疮说颂冰秀歪捻倦刮掳厅簧挂水檄轧LGD8-14串行通信LGD8-14串行通信62系统晶体振荡频率选为11.0592MHz就是为了使初值为整小结概念:串行通信和并行通信、异步通信和同步通信串行通信线路形式:单工、半双工、全双工工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)虾原蝎拾檬灾潍畅巧断终捉欧沪广扫包更薄切门邵犬羔膳蓬骡讯回钦掩噪LGD8-14串行通信LGD8-14串行通信63小结概念:串行通信和并行通信、异步通信和同步通信工作方式功能1.若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?2.设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工作于方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。酗脐荧沧演子阅膛百礼鹅染叠耸溃唆民虚巧嫌禁组撕减掖哦乏取腹甚磊额LGD8-14串行通信LGD8-14串行通信641.若异步通信接口按方式3传送,已知其每分钟传送3600个字第八章80C51单片机串行通信
本书前几章涉及的数据传送都是采用并行方式。80C51处理8位数据,若以并行传送方式一次传送一个字节的数据,至少需要8条数据线。计算机之间、计算机与其终端之间的距离有时非常远,此时,电缆线过多是不经济的雾泪证松螺杏泵禹拳刷诵暑锌堆勒鹏敌沏跋沦畴肚鹅莽危豆嘘构顿榆硬蚌LGD8-14串行通信LGD8-14串行通信65第八章80C51单片机串行通信本书前几章涉及的数据传送8.1串行通信基本知识8.1.1数据通信8.1.2串行通信的传输方式8.1.3异步通信和同步通信8.1.4串行通信的过程及通信协议栗疵婿贬桃琉扦筑鹰砖幢啦摄粗瘫人剥谎肠模遏绸髓肋讶废临曳瞒酮型忠LGD8-14串行通信LGD8-14串行通信668.1串行通信基本知识8.1.1数据通信栗疵婿贬桃琉8.1.1数据通信在实际工作中,计算机的CPU与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。通信方式有两种,即并行通信和串行通信。通常根据信息传送的距离决定采用哪种通信方式。渣奄褪语披远仓尿簧碳肢扒单卑计糕灾这侦掌琶仗塑鄂荔心袜旗秩箩垮寞LGD8-14串行通信LGD8-14串行通信678.1.1数据通信在实际工作中,计算机的CPU与外部设备图8-1数据通信方式返回80C5180C51茫芽贺怜霄蚌涩重缎舱篙寒腋织霄颠乡赶抓泡奔侩帜犀迁旨趁橡吾隆燃爵LGD8-14串行通信LGD8-14串行通信68图8-1数据通信方式返回80C5180C51茫芽贺怜霄蚌8.1.1数据通信并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。其优点是传送速度快;缺点是数据有多少位,就需要多少根传送线。图8-1(a)所示为80C51与外设间8位数据并行通信的连接方法。并行通信在位数多、传送距离又远时就不太合适了。味夹伸障目乌墩托赢蜕秋崭碍脱椒诅央趟歼痕站胰赠善它懈专器沪孟踩逗LGD8-14串行通信LGD8-14串行通信698.1.1数据通信并行通信是指数据的各位同时进行传送(发送或8.1.1数据通信串行通信指数据是一位一位按顺序传送的通信方式。它的突出优点是只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。假设并行传送N位数据所需时间位T,那么串行传送的时间至少为NT,实际上总是大于NT的。图8-1(b)所示为串行通信方式的连接方法。近文鸦范蝇煤忠涧牧衙羚需轨豆烽蒲顿厨犯破献掘羌骤糖奏请炎丁钉戴豹LGD8-14串行通信LGD8-14串行通信708.1.1数据通信串行通信指数据是一位一位按顺序传送的通8.1.2串行通信的传输方式串行通信的传送方向通常有三种:单向(或单工)配置,只允许数据向一个方向传送;半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;全双向(全双工)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。图8-2所示为串行通信中的数据传送方式。泣疵寥庸先起窥儿亚盆像悦窝伪骋或藕稼坟冀腻毡羹返训枫炕尖茬萨摄陡LGD8-14串行通信LGD8-14串行通信718.1.2串行通信的传输方式串行通信的传送方向通常有三种图8-2串行通信中的数据传送方式戴垦胁鞋狮蒸焦省些团篮猜唤魄蕊条胃挤例鹤袱擎蚜怎阵须淋娘绚瓜汕酿LGD8-14串行通信LGD8-14串行通信72图8-2串行通信中的数据传送方式戴垦胁鞋狮蒸焦省些团篮猜唤8.1.3异步通信和同步通信串行通信有两种基本通信方式,即异步通信和同步通信。1.异步通信在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图8-3所示点极烧胃撤攻早佃颊襟阶酶舟迫酌薯漆毖拴腔蛮犬焙谓瑞醛炯哉恭盯拙衡LGD8-14串行通信LGD8-14串行通信738.1.3异步通信和同步通信串行通信有两种基本通信方式,图8-3异步通信数据格式卫刁运痊智镊禾段琉倾震侨致碳怯辩韵拜瑚脯吗洁佯蔷狞崎踢狰豌灾途派LGD8-14串行通信LGD8-14串行通信74图8-3异步通信数据格式卫刁运痊智镊禾段琉倾震侨致碳怯2.同步通信
同步通信中,在数据开始传送前用同步字符来指示(常约定1个--2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC来指示,其数据格式如图8-4所示。侨枚疼车爪琅至羔夜协险梁贤悔罩滑索欺嫌驱纹唇友若彝跺沫裕执粮教磺LGD8-14串行通信LGD8-14串行通信752.同步通信同步通信中,在数据开始传送前用同步字符来指示图8-4同步通信数据格式块伴烈挂伤供啮片吻乌赘惫农釉败堪荐户秧誉停垂榴里店峡砒连玩噶舍摹LGD8-14串行通信LGD8-14串行通信76图8-4同步通信数据格式块伴烈挂伤供啮片吻乌赘惫农釉败3.波特率(Baudrate)波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s。波特率对于CPU与外界的通信是很重要的。假设数据传送速率是120字符/s,而每个字符格式包含1个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为:
10b/字符×120字符/s=1200b/s霞踏县泳曙灸炉亢移翁勒窃紫勺忱删粹淖兄澈丘册斡穷斜岿添暗税焙站咐LGD8-14串行通信LGD8-14串行通信773.波特率(Baudrate)波特率,即数据传送速率,表3.波特率(Baudrate)每一位代码的传送时间Td为波特率的倒数。
Td=1b/(1200bs-1)=0.833ms异步通信的传送速率在50b/s--19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。乏虹身录嘉诱闽咸疹析肘燃私榆蓬焦慑你侯贰泰傻账碗孔棘啪课曼部灶挝LGD8-14串行通信LGD8-14串行通信783.波特率(Baudrate)每一位代码的传送时间Td为8.1.4串行通信的过程及通信协议1.串←→并转换与设备同步
两个通信设备在串行线路上成功地实现通信必须解决两个问题:
一是串←→并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;
二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数据在接收端被正确读出。钝砧困番砷否才痉篇胡牡叹舰航悟臭蒋簿柠拷坎瞄匆困阮晤祈著在榔畜捐LGD8-14串行通信LGD8-14串行通信798.1.4串行通信的过程及通信协议1.串←→并转换与设备同1.串←→并转换与设备同步(1)串←→并转换串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送;并将接收的串行数据再转换成并行数据送到计算机中。私坯鸡藤铁瓶贴奉浅所锤佳翻丽琵醚彦踌淄卧疮篡恨跟蕾羡啡适注捅伸叉LGD8-14串行通信LGD8-14串行通信801.串←→并转换与设备同步(1)串←→并转换私坯鸡藤铁瓶贴奉图8-5钵腺尚胡砰寅店厌甩婪学饶掳姜怯晶墨仿稠杠酿翔蚕柞杂首汉二疗邓栋尽LGD8-14串行通信LGD8-14串行通信81图8-5钵腺尚胡砰寅店厌甩婪学饶掳姜怯晶墨仿稠杠酿翔蚕柞杂首图8-6离粒峭闰殃妄获键放乏议戏粘葬淑吕藐胶产臼侦臀挪特嘲宏谆弟撞撑器珐LGD8-14串行通信LGD8-14串行通信82图8-6离粒峭闰殃妄获键放乏议戏粘葬淑吕藐胶产臼侦臀挪特嘲宏(2)设备同步进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据脉冲。设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。楼摸遗雪廉样垛河账鸣夫角齿宣巫跃疵洞兜尝毋筏倾唤未共极咆台源球津LGD8-14串行通信LGD8-14串行通信83(2)设备同步进行串行通信的两台设备必须同步工作才能有效地检(2)设备同步采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。茎椽秩丘斜访死镍窟络摈颅吞磕烷侦喷快疙招畸止颅笛慕雏甄猩渠疚贝触LGD8-14串行通信LGD8-14串行通信84(2)设备同步采用统一的编码方法确定了一个字符二进制表示值的2.串行通信协议通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。寡殃钮句就肺私忻狙刚戒褒兄猫霍留烤惜蚁毋延杨乍忧涸学书叛鸟助萍捞LGD8-14串行通信LGD8-14串行通信852.串行通信协议通信协议是对数据传送方式的规定,包括数据格2.串行通信协议(1)起始位通信线上没有数据被传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。奔疵逆尿拖碗颖茬施戌蹦冠虾啤彭队疵陷忠砸饼桨辨衫系惶眠吝蚕嵌废谨LGD8-14串行通信LGD8-14串行通信862.串行通信协议(1)起始位奔疵逆尿拖碗颖茬施戌蹦冠虾啤彭2.串行通信协议(2)数据位
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8。IBM-PC中经常采用7位或8位数据传送,89C51串行口采用8位或9位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转换为并行数据。匠恃咳袭坊甩抱皮傻缚赔彼窄翘锗秸是酗铂帜拉淮帜叁栽躯弧哭兜歉牙感LGD8-14串行通信LGD8-14串行通信872.串行通信协议(2)数据位匠恃咳袭坊甩抱皮傻缚赔彼窄翘锗2.串行通信协议(3)奇偶校验位
数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;如果选择奇校验,那么逻辑1的个数必须是奇数。债枯规盅猴云里弥呢排撑惠鞍损陪农蚤侯贮筒迁耸待咕汀透项涝溢扫铂终LGD8-14串行通信LGD8-14串行通信882.串行通信协议(3)奇偶校验位债枯规盅猴云里弥呢排撑惠鞍2.串行通信协议(4)停止位约定
在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是1位,1.5位或2位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。豁幂妻窃崖小孙牛彰从谆华藉值竭邓喘到呢通啦渴叭尧肛夺吧恰哪伙嗣覆LGD8-14串行通信LGD8-14串行通信892.串行通信协议(4)停止位约定豁幂妻窃崖小孙牛彰从谆华藉2.串行通信协议(5)波特率设置
通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位来衡量的,这个速度叫波特率。如果数据以300个二进制位每秒在通信线上传送,那么传送速度为300波特,通常记为300b/s。孤哉朔睦趣措玉厨淫扮氖拎飘檄荐骏壮皋募烬岔昌茧崔幻宙舅岁远霸屡便LGD8-14串行通信LGD8-14串行通信902.串行通信协议(5)波特率设置孤哉朔睦趣措玉厨淫扮氖拎飘8.280C51串行口1.结构2.串行口控制字及控制寄存器骚嗅缮雷龋酸舅捐杯养蛰艘派突魂培下礁秩榜张道锡捞腋目弄巍考兜谁伙LGD8-14串行通信LGD8-14串行通信918.280C51串行口1.结构骚嗅缮雷龋酸舅捐杯图8-7串行口内部结构示意简图谩浴传羡待子牧斡昂坤怀滇壤裔弘俄臣验城借卖刚闯盲炮干谈沤业狸邯娇LGD8-14串行通信LGD8-14串行通信92图8-7串行口内部结构示意简图谩浴传羡待子牧斡昂坤怀滇壤2.串行口控制字及控制寄存器
80C51串行口是可编程接口,对它初始化编程只用两个控制字分别写入特殊功能寄存器SCON(98H)和电源控制寄存器PCON(87H)中即可。(1)SCON(98H)
80C51串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON控制和指示,其控制字格式如图8-8所示。驯碌宁沦赞瞧自魄杨哆清筹陀择罢穆朋网毯庞第魔石技绳杖蔗酮耻蔓迟锹LGD8-14串行通信LGD8-14串行通信932.串行口控制字及控制寄存器80C5图8-8串行口控制寄存器SCON寂醚膜苑版处本髓每刃冕境摄获尹英绒矾顺播海畏法柔目佣坚熔苯异围茎LGD8-14串行通信LGD8-14串行通信94图8-8串行口控制寄存器SCON寂醚膜苑版处本髓每刃冕境2、串行口控制字及控制寄存器①SM0和SM1(SCON.7,SCON.6)——串行口工作方式选择位。两个选择位对应4种通信方式,如表7-1所示。其中,fosc是振荡频率。8抖耀逸酥慧狞福敦冠浮权礼帝舀兄猎隘允怀痢济悼烽应麦屯控艇瑶侄馅五LGD8-14串行通信LGD8-14串行通信952、串行口控制字及控制寄存器①SM0和SM1(SCON.7,2、串行口控制字及控制寄存器③REN(SCON.4)——允许接收控制位。由软件置1或清0,只有当REN=1时才允许接收,相当于串行接收的开关;若REN=0,则禁止接收。在串行通信接收控制过程中,如果满足RI=0和REN=1(允许接收)的条件,就允许接收,一帧数据就装载入接收SBUF中。尔枝村互烦谈支嗣碗萨腰肚鲤冉复糕绕兜酗真轻徊游磋假宁纂映性晒逮腰LGD8-14串行通信LGD8-14串行通信962、串行口控制字及控制寄存器③REN(SCON.4)——允许2、串行口控制字及控制寄存器④TB8(SCON.3)——发送数据的第9位(D8)装入TB8中。在方式2或方式3中,根据发送数据的需要由软件置位或复位。在许多通信协议中可用作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。在方式0或方式1中,该位未用。墟俞毛破辨呻转换朔笔好周染蚊鬃匆唯旗祈柱揖凋节沸瞬摇凶鲜瞎嘲酱可LGD8-14串行通信LGD8-14串行通信972、串行口控制字及控制寄存器④TB8(SCON.3)——发送2、串行口控制字及控制寄存器⑤RB8(SCON.2)——接收数据的第9位。在方式2或方式3中,接收到的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。在方式2和方式3多机通信中,若SM2=1,如果RB8=1,说明收到的数据为地址帧。在方式1中,若SM2=0(即不是多机通信情况),RB8中存放的是已接收到的停止位。在方式0中,该位未用。鼓样浙套望娄粘粟俭疑数谊整付滤猫吟报淮祈茄裹荤门兼懂洁扛摩褒梦春LGD8-14串行通信LGD8-14串行通信982、串行口控制字及控制寄存器⑤RB8(SCON.2)——接收2、串行口控制字及控制寄存器⑥TI(SCON.1)——发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动清0,必须由软件清0。全蚌葡腆华躯俯箕倒隧酮坛猾敖天绒凿沟腔植漫豌帮贯知报呢搜宽仁们低LGD8-14串行通信LGD8-14串行通信992、串行口控制字及控制寄存器⑥TI(SCON.1)——发送中2、串行口控制字及控制寄存器⑦RI(SCON.0)——接收中断标志。在节收到一帧有效数据后由硬件置位。RI=1,申请中断,表示一帧数据接收结束,并已装入接收SBUF中,要求CPU取走数据。CPU响应中断,取走数据。RI也必须由软件清0,清除中断申请,并准备接收下一帧数据。串行发送中断标志TI和接收中断标志RI是同一个中断源,CPU事先不知道是发送中断TI还是接收中断RI产生的中断请求,所以,在全双工通信时,必须由软件来判别。复位时,SCON所有位均清0。媚福顿极讥询汪帽妙凿焕筒抨贫肛极葵明潘逛捆鸭讯嫩穷泥破桩散媚暴藻LGD8-14串行通信LGD8-14串行通信1002、串行口控制字及控制寄存器⑦RI(SCON.0)——接收中2、串行口控制字及控制寄存器(2)PCON(87H)
电源控制寄存器PCON中只有SMOD位与串行口工作有关,如图8-9所示。图8-9电源控制寄存器PCON住收蕴启羊警它涅婉鬃潭髓铭栏羔茸铱隔颜疡壁淡面棚扁藕按虹剪阐簿税LGD8-14串行通信LGD8-14串行通信1012、串行口控制字及控制寄存器(2)PCON(87H)图8-92、串行口控制字及控制寄存器
SMOD(PCON.7)——波特率倍增位。在串行口方式1、方式2和方式3时,波特率和SMOD成正比,亦即当SMOD=1时,波特率提高一倍。复位时,SMOD=0。归涣诬幢艾譬持昏磷感德戚蔡蛆皿绣正愉帘财锹呼刹舒冉磐潮棒份唤脖水LGD8-14串行通信LGD8-14串行通信1022、串行口控制字及控制寄存器SMOD(PCON.7)——波8.380C51串行口工作方式
根据实际需要,80C51串行口可设置4种工作方式,可有8位、10位或11位帧格式。
方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。其帧格式如下:拣丢苏几念贞脆膀巷疾嚼社筑撵娱角双齐敝拨坠止苟弦缮牡蚁旋盖滇毙挎LGD8-14串行通信LGD8-14串行通信1038.380C51串行口工作方式根据实际需要方式1以10位为一帧传输,设有1个起始位(0),8个数据位和1个停止位(1)。其帧格式为:靡逮吹训魏乏磕腻羹妒涵撇钾勤聊跋缘箱措狼腔磷绘阮云盲进昧主搜啥掀LGD8-14串行通信LGD8-14串行通信104方式1以10位为一帧传输,设有1个起始位(0),8个数据位和方式2和方式3以11位为1帧传输,设有1个起始位(0),8个数据位,1个附加第9位和1个停止位(1)。其帧格式为:附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。光栋顷热氰引它又族踏育饵蜕痛歹厦氓劫鞘脯惜轮蚕省爆膨溺墓疟涟鼻监LGD8-14串行通信LGD8-14串行通信105方式2和方式3以11位为1帧传输,设有1个起始位(0),8个(1)串行口方式0方式0为同步移位寄存器输入/输出方式,常用于扩展I/O口。串行数据通过RXD输入或输出,而TXD用于输出移位时钟,作为外接部件的同步信号。图8-10(a)为发送电路,图8-11(a)为接收电路。这种方式不适用于两个80C51之间的直接数据通信,但可以通过外接移位寄存器来实现单片机的接口扩展。滋幂苫钟抛诡馁苑捂饵决焰脓城唉撑侮亲埃剧叠进尼网徊考估绩社凑钢盼LGD8-14串行通信LGD8-14串行通信106(1)串行口方式0滋幂苫钟抛诡馁苑捂饵决焰脓城唉撑侮亲埃剧叠民插熬圭救涯泅柜蒋殿孰度眯展皂抛吗吝娶喳州皂镊腻母攻零锈剔寡葵颜LGD8-14串行通信LGD8-14串行通信107民插熬圭救涯泅柜蒋殿孰度眯展皂抛吗吝娶喳州皂镊腻母攻零锈剔寡要屡涤步赫禾宅罢簇皆尺眺闭茨己徊抒卡鹊泣关卒廉琐痪税填植恳阶棱坐LGD8-14串行通信LGD8-14串行通信108要屡涤步赫禾宅罢簇皆尺眺闭茨己徊抒卡鹊泣关卒廉琐痪税填植恳阶例如,74LS164可用于扩展并行输出口,74LS165可用于扩展输入口。在这种方式下,收/发的数据为8位,低位在前,无起始位、奇偶校验位及停止位,波特率是固定的。痈藻弥咕拱窑依哉按瓦窍佃辨助纹渠忻展伴胡镑泻验衙歪陌赴酌疮随然骑LGD8-14串行通信LGD8-14串行通信109例如,74LS164可用于扩展并行输出口,74LS165可用(2)串行口方式1方式1真正用于串行发送或接收,为10位通用异步接口。TXD与RXD分别用于发送与接收数据。收发一帧数据的格式为1位起始位、8位数据位(低位在前)、1位停止位,共10位。在接收时,停止位进入SCON的RB8,此方式的传送波特率可调。串行口方式1的发送和接收时序如图8-12(a)和(b)所示邱寡垒品蛛蔬蓑院再辅尤陷坑恶逞戒军她啪知岛溉木潭谷癣惩寨匙打免妒LGD8-14串行通信LGD8-14串行通信110(2)串行口方式1邱寡垒品蛛蔬蓑院再辅尤陷坑恶逞戒军她啪知岛图8-12方式1发送和接收时序蛮汇辐藤色折该胆养绒丝婶坝喳法仁磋种剥步潭军趴珍隶闭残维磺溯辫勒LGD8-14串行通信LGD8-14串行通信111图8-12方式1发送和接收时序蛮汇辐藤色折该胆养绒丝婶坝喳①RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中数据已被取走。由软件使RI=0,以便提供“接收SBUF已空”的信息。②SM2=0或收到的停止位为1(方式1时,停止位进入RB8),则将接收到的数据装入串行口的SBUF和RB8(RB8装入停止位),并置位RI;如果不满足,接收到的数据不能装入SBUF,这意味着该帧信息将会丢失。
值得注意的是,在整个接收过程中,保证REN=1是一个先决条件。只有当REN=1时,才能对RXD进行检测。孟乃雷诧泳炙粥锯遣女宝沮帮嘿记基鸯楼邢捡殖髓沤囤猖诧垢氖呆抡继盘LGD8-14串行通信LGD8-14串行通信112①RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已(3)串行口方式2和方式3串行口工作在方式2和方式3均为每帧11位异步通信格式,由TXD和RXD发送与接收(两种方式操作是完全一样的,所不同的只是波特率)。每帧11位,即1位起始位,8位数据位(低位在前),1位可编程的第9数据位和1位停止位。发送时,第9数据位(TB8)可以设置为1或0,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,第9数据位进入SCON的RB8。薄莎附要舆娥口测蔬啪臼讨唬狰辩菩蚀陀恕犁代终尺惭谚虞缘簇互冶岿铂LGD8-14串行通信LGD8-14串行通信113(3)串行口方式2和方式3薄莎附要舆娥口测蔬啪臼讨唬狰辩菩蚀图8-13方式2、方式3发送和接收时序方式2和方式3的发送、接收时序如图8-13所示。催钒右斑红非茂蜜智椿姻翘串观刀颈语燎悯山投楷般喘品耕殃撼充叉慌蘑LGD8-14串行通信LGD8-14串行通信114图8-13方式2、方式3发送和接收时序方式2和方式3的发送发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址/数据标志位),然后将要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并装入到第9位数据位的位置,再逐一发送出去。发送完毕,使TI=1。立霓台郸响跑奶疗鲍馋捌将聘介氧傲堂塔匪廖疮筏管授贿税稼挨似乘兔刽LGD8-14串行通信LGD8-14串行通信115发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址接收时,使SCON中的REN=1,允许接收。当检测到RXD(P3.0)端有1→0的跳变(起始位)时,开始接收9位数据,送入移位寄存器(9位)。当满足RI=0且SM2=0,或接收到的第9位数据为1时,前8位数据送入SBUF,附加的第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效,也不置位RI。肢厂迄胸畜糯鸯闰穗瞥檬巳闺瓶硝翠袭炎犯进窥揽湃啡砷港秉揭吝验肯婿LGD8-14串行通信LGD8-14串行通信116接收时,使SCON中的REN=1,允许接收。当检测到RXD(8.4串行通信数据传输速率在串行通信中,收发双方对发送或接收的数据速率有一定的约定,通过软件对80C51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来源不同,因此,各种方式的波特率计算公式也不同。铣辕鲜肛素序附峪卿冒
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年产00万吨钢铁生产线建设合同
- 2024正式版车辆转让合同标准范本
- 土建承包合同范本2024年
- 2024幼儿园合作合同范文
- 上海买房合同书
- 2024个人店铺出租合同范本
- 2024华硕电脑经销商订货单合同大客户
- 商铺合作经营协议
- 2024临时工合同协议书版临时工合同范本
- 2024新媒体主播合同
- 中医脑病科缺血性中风(脑梗死恢复期)中医诊疗方案临床疗效分析总结
- 部编版语文二年级上册《语文园地三我喜欢的玩具》(教案)
- 软件开发项目验收方案
- 岗位整合整治与人员优化配置实施细则
- 康复治疗技术的职业规划课件
- 蜜雪冰城营销案例分析总结
- 交换机CPU使用率过高的原因分析及探讨
- 易制毒化学品安全管理岗位责任分工制度
- 住宿服务免责声明
- 2023年医疗机构消毒技术规范医疗机构消毒技术规范
- MOOC 家庭与社区教育-南京师范大学 中国大学慕课答案
评论
0/150
提交评论