• 方案介紹
    • 1. 主要功能:
    • 資料下載鏈接:
    • 2. 講解視頻:
    • 3. 設(shè)計說明書(報告)
    • 4. 仿真
    • 5. 實物燒錄和現(xiàn)象
    • 6. 程序代碼
    • 7. 設(shè)計資料內(nèi)容清單
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

【普中】基于51單片機(jī)簡易計算器數(shù)碼管顯示設(shè)計( proteus仿真+程序+實物演示+講解視頻)

2024/10/24
5662
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

共1個文件

Proteus 仿真:Proteus 8.16(有低版本)

程序編譯器:keil 4/keil 5

編程語言:C語言

設(shè)計編號:P04

1. 主要功能:

普中開發(fā)板實驗設(shè)計

本設(shè)計旨在設(shè)計一個基于51單片機(jī)的簡易計算器仿真設(shè)計。

功能要求:實現(xiàn)加減乘除四則簡單運算數(shù)碼管顯示

1、能通過矩陣鍵盤輸入正確鍵值;

2、能進(jìn)行簡單的四則運算;

3、能以數(shù)碼管正確顯示數(shù)值;

4、最大支持運算結(jié)果9 9999,超出將蜂鳴器報警;

(目前僅完全適配普中開發(fā)板A234,其他普中開發(fā)板型號可能需要做代碼修改或接線)

需注意本設(shè)計仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號,內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。

資料下載鏈接:

P系列單片機(jī)設(shè)計下載鏈接

以下為本設(shè)計資料展示圖:

2. 講解視頻:

講解視頻包含仿真運行講解、實物運行講解和代碼講解


【普中】基于51單片機(jī)簡易計算器仿真+開發(fā)板講解(proteus代碼報告)

3. 設(shè)計說明書(報告)

img

本次課程設(shè)計的主要目標(biāo)是以51單片機(jī)為基礎(chǔ),結(jié)合Proteus仿真軟件,設(shè)計一款簡易計算器。這個計算器需要實現(xiàn)加減乘除四則運算功能,并且能夠?qū)⑦\算結(jié)果通過數(shù)碼管進(jìn)行顯示。這個任務(wù)不僅要求我們掌握單片機(jī)的編程技術(shù),還需要我們深入理解數(shù)碼管顯示的工作原理,同時還需要通過Proteus軟件進(jìn)行系統(tǒng)的仿真和調(diào)試。

在設(shè)計過程中,我們將從硬件電路設(shè)計和軟件編程兩個方面進(jìn)行。硬件電路設(shè)計包括單片機(jī)最小系統(tǒng)、輸入按鍵、輸出數(shù)碼管等部分。其中,單片機(jī)最小系統(tǒng)是整個系統(tǒng)的核心,它包括了單片機(jī)、時鐘電路復(fù)位電路等基本部分。輸入按鍵將用于用戶輸入數(shù)字和運算符號,而輸出數(shù)碼管則將用于顯示運算結(jié)果。

軟件編程方面,我們將使用C語言進(jìn)行編程。首先,我們需要根據(jù)設(shè)計需求,編寫出相應(yīng)的程序。程序應(yīng)該能夠讀取用戶的輸入,進(jìn)行四則運算,并根據(jù)運算結(jié)果驅(qū)動數(shù)碼管進(jìn)行顯示。然后,我們將在Proteus中進(jìn)行仿真和調(diào)試,檢查程序的正確性和系統(tǒng)的穩(wěn)定性。

通過這個課程設(shè)計,我們不僅能夠更加深入地理解單片機(jī)的原理和應(yīng)用,還能夠掌握基本的電路設(shè)計和軟件編程技能。同時,通過Proteus的仿真和調(diào)試功能,我們還可以更好地理解系統(tǒng)的運行過程,提高我們的調(diào)試和解決問題的能力。我們期待通過這個課程設(shè)計,能夠更好地掌握單片機(jī)的應(yīng)用,為未來的學(xué)習(xí)和工作打下堅實的基礎(chǔ)。

4. 仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。

img

5. 實物燒錄和現(xiàn)象

img

計算結(jié)果如下圖:

軟件準(zhǔn)備:

第一次使用務(wù)必先安裝CH340驅(qū)動。

雙擊打開 STC-ISP.exe。

下載步驟:

0.板子先上電,接電源線到電腦USB口,先不上電,板子無燈光。

1.選擇選擇單片機(jī)型號

2.選擇下載器的串口

3.打開編譯生成的 HEX 文件

4.點擊下載,單片機(jī)板子電源鍵按下接通電源,等待下載完成提示

6. 程序代碼

使用keil4或者keil5編譯,代碼有注釋。

核心代碼:

#include<reg52.h> //頭文件
#include<intrins.h>//頭文件
#include<math.h>
#define uint unsigned int //宏定義
#define uchar unsigned char//宏定義
long x=0,y=0,num=0;
uint operators,input,iny=0;
uchar key,k,ff=16;
sbit a0=P2^2;					//138鎖存器
sbit a1=P2^3;
sbit a2=P2^4;
sbit beep=P2^5;
sbit led=P3^0;


 uchar code table[]={					 //數(shù)碼管段選
 0x3f,0x06,0x5b,0x4f,
 0x66,0x6d,0x7d,0x07,
 0x7f,0x6f,0x77,0x7c,
 0x39,0x5e,0x79,0x71,
 0x00,0x40
 };

 //uchar code table1[]={0xfe,0xfd};	   //數(shù)碼管位選


void delay(uint xms)  //延時
{
	uint xx,yy;
	for (xx=xms;xx>0;xx--)
		for(yy=110;yy>0;yy--);
}

void display() //顯示函數(shù),數(shù)碼管動態(tài)掃描
{
    uchar wan,qian,bai,shi,ge;	
	wan=num/10000;
	qian=num%10000/1000;
	bai=num%1000/100;
	shi=num%100/10;							//num求摸  數(shù)碼管顯示十位
	ge=num%10;							//num求余  數(shù)碼管顯示個位

    P0=0x00;					//數(shù)碼管全關(guān)
	P0=table[ff];			  //端選給P0
	a0=0;						   //位選
	a1=0; 
	a2=0;
	delay(3);				  //延時
	
	P0=0x00;				
	P0=table[ge];//段選顯示個位數(shù)
	a0=0;
	a1=0;
	a2=0;		//選中第一位
	delay(3);

	P0=0x00;				
	P0=table[shi];//段選顯示十位數(shù)
	a0=1;
	a1=0;
	a2=0;		//選中第二位
	delay(3);
	
	P0=0x00;
	P0=table[bai];
	a0=0;
	a1=1;
	a2=0;		//選中第三位
	delay(3);
	
	P0=0x00;
	P0=table[qian];//段選顯示千位數(shù)
	a0=1;
	a1=1;
	a2=0;		//選中第四位
	delay(3);
	
	P0=0x00;
	P0=table[wan];//段選顯示萬位數(shù)
	a0=0;
	a1=0;
	a2=1;		//選中第五位
	delay(3);
	
 							 
}

  
 /**********算術(shù)運算函數(shù)*************/
void arithmetic()
{
	if (iny){
		switch(operators)
		{
			case 1:							//加法運算
			x=x+y;
			num=x;

			if(num<100000&&num>-100000)			 //正常范圍
			{
			  TR0=0;
			}
			else							   //超出范圍,報警
			TR0=1;

			break;

			case 2:						   //減法運算
			x=x-y;
			num=x;
			if(num<0)
			{
			  num=num*(-1);
			  ff=17;
			}
			else
			ff=16;
			if(num<100000&&num>-100000)
			{
			  TR0=0;
			}
			else
			TR0=1;

			break;

			case 3:
			x=x*y;						  //乘法運算
			num=x;

			if(num<100000&&num>-100000)
			{
			  TR0=0;
			}
			else
			TR0=1;
			break;

			case 4:						  //除法運算
			x=x/y;
			num=x;
			if(y!=0)					 //除數(shù)不為0
			{
			  //TR0=0;
			  led=1;
			}
			else					  //除數(shù)為0	報警
			//TR0=1;
			  led=0;
			}
		}
}

 /***********符號處理函數(shù)*************/

void fuhao() 
{
	if(key<=9&&key>=0)      //判斷按下的鍵是否為數(shù)值
	{
	num=num*10+(key-0);
	if (operators>0)
		{
		y=num;
		iny=1;
		}
	else
		{
		x=num;
		if(num<100000&&num>-100000)
		{
		  TR0=0;
		}
		else
		TR0=1;



		}
	}
else
	{
	switch(key)						  //按鍵判斷
		{
		case 'c':
					//x=0;
					//y=0;
					//num=0;
					if(operators==0)
					{
					  x=x/10;	 			 //一位一位刪除
					  num=x;			  
					  iny=0;
					}
					if(operators>0)
					{
					  y=y/10;		//一位一位刪除
					  num=y;		
					}			  
					//iny=0;
					//operators=0;
					//display();
					break;
		case '=':
					arithmetic();
					iny=0;
					operators=0;
					//num=0;
					break;
		case '+':
				    if (operators)
					arithmetic();
					operators=1;
					num=0;
					break;
		case '-':
				    if (operators)
					arithmetic();
					operators=2;
					num=0;
					break;
		case '*':
				    if (operators)
					arithmetic();
					operators=3;
					num=0;
					break;
		case '/':
					if (operators)
					arithmetic();
					operators=4;
					num=0;
					break;
		}
	}
}

7. 設(shè)計資料內(nèi)容清單

資料設(shè)計資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計報告、軟硬件設(shè)計框圖等。

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

1、仿真圖

2、程序源碼

3、功能要求

4、講解視頻

5、燒錄工具

6、開題報告

7、設(shè)計報告

8、軟硬件流程框圖

Altium Designer 安裝破解

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

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡易使用教程

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

普中-2&普中-3&普中-4開發(fā)板原理圖.pdf

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

答辯技巧

設(shè)計報告常用描述

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

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

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應(yīng)!