串行口方式3的運(yùn)用 一、 設(shè)計(jì)要求甲乙兩個(gè)單片機(jī)進(jìn)行方式3(或方式2)串行通訊。甲機(jī)將8個(gè)流水燈控制數(shù)據(jù)發(fā)送給乙機(jī),乙機(jī)再利用該數(shù)據(jù)點(diǎn)亮其P1口的8個(gè)LED。方式3比方式1多了一個(gè)可編程位TB8,該位一般作奇偶校驗(yàn)位。乙機(jī)接收到的8位二進(jìn)制數(shù)據(jù)有可能出錯(cuò),需進(jìn)行奇偶校驗(yàn),其方法是將乙機(jī)的RB8和PSW的奇偶校驗(yàn)位P進(jìn)行比較,如果相同,接收數(shù)據(jù);否則拒絕接收。
二、 系統(tǒng)方案本系統(tǒng)主要由單片機(jī)控制模塊、AT80C51模塊、燈組模塊、電源模塊組成,下面分別論證這幾個(gè)模塊的選擇。
1、主控制器件的論證與選擇1.1.1控制器選用 單片機(jī)比較 方案一:采用傳統(tǒng)的51系列單片機(jī)。 傳統(tǒng)的51單片機(jī)有5個(gè)中斷源,12T模式,內(nèi)部沒有或很少4K或8K的程序存儲(chǔ)器。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是51系列的單片機(jī)一般不具備自編程能力。 方案二:采用以增強(qiáng)型80C51內(nèi)核的STC系列單片機(jī) 80C51有兩個(gè)16位定時(shí)計(jì)數(shù)器,兩個(gè)外中斷,兩個(gè)定時(shí)計(jì)數(shù)中斷,及一個(gè)串行中斷,并有4個(gè)8位并行輸入口。80C51內(nèi)部有時(shí)鐘電路,但需要石英晶體和微調(diào)電容外接,本系統(tǒng)中采用12MHz的晶振頻率。由于80C51的系統(tǒng)性能滿足系統(tǒng)數(shù)據(jù)采集及時(shí)間精度的要求,而且產(chǎn)品產(chǎn)量豐富來源廣,應(yīng)用也很成熟,故采用來作為控制核心。 STC單片機(jī)是1T的單片機(jī),比傳統(tǒng)的51單片機(jī)要快很多,而且也增加了很多新的功能,增加了內(nèi)部EEPROM存儲(chǔ)器,更方便保存數(shù)據(jù)。另一個(gè)特點(diǎn),就是用串行口下載程序,使得燒錄程序更方便。 通過比較,我們選擇方案二。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (39.41 KB, 下載次數(shù): 30)
下載附件
2018-12-27 13:27 上傳
單片機(jī)源程序如下:
- #include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
- typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
- typedef unsigned char u8;
- u8 data_send;
- void usart_send(u8 data_send)
- {
- ACC=data_send;
- TB8=P;
- SBUF=data_send;
- while(!TI);
- TI=0;
-
-
- }
- void UsartInit()
- {
- SCON=0xd0; //設(shè)置為工作方式3
- TMOD=0X20; //設(shè)置計(jì)數(shù)器工作方式2
- //PCON=0X80; //波特率加倍
- TH1=0XFd; //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
- TL1=0XFd;
- SM0=1;
- SM1=1;
- REN=1;
- ES=1; //打開接收中斷
- EA=1; //打開總中斷
- TR1=1; //打開計(jì)數(shù)器
- }
- void delay(u16 j) //1ms?????
- {
- u8 i=250;
- for(;j>0;j--)
- {
- while(--i);
- i=249;
- while(--i);
- i=250;
- }
- }
- void main()
- {
- UsartInit(); // 串口初始化
- while(1)
- {
- }
- }
- void Usart_rec() interrupt 4
- {
- RI=0;
- ACC=SBUF;//出去接收到的數(shù)據(jù)
- if(RB8==P)
- {
- P1=SBUF;
- }else{
- }
-
- }
復(fù)制代碼
所有資料51hei提供下載(發(fā)射+接收):
串行通訊.zip
(93.25 KB, 下載次數(shù): 26)
2018-12-27 12:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|