加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機數字電壓表仿真設計_LCD顯示(仿真+程序+原理圖+PCB+設計報告+講解)

09/26 10:27
3273
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
    • 講解視頻
    • 1 功能要求:
    • 2 仿真圖:
    • 3 原理圖:
    • 4 PCB:
    • 5 程序設計:
    • 6 設計報告:
    • 7 資料清單 和下載鏈接:
  • 相關文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

基于51單片機數字電壓表仿真設計_LCD顯示(仿真+程序+原理圖+PCB+設計報告+講解)

原理圖:Altium Designer

仿真版本:proteus 7.8

程序編譯器:keil 4/keil 5

編程語言:C語言

設計編號:S0006

講解視頻


基于51單片機數字電壓表仿真設計

1 功能要求:

芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。

1、利用51單片機作為主控芯片,模擬量輸入范圍直流0v-5v。模擬量經A/D(ADC0809)模數轉換芯片,把模擬量轉換為數字量輸入到單片機的P0口,再由單片機控制LCD1602液晶顯示模擬量輸入的電壓值。

2、此次設計的是數字電壓表,要求的電壓范圍是0~5v。

3、系統設計主要包括四個部分:

分別是電源模塊、AD模數轉換部分、51單片機最小系統部分、數碼管顯示部分。

首先由單片機初始化ADC0809模數轉換芯片和共陰數碼管顯示,當外接被測電壓后,ADC0809將模擬電壓信號轉換為數字信號輸入到單片機的I/O口,通過單片機處理后將電壓的大小顯示在LCD1602液晶上面。

仿真51單片機芯片是通用的,AT89C51,AT89C52都是51單片機的具體型號,內核是兼容的。原理圖不變的情況下,主控芯片可以替換成STC89C52/STC89C51/AT89C52/ AT89C51/8051等51單片機芯片。

2 仿真圖:

打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。開始仿真后LCD1602顯示當前的電壓值,通過調整滑動變阻器的阻值大小改變測量的電壓值。

img

3 原理圖:

AD繪制的。

img

元器件清單

Comment Description Designator Footprint Quantity
10uF 電容 C1 EC-100 1
30pF 電容 C2, C3 CAP-100 2
5V 2P排針 J1 SIP2 1
20R 電阻 R1 RES-200 1
22K 電阻 R2, R3, R4, R5, R6, R7, R8, R9 RES-200 8
1K 排阻 RP1 SIP3 1
AT89C51 單片機 U1 DIP40 1
ADC0809 數模轉換 U2 DIP28 1
LCD1602 液晶 U3 SIP16 1
12M 晶振 Y1 XTAL-200 1

4 PCB:

img

Proteus仿真和實物作品的區(qū)別:

1.運行環(huán)境:Proteus仿真是在計算機上運行的,而實物則是在硬件電路板上運行。

2.調試方式:在Proteus仿真中,可以方便地進行單步調試和觀察變量值的變化,而在實物中則需要通過調試器或者串口輸出等方式進行調試。

電路連接方式:在Proteus仿真中,可以通過軟件設置進行電路連接的修改,而在實物中則需要通過硬件電路板和連接線進行修改。

3.運行速度:Proteus仿真通常比實物運行速度快,因為仿真是基于計算機運行的,而實物則需要考慮電路板上的物理限制和器件的響應時間等因素。

4.功能實現:在Proteus仿真中,可以通過軟件設置實現不同的功能,而在實物中則需要根據電路設計和器件的性能進行實現。

5 程序設計:

可使用Keil4/5打開工程文件,程序有關鍵注釋結合視頻理解。

//<程序名>:數字電壓表																 		 **
//<功能>:使用LCD顯示被檢測電壓,精度為0.05V,范圍是0~5V。									 **
#include"includes.h"
#define TIME0H 0x3C
#define TIME0L 0xB0	  
uchar uc_Clock=0;		//定時器0中斷計數
bit b_DATransform=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把電壓顯示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void vShowVoltage(uint uiNumber)
{
	uchar ucaNumber[3],ucCount;
	if(uiNumber>999)					
		uiNumber=999;
	ucaNumber[0]=uiNumber/100;								//把計算數字的每個位存入數組。
	ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;							
	ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
	for(ucCount=0;ucCount<3;ucCount++)
	{
		vShowOneChar(ucaNumber[ucCount]+48);				//從首位到末位逐一輸出。
		if(ucCount==0)
			vShowOneChar('.');
	}
}
//*************************************************************************************************
//*																								  *
//*			  ********************************主函數******************************				  *
//*																								  *
//*************************************************************************************************
void main()
{
	TMOD=0x01;			//定時器0,模式1。
	TH0=TIME0H;
	TL0=TIME0L;
	TR0=1;				//啟動定時器。
	ET0=1;				//開定時器中斷。
	EA=1;				//開總中斷
	vdInitialize();
	vWriteCMD(0x84);	   //寫入顯示起始地址(第一行第4個位置)
	vShowChar("voltage");
	vWriteCMD(0xC9);     
	vShowChar("(V)");
	while(1)
	{
		if(b_DATransform==1)
		{
			b_DATransform=0;
			vWriteCMD(0xC4);
			vShowVoltage(uiADTransform());
		}
	}
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定時器0中斷函數>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void t0() interrupt 1
{
	if(uc_Clock==0)
	{
		uc_Clock=5;
		b_DATransform=1;
	}
	else
		uc_Clock--;
	TH0=TIME0H;		   //恢復定時器0。
	TL0=TIME0L;
}

6 設計報告:

該系統由延時子函數、LCD1602液晶忙檢測子函數、LCD1602液晶寫命令/寫數據子函數、漢字顯示子函數、LCD1602液晶顯示字符串子函數、LCD1602液晶初始化子函數、ADC0809轉換子函數、主函數和數據定義這幾部分組成。

img

7 資料清單 和下載鏈接:

0.常見使用問題及解決方法–必讀!?。?!

1、源程序

2、仿真

3、原理圖

4、PCB圖

5、開題報告

6、設計報告

7、元器件清單

9、硬件框圖

10、講解視頻

Altium Designer 安裝破解

filename.bat

KEIL+proteus 單片機仿真設計教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡易使用教程

單片機學習資料

目錄清單.txt

相關數據手冊

答辯技巧

設計報告常用描述

鼠標雙擊打開查找更多51 STM32單片機課程畢業(yè)設計.url

資料清單

資料下載鏈接(可點擊):

  • 設計資料獲取聯系方式.doc

相關推薦

電子產業(yè)圖譜