历史上的今天
今天是:2024年12月04日(星期三)
2019年12月04日 | 基于89c52的简易计算器设计
2019-12-04 来源:51hei
#include #include #include "lcd1602_8.h" uint temp,num;//键盘扫描数值 uchar keynum1=0,keynum2=0,sign=0,i=0,j=0; //按键计数,符号标示 uchar num1[8]={0},num2[8]={0}; //按键存储数组 float ans1=0,ans2=0,ans=0,point=0; //运算数据 bit conflag=0; //继续运算标志位 bit newcalc=0; //新运算标志 bit ac=0; //清零标志,1为清零 bit beepflag=0; //蜂鸣器标志位 bit sqrtflag1=0; //开方1标志位 bit sqrtflag2=0; //开方2标志位 bit powflag=0; sbit keybeep=P3^3;//蜂鸣器开关按键 sbit beep=P2^3; //蜂鸣器控制口 sbit keysqrt=P3^4;//开方按键 sbit keypow=P3^5;//任意次方按键 uchar keyscan(); void maininit(void); /****主程序***/ void main(void) { maininit();//初始化 while(1) //整个系统大循环,让计算器一直处于工作状态 { while(1) //第一运算数扫描 { if(ac==1) break; //若清零,则退出输入 if((keyscan()!='N')&&((num>=0&&num<=9)||num=='.')) //记录按下的数字 { if(newcalc==1) //新一次运算开始 { lcdwrite_com(0x01);//清屏 newcalc=0; lcd_setxy(0,0); } if(keynum1<=7) //限制输入位数 { if(num=='.') { lcdwrite_data('.'); //显示小数点 } else lcdwrite_num1(num); num1[keynum1]=num; keynum1++; } } else if(num=='+'||num=='-'||num=='*'||num=='/'||num=='='||num=='^'||keysqrt==0) { if(keynum1==0&&num1[0]==0) //若直接输入运算符而没有输入数字则执行连续运算 { here: ans1=ans; sign=num; lcdwrite_com(0x01); delayms(5); lcd_setxy(0,0); lcdwrite_float(ans1); if(sqrtflag2!=1&&num!='N') lcdwrite_data(num); break; } for(i=0;keynum1>0;i++) //计算按下的数字的大小 { if(num1[i]!='.') ans1=ans1*10+num1[i]; else if(num1[i]=='.') break; keynum1--; } for(keynum1--,i++,j=0;keynum1>0;j++,i++,keynum1--) point=point*10+num1[i]; for(;j>0;j--) point*=0.1; ans1=ans1+point; sqrtflag1=0; //清除开方标志 sqrtflag2=0;//清除开方标志 if(keysqrt==0) //计算开方 { delayms(5); if(keysqrt==0) { if(beepflag==1) //若开声音则每一次按键均鸣叫 {
史海拾趣
|
wince6.0 定制catalog,修改pbcxml文件问题 小弟在学习wince6.0,在开始阶段就遇到了问题,向大家请教。 导入BSP后,发现Third Party--> My BSP下所有的驱动选项前面的方框都是灰色的,无法选择,在网上搜索了一下,然后检查pcbxml文件,发现模块定义时少了一行,如backlight驱动,应该增加 ...… 查看全部问答> |
|
目标:要在ARM9的板子上进行JPEG解码并驱动7寸LCD屏显示. 硬件资源:ARM9+LCD接口 操作系统:ARM-LINUX. 该ARM9板子并不是现在常用的几个芯片,所以移植操作系统方面可能会有比较大的工作量. 我的任务:JPEG解码方面由其他同事负责,我可能需要负责BO ...… 查看全部问答> |
|
想了解整个PC的体系架构,应该看哪些书比较适合,请高手推荐一下 本人以前从事过基于ARM的嵌入式驱动(windows mobile)的开发,现在正在从事windows CE在基于龙芯平台上的移植,由于该平台与一般PC的架构很相似,故想参考些有关PC体系架构说明的书籍,包括CPU与北桥南桥芯片,PCI总线,以及一大堆外设等等是如何 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3231599 /*==================================================================================================== 这是从网上找来 ...… 查看全部问答> |
|
module tribuffer (a,b,en,dr); inout[7:0]a,b; input en,dr; reg [7:0]a,b; always@(*) if(dr==1) a=en?b:8\'bz; else b=en?a:8\'bz; endmodule 为什么会有以下warning Warning ( ...… 查看全部问答> |




