51单片机的串行通信是怎么工作的?? 51单片机串行通信中发送数据的条件是什么呢?

MCS-51\u5355\u7247\u673a\u7684\u4e32\u884c\u63a5\u53e3\u6709\u51e0\u79cd\u5de5\u4f5c\u65b9\u5f0f?\u8bf7\u7b80\u8ff0\u5404\u79cd\u65b9\u5f0f\u7684\u529f\u80fd.

89\u7cfb\u5217\u5355\u7247\u673a\u7684\u4e32\u884c\u901a\u4fe1\u67094\u79cd\u5de5\u4f5c\u65b9\u5f0f\uff1a
\u65b9\u5f0f0\u662f\u540c\u6b65\u79fb\u4f4d\u5bc4\u5b58\u5668\u65b9\u5f0f\uff0c\u5e27\u683c\u5f0f8\u4f4d\uff0c\u6ce2\u7279\u7387\u56fa\u5b9a\u4e3afosc/12\u3002
\u65b9\u5f0f1\u662f8\u4f4d\u5f02\u6b65\u901a\u4fe1\u65b9\u5f0f\uff0c\u5e27\u683c\u5f0f10\u4f4d\uff0c\u6ce2\u7279\u7387\u53ef\u53d8\uff1aT\u6ea2\u51fa\u7387/n(n= :32\u621616)\u3002
\u65b9\u5f0f2\u662f9\u4f4d\u5f02\u6b65\u901a\u4fe1\u65b9\u5f0f\uff0c\u5e27\u683c\u5f0f11\u4f4d\uff0c\u6ce2\u7279\u7387\u56fa\u5b9a\uff1a fosc/n(n=32 \u621616)\u3002
\u65b9\u5f0f3\u662f9\u4f4d\u5f02\u6b65\u901a\u4fe1\u65b9\u5f0f\uff0c\u5e27\u683c\u5f0f11\u4f4d\uff0c\u6ce2\u7279\u7387\u53ef\u53d8\uff1aT\u6ea2\u51fa\u7387(m=32\u621616)\u3002
\u65b9\u5f0f1\u30012\u30013\u7684\u533a\u522b\u4e3b\u8981\u8868\u73b0\u5728\u5e27\u683c\u5f0f\u53ca\u6ce2\u7279\u7387\u4e24\u4e2a\u65b9\u9762\u3002

\u6269\u5c55\u8d44\u6599
\u65b9\u5f0f0\u548c\u65b9\u5f0f2\u7684\u6ce2\u7279\u7387\u662f\u56fa\u5b9a\u7684\uff0c\u90fd\u662f\u7531\u5355\u7247\u673a\u65f6\u949f\u8109\u51b2\u7ecf\u76f8\u5173\u63a7\u5236\u7535\u8def\u5904\u7406\u540e\u83b7\u5f97\u3002\u5176\u4e2d\u65b9\u5f0f0\u7684\u6ce2\u7279\u7387\u5b8c\u5168\u53d6\u51b3\u4e8e\u7cfb\u7edf\u65f6\u949f\u9891\u7387fosc\u7684\u9ad8\u4f4e\uff0c\u4e0d\u53d7\u5176\u4ed6\u56e0\u7d20\u5f71\u54cd\uff1b\u800c\u65b9\u5f0f2\u7684\u6ce2\u7279\u7387\u8fd8\u53d7SMOD(PCON.7)\u72b6\u6001\u63a7\u5236\u3002\u5f53SMOD=1\u65f6\uff0c\u4e3afosc/32\uff0c SMOD=0\u65f6\u4e3afosc/64\u3002
\u65b9\u5f0f1\u548c\u65b9\u5f0f3\u7684\u6ce2\u7279\u7387\u662f\u53ef\u53d8\u7684\uff0c\u901a\u5e38\u4f7f\u7528\u5355\u7247\u673a\u4e2d\u7684\u5b9a\u65f6\u5668T1\u5de5\u4f5c\u5728\u5176\u65b9\u5f0f2 (\u81ea\u52a8\u91cd\u88c5\u521d\u503c\u65b9\u5f0f)\u4f5c\u4e3a\u6ce2\u7279\u7387\u53d1\u751f\u5668\u4f7f\u7528\uff0c\u4ee5\u4ea7\u751f\u6240\u9700\u7684\u6ce2\u7279\u7387\u4fe1\u53f7\u3002
K\u4e3a\u5b9a\u65f6\u5668T1\u7684\u4f4d\u6570\uff0c\u4e0e\u5176\u5de5\u4f5c\u65b9\u5f0f\u6709\u5173(\u65b9\u5f0f0\uff0cK=13; \u65b9\u5f0f1\uff0cK=16;\u65b9\u5f0f2\uff0cK=8)\u3002 \u7531\u6ce2\u7279\u7387\u8ba1\u7b97\u516c\u5f0f\u53ef\u77e5\uff0c\u65b9\u5f0f1\u548c\u65b9\u5f0f3\u4e0b\u6ce2\u7279\u7387\u53d7fosc\u3001SMOD\u3001T1\u5de5\u4f5c\u65b9\u5f0f\u4ee5\u53caT1\u521d\u503c\u7b49\u591a\u79cd\u56e0\u7d20\u5f71\u54cd\u3002
\u901a\u5e38\u662f\u5728fosc\u3001SMOD\u548cT1\u5de5\u4f5c\u65b9\u5f0f\u9009\u5b9a\u60c5\u51b5\u4e0b\uff0c\u901a\u8fc7\u8c03\u6574T1\u521d\u503c(\u5373\u8c03\u6574T1\u7684\u6ea2\u51fa\u7387)\u7684\u65b9\u5f0f\u6765\u6539\u53d8\u6ce2\u7279\u7387\u3002

\u5982\u679c\u5df2\u7ecf\u53ef\u4ee5\u63a5\u6536\u3002
\u76f4\u63a5\u53d1\u9001\u5c31\u53ef\u4ee5\u4e86\uff0c\u628a\u6570\u636e\u9001\u5165sbuf\u5373\u53ef\uff0c\u7136\u540e\u5224\u65adTI=1\u4e86\uff0c\u5c31\u8868\u793a\u4e00\u6b21\u53d1\u9001\u5b8c\u6bd5\u4e86\u3002
\u548c\u6536\u5230\u6570\u636e\u6ca1\u6709\u5173\u7cfb\u3002
\u6536\u662fRI

兄弟,你可以看看书呀,书上不是说了嘛。这么多字要人打出来!!!
方式0
8位移位寄存器输入/输出方式。多用于外接移位寄存器以扩展I/O端口。波特率固定为fosc/12。其中,fosc为时钟频率。在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲。数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1。如要再发送,必须用软件将TI清零。串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD。当接收到8位数据(一帧)后,中断标志RI自动置。如果再接收,必须用软件先将RI清零。
方式1
10位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1)。波特率由定时器T1的溢出率和SMOD位的状态确定。一条写SBUF指令就可启动数据发送过程。在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位。这样的一帧10位数据发送完后,中断标志TI置位。在允许接收的条件下(REN=1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程。当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了。方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为:波特率=2SMOD/32×(定时器T1的溢出率)
其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态。显然,当SMOD=0时,波特率=1/32(定时器Tl溢出率),而当SMOD=1时,波特率=1/16(定时器T1溢出率)。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数。
方式2,3
11位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1)。方式2和方式3除波特率不同外,其它性能完全相同。方式2,3的发送。方式2和方式3与方式l的操作过程基本相同,主要差别在于方式2,3有第9位数据。
发送时,发送机的这第9位数据来自该机SCON中的TB8,而接收机将接收到的这第9位数据送入本机SCON中的RB8。这个第9位数据通常用作数据的奇偶检验位,或在多机通信中作为地址/数据的特征位。方式2和方式3的波特率计算式如下:方式2的波特率=2SMOD/64×fosc
方式3的波特率=2SMOD/32×定时器T1的溢出率由此可见,在晶振时钟频率一定的条件下,方式2只有两种波特率,而方式3可通过编程设置成多种波特率,这正是这两种方式的差别所在。

两段都对啊
SM2是一个控制位,由软件控制,方式0一般不用,当处于方式2和3时,因为传输的数据有11位,数据位有9位,有效数据8位,第9位数据位是判定是否丢弃前8位数据用的,如果为0,则丢弃,前提是SM=1.
关于你的疑问(疑问:这时说中断请求,是不是说,一帧数据接收完毕,RI被置1??)是的,因为此时SM2=1,并且RB8=1(即接收到的第9位数据为1),所以RI置位并且产生中断。如果程序中设置SM2=0的话,此时就不能置位产生中断了,这就是SM2的作用,尤其是在多机通讯时,用处很大,控制哪台下位机该收数据,哪台不该收。

方式0
8位移位寄存器输入/输出方式。多用于外接移位寄存器以扩展I/O端口。波特率固定为fosc/12。其中,fosc为时钟频率。在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲。数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1。如要再发送,必须用软件将TI清零。串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD。当接收到8位数据(一帧)后,中断标志RI自动置。如果再接收,必须用软件先将RI清零。
方式1
10位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1)。波特率由定时器T1的溢出率和SMOD位的状态确定。一条写SBUF指令就可启动数据发送过程。在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位。这样的一帧10位数据发送完后,中断标志TI置位。在允许接收的条件下(REN=1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程。当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了。方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为:波特率=2SMOD/32×(定时器T1的溢出率)
其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态。显然,当SMOD=0时,波特率=1/32(定时器Tl溢出率),而当SMOD=1时,波特率=1/16(定时器T1溢出率)。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数。
方式2,3
11位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1)。方式2和方式3除波特率不同外,其它性能完全相同。方式2,3的发送。方式2和方式3与方式l的操作过程基本相同,主要差别在于方式2,3有第9位数据。
发送时,发送机的这第9位数据来自该机SCON中的TB8,而接收机将接收到的这第9位数据送入本机SCON中的RB8。这个第9位数据通常用作数据的奇偶检验位,或在多机通信中作为地址/数据的特征位。方式2和方式3的波特率计算式如下:方式2的波特率=2SMOD/64×fosc
方式3的波特率=2SMOD/32×定时器T1的溢出率由此可见,在晶振时钟频率一定的条件下,方式2只有两种波特率,而方式3可通过编程设置成多种波特率,这正是这两种方式的差别所在。
多机通讯是由SM2控制的,如果不用多机通讯可以一直置为0

  • 51鍗曠墖鏈涓插彛鏄粈涔宸ヤ綔鏂瑰紡?
    绛旓細涓茶閫氫俊鏄寚鏁版嵁涓浣嶄竴浣嶅湴鎸夐『搴忎紶閫佺殑閫氫俊鏂瑰紡锛屽叾绐佸嚭浼樼偣鏄彧闇涓鏍逛紶杈撶嚎锛屽彲澶уぇ闄嶄綆纭欢鎴愭湰锛岄傚悎杩滆窛绂婚氫俊銆傚叾缂虹偣鏄紶杈撻熷害杈冧綆銆備覆鍙e彲浠ユ湁搴曚笅鍥涚宸ヤ綔鏂瑰紡 1銆佹柟寮0 涓茶鎺ュ彛鐨勫伐浣滄柟寮0涓虹Щ浣嶅瘎瀛樺櫒I锛廜鏂瑰紡銆傚湪涓茶鍙e鎺ョЩ浣嶅瘎瀛樺櫒浠ユ墿灞旾锛廜鎺ュ彛锛屼篃鍙互澶栨帴涓茶鍚屾I锛廜鐨勮澶囥...
  • MCS-51鍗曠墖鏈
    绛旓細MCS-51 鍗曠墖鏈轰覆琛屽彛鍙互閫氳繃杞欢璁剧疆鍥涚宸ヤ綔鏂瑰紡锛氭柟寮 0 锛氳繖绉嶅伐浣滄柟寮忔瘮杈冪壒娈锛屼笌甯歌鐨勫井鍨嬭绠楁満鐨勪覆琛屽彛涓嶅悓锛屽畠鍙堝彨鍚屾绉讳綅瀵勫瓨鍣ㄨ緭鍑烘柟寮忋傚湪杩欑鏂瑰紡涓嬶紝鏁版嵁浠 RXD 绔覆琛岃緭鍑烘垨杈撳叆锛屽悓姝ヤ俊鍙蜂粠 TXD 绔緭鍑猴紝娉㈢壒鐜囧浐瀹氫笉鍙橈紝涓烘尟鑽$巼鐨 1/12 銆傝鏂瑰紡鏄互 8 浣嶆暟鎹负涓甯э紝娌℃湁璧峰...
  • 鍗曠墖鏈轰覆鍙i氫俊鍘熺悊
    绛旓細1銆51绯诲垪鍗曠墖鏈虹殑涓插彛鏈4涓ā寮忥紝鍙垎鍒敤浣滀覆骞惰浆鎹佸苟涓茶浆鎹佸紓姝ヤ覆琛岄氫俊锛2绉嶆ā寮忥級銆傚紓姝ヤ覆琛岄氫俊涓紝鏈1+8+1鍜1+8+1+1涓ょ甯ф牸寮忥紝澶氭満閫氫俊鏄壒娈婄殑閫氫俊鏂瑰紡銆2銆佸熀鏈師鐞嗘槸涓ょ粍绉讳綅瀵勫瓨鍣ㄣ傚皢骞惰閫氫俊杞崲鎴愪覆琛岄氫俊妯″紡锛堝彂閫侀儴鍒嗭級锛屾垨鍙嶄箣锛堟帴鏀堕儴鍒嗭級銆傚彲鍏ㄥ弻宸ヨ繍琛屻3銆侀熷害閫氳繃绉...
  • 涓茶閫氫俊鐨勪笁绉嶆柟寮
    绛旓細鍦ㄥ崟鐗囨満涓紝寮傛閫氫俊鏂瑰紡鏄父瑙侀夋嫨锛屽MCS-51鍗曠墖鏈虹殑鍏ㄥ弻宸ヤ覆琛屽彛锛閫氳繃TXD鍙戦佹暟鎹紝RXD鎺ユ敹鏁版嵁锛岃В鍐虫暟鎹紶閫佸拰杞崲涓ゅぇ鍏抽敭闂銆備笁绉嶅伐浣滄ā寮忕殑宸紓 涓茶閫氫俊鐨勪笁绉嶅伐浣滄ā寮忓喅瀹氫簡淇℃伅浼犺緭鐨勬柟鍚戝拰鐏垫椿鎬с傚崟宸ユā寮忎腑锛屼俊鎭彧鑳藉崟鍚戜紶閫掞紝濡傜數璇濈嚎鐨勫崟鍚戦氳瘽銆傚崐鍙屽伐鍒欏厑璁稿弻鏂逛氦鏇垮彂閫佸拰鎺ユ敹锛屼絾涓嶈兘...
  • 51鍗曠墖鏈虹殑涓茶鍙f湁鍑犵宸ヤ綔鏂瑰紡?瀹冧滑鐨勫抚鏍煎紡鏄浣瑙勫畾鐨?
    绛旓細锛3锛夋柟寮2锛涓茶鍙d负11浣嶅紓姝閫氫俊鎺ュ彛銆傚彂閫佹垨鎺ユ敹涓甯т俊鎭寘鎷1浣嶈捣濮嬩綅鈥0鈥濄8浣嶆暟鎹綅銆1浣嶅彲缂栫▼浣嶃1浣嶅仠姝綅鈥1鈥濄傚彂閫佹暟鎹細鍙戦佸墠锛屽厛鏍规嵁閫氫俊鍗忚鐢辫蒋浠惰缃甌B8涓衡滃鍋舵牎楠屼綅鈥濇垨鈥滄暟鎹爣璇嗕綅鈥濓紝鐒跺悗灏嗚鍙戦佺殑鏁版嵁鍐欏叆SBUF锛屽嵆鑳藉惎鍔ㄥ彂閫佸櫒銆傚彂閫佽繃绋嬫槸鐢辨墽琛屼换浣曚竴鏉′互SBUF涓虹洰鐨...
  • 51鍗曠墖鏈轰腑,涓茶閫氫俊鐨勪覆琛鍘熺悊銆傚摢浣嶅ぇ渚犵粰灏忓紵绛旀涓嬨傛劅婵涓嶅敖_鐧惧害...
    绛旓細涔熶笉鐭ラ亾鍒板簳鏄粈涔涓茶閫氳璁惧?浣嗕笉绠鎬庢牱锛屼竴鑸富鏈哄拰鍗曠墖鏈虹殑涓插彛閫氳澶у閮藉湪9600 bps,鍙互婊¤冻閫氳闇姹傘傗憿鎺ュ彛鐨勫吀鍨嬪簲鐢:澶у鏁拌绠楁満搴旂敤绯荤粺涓庢櫤鑳藉崟鍏冧箣闂村彧闇浣跨敤3鍒5鏍逛俊鍙风嚎鍗冲彲宸ヤ綔銆傝繖鏃讹紝闄や簡TXD銆丷XD浠ュ锛岃繕闇浣跨敤RTS銆丆TS銆丏CD銆丏TR銆丏SR绛変俊鍙风嚎銆(褰撶劧锛屽湪绋嬪簭涓篃闇瑕佸鐩稿簲鐨勪俊鍙...
  • 51鍗曠墖鏈虹殑涓茶閫氫俊鏄庝箞宸ヤ綔鐨??
    绛旓細涓茶绔彛浣滀负杈撳叆鏃讹紝RXD涓烘暟鎹緭鍏ョ锛孴XD浠嶄负鍚屾淇″彿杈撳嚭绔紝杈撳嚭棰戠巼涓篺osc/12鐨勫悓姝ョЩ浣嶈剦鍐诧紝浣垮閮ㄦ暟鎹愪綅绉诲叆RxD銆傚綋鎺ユ敹鍒8浣嶆暟鎹(涓甯)鍚庯紝涓柇鏍囧織RI鑷姩缃傚鏋滃啀鎺ユ敹锛屽繀椤荤敤杞欢鍏堝皢RI娓呴浂銆傛柟寮1 10浣嶅紓姝閫氫俊鏂瑰紡銆傚叾涓紝1涓捣濮嬩綅(0)锛8涓暟鎹綅(鐢变綆浣嶅埌楂樹綅)鍜1涓仠姝綅(1)...
  • 51鍗曠墖鏈轰覆鍙i氫俊鏄鍏ㄥ弻宸ョ殑,浣嗘槸涓轰粈涔堝張璇村畠鐨勫彂閫佸拰鎺ュ彈涓嶅彲浠ュ悓鏃惰繘...
    绛旓細51鍗曠墖鏈轰覆鍙i氫俊鏄鍏ㄥ弻宸ョ殑锛屽彂閫佸拰鎺ュ彈鍙互鍚屾椂杩涜銆備笉鍙互鍚屾椂杩涜鐨勬槸鍗婂弻宸ャ傚叏鍙屽伐鏂瑰紡鍒嗗埆鐢变袱鏍逛笉鍚岀殑浼犺緭绾夸紶閫佹暟鎹椂锛岄氫俊鍙屾柟閮借兘鍦ㄥ悓涓鏃跺埢杩涜鍙戦佸拰鎺ユ敹鎿嶄綔锛岄氫俊绯荤粺鐨勬瘡涓绔兘璁剧疆浜嗗彂閫佸櫒鍜屾帴鏀跺櫒锛屽洜姝わ紝鑳芥帶鍒舵暟鎹悓鏃跺湪鍙戦佸拰鎺ュ彈涓や釜鏂瑰悜涓婁紶閫併傚崐鍙屽伐浣跨敤鍚屼竴鏍逛紶杈撶嚎鏃綔鎺ユ敹鍙...
  • 51鍗曠墖鏈鏈夊摢浜涙ā鍧
    绛旓細涓柇绯荤粺浼氭墦鏂甯哥殑绋嬪簭娴佺▼锛岃浆鑰屾墽琛岀浉搴旂殑涓柇鏈嶅姟绋嬪簭銆7. 鐗规畩鍔熻兘瀵勫瓨鍣ㄦā鍧 鐗规畩鍔熻兘瀵勫瓨鍣ㄦā鍧楀寘鍚竴浜涚敤浜庢帶鍒跺崟鐗囨満鐗瑰畾鍔熻兘鐨勫瘎瀛樺櫒锛屽鎺у埗瀹氭椂鍣ㄣ涓茶閫氫俊绛夈傝繖浜涘瘎瀛樺櫒鍙互閫氳繃杞欢缂栫▼鏉ラ厤缃拰鎺у埗銆備互涓婂氨鏄51鍗曠墖鏈虹殑涓昏妯″潡銆傛瘡涓ā鍧楅兘鏈夊叾鐗瑰畾鐨勫姛鑳斤紝鍏卞悓鍗忎綔瀹屾垚鍗曠墖鏈虹殑鏁翠綋鍔熻兘銆
  • 51鍗曠墖鏈虹殑涓插彛鎺ユ敹涓甯ф暟鎹湁鍑犱綅?
    绛旓細51鍗曠墖鏈虹殑鍙戦佸拰鎺ュ彈,鍙湁10浣嶅拰11浣嶄袱绉嶃傚厛璇村崟鐗囨満涓插彛鐨宸ヤ綔鏂瑰紡:鍗曠墖鏈轰覆鍙g殑宸ヤ綔鏂瑰紡鍏4绉,鏂瑰紡0--鏂瑰紡3.鏂瑰紡0:鐢ㄧЩ浣嶈剦鍐层俁XD鍋氳緭鍏/杈撳嚭,TXD杩涜绉讳綅銆傛敹鍙戠殑鏁版嵁涓哄叓浣嶃傛柟寮1:浼犻佷竴甯т俊鎭负10浣,鍗1浣嶈捣濮嬩綅(0),8浣嶆暟鎹綅(浣庝綅鍦ㄥ厛)鍜1浣嶅仠姝綅(1)銆傛暟鎹綅鐢盩XD鍙戦,鐢盧XD鎺ユ敹鏂瑰紡1:涓甯...
  • 扩展阅读:51单片机串行口程序 ... 两个单片机互相发数据 ... 8051有一个全双工的串行口 ... 51串口的4种工作方式 ... 51串口通信四个工作方式 ... 单片机 芯片 ... 两个51单片机通信 ... 51串口通信发送字符串 ... 51单片机的串行口为半双工 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网