項目功能 單片機接收計算機發(fā)送的串行數(shù)據(jù),并把接收到的數(shù)據(jù)送到P3口8位LED顯示。 二、實驗過程 (一)實驗項目的方案分析 1.設計原理 STC12C5A60S2單片機內(nèi)部包括微處理器、存儲器(存放程序指令或數(shù)據(jù)的ROM、RAM等)、輸入/輸出口(I/O口)及其他功能部件如定時/計數(shù)器、中斷系統(tǒng)等。它們通過地址總線、數(shù)據(jù)總線和控制總線連接起來。 本實驗充分利用了8051芯片的I/O引腳。系統(tǒng)已采用STC12C5A60S2系列單片機為中心器件來設計數(shù)碼管顯示數(shù)字,實現(xiàn)從0~9依次顯示 本實驗在模擬階段利用單片機模擬PC機發(fā)送程序,在設定時器T1為方式2,SCON的設置,為方式1,只發(fā)送不接收。單片機在設定過程中只接收不發(fā)送。接受PC的信息,來控制數(shù)碼管
2.器件配置清單 表1器件配置表
(二)實驗項目的硬件電路設計 通過Proteus仿真電路軟件搭建電路,電路圖如圖所示。 
圖1 硬件設計圖
(三)實驗項目的程序設計 1、C51程序編寫
2、keil軟件調(diào)試截圖 通過Keil軟件進行C51控制程序的編寫,通過不斷調(diào)試修改,最終的調(diào)試好的Keil 程序。 
圖3調(diào)試無措的Keil程序 (四)實驗項目的虛擬仿真 打開Keil C軟件將上面程序輸入,調(diào)試無誤后編譯輸出".hex"文件,打開Proteus軟件,將之前編譯好的".hex"文件加入到芯片中,開始運行仿真,如圖4所示。 
圖4虛擬仿真圖 (五)實驗項目的實際驗證電路及驗證結果 將單片機C51程序編譯無誤后,生成HEX文件,通過STC-ISP下載到單片機中,下載的軟件界面如圖5所示,搭建的實際電路如圖5所示。 
圖5下載HEX文件到單片機 
圖6面包板搭建的實際電路 PC向單片機發(fā)送數(shù)據(jù)的截圖以及效果圖: 功能一:見圖7-9所示:

圖7發(fā)送c0 
圖8發(fā)送c0效果圖 
圖9發(fā)送f9 
圖10發(fā)送f0效果圖 (六)總結 一開始我設計的是單片機雙向通信,在只剩下調(diào)試時,更換用PC控制,在這次實驗中在連接實物時,將數(shù)碼管的線接錯了。在設置串口通信的時候要弄清楚串口的設置方式,以及清零的方式。
(1)PC機發(fā)送程序(用單片機串口模擬PC機串口發(fā)送數(shù)據(jù))
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
- void delay(uint t)
- {
- uchar i;
- while(t--)
- {
- for(i=0;i<600;i--);
- }
- }
- void main()
- {
- uchar i;
- TH1=0xfd;
- TL1=0xfd;
- SCON=0x40;
- PCON=0x00;
- TR1=1;
-
- while(1)
- {
- for(i=0;i<8;i++)
- {
- SBUF=tab[i];
- while(TI==0);
- TI=0;
- delay(1000);
- }
- }
- }
復制代碼
(2)單片機接收程序
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- void main()
- {
- uchar temp=0;
- TMOD=0x20;
- TH1=0xfd;
- TL1=0xfd;
- SCON=0x50;
- PCON=0x00;
- TR1=1;
- while(1)
- {
- while(RI==0);
- RI=0;
- temp=SBUF;
- P3=temp;
- }
- }
復制代碼
0.png (43.95 KB, 下載次數(shù): 31)
下載附件
2019-1-17 04:48 上傳
全部資料51hei下載地址:
串口中斷.rar
(12.74 MB, 下載次數(shù): 48)
2019-1-15 15:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|