求 用基于单片机ADuC848 4*4矩阵键盘 LED数码管 实现计算器的功能的C程序 .原理图 硬件

要求
1)利用小键盘作为数据和命令的输入装置
2)利用LED作为过程和结果的输出装置
3)可实现基本的数据运算,包括:加、减、乘、除、开方等
4)未工作时显示北京时间
5)当数据超出范围,可声音提示或报警

uchar keyval()
{
uchar a,b,i;
b=0xfe;
for(i=0;i<4;i++) //i为行号
{
KEY=b;a=KEY;
if((a&0x10)==0) keynum=i*4; //第一列
if((a&0x20)==0) keynum=i*4+1; //第二列
if((a&0x40)==0) keynum=i*4+2; //第三列
if((a&0x80)==0) keynum=i*4+3; //第四列
b<<=1;b++;
}
SpeakContinue(1);
return (keynum);
}
/********************延时*********************/
void delay(uchar t)
{
uchar i=100;
while(t--)
{while(i--);}
}
void delay1(uchar time)
{
while(time--);
}
/*******************LCD驱动**************************/
//写控制字函数
void lcdcmd(uchar cmd)
{
RS=0;
RW=0;
DAT=cmd;
E=1;
_Nop();
_Nop();
E=0;
delay(2);
}
//写数据函数
void lcddata(uchar dat)
{ RS=1;
RW=0;
DAT=dat;
_Nop();
E=1;
_Nop();
_Nop();
E=0;
delay(2);
}
//LCD初始化函数
void lcdinit() //显示初始化
{
lcdcmd(0x38);
delay(2);
lcdcmd(0x38);
delay(2);
lcdcmd(0x38);
delay(2);
lcdcmd(0x01);
lcdcmd(0x06);
lcdcmd(0x0c);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-05
查看一下接口高低电平。 小键盘用矩阵键盘做输入。 逻辑判断超出范围发出提示音, 北京时间么,参考网上电子时间设计的程序。
相似回答