计算器课程设计报告(4)

2019-03-09 19:49

课程设计报告

void write_date(uchar date) // 写数据函数 {P1=date; rs=1; rw=0; lcden=0; check(); lcden=1; }

void init() //初始化 { num=-1;

lcden=1; //使能信号为高电平 write_com(0x38); //8位,2行

write_com(0x01); //显示开,光标关,不闪烁 write_com(0x0c); //显示开,光标关,不闪烁*/ write_com(0x06); //增量方式不移位 显竟獗暌贫 柚? num_1=0; i=0; j=0;

a=0; //第一个参与运算的数 b=0; //第二个参与运算的数 c=0;

flag=0; //flag表示是否有符号键按下, fuhao=0; // fuhao表征按下的是哪个符号 }

void keyscan() // 键盘扫描程序 {P2=0xfe; if(P2!=0xfe) { delay(20); if(P2!=0xfe) {temp=P2&0xf0;

15

课程设计报告

switch(temp)

{ case 0xe0:num=0; break; case 0xd0:num=1;break; case 0xb0:num=2;break; case 0x70:num=3;break; } } while(P2!=0xfe);

if(num==0||num==1||num==2)//如果按下的是'7','8'或'9 { if(j!=0)

{ write_com(0x01); j=0; }

if(flag==0)//没有按过符号键 {a=a*10+table[num]; }

else//如果按过符号键 {b=b*10+table[num]; }}

else//如果按下的是'/' {flag=1;

fuhao=4;//4表示除号已按 }

i=table1[num]; write_date(0x30+i);} P2=0xfd; if(P2!=0xfd) {delay(5); if(P2!=0xfd) { temp=P2&0xf0; switch(temp)

{ case 0xe0:num=4; break;

16

课程设计报告

case 0xd0:num=5; break; case 0xb0:num=6; break; case 0x70:num=7; break; } }

while(P2!=0xfd);

if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6' { if(j!=0)

{ write_com(0x01); j=0; }

if(flag==0)//没有按过符号键 {a=a*10+table[num]; }

else//如果按过符号键 b=b*10+table[num]; }}

else//如果按下的是'/' { flag=1;

fuhao=3;//3表示乘号已按 }

i=table1[num]; write_date(0x30+i);} P2=0xfb; if(P2!=0xfb) {delay(5); if(P2!=0xfb) {temp=P2&0xf0; switch(temp)

{ case 0xe0:num=8;break; case 0xd0:num=9;break; case 0xb0:num=10;break;

17

课程设计报告

case 0x70:num=11;break; }}

while(P2!=0xfb);

if(num==8||num==9||num==10)//如果按下的是'1','2'或'3' { if(j!=0)

{ write_com(0x01); j=0; }

if(flag==0)//没有按过符号键 {a=a*10+table[num]; }

else//如果按过符号键 {b=b*10+table[num]; }}

else if(num==11)//如果按下的是'-' {flag=1;

fuhao=2;//2表示减号已按 }

i=table1[num]; write_date(0x30+i); } P2=0xf7; if(P2!=0xf7) {delay(5); if(P2!=0xf7) {temp=P2&0xf0; switch(temp)

{ case 0xe0:num=12; break; case 0xd0:num=13;break; case 0xb0:num=14;break;

18

课程设计报告

case 0x70:num=15; break; } }

while(P2!=0xf7); switch(num) {

//按下的是\

case 12:

{write_com(0x01);a=0;b=0;flag=0;fuhao=0; } break; case 13:

//按下的是\

{ if(flag==0) //没有按过符号键 {a=a*10;

write_date(0x30); P2=0;}

else if(flag==1) //如果按过符号键 { b=b*10; write_date(0x30); }} break; case 14: {j=1; if(fuhao==1)

{ write_com(0x80+0x4f); //按下等于键,光标前进至第二行最后一个显示处 write_com(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格 c=a+b; while(c!=0)

{ write_date(0x30+c); c=c/10;}

write_date(0x3d); //再写\ a=0;b=0;flag=0;fuhao=0; }

else if(fuhao==2)

19


计算器课程设计报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国家政策对人力资源工作总结范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: