|
實現(xiàn)單主機(jī)和單從機(jī)之間的點對點的通信。該程序應(yīng)分為主機(jī)通信子程序和從機(jī)通信子程序兩個部分,雙方約定采用串行口方式1進(jìn)行通信,一幀信息為10位,其中有1個起始位、8個數(shù)據(jù)位和一個停止位;波特率為2400波特,T1工作在定時器方式2,振蕩頻率選用11.0592MHZ。
串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。串行口工作方式的設(shè)置和控制是通過PCON和SCON兩個寄存器實現(xiàn)的。因為SCOM=1主機(jī)的PCON寄存器設(shè)置為#00H,在方式1下1號機(jī)2號機(jī)的SM2都應(yīng)置0。程序起始部分,應(yīng)首先關(guān)閉CPU的總中斷,然后初始化(這一步可以使程序更加嚴(yán)謹(jǐn),但通過查閱其他程序,發(fā)現(xiàn)也可以不寫這句。)
在點對點通信中,單片機(jī)可工作在方式1。方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。方式1的波特率是可變的,由定時器T1的溢出率來決定。方式1的波特率 =(2SMOD/32)·(T1溢出率)當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。T1 溢出率 = fosc /{12×[256 -(TH1)]}使用的振蕩頻率為11.0592MHZ,查表可得TH1=TL1=0F4H,PCON寄存器的SMOD位為0。
8.png (13.37 KB, 下載次數(shù): 27)
下載附件
2021-9-14 18:26 上傳
電路:
9.png (69.16 KB, 下載次數(shù): 27)
下載附件
2021-9-14 18:26 上傳
|
|