- 15
- 0
- 约7.14千字
- 约 7页
- 2019-07-27 发布于江西
- 举报
/***************************计算器程序***********************************/
#includereg52.h
#include intrins.h
#includestring.h
#include math.h
#include stdio.h
#define uchar unsigned char
#define uint unsigned int
uchar key,sym,sumsz[13],adders=0; // 定义变量
float sum,number1=0,number2=0; // 定义变量
bit flag=0; // 定义位变量标志位
sbit lcdrs=P2^5; // 定义液晶的读IO口
sbit lcdwr=P2^6; // 定义液晶的写IO口
sbit lcden=P2^7; // 定义液晶的使能IO口
uchar lcd_s[]={0,1,2,3,4,5,6,7,8,9,+,-,*,0xfd,.,=};//
void keyscan(); //函数声明
void delayms(uchar z);
void write_com(uchar com);
void write_data(uchar dat);
void init();
void delay(int z);
bit buzz();
void yuans();
void clear();
/***********************主函数*****************************/
void main()
{
init(); //液晶初始化
while(1) //循环函数
{
keyscan(); //调用键盘扫描函数
}
}
/**********************键盘扫面*************************/
void keyscan()
{
uchar temp=0;
P1=0xfe; //第1次判断函数
temp=P1;
temp=temp0xf0;
if(temp!=0xf0)
{
delayms(15);
temp=P1;
temp=temp0xf0;
if(temp!=0xf0)
{ temp=P1;adders++; //确定按键按下,执行if函数
switch(temp)
{
case 0xee: key=1;write_data(lcd_s[key]);if(flag==0){number1=number1*10+key;} else number2=number2*10+key;break;//显示字符1,并记入相加的变量
case 0xde: key=2;write_data(lcd_s[key]);if(flag==0){number1=number1*10+key;} else number2=number2*10+key;break;//显示字符2,并记入相加的变量
case 0xbe: key=3;write_data(lcd_s[key]);if(flag==0){number1=number1*10+key;} else number2=number2*10+key;break;//显示字符3,并记入相加的变量
case 0x7e: key=10;write_data(lcd_s[key]);sym=+;flag=1; break;//显示‘+’号,并将sym付‘+’
}
while((P10xf
您可能关注的文档
最近下载
- 《毛选》读后感打印版.pdf VIP
- 自动水平缠绕机装置设计--毕业论文设计.doc VIP
- 南京医科大学《马哲》1中国马克思主义与当代3.ppt VIP
- 2024年新教科版五年级下册科学全册精编知识点(超全).doc VIP
- 2023机电工程装配式支吊架安装及验收规程.docx VIP
- 课件:直升机基本维护擦洗和润滑保养工作课件讲解.pptx VIP
- 新材料科学与技术产业领域研究与应用的合作模式与合作机制.pptx VIP
- 2025年新洋丰肥业万新型复合肥陶赖昭工业园化工业园新洋丰环评报告.docx VIP
- 肾盂输尿管连接部梗阻护理常规及健康教育.docx VIP
- 2025年安全工器具管理规定.docx VIP
原创力文档

文档评论(0)