• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計(jì)報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

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

04/25 08:42
386
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計(jì)報告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計(jì)編號:【T03】

1.? 簡介

? 本文提出了一種基于51單片機(jī)LCD1602數(shù)字電壓表設(shè)計(jì)。該系統(tǒng)采用AT89C51單片機(jī)為控制核心,模擬量輸入范圍直流0v-5v。模擬量經(jīng)ADC0809模數(shù)轉(zhuǎn)換芯片,把模擬量轉(zhuǎn)換為數(shù)字量輸入到單片機(jī)的P2口,再由單片機(jī)控制LCD1602顯示模擬量輸入的電壓值。

2.? 主要功能

a.通過LCD1602顯示電壓值。量程:0-5V。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#define TIME0H 0x3C
#define TIME0L 0xB0
uchar uc_Clock=0;		//定時器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ù)字的每個位存入數(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;			//定時器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());
		}
	}
}

4.? 仿真proteus8.6

? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

運(yùn)行:

5.? 設(shè)計(jì)報告

設(shè)計(jì)報告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【T03】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集

  • 單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf
    下載

相關(guān)推薦