近年來隨著計算機在社會領(lǐng)域的滲透,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時監(jiān)測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。
單片機最小系統(tǒng)是在以51單片機為基礎(chǔ)上拓展,使其能更方便地運用于測試系統(tǒng)中。本設(shè)計主要在51單片機上擴展I/O口,實現(xiàn)液晶顯示,定時等功能,并寫好一定的底層程序。
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (217.04 KB, 下載次數(shù): 85)
下載附件
2019-4-4 03:47 上傳
0.png (35.77 KB, 下載次數(shù): 71)
下載附件
2019-4-4 03:47 上傳
0.png (67.79 KB, 下載次數(shù): 65)
下載附件
2019-4-4 03:47 上傳
摘 要 II 第1章 緒論 1 1.1 單片機基礎(chǔ)知識 1 1.2 單片機的應(yīng)用領(lǐng)域 1 1.3 單片機的發(fā)展趨勢 2 第2章 硬件結(jié)構(gòu)剖析 4 2.1 51單片機的內(nèi)部結(jié)構(gòu) 4 2.2 89C52單片機的引腳功能 5 第3章 單片機的硬件設(shè)計 9 3.1 最小系統(tǒng)設(shè)計 9 3.2 LCD顯示電路 11 3.2.1 LCD1602 引腳功能 11 3.2.2 LCD1602顯示模塊指令集 12 3.2.3LCD12864 引腳功能 14 3.3 USB供電下載電路 15 3.3.1 USB供電電路 15 3.4單片機最小系統(tǒng)電路設(shè)計完整資料 16 第4章 單片機學(xué)習(xí)板的測試 19 4.1 51單片機學(xué)習(xí)板電路圖 19 4.2 流水燈(P1口) 19 4.2.1 接口圖及測試照片 19 4.2.2 測試程序(部分) 19 4.2.3 測試結(jié)論 20 4.3 數(shù)碼管(P0口) 20 4.3.1 接口圖及測試照片 20 4.2.2 測試程序(部分) 22 4.3.3 測試結(jié)論 22 4.4 液晶(P2口) 22 4.4.1 接口圖及測試照片 22 4.4.2 測試程序(1602部分) 22 4.4.3 測試結(jié)論 24 4.5 其他(P3口) 24
USB供電下載電路 3.3.1 USB供電電路 USB供電電路如圖3-6所示: 圖3-6 USB供電電路 3.3.2 USB下載電路 USB供電電路如圖3-7所示: 圖3-7 USB下載電路 3.4單片機最小系統(tǒng)電路設(shè)計完整資料 3.4.1 單片機最小系統(tǒng)電路設(shè)計完整原理圖及pcb
圖3-8 單片機最小系統(tǒng)總原理圖
圖3-9 單片機最小系統(tǒng)pcb圖 圖3-10 單片機最小系統(tǒng)pcb 3D預(yù)覽圖 3.4.2單片機最小系統(tǒng)電路設(shè)計元件清單 | | | | | | |
| | |
| | |
| | |
| | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | D11, D12, D13, D13.2
,D14, D15, D16, D17, D18 | | | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | | | |
| | | | | |
| RL1, RL2, RL3, RL4,
RL5, RL6, RL7, RL8 | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | | | | | | | | | | | | | | | | | |
表3-4 單片機最小系統(tǒng)電路設(shè)計元件清單
第4章 單片機學(xué)習(xí)板的測試
4.1 51單片機學(xué)習(xí)板電路圖 圖4-1 單片機學(xué)習(xí)板最小系統(tǒng)原理圖
4.2 流水燈(P1口) 4.2.1 接口圖及測試照片 圖4-2 單片機學(xué)習(xí)板led流水燈接口圖 圖4-3 單片機學(xué)習(xí)板led流水燈測試圖 4.2.2 測試程序(部分) - #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay(uint z);
- void main()
- {
- uchar num,dat1,dat2;
- delay(500);
- P0=0;
- while(1)
- {
- dat1=0xfe;
- dat2=0x7f;
- for(num=0;num<7;num++)
- {
- P1=dat1; //初始化賦值
- dat1=dat1<<1; //右移一位
- delay(500); //延時
- }
- for(num=0;num<7;num++)
- {
- P1=dat2; //初始化賦值
- dat2=dat2>>1; //右移一位
- delay(500); //延時
- }
- }
- }
復(fù)制代碼
4.2.3 測試結(jié)論 按照流水燈接口圖進行編程后實現(xiàn)流水燈功能。因此該學(xué)習(xí)板P1口工作正常,led正常。
4.3 數(shù)碼管(P0口)  4.3.1 接口圖及測試照片 圖4-4單片機學(xué)習(xí)板數(shù)碼管接口圖 圖4-5單片機學(xué)習(xí)板數(shù)碼管測試圖
4.3.2 測試程序(部分) - #include <reg52.h>
- #define uchar unsigned char
- sbit P2_0 = P2^0;
- sbit P2_1 = P2^1;
- sbit P2_2 = P2^2;
- sbit P2_3 = P2^3;
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
- 0xf8,0x80,0x90};
- void delay(uchar i)
- {
- uchar j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- void display()
- {
- P0=table[0];
- P2_0 = 0;
- delay(5);
- P2_0 = 1;
- P0=table[1];
- P2_1 = 0;
- delay(5);
- P2_1 = 1;
- P0=table[2];
- P2_2 = 0;
- delay(5);
- P2_2 = 1;
- P0=table[3];
- P2_3 = 0;
- delay(5);
- P2_3 = 1;
-
- }
- /*演示主程序*/
- void main(void)
- {
- unsigned int a;
-
- while(1)
- {
- for(a=100;a>0;a--)
- {
- display();
復(fù)制代碼4.3.3 測試結(jié)論 按照數(shù)碼管接口圖進行編程后實現(xiàn)數(shù)碼管顯示0123功能。因此該學(xué)習(xí)板P0口工作正常,數(shù)碼管正常。
4.4 液晶(P2口) 4.4.1 接口圖及測試照片
圖4-6單片機學(xué)習(xí)板液晶接口圖 圖4-7單片機學(xué)習(xí)板1602液晶測試圖 圖4-8 12864液晶測試圖 4.4.2 測試程序(1602部分) - # include <reg51.h>
- # include <intrins.h>
- typedef unsigned char BYTE;
- typedef unsigned int WORD;
- typedef bit BOOL;
-
- sbit rs=P0^7;
- sbit rw=P0^6;
- sbit ep=P0^5;
-
- BYTE code dis1 []={" ***********"};
- BYTE code dis2 []={" ************"};
-
- void delay (int m)
- {
- unsigned char i,j;
- for (i=0;i<m;i++)
- for (j=0;j<253;j++);
- }
-
- BOOL lcd_bz()
- {
- BOOL result;
- rs=0; // 讀忙信號
- rw=1;
- ep=1;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- result = (BOOL)(P2&0x80);
- ep=0;
- result ;
- }
-
- void lcd_pos (BYTE pos)
- {
- lcd_wcmd (pos|0x80);
- }
- main ()
- {
- BYTE i;
- lcd_init ();
- delay (10);
-
- lcd_pos (0);
- i=0;
- while (dis1 [i]!='\0')
- {
- lcd_wdat (dis1 [i]);
- i++;
- }
-
- lcd_pos (0x41);
- i=0;
- while (dis2 [i]!='\0')
- {
- lcd_wdat (dis2 [i]);
- i++;
- }
- while (1);
- }
復(fù)制代碼
測試結(jié)論 按照兩塊液晶屏接口圖進行編程后實現(xiàn)液晶屏基本顯示功能。因此該學(xué)習(xí)板的P2口與液晶屏數(shù)據(jù)傳輸正常,接口電路及液晶屏正常。
4.5 其他(P3口) 由于P3端口作為按鍵,傳感器等輸入端口不便于測試,因此我們采用杜邦線加led對端口進行逐個測試,經(jīng)過測試結(jié)論為P3口輸出正常。
0.png (5.02 KB, 下載次數(shù): 91)
下載附件
2019-4-4 03:48 上傳
全部資料51hei下載地址(pcb+文檔):
51自制.rar
(13.08 MB, 下載次數(shù): 15)
2019-4-3 21:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|