欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1630|回復: 1
打印 上一主題 下一主題
收起左側

關于單片機UART串口通信的疑問

[復制鏈接]
跳轉到指定樓層
樓主
ID:805445 發表于 2020-7-22 13:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問,
定時器不是一個計時或者計數的器件嗎?配置定時器,是怎么控制數據發送與接收的波特率的啊?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:790738 發表于 2020-7-22 16:59 | 只看該作者
在串行通信中,收發雙方發送或接收的數據速率要有一定的約定,我們通過軟件對MCS-51串行口編程可以約定四種工作方式。其中,方式0和方式2的波特率時固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率決定。
串行口的四種工作方式對應這三種波特率,由于輸入的移位時鐘的來源不同,所以各種方式的波特率的計算公式也不同。
各種方式的波特率介紹
工作方式0
方式0時,移位時鐘脈沖由S6(即第6個狀態周期,第12個節拍)給出,即每個機器周期產生一個移位時鐘,發送或接收一位數據。所以,波特率為振蕩頻率的十二分之一,并不受 PCON寄存器中SMOD的影響,即:

方式0的波特率=fosc/12,fosc是系統晶振的震蕩頻率
工作方式2
工作方式2波特率的產生與工作方式0不同,控制接收與發送的移位時鐘由振蕩頻率fosc的第二節拍P2(即fosc/2)給出,所以工作方式2的波特率取決于PCON中SMOD位的值。當SMOD=0時,波特率為fosc的六十四分之一,若SMOD=1,則波特率為fosc的三十二分之一,即:方式二的波特率=[(2^SMOD)/64]*fosc
工作方式1和工作方式3
方式1和方式3的移位時鐘脈沖由定時器T1的溢出率決定,故波特宰由定時器T1的溢出率與SMOD值同時決定,即:方式1和方式3的波特率=[(2*SMOD)/32]*T1溢出率。其中,溢出率取決于計數速率和定時器的預置值。計數速率與TMOD寄存器中C/T的狀態有關。當C/T=0時,計數速率=fosc/2;當C/T=1時,計數速率取決于外部輸入時鐘頻率。
當定時器T1作波特率發生器使用時,通常選用可自動裝入初值模式(工作方式2),在工作方式2中,TL1作為計數用,而自動裝入的初值放在TH1中,設計數初值為x,則每過“256~x”個機器周期,定時器T1就會產生一次溢出。為了避免因溢出而引起中斷,此時應禁止T1中斷。這時,溢出周期為:溢出周期=(12/fosc)(256-x)*,溢出率是溢出周期的倒數,所以 工作方式1和工作方式3的波特率=[(2*SMOD)/32][fosc/(12*(256-x))]。此時定時器1的初值*x=256-[fosc(SMOD+1)/(384*波特率)]*
系統晶振頻率選為11.0592MHZ就是為了使初值為整數,從而產生精確的波特率。
如果串行通信選用很低的波特率,可將定時器Tl置于工作方式0或工作方式1,但在這種情況下,T1溢出時,需用中斷服務程序重裝初值。中斷響應時間和執行指令時間會使波特率產生一定的誤差,可用改變初值的辦法加以調整。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表