freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

用單片機c語言實現(xiàn)多功能電能表通信協(xié)議電能表端(編輯修改稿)

2025-07-04 03:07 本頁面
 

【文章內(nèi)容簡介】 多的微控制器中,MCS51系列單片機通用性強,價格便宜,實用型強,其內(nèi)部帶有一個可用于異步通訊的全雙工的串行通訊接口,可以很方便地構(gòu)成一個主從式多機系統(tǒng)來模擬電能表和數(shù)據(jù)終端設(shè)備。經(jīng)過綜合考慮,本文采用MCS51單片機模擬電能表的微控制器芯片以及數(shù)據(jù)終端設(shè)備C語言作為MCS一51單片機程序的開發(fā)語言已經(jīng)成為一種趨勢,單片機C語言具有一系列優(yōu)點決定:(1)C語言是一種編譯型程序設(shè)計語言,兼顧了多種高級語言的特點,并具備匯編語言的功能;(2)C語言有功能豐富的庫函數(shù)、運行速度快、編譯效率高、有良好的可移植性,并且可以直接實現(xiàn)對系統(tǒng)硬件的控制;(3)C語言是一種結(jié)構(gòu)化程序設(shè)計語言,它支持當前程序設(shè)計中廣泛采用的自頂向下結(jié)構(gòu)化程序設(shè)計技術(shù);(4)C語言程序具有完善的模塊程序結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計方法提供了有力的保障;(5)用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯的增加軟件的可讀性,便于改進和擴充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。單片機C語言具有的一系列優(yōu)點,以及使用C語言進行程序設(shè)計已成為軟件開發(fā)的一個主流。C語言程序具有操作簡單,可移植性強,能很好的滿足該協(xié)議,用單片機C語言實現(xiàn)多功能電能表通信協(xié)議具有相當實用的價值。本文采用C語言編程開發(fā)實現(xiàn)DL/T6452007《多功能電能表的通信協(xié)議》。方案論證 第三章 方案論證 DL/T6452007《多功能電能表通信協(xié)議》介紹DL/T645于1997年發(fā)布第一版,2007年經(jīng)過修訂發(fā)布第二版。兩版標準從結(jié)構(gòu)上差別不大,主要是控制命令、通信項的擴充和數(shù)據(jù)標識的重新梳理,下面以DL/T 6452007為例作個簡單介紹。該標準適用于本地系統(tǒng)中多功能電能表與手持單元或其他數(shù)據(jù)終端設(shè)備進行點對點的或一主多從的數(shù)據(jù)交換方式,是主從結(jié)構(gòu)的半雙工通信。標準根據(jù)簡易開放系統(tǒng)互聯(lián)模型分為物理層、數(shù)據(jù)鏈路層、應(yīng)用層。物理層部分定義了三種通信接口:接觸式紅外接口、調(diào)制型紅外接口和RS485電氣接口,接觸式紅外接口和調(diào)制型紅外接口用于在實驗室或現(xiàn)場環(huán)境下一對一的電能表抄設(shè),RS485電氣接口可通過總線連接實現(xiàn)一主多從的通信。通信鏈路的建立與解除均由主站發(fā)出的信息幀來控制。每幀由幀起始符、從站地址域、控制碼、數(shù)據(jù)域長度、數(shù)據(jù)域、幀信息縱向校驗碼及幀結(jié)束符7個域組成。每部分由若干字節(jié)組成。每字節(jié)含8位二進制碼,傳輸時加上一個起始位(0)、一個偶校驗位和一個停止位(1), 共 11位。其傳輸序列如圖31。D0 是字節(jié)的最低有效位,D7 是字節(jié)的最高有效位。先傳低位,后傳高位。字節(jié)格式如圖1所示。圖1 字節(jié)格式幀是傳送信息的基本單元。幀格式如圖2 所示。說 明代 碼幀起始符68H地址域A0A1A2A3A4A5幀起始符68H控制碼C數(shù)據(jù)域長度L數(shù)據(jù)域DATA校驗碼CS結(jié)束符16H圖2 幀格式幀是由十六進制字節(jié)數(shù)組組成,每個字節(jié)在傳輸時加上1個起始位(0),1個偶校驗位和一個停止位(1)。1)幀起始符和幀結(jié)束符顧名思義分別代表一幀信息的開始和結(jié)束。主站在下發(fā)命令幀時需要在第一個幀起始符前加上三個FEH,起到喚醒電能表的作用,以便使電能表處于接收狀態(tài)。2)地址域地址域代表從站的通信地址,位于兩個68H之間,由6個字節(jié)12位十進制數(shù)表示。當?shù)刂酚驗椤?99999999999時代表廣播地址,在總線方式下可以下發(fā)廣播命令,從站收到命令無需應(yīng)答。地址域還支持AAH通配符,方便現(xiàn)場維護工人輸入通信地址。3)控制碼控制碼用1字節(jié)十六進制編碼,該標準定義了12個控制命令,包括讀數(shù)據(jù)、讀后續(xù)數(shù)據(jù)、讀通信地址、寫數(shù)據(jù)、寫通信地址、廣播校時、凍結(jié)、更改通信速率、修改密碼、最大需量清零、電表清零、事件清零,控制碼格式見圖3。圖3 控制碼結(jié)構(gòu)4)數(shù)據(jù)域長度數(shù)據(jù)域長度用一字節(jié)表示,它的數(shù)值即為數(shù)據(jù)域的字節(jié)數(shù)量。5)數(shù)據(jù)域數(shù)據(jù)域是主從站傳遞數(shù)據(jù)的區(qū)域,在標準中數(shù)據(jù)域可包含數(shù)據(jù)標識、密碼、操作者代碼、數(shù)據(jù)、幀序號等,具體內(nèi)容根據(jù)控制碼不同而不同。為防止出現(xiàn)連續(xù)多個“1’’或“0”,在發(fā)送前數(shù)據(jù)域每個字節(jié)要做加33H處理,并且要將字節(jié)順序顛倒傳輸。而接收方應(yīng)該將數(shù)據(jù)域按字節(jié)減33H處理,然后顛倒順序進行解析。數(shù)據(jù)域的字節(jié)數(shù)也有限制,讀數(shù)據(jù)時不應(yīng)超過200字節(jié),寫數(shù)據(jù)時不應(yīng)超過50字節(jié)。6)校驗碼DL/T6452007采取的校驗方式為累加校驗和,即從第一個幀起始符開始到校驗碼之前的所有各字節(jié)的模256的和。通信時標準要求收到命令幀后的響應(yīng)延時為20ms~500ms,字節(jié)間的停頓延時應(yīng)小于500ms。標準為每個通信的數(shù)據(jù)項都定義了一個數(shù)據(jù)標識與之對應(yīng),數(shù)據(jù)標識用4字節(jié)表示,分七大類:電能量、最大需量及發(fā)生時間、變量、事件記錄、參變量、凍結(jié)量、負荷記錄。數(shù)據(jù)項采用壓縮BCD碼或ASCII表示。 整體設(shè)計思想本設(shè)計研究電能表端如何實現(xiàn)該協(xié)議,該協(xié)議中手持單元或其它數(shù)據(jù)終端為主站,多功能電能表為從站,為實現(xiàn)這一協(xié)議,必須有電能表的微控制器芯片以及相應(yīng)的數(shù)據(jù)終端。MCS51系列單片機由于內(nèi)部帶有一個可用于異步通訊的全雙工的串行通訊接口,因此可以很方便地構(gòu)成一個主從式多機系統(tǒng)來模擬電能表和數(shù)據(jù)終端來實現(xiàn)該協(xié)議。本文使用MCS51單片機模擬多功能電能表的微控制器,模擬成從站,即單片機多機通信系統(tǒng)中的從站,使用相同的單片機模擬數(shù)據(jù)終端設(shè)備作為主站,即單片機多機通信系統(tǒng)中的主站。所以本設(shè)計的總體思想即用MCS51單片機的多機通信系統(tǒng)模擬實現(xiàn)多功能電能表的通信協(xié)議,設(shè)計重點在電能表微控制器部分的實現(xiàn),也就是MCS51單片機的多機通信系統(tǒng)中從機部分。本設(shè)計以C語言作為單片機開發(fā)語言,利用Proteus軟件做電路仿真,利用keil軟件做程序設(shè)計,結(jié)合兩個軟件運行。該協(xié)議物理層部分定義了三種通信接口:接觸式紅外接口、調(diào)制型紅外接口和RS485電氣接口,接觸式紅外接口和調(diào)制型紅外接口用于在實驗室或現(xiàn)場環(huán)境下一對一的電能表抄設(shè),RS485電氣接口可通過總線連接實現(xiàn)一主多從的通信。因為本設(shè)計模擬實現(xiàn)一主多從的通信,所以采用RS485接口通信方式。 單片機的串行口簡介 單片機概述單片微型計算機(Single Chip Microputer)簡稱單片機,又稱MCU(Micro Controller Unit),是將計算機的基本部分微型化,、ROM、RAM、并行I/O、串行I/O、定時器/計數(shù)器、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等。 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。本文在研究傳統(tǒng)的多機通信系統(tǒng)的基礎(chǔ)上,設(shè)計了一種基于MCS-51系列單片機AT89S52 的多機通信系統(tǒng),模擬多功能電能表以及數(shù)據(jù)終端設(shè)備來實現(xiàn)多功能電能表的通信協(xié)議。 單片機的串行口的結(jié)構(gòu)MCS51單片機內(nèi)部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器剛只能寫入不能讀出。這個通信口既可以用于網(wǎng)絡(luò)通信,亦可以實現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可以方便地構(gòu)成標準的RS232接口。80C51單片機的串行口的結(jié)構(gòu)如圖4所示。圖4 80C51單片機的串行口的結(jié)構(gòu)串行口有兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。 80C51串行口的控制寄存器1.特殊功能寄存器SCON SCON 是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標志,字節(jié)地址為98H。SCON寄存器的各位定義如表1所示。位76543210 字節(jié)地址:98HSM0SM1SM2RENTB8RB8TI RISCON 表1 SCON寄存器SM0和SM1為工作方式選擇位,可選擇四種工作方式,如表2所示。SM0SM1方式說明波特率000移位寄存器fosc/1201110位異步收發(fā)器(8位數(shù)據(jù))可變10211位異步收發(fā)器(9位數(shù)據(jù))fosc/64或fosc/3211311位異步收發(fā)器(9位數(shù)據(jù))可變表2 串口通信4種工作方式SM2為多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數(shù)據(jù)進入SBUF,并激活RI,進而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機通信。在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。REN為允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。TB8用在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標志位(在方式0和方式1中,該位未用) 。RB8用在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。TI,發(fā)送中斷標志位。在方式0時,當串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。RI,接收中斷標志位。在方式0時,當串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請[7]。2.特殊功能寄存器PCONPCON的字節(jié)地址為87H,它的第7位SMOD是與串口通信波特率的設(shè)置有關(guān)的選擇位。SMOD()為波特率倍增位。在串行口方式方式方式3時,波特率與SMOD有關(guān),當SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。 80C51單片機串行口的工作方式 設(shè)置SCON寄存器的SM0、SM1=0 0時,串行口工作于方式0。此時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由RXD()引腳輸入或輸出,同步移位脈沖由TXD()引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。其中fosc為時鐘頻率。 設(shè)置SCON寄存器的SM0、SM1=0 1時,串行口工作于方式1。方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。 用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。方式一的輸入輸出圖如圖6所示。圖5 方式1輸入圖6 方式1輸出設(shè)置SCON寄存器的SM0、SM1=1 0時,串行口工作于方式2,當SM0、SM1=1 1時,串行口工作于方式3。方式2或方式3為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳 。方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。 方式2和方式3輸出:發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上 ,以后每次移位,左邊都移入0。當停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向CPU請求中斷。發(fā)送時序圖如下圖7所示。圖7 方式2或方式3的發(fā)送時序圖方式2和方式3輸入:接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負跳變。接收時序圖如圖8所示。圖8 方式2或方式3的接收時序圖在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率 =
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1