1 / 16
文档名称:

基于51单片机1602液晶显示简易计算器设计.doc

格式:doc   页数:16
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于51单片机1602液晶显示简易计算器设计.doc

上传人:799474576 2013/9/6 文件大小:0 KB

下载得到文件列表

基于51单片机1602液晶显示简易计算器设计.doc

文档介绍

文档介绍:#include<>
#include<>
#define uint unsigned int
#define uchar unsigned char
#define PI
sbit RS = P2^0;
sbit RW = P2^1;
sbit EN = P2^2;
sbit led=P2^4;
sbit speek=P3^7;
uchar table0[]={"e to use"};
uchar table1[]={"made by Ms. Li"};
uchar table2[]={"error"};
uchar count;
void main(void)
{
uchar error=0,i,first=0,dot1,dot2,dot1_num,dot2_num,minus1,minus2;//错误标志、第一次清屏标志、小数点标志以及小数点个数负号标志、负号个数
uchar Sin,Cos,Tan,ln;
uchar Key_num,last_key_num; //键号
uchar flag=0,equal_flag; //运算符、等于符
double num1=0,num2=0,num=0,result=0,save_result; //第一个数、第二个数、计算结果
uchar first_num=0,Ans=0,second_num=0;
InitLcd();
EA=1;
ET0=1;
TMOD=0X01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
(0x80+0x40+15);
write_Dat('0');
(0x80);
while(1)
{
while(key_scan()==0xff);
TR0=1;
if(first==0)
{
first=1;
(0x01);
}
Key_num=key_scan();
switch(key_scan())
{
case 1:
if(last_key_num!=Key_num)
{
write_Dat('l');
write_Dat('n');
ln=1;
}break;
case 2:
if(last_key_num!=Key_num)
{
write_Dat('s');
write_Dat('i');
write_Dat('n');
Sin=1;
}break;
case 3:
if(last_key_num!=Key_num)
{
write_Dat('c');
write_Dat('o');
write_Dat('s');
Cos=1;
}break;
case 4:
if(last_key_num!=Key_num)
{
write_Dat('t');
write_Dat('a');
write_Dat('n');
Tan=1;
}break;
case 5:
if(last_key_num!=Key_num)
{
write_Dat('^');
flag=5;
}break;
case 6:write_Dat('7');num=7;break;
case 7:write_Dat('8');num=8;break;
case 8:write_Dat('9');num=9;break;
case 9:
if(last_key_num!=Key_num)
{
write_Dat('+');
flag=1;
}break;
case 10:
if(last_key_num!=Key_num)
{
write_Dat('T');
flag=6;
}break;
case 11:write_Dat('4');num=4;break;
case 12:write_Dat('5');num=5;break;
case 13:write_Dat('6');num=6;break;
case 14:
if(last_key_num!=Key_num)
{
write_Dat('-');
flag=2;
}break;
case 15:
if(last_key_num!=Key_num)
{
if(equal_flag==1)
{
(0x01);
(0x80);
wr