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

基于51單片機(jī)的共陰極數(shù)碼管數(shù)字電壓表設(shè)計(jì)!!!

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

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

共1個(gè)文件

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

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

程序編譯:Keil5 C51

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):【T01】

1.? 簡(jiǎn)介

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

2.? 主要功能

a.通過(guò)4位共陰極數(shù)碼管顯示電壓值。量程:0-5V

3.? 源程序(Keil5)

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

#include<reg51.h>					      /*包含頭文件reg51.h */
#define uchar unsigned char	 		/*宏定義后方便書寫*/
#define uint unsigned int				/*宏定義后方便書寫*/
uchar code DigitSTARTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED碼表
uchar DisplayBuffer[4];				//顯示碼數(shù)據(jù)緩沖區(qū)
uchar AD_Data;					//AD0809原始數(shù)據(jù)
uint Temp; 						  //處理后的數(shù)據(jù)
sbit START=P3^0; 				//定義P3.0引腳位名稱為START
sbit OE=P3^1; 					//定義P3.1引腳位名稱為OE
sbit EOC=P3^2;					//定義P3.2引腳位名稱為EOC
sbit CLK=P3^3;					//定義P3.3引腳位名稱為CLK
sbit ADDA=P3^4;					//定義P3.4引腳位名稱為ADDA
sbit ADDB=P3^5;					//定義P3.5引腳位名稱為ADDB
sbit ADDC=P3^6;					//定義P3.6引腳位名稱為ADDC
sbit LED0=P2^0;					//定義P2.0引腳位名稱為L(zhǎng)ED0,選擇LED的0位
sbit LED1=P2^1;					//定義P2.1引腳位名稱為L(zhǎng)ED1,選擇LED的1位
sbit LED2=P2^2;					//定義P2.2引腳位名稱為L(zhǎng)ED2,選擇LED的2位
sbit LED3=P2^3;					//定義P2.3引腳位名稱為L(zhǎng)ED3,選擇LED的3位
sbit LED_DP=P1^7;				//定義P1.7引腳位名稱為L(zhǎng)ED_DP,選擇LED的DP位

//*********************************************************************************
//函數(shù)名:Delay
//函數(shù)功能:軟件延時(shí)函數(shù)
//形式參數(shù):uint i
//*********************************************************************************
void Delay(uint i)
{  uint j;
  for(;i>0;i--)
   { for(j=0;j<50;j++)
     ;
   }
}

//*********************************************************************************
//函數(shù)名:TimeInitial
//函數(shù)功能:定時(shí)器初始化函數(shù) T0方式2,自動(dòng)重裝初值:10,定時(shí):10us,
//信號(hào)周期T:20us 信號(hào)頻率f:f=1/T=1000000/20=50 000HZ=50KHZ
//*********************************************************************************
void TimeInitial()		 //定時(shí)器初始化
{ TMOD=0x02;	 				 //定時(shí)器工作模式
 TH0=246;				       //定時(shí)器初值高8位
 TL0=246; 			       //定時(shí)器初值低8位
 EA=1;						     //開總中斷
 ET0=1;		 				//開定時(shí)器中斷
 TR0=1;		 				//啟動(dòng)定時(shí)器
 }

//*********************************************************************************
//函數(shù)名:Time0
//函數(shù)功能:定時(shí)器0中斷服務(wù)子程序函數(shù)
//*********************************************************************************
 void Time0(void) interrupt 1 using 0  	//定時(shí)器中斷服務(wù)子程序
 { 
  CLK=~CLK;	   				//產(chǎn)生AD0809工作脈沖:50KHZ
    }
 
//*********************************************************************************
//函數(shù)名:Display
//函數(shù)功能:LED數(shù)碼管顯示函數(shù)
//*********************************************************************************
void Display()
{ 
 P1=DigitSTARTable[DisplayBuffer[3]];	//取數(shù)據(jù)送P1端口顯示(十位)
 LED0=0;	   					// LED0管子開
 Delay(5); 						// 延時(shí)顯示
 LED0=1;	  					// LED0管子關(guān)
 P1=DigitSTARTable[DisplayBuffer[2]];//取數(shù)據(jù)送P1端口顯示(個(gè)位)
 LED_DP=1;					// 小數(shù)點(diǎn)顯示
 LED1=0;   					// LED1管子開
 Delay(5); 						// 延時(shí)顯示
 LED1=1;  						// LED1管子關(guān)
 P1=DigitSTARTable[DisplayBuffer[1]];//取數(shù)據(jù)送P1端口顯示 (小數(shù)1位)
 LED2=0;	  					// LED2管子開
 Delay(5);						// 延時(shí)顯示
 LED2=1;	   					// LED2管子關(guān)
 P1=DigitSTARTable[DisplayBuffer[0]];//取數(shù)據(jù)送P1端口顯示(小數(shù)2位)
 LED3=0;						// LED3管子開
 Delay(5);						// 延時(shí)顯示
 LED3=1;	  					// LED3管子關(guān)
}

4.? 仿真proteus8.6

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

運(yùn)行:

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

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

6.? 資料清單

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

7.? 資料獲取鏈接

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

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

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

相關(guān)推薦