仿真版本: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è)計合集