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

基于51單片機的12864計算器設(shè)計!!!

04/22 09:03
608
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

共1個文件

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

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

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【Q10】

1.? 簡介

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

2.? 主要功能

a.通過LCD12864顯示計算過程。

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

3.? 源程序(Keil5)

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

sbit E=P2^0;
sbit RW=P2^1;
sbit RS=P2^2;
sbit CS2=P2^3;
sbit CS1=P2^4;
sbit RST=P2^5;

uchar  hang,lie;	    //行,列
float  dat1,dat2,count; //運算值
uchar  keynum;		    //按鍵返回值(0~17)
uchar  x;               //按鍵所對應(yīng)的字符在字符表中的行號
uchar  keyfun;		    //運算方式選擇(1:*, 2:+, 3:-, 4:/)

void delay(uchar i)	    //延遲10*n微秒
{
	while(i--);
}

void delay_ms(uchar n) //延遲n毫秒
{
	uchar i,j;
	for(i=n;n>0;n--)
		for(j=120;j>0;j--);
}


/********************************************************/
/************************寫命令**************************/
void write_cmd(uchar cmd)
{
	RS=0;
	RW=0;
	E=1;
	P0=cmd;
	delay(20);
	E=0;
}

/****************************************************/
/***********************寫數(shù)據(jù)***********************/
void write_dat(uchar dat)	   
{	
//	checkbusy();		
	RS=1;
	RW=0;
	E=1;
	P0=dat;
	delay(20);
	E=0;
}


/****************************************************/
/*********************設(shè)置頁與列*********************/
void set(uchar page,uchar col)
{
	page=page|0xb8;	 //頁的首地址為0xb8
	col=col|0x40;	 //列的首地址為0x40
	write_cmd(col);
	write_cmd(page);
}

/****************************************************/
/*******************選擇左、右屏*********************/
void Select_Screen(uchar swich)
{
	 switch(swich)
	 {
	  case 0:CS1=CS2=0;break;	  //全屏
	  case 1:CS1=0;CS2=1;break;	  //左屏
	  case 2:CS1=1;CS2=0;break;	  //右屏
	  default:break;
	 }
}

/***************************************************/
/********************LCD初始化**********************/
void Lcd_Init()
{
	uchar i,j,k=0;
	RST=0;
	delay(10);
	RST=1;
	write_cmd(0xc0);//設(shè)置顯示起始行11xxxxxx
	write_cmd(0x3f);//0x3f顯示開,0x3e顯示關(guān)
	Select_Screen(0);
	set(0,0);
	for(i=0;i<8;i++)
	{
	    for(j=0;j<64;j++)
			write_dat(0x00);
			k++;
			set(k,0);
	}
    lie=2;hang=3;keyfun=0;
	dat1=0.0,dat2=0.0,count=0.0;
}

4.? 仿真proteus8.6

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

加:

減:

乘:

除:

5.? 設(shè)計報告

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

6.? 資料清單

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

7.? 資料獲取鏈接

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

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

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

相關(guān)推薦