日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
用C51實現(xiàn)帶奇偶校驗的串行通信
用C51實現(xiàn)帶奇偶校驗的串行通信
 更新時間:2009-7-9 16:53:30  點擊數(shù):0
【字體: 字體顏色

MCS-51系列單片機(jī)的串行口有4種工作方式。方式0為移位寄存器方式,用于外接同步I/O設(shè)備或擴(kuò)展I/O口,不算起始位和停止位。方式1為8位異步串行通訊,方式2和方式3為9位異步串行通訊。方式2和方式3中的第9位是可程控位,即可由軟件來確定第9位是“0”還是“1”。也就是說,MCS-51系列單片機(jī)不像某些專用串行芯片,如INTEL8051、8050、TLC16C550等那樣,可根據(jù)初始化條件自動加入串行通訊中的奇偶校驗位發(fā)送出去,而是需要軟件參與產(chǎn)生奇偶校驗位。用軟件產(chǎn)生奇偶校驗位是根據(jù)MCS-51系列單片機(jī)的狀態(tài)寄存器PSW的定義:當(dāng)累加器A中為1的個數(shù)為奇數(shù)時,P=1,否則P=0,來編程的。假定待發(fā)送的數(shù)據(jù)已放入累加器A中,可用如下匯編語言來實現(xiàn)(串行口工作于方式2):

MOV C,P; 把奇偶標(biāo)志送給進(jìn)位位
MOV TB8,C; 把進(jìn)位位送給TB8
MOV SBUF,A; 把待發(fā)送的數(shù)據(jù)放入串行口

用C語言來編寫時,因累加器A對編程者不透明,則會帶來問題。例如,假定待發(fā)送的數(shù)據(jù)已放入變量VARIABLE中,若要從串行口發(fā)送出去,想當(dāng)然地認(rèn)為使用如下語句即可:

TB8=P; /*語句1*/
SBUF=VARIABLE /*語句2*/

實際上,2條語句并不能可靠地產(chǎn)生奇偶校驗位。因為在語句1前面的語句所對應(yīng)的匯編語言中的累加器A中為1的個數(shù)是不確定的,而

語句2又是不可分割的。語句1和2對應(yīng)的匯編語言程序為:
MOV C,P; 語句3
MOV TB8,C; 語句4
MOV A,VARIABLE; 語句5
MOV SBUF,A; 語句6

可以看出,只有將語句3、4放到語句5和語句6之間時,才能正確地產(chǎn)生奇偶校驗位。為了達(dá)到這一目的,可引入全局變量VARIABLE1相應(yīng)的C語言程序如下:
VARIABLE1=0; /* 語句7*/
VARIABLE +=VARIABLE1; /* 語句8*/
TB8=P; /*語句9 */
SBUF=VARIABLE; /*語句10*/

需要強(qiáng)調(diào)的是:
1.在串行中斷服務(wù)程序中,VARIABLE1一定要設(shè)置為全局變量,若設(shè)置為局部變量,則可能引起意想不到的后果。
2.語句7和語句8盡量不要縮寫成:
VARIABLE +=0; /* 語句10*/
而把全局變量VARIABLE1省掉。這主要是為了防止編譯程序在某種可能的編譯優(yōu)化條件下將語句10也省略掉。

  • 上一篇: 使用LPC932制作的壁掛爐溫度控制器
  • 下一篇: 基于80C31的固定電話短信息終端的開發(fā)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1