久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機雙機串行通信課程設計報告下載 [打印本頁]

作者: poii    時間: 2018-3-22 22:39
標題: 單片機雙機串行通信課程設計報告下載

《單片機原理及接口技術》

課程設計報告

學院名稱   電氣學院               

專業班級   自動化 1501            

學生姓名   葉銘                  

學    號:311508070129           


基于AT89S52單片機的串行通信系統設計

(河南理工大學  電氣工程與自動化學院  自動化15-1  學號311508070129)
摘要:本次課程設計是將兩片單片機之間的串行通信。按照課程設計的要求,我們將使用兩個AT89S51單片機實現雙機通訊:甲乙兩個單片機都可以時間發送和接受信息功能,以及顯示功能,所以兩個單片機都可以作為主機發送 0信號,而且也可以作為從機。對于甲機的數據輸入,我們通過程序設計按鍵輸入實現數據加一,減一。同時乙機的數據接收顯示,我們通過使用八段數碼管完成實現。程序在KEIL上使用C語言進行編寫,運行。

《單片機原理及接口技術》程設計是為自動化學生專業的一門核心課程。它的特點是知識面廣,內容廣,難度大,更新快,在基礎課和專業之間起到承前啟后的重要作用,同時單片機在現代電子系統中的作用已經日漸成為最重要的智能化核心部件。是我們當代大學生步入社會參加工作的立足之本。通過本課程設計,使學生獨立地完成一個典型單片機應用系統的設計和調試任務,深刻地領會和掌握《單片機原理及接口技術》課程中講述的基本理論和基本技能,進一步培養學生的綜合分析與設計能力和動手能力,為后續課程學習和今后從事自動化系統及相關領域的實際工作打下堅實的基礎。

此次課程設計的任務是實現串行通信的系統設計其中包括程序設計以及仿真電路設計。

(1)甲單片機設置兩個按鈕,可以改變一個變量的值,若值改變,則發送數據給給已單片機,變量為uchar類型(0~255)

(2)乙單片機接收數據并顯示(用4LED數碼管),同時將該值返回甲單片機

(3)甲單片機比較乙單片機返回的數據,若不同則重新發送

(4)設計硬件電路,編寫程序,利用Proteus實現仿真

(5)繪制流程圖、電路原理圖,并撰寫報告。

51系列單片機的串行口主要有兩個數據緩沖器SBUF,一個輸入移位寄存器(9位),一個穿行控制寄存器SCON和一個波特率發生器T1等組成。
圖2 串行口結構框圖(圖片來自網絡)
圖2 系統設計線路圖

先設置甲乙兩塊單片機串行口工作方式 ,然后再將初值賦值為250,發送數據,乙機接受數據顯示,接受的數據返還甲機,相同則繼續判斷按鍵,程序繼續運行。
圖9 軟件設計流程
5.1 顯示程序設計
時鐘顯示是通過LED數碼動態刷新,即一位一位地輪流點亮八位數碼管,對于任意一位LED數碼管,每隔一段時間點亮一次,利用人眼的“視覺暫留”效應,即掃描速度選擇足夠快時,盡管實際上各位數碼管并非同時點亮,人眼覺得是同時顯示,就會看到一組穩定的“時分秒”顯示數據。通過 74LS138 對 LED 數碼管進行位選,采用循環掃描方式,分時輪流選通8位共陰數碼管,數碼管的位選分別接到譯碼器的輸出端,只要位選給高電平“1”,則相應數碼管就會點亮,從而實現8 位555
51程序。
void display(void)                //顯示
{


              P2=0xfe; // 1111 1110
     P0=b[a%10];
              delay(20);
              P0=0;
              P2=0xfd; // 1111 1101
              P0=b[a/10%10];
              delay(20);
              P0=0;
              P2= 0xfb; // 1111 1011
                P0=b[a/100%10];
              delay(20);
              P0=0;
              P2=0xf7; // 1111 0111
              P0=b[a/1000%10];
              delay(20);
              P0=0;
}
5.2甲機發送程序
  1. #include<AT89X52.h>
  2.   #define uint unsigned int
  3.   #define uchar unsigned char
  4.   void delay(uint t);
  5.   uchar a;
  6.   void main()
  7.    {
  8.    a=250;
  9.     //P0=0x00;
  10.               SCON=0x50;
  11.               TMOD=0x20;
  12.               PCON=0x00;
  13.               TH1=0xfd;  
  14.     TL1=0xfd;
  15.                   TR1=1;
  16.   while(1)
  17.   {            
  18.                 if(P1_0==0)
  19.   {              delay(100);
  20.                 if(P1_0==0)
  21.               {
  22.                 a++;
  23.                 SBUF=a;
  24.                 while(TI==0)              ;
  25.                 TI=0;
  26.                  while(RI==0);
  27.                  RI=0;
  28.               delay(10000);
  29.               }
  30.    }
  31.    if(P1_2==0)
  32.   {              delay(100);
  33.                 if(P1_2==0)
  34.               {
  35.                 a=a+10;
  36.                 SBUF=a;
  37.                 while(TI==0)              ;
  38.                 TI=0;
  39.                  while(RI==0);
  40.                  RI=0;
  41.               delay(10000);
  42.               }
  43.    }
  44.     if(P1_1==0)
  45.     { delay(100);
  46.   if(P1_1==0)
  47.   {
  48.                 a--;
  49.     SBUF=a;
  50.     while(TI==0)              ;
  51.     TI=0;
  52.     while(RI==0);
  53.               RI=0;
  54.               delay(10000);
  55.               }
  56.   }
  57.   }
  58. }
復制代碼

5.3乙機接收程序
  1. #include<AT89X52.h>
  2.   #define uint unsigned int
  3.   #define uchar unsigned char
  4.   void delay(uint t);
  5. void display(void);
  6. uchar a;
  7. uchar code b[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  8.    void main(void)
  9. {
  10.               a=250;
  11.               //P0=0x00;
  12.               SCON=0x50;
  13.               TMOD=0x20;
  14.               PCON=0x00;
  15.               TH1=0xfd;  
  16.     TL1=0xfd;
  17.               TR1=1;
  18.   while(1)
  19.   {
  20.    display();
  21.    while(RI==1)

  22.   {               
  23.                  RI=0;
  24.               a=SBUF;
  25.               SBUF=a;
  26.               while(TI==0);
  27.               TI=0;
  28.               delay(1000);
  29.      //display();
  30.         }
  31.                             display();
  32.               }
  33. }            
  34. 5.4延時程序
  35.   void delay(uint t)
  36. {
  37.               uint i;
  38.               do
  39.               {
  40.                             for(i=0;i<10;i++);
  41.               }while(--t);
  42. }            
復制代碼
6仿真實驗

單片機接收到電路反饋回來的時間信息,經過相應算法的處理后, 得到物體到發射器的距離與方向等信息,既可以控制相應的被控對象進行相應的動作, 另一方面可以通過LED 顯示相應的距離。為節省單片機硬件資源,采用動態掃描方式顯示。
《單片機原理及接口技術》課程設計是自動化專業開設的實踐教學必修課。要求學生能夠根據所掌握單片機應用系統設計方法,依據所給定任務進行簡單的工程應用系統部分環節綜合設計,從而把所學專業課貫穿起來,在工程應用設計中鍛煉和提高學生能力。在這次的單片機課程學習以及課設實驗的設計中,我深刻的理解到了單片機串行通信的原理以及工作形式。同時在這個實驗課設過程中我也深刻的理解了單片機的課程知識。
參考文獻:


《單片機原理及接口技術》課程設計成績評定表

學院名稱:電氣工程及自動化學院  專業班級:自動化1501

學生姓名:        葉銘      學    號:311508070129     

課程設計題目:基于單片機的串口通信設計     

指標

主要觀測點

重分數

評價分數

學習態度

(10分)

學習態度認真,科學作風嚴謹,

嚴格按進度開展各項工作

10


設計方案

(10分)

方案合理,思路正確;

參數計算正確,元件選型合理

10


設計報告

(60分)

結構嚴謹,邏輯性強,層次清晰

10


語言準確,文字流暢

10


電氣原理圖及程序流程圖規范、清晰

表格完整無誤

20


參考文獻規范,有文獻引用

5


書寫工整,排版規范

15


作品驗收

(20分)

功能完成程度,問題回答準確度

20


總評成績:


指導老師簽名:

                                  年   月   日


完整的Word格式文檔51黑下載地址:
單片機課程設計報告-葉銘自動化1501.doc (307 KB, 下載次數: 46)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品一区二区三区久久 | 欧美二区在线 | 欧美精品影院 | 成年精品 | 小早川怜子xxxxaⅴ在线 | 亚洲+变态+欧美+另类+精品 | 国产精品美女一区二区三区 | 欧美一级在线免费观看 | 亚洲欧美中文日韩在线v日本 | 国产三区四区 | 国产a爽一区二区久久久 | 91亚洲国产 | 午夜91| h视频在线观看免费 | 色网站在线免费观看 | 综合久久综合久久 | 国产免费一区二区 | 国产精品久久久久久久久久不蜜臀 | www.色53色.com | 一区二区三区福利视频 | 狠狠综合久久av一区二区老牛 | 欧美日韩手机在线观看 | 仙人掌旅馆在线观看 | 金莲网| 九色91视频 | 99自拍视频 | 日韩精品一区二区三区中文在线 | 黄色大全免费看 | 国产精品视频二区三区 | 99久久99热这里只有精品 | 人人澡人人射 | 精品亚洲永久免费精品 | 精品不卡| 丁香婷婷久久久综合精品国产 | 日韩在线欧美 | 成人国产精品色哟哟 | 国产美女一区二区 | 成人av观看 | av天天澡天天爽天天av | 欧美日韩精品一区二区 | 色花av|