• 方案介紹
    • 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ī)的8位數(shù)碼管計(jì)算器設(shè)計(jì)!!!

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

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

共1個(gè)文件

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

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

程序編譯:Keil5 C51

編程語言:C語言

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

1.? 簡(jiǎn)介

? 本文提出了一種基于51單片機(jī)數(shù)碼管計(jì)算器設(shè)計(jì)。該設(shè)計(jì)是以AT89C51單片機(jī)為核心的計(jì)算器模擬系統(tǒng),輸入采用4×4矩陣鍵盤,可以進(jìn)行加、減、乘、除數(shù)字運(yùn)算,并在8位數(shù)碼管上顯示操作過程。

2.? 主要功能

a.通過8位數(shù)碼管顯示計(jì)算過程。

b.通過4×4矩陣鍵盤進(jìn)行加、減、乘、除數(shù)字運(yùn)算。

3.? 源程序(Keil5)

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

void read_key()		//4X4矩陣鍵盤說明:行為輸入,列為輸出
{
    char x,y;
	char i;
	P1=0xf0;
	if(P1!=0xf0)
	{
		delay(1000);
		if(P1!=0xf0)
		{
		    y=P1; 
			x=0xfe;
			for(i=0;i<4;i++)
			{
				P1=x |0xf0;
				if((P1 & 0xf0)!=0xf0)
				{
					x=P1;
					key_code=y | (x & 0x0f);
					key_press=1;
				}
				x=(x<<1)+0x01;
			}
				switch(key_code)
					{
					
						case 0xee:    key_code=11;break;
						case 0xde:    key_code=12;break;
						case 0xbe:    key_code=13;break;
						case 0x7e:    key_code=14;break;
            
						case 0xed:    key_code=16;break;
						case 0xdd:    key_code=3;break;
						case 0xbd:    key_code=6;break;
						case 0x7d:    key_code=9;break; 
						
						case 0xeb:    key_code=0;break;
						case 0xdb:    key_code=2;break;
						case 0xbb:    key_code=5;break;
						case 0x7b:    key_code=8;break;
            
						case 0xe7:    key_code=15;break;
						case 0xd7:    key_code=1;break;
						case 0xb7:    key_code=4;break;
						case 0x77:    key_code=7;break;				
					}
			   	
		}
		
	}
}
void calculate()
{
      if(key_code<10)
	  {
	       if(flag==0)
		   {
		      a=a*10+key_code; 
			  disp(a);
			}
		   else
		   {
		      b=b*10+key_code; 
			  disp(b);
			}
      }
	  else
	  {
	     switch(key_code)
		{
			case 11:flag=1;break;
			case 12:flag=2;break;
			case 13:flag=3;break;
			case 14:flag=4;break;
			case 15:a=0;b=0;disp(a);flag=0;break;
			case 16:{
						switch(flag)
						{
							case 1:a=a+b;disp(a);b=0;break;
							case 2:a=a-b;disp(a);b=0;break;
							case 3:a=a*b;disp(a);b=0;break;
							case 4:a=a/b;disp(a);b=0;break;
						}
					}
		}
	  }
	     

     
}

void main()
{
    TMOD=0x01;
	TH0=(65536-1000)/256;
	TL0=(65536-1000)%256;
	TR0=1;
	EA=1;
	ET0=1;
	a=0;
	b=0;
	disp(a);
	while(1) 
	{
		read_key();
		if(key_press==1)
		{
			calculate();
		    key_press=0;
		}
		delay(3000);
	}
}

4.? 仿真proteus8.6

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

計(jì)算過程:

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

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

6.? 資料清單

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

7.? 資料獲取鏈接

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

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

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

相關(guān)推薦