68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門(mén) >> 80C51單片機(jī)雙機(jī)通信與多機(jī)通信的使用方法

80C51單片機(jī)雙機(jī)通信與多機(jī)通信的使用方法

關(guān)鍵字:80C51單片機(jī) 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-08  瀏覽:13
80C51單片機(jī)之間的串行通信主要可分為雙機(jī)通信和多機(jī)通信,本節(jié)舉例說(shuō)明雙機(jī)通信與多機(jī)通信的使用方法。
1.雙機(jī)通信硬件電路
如果兩個(gè)80C51單片機(jī)系統(tǒng)距離較近,那么就可以將它們的串行口直接相連,實(shí)現(xiàn)雙機(jī)通信,如圖1所示。


圖1  雙機(jī)異步通信接口電路
為了增加通信距離,減少通道和電源干擾,可以在通信線(xiàn)路上采用光電隔離的方法,利用RS-422A標(biāo)準(zhǔn)進(jìn)行雙機(jī)通信,實(shí)用的接口電路如圖2所示。


圖2  RS-422A雙機(jī)異步通信接口電路
2.雙機(jī)通信軟件編程
對(duì)于雙機(jī)通信采用兩種方法:查詢(xún)方式和中斷方式。
(1)查詢(xún)方式
例 在雙機(jī)通信中,設(shè)置串行口工作于方式3,波特率為9600,定時(shí)器T1工作于方式2,允許接收,單片機(jī)主頻fosc=6MHZ,編寫(xiě)初始化編程序。
分析:
①設(shè)置SCON寄存器
串行口工作于方式3,SM0SM1=11。雙機(jī)通信不需要發(fā)送地址,SM2=0。允許接收REN=1。所以SCON=11010000B=0D0H。
②計(jì)算定時(shí)器T1計(jì)數(shù)初值,波特率不加倍,smod=0。
可寫(xiě)出:  
COUNT=254=0FEH
③初始化程序


例 當(dāng)1號(hào)機(jī)開(kāi)始發(fā)送時(shí),先送出一個(gè)“A1”信號(hào),2號(hào)機(jī)收到后回答一個(gè)“B2”信號(hào),表示同意接收。當(dāng)1號(hào)機(jī)收到“B2”信號(hào)后,開(kāi)始發(fā)送數(shù)據(jù),每發(fā)送一次求一個(gè)“校驗(yàn)和,以提高通信的可靠性。設(shè)數(shù)據(jù)塊為10個(gè)字節(jié),數(shù)據(jù)緩沖區(qū)的起始地址是40H,數(shù)據(jù)塊發(fā)完后馬上發(fā)送“校驗(yàn)和”。2號(hào)機(jī)接收數(shù)據(jù)并將其轉(zhuǎn)存到40H開(kāi)始的緩沖區(qū),每接收到一個(gè)數(shù)據(jù)也求一次“校驗(yàn)和”,數(shù)據(jù)塊收完后,再接收1號(hào)機(jī)發(fā)來(lái)的“校驗(yàn)和”,并與2號(hào)機(jī)求出的結(jié)果相比較。如二者相等,說(shuō)明接收正確,2號(hào)機(jī)回答“00H”;若兩者不等,說(shuō)明接收錯(cuò)誤,2號(hào)機(jī)回答“0FFH”,請(qǐng)求重發(fā)。1號(hào)機(jī)收到“00H”的回答后,結(jié)束發(fā)送。若收到的答復(fù)非零,則將數(shù)據(jù)重發(fā)一次。假定雙方約定的傳輸波特率為1200bps,振蕩頻率為11.0592Hz,T1工作在方式2。
解:


查表可知,TH1=TL1=0E8H,PCON的SMOD位為0。程序流程圖如圖所示,程序清單如下。


(2)中斷方式
為提高CPU的利用效率,大多數(shù)的通信程序特別是接收程序使用中斷方法。
例 單工形式的雙機(jī)通信。 假定甲乙機(jī)以方式1進(jìn)行串行數(shù)據(jù)通信,其波特率為1200, 甲機(jī)發(fā)送,發(fā)送數(shù)據(jù)在外部RAM 4000H-401FH單元中。乙機(jī)接收,并把接收到的數(shù)據(jù)塊首末地址和數(shù)據(jù)依次放入外部RAM 5000H開(kāi)始的區(qū)域中。
分析:
①設(shè)甲、乙機(jī)的時(shí)鐘頻率均為6MHz,從而機(jī)器周期為2μs。
②smod波特率不倍增,從而PCON=00H,至于smod什么時(shí)候?yàn)?,什么時(shí)候?yàn)?,可以根據(jù)需要來(lái)決定,具體地說(shuō),波特率較大,則smod=1,否則smod=0
③由公式可知波特率為:
計(jì)數(shù)初值=COUNT=243=F3H
④串行數(shù)據(jù)的發(fā)送(或接收)的內(nèi)容包括數(shù)據(jù)塊首末地址和數(shù)據(jù)兩部分內(nèi)容。對(duì)數(shù)據(jù)塊首末地址以查詢(xún)方式傳送,而數(shù)據(jù)則以中斷方式傳送。因此在程序中要先禁止串行中斷,后允許串行中斷。
甲機(jī)發(fā)送主程序:                                              


甲機(jī)中斷服務(wù)程序:
         ACINT:  CLR     TI                   ;清發(fā)送中斷
                  MOVX    A,@DPTR             ;讀數(shù)據(jù)
                  MOV     SBUF,A              ;發(fā)送字符
                  INC     DPTR                
                  DJNZ    R7, LOOP             ;未發(fā)送完轉(zhuǎn)LOOP
                  CLR     ES                   ;禁止串行中斷
                  CLR     TR1                  ;定時(shí)器1停止計(jì)數(shù)
         LOOP:   RETI                         ;中斷返回
  乙機(jī)接收主程序:
注意:上述程序4個(gè)接收地址的程序段可用一個(gè)循環(huán)程序來(lái)代替,此處為了與發(fā)送程序?qū)?yīng)故分為4段書(shū)寫(xiě)。
乙機(jī)中斷服務(wù)程序:    


在實(shí)驗(yàn)過(guò)程中,應(yīng)先執(zhí)行乙機(jī)的接收程序,然后執(zhí)行甲機(jī)的發(fā)送程序。

編輯:admin  最后修改時(shí)間:2018-06-27

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

平山县| 江永县| 施秉县| 南投市| 郑州市| 左权县| 社旗县| 东方市| 信宜市| 弥渡县| 汕尾市| 齐河县| 临沧市| 虞城县| 怀安县| 内江市| 敖汉旗| 龙南县| 盖州市| 凤城市| 政和县| 调兵山市| 绥芬河市| 古交市| 阳城县| 兰州市| 和田市| 偃师市| 固安县| 乡城县| 尼勒克县| 内黄县| 正安县| 横山县| 陈巴尔虎旗| 永兴县| 尖扎县| 南郑县| 大安市| 宁南县| 通城县|