|
實(shí)驗(yàn)原理與內(nèi)容 1. 原理 8051單片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在串行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。
2. 內(nèi)容 單片機(jī)與微機(jī)相連,使用中斷方法實(shí)現(xiàn)8051單片機(jī)與微機(jī)的串口通信。微機(jī)鍵入一個(gè)字符后發(fā)送至單片機(jī),單片機(jī)收到后又將此字符發(fā)送回微機(jī),在微機(jī)屏幕上回顯。要求在11.0592MHZ下,串行口的波特率為9600,方式1。
|
實(shí)驗(yàn)設(shè)備與軟件環(huán)境 1.STC89C52RC單片機(jī)開發(fā)板: 2.KEIL軟件開發(fā): 3.stc-isp-v4.80-not-setup 4.Proteus7.7_SP2仿真軟件
|
實(shí)驗(yàn)過與結(jié)果(可貼圖) 1.代碼 #include <reg51.h> #include <intrins.h>
void INIT_SCI() { SCON=0X50; //串口初始化 ES=1; //允許串口中斷 EA=1; //開中斷 }
void INIT_TMR() { TMOD=0X20; //定時(shí)器初始化 TH1=0xfd; TL1=0xfd; TR1=1; } void serial_int(void) interrupt 4 { unsigned char data c; if (_testbit_(RI)) //接收中斷服務(wù) { c=SBUF; SBUF=c; } }
void main(void) { INIT_TMR(); INIT_SCI(); while(1); }
|
操作異常問題與解決方案 1.代碼錯(cuò)誤:檢查代碼,改正
|
實(shí)驗(yàn)總結(jié) 通過本次的實(shí)驗(yàn),在前兩個(gè)實(shí)驗(yàn)的基礎(chǔ)上讓我復(fù)習(xí)了知識(shí)點(diǎn),也讓我在次掌握了新的知識(shí)。在完成這次實(shí)驗(yàn)后,懂得了這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在串行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。 |
Powered by 單片機(jī)教程網(wǎng)