完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
基于51单片机的简易计算器。
电路图 源程序 #include #include #include #define key P2 //定义矩阵键盘的I/O口 #define GPIO_LCD P0//定义LCD1602 数据/命令的输入端 unsigned char number[20];//用来储存我们所按键按下去的字符和数字 unsigned char add=0;//是否按过+号 unsigned char subtract=0;//是否按过-号 unsigned char ride=0;//是否按过*号 unsigned char divide=0;//是否按过/号 unsigned char eliminate=0;//是否按过清除键 unsigned char minus=0;//是否计算的数据需要添加负号 unsigned char decimals=0;//是否计算的数据需要小数点 unsigned char equal=0;//是否按下等号键 ***it LCD_RS =P3^4;//定义LCD的模式选择,1为写数据,0为写命令 ***it LCD_RW =P3^5;//定义LCD功能 1是读,0是写 ***it LCD_E =P3^6;//定义LCD使能端 unsigned long a=0,b=0;//用于储存我们所要运算的数据 unsigned char i;//定义一个全局变量 unsigned char LCD_Wait(void)//判忙函数 { LCD_RS=0; LCD_RW=1; _nop_(); LCD_E=1; _nop_(); LCD_E=0; return GPIO_LCD; } void delay(void) //延时函数 { unsigned char x,z; for(z=19;z>0;z--) for(x=130;x>0;x--); } void LCD_Write_Com(unsigned char com)//LCD1602写命令函数 { LCD_RS =0; LCD_RW =0; GPIO_LCD=com; delay() ; LCD_E=1; delay() ; LCD_E=0; delay() ; } void LCD_Write_Date( unsigned char input)//LCD1602写数据函数 { LCD_RS=1; LCD_RW=0; ; LCD_E=0; _nop_(); GPIO_LCD =input; _nop_(); LCD_E=1; _nop_(); LCD_E=0; _nop_(); LCD_Wait(); } void LCD_Initial()//LCD1602初始化函数 { delay(); LCD_Write_Com (0x38); delay() ; LCD_Write_Com (0x38); delay() ; LCD_Write_Com (0x08); delay() ; LCD_Write_Com (0x0c); delay() ; LCD_Write_Com (0x06); delay() ; LCD_Write_Com (0x01); delay() ; } 以上函数是LCD1602的模块化函数库,如果看不懂,需要先学习一下LCD1602.如果懒得学的话,可以直接用这个函数库,前提是上面定义的变量要整体一一对应,各个端口的引脚也要和你的实际端口一一对应 unsigned long calculate()//计算数据模块 { unsigned long value=0; if(add)//如果我们按键按下了加号,那么在计算时进入这个加运算 { value=a+b; } if(subtract) //如果我们按键按下了减号,那么在计算时进入这个减运算 { if(a>=b) value=a-b; else { value=b-a; minus=1;//说明后面的数大于前面的额数,将其标志为一,在输出结果是,可以利用它判断是否输出负号 } } if(ride)//乘法运算 { value=a*b; } if(divide)//除法运算 { value=(unsigned long)(((float)a/b)*1000);//因为此计算器是,保留小数点后三位,所以,两数相除,1/2=0.5,那么通过这个,可以让其先等于200,方便我们后续的结果处理 decimals=1;//标示结果已经<0,最后结果要出现小数点, } return value;//返回计算的结果 }
|
|
相关推荐
6 个讨论
|
|
改造小萝卜机器人第二天——Visual Studio Code 解决ESP-IDF报错问题
2221 浏览 0 评论
3159 浏览 1 评论
6546 浏览 0 评论
3788 浏览 0 评论
3093 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:59 , Processed in 0.829168 second(s), Total 53, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
15454