基於51的LCD1602計算器

2021-10-07 15:52:35 字數 3583 閱讀 3004

下面**分3部分

整合**見鏈結(直接複製上**圖就可執行)

1功能:可以實現連續的加減乘除(不可以進行混合運算)

2矩陣按鍵對應的功能:+-

*/36

9清零25

8=14

703**圖

4**部分

lcd1602.h

#ifndef __lcd1602_h_

#define __lcd1602_h_

#define kong0 p0

//傳送資料的

#include

#ifndef uc

#define uc unsigned char

#endif

#ifndef ut

#define ut unsigned int

#endif

sbit rs=p2^6;

sbit rw=p2^5;

sbit en=p2^7;

void

delay1ms

(ut t)

;void

lcdcmd

(uc cmd)

;void

lcddat

(uc dat)

;void

lcdinitial()

;#endif

lcd1602.c

#include

#include

void

delay1ms

(ut t)

//誤差 0us

void

lcdcmd

(uc cmd)

void

lcddat

(uc dat)

void

lcdinitial()

main.c

在這裡插入**片#include

#include

#define kong1 p1

//控制矩陣按鍵

// kong0=p0 傳送命令傳送資料

uc code a=

;long sum1,sum2;

float sum3 ;

//用於除法

long sum4,sum5;

//用於除法;

uc addflag,subflag,mulflag,divflag;

uc keyflag;

// 在keyvaluechuli()函式中控制

uc flag ;

// 控制乘中的sum1進行清除;

uc keyvalue=

100;

//keyvalue值不同表示的不同功能

//初始值設定為100

void

delay10us

(ut t)

//誤差 0us

//判斷按鍵值

uc keypanduan()

//返回按鍵值

}

kong1=

0x0f

;// 判斷列

if(kong1!=

0x0f)}

while

(kong1!=

0x0f);

return cc;

}//通過對應的按鍵值對應keyvalue 在

//keyvaluechuli()函式中對keyvalue進行處理

void

keyswitch

(uc key)

}//處理keyvalue的函式

void

shujuchuli()

if(keyvalue<10)

sum1=sum1*

10+keyvalue;

lcddat

(a[keyvalue]);

//寫資料}}

void

jiafa()

//加法

sum2=sum1;

sum1=0;

}void

jianfa()

//減法

if(subflag>1)

sum1=0;

}void

chengfa()

//乘法

sum2=sum1;

}void

chufa()

//除法

if(divflag>1)

sum1=0;

}//按等於之後資料是從第二行從右向左寫

void

dengyu()

//等於

lcddat

('=');

addflag=0;

//完成計算把對應的flag清除

}// 減法的處理 分結果為正數 和負數

//進行不同處理

//減法先寫負數不行

if(subflag)

//減法

}else

//結果負數

lcddat

('-');

}lcddat

('=');

subflag=0;

}if(mulflag)

//乘法

lcddat

('=');

mulflag=0;

}//除法結果小於0.1和等於0.1和等於0.1種情況

//把結果放大了1000000倍 再通過取餘的方法求資料

if(divflag)

//除法

for(i=

0;i)else

} cent=0;

}if(sum2<

100000

)//結果小於0.1

while

(sum4!=0)

for(i=

0;i<=cent;i++

)else}}

if(sum2>

100000

)//結果大於0.1的}}

lcddat

('=');

divflag=0;

}}}void

keyvaluechuli()

//對key的值進行處理}}

void

main()

}

51微控制器LCD1602實現計算器

整合 include include define kong1 p1 控制矩陣按鍵 kong0 p0 傳送命令傳送資料 uc code a long sum1,sum2 float sum3 用於除法 long sum4,sum5 用於除法 uc addflag,subflag,mulflag,di...

基於51微控制器LCD1602顯示

要在1602上顯示字元,要大概明白1602液晶顯示屏工作原理。一般的液晶顯示器 liquid crystal display,lcd 的主要原理是以電流刺激液晶分子產生點 線 面並配合背部燈管構成畫面。1602液晶也叫1602字元型液晶,它是一種專門用來顯示字母 數字 符號等的點陣型液晶模組。160...

基於51微控制器的LCD1602實現分秒計時總結

1 了解51最小系統所需元器件 晶振 復位 電源 2 對使用到的元器件建庫封裝。3 新建工程,建立原理圖,合理擺放元器件,完成元器件的連線,儘量減少導線的交叉,不要短接,不要漏接。好的原理圖在pcb製圖中幫助很多,走線問題上會少很多麻煩。可以在原理圖上將所有引腳都連起來選擇合適的走線。4 建立pcb...