欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2394|回復: 0
打印 上一主題 下一主題
收起左側

8051單片機串口行中斷試驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:275073 發表于 2018-1-12 09:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

實驗目的與要求
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接口。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表