加入星計(jì)劃,您可以享受以下權(quán)益:

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

基于51單片機(jī)數(shù)字電壓表仿真設(shè)計(jì)_LCD顯示(仿真+程序+原理圖+PCB+設(shè)計(jì)報(bào)告+講解)

09/26 10:27
3086
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

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

基于51單片機(jī)數(shù)字電壓表仿真設(shè)計(jì)_LCD顯示(仿真+程序+原理圖+PCB+設(shè)計(jì)報(bào)告+講解)

原理圖:Altium Designer

仿真版本:proteus 7.8

程序編譯器:keil 4/keil 5

編程語言:C語言

設(shè)計(jì)編號(hào):S0006

講解視頻


基于51單片機(jī)數(shù)字電壓表仿真設(shè)計(jì)

1 功能要求:

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

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

2、此次設(shè)計(jì)的是數(shù)字電壓表,要求的電壓范圍是0~5v。

3、系統(tǒng)設(shè)計(jì)主要包括四個(gè)部分:

分別是電源模塊、AD模數(shù)轉(zhuǎn)換部分、51單片機(jī)最小系統(tǒng)部分、數(shù)碼管顯示部分。

首先由單片機(jī)初始化ADC0809模數(shù)轉(zhuǎn)換芯片和共陰數(shù)碼管顯示,當(dāng)外接被測電壓后,ADC0809將模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸入到單片機(jī)的I/O口,通過單片機(jī)處理后將電壓的大小顯示在LCD1602液晶上面。

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

2 仿真圖:

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

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 單片機(jī) U1 DIP40 1
ADC0809 數(shù)模轉(zhuǎn)換 U2 DIP28 1
LCD1602 液晶 U3 SIP16 1
12M 晶振 Y1 XTAL-200 1

4 PCB:

img

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

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

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

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

3.運(yùn)行速度:Proteus仿真通常比實(shí)物運(yùn)行速度快,因?yàn)榉抡媸腔谟?jì)算機(jī)運(yùn)行的,而實(shí)物則需要考慮電路板上的物理限制和器件的響應(yīng)時(shí)間等因素。

4.功能實(shí)現(xiàn):在Proteus仿真中,可以通過軟件設(shè)置實(shí)現(xiàn)不同的功能,而在實(shí)物中則需要根據(jù)電路設(shè)計(jì)和器件的性能進(jìn)行實(shí)現(xiàn)。

5 程序設(shè)計(jì):

可使用Keil4/5打開工程文件,程序有關(guān)鍵注釋結(jié)合視頻理解。

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

6 設(shè)計(jì)報(bào)告:

該系統(tǒng)由延時(shí)子函數(shù)、LCD1602液晶忙檢測子函數(shù)、LCD1602液晶寫命令/寫數(shù)據(jù)子函數(shù)、漢字顯示子函數(shù)、LCD1602液晶顯示字符串子函數(shù)、LCD1602液晶初始化子函數(shù)、ADC0809轉(zhuǎn)換子函數(shù)、主函數(shù)和數(shù)據(jù)定義這幾部分組成。

img

7 資料清單 和下載鏈接:

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

1、源程序

2、仿真

3、原理圖

4、PCB圖

5、開題報(bào)告

6、設(shè)計(jì)報(bào)告

7、元器件清單

9、硬件框圖

10、講解視頻

Altium Designer 安裝破解

filename.bat

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡易使用教程

單片機(jī)學(xué)習(xí)資料

目錄清單.txt

相關(guān)數(shù)據(jù)手冊

答辯技巧

設(shè)計(jì)報(bào)告常用描述

鼠標(biāo)雙擊打開查找更多51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url

資料清單

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

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

相關(guān)推薦

電子產(chǎn)業(yè)圖譜