文档介绍:项目一:简单计算器
:用51单片机实现简单的计算器功能
:
1).实验运行前截图:
2).实验运行后截图:
:
#include<>
#include<>
#include<>
#include<>
#include<>
unsigned char table1[16]; //1602第一行显示字符
unsigned char table2[16]; //1602第二行显示字符
unsigned char code table_error[] = "error";
/* 键扫描函数*/
unsigned char keyscan() //扫描键盘函数
{
unsigned char key_l,key_h,addres,num;
P0=0x0f;
key_l=P0;
P0=0xf0;
key_h=P0;
addres=key_l | key_h;
if(addres!=0xff)
{
Delayms(1);
if(addres!=0xff)
{
P0=0x0f;
key_l=P0;
P0=0xf0;
key_h=P0;
addres=key_l | key_h;
switch(addres)
{
case 0xee:num='1';break;
case 0xde:num='2';break;
case 0xbe:num='3';break;
case 0xed:num='4';break;
case 0xdd:num='5';break;
case 0xbd:num='6';break;
case 0xeb:num='7';break;
case 0xdb:num='8';break;
case 0xbb:num='9';break;
case 0xd7:num='0';break;//按键0
case 0xe7:num='C';break;//按键*
case 0xb7:num='=';break;//按键#
case 0x7e:num='/';break;//按键A
case 0x7d:num='*';break;//按键B
case 0x7b:num='-';break;//按键C
case 0x77:num='+';break;//按键D
}
while(addres!=0xff)
{
P0=0x0f;
key_l=P0;
P0=0xf0;
key_h=P0;
addres=key_l | key_h;
}
return num;
}
}
return 0;
}
void clear_lcd(void) //清屏
{
unsigned char j;
for(j=0;j<16;j++)
{
table1[j]='\0';
table2[j]='\0';
}
}
void main()
{
unsigned char i=0,j;
unsigned cha