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