STM32简单的四则运算计算器,不需要操作系统

这篇具有很好参考价值的文章主要介绍了STM32简单的四则运算计算器,不需要操作系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

能实现简单的四则运算,加减乘除,不需要操作系统,五个按键加上一个LCD屏幕就可以解决。

1.按键初始化

void KEY_Init(void) //IO初始化
{ 
 	GPIO_InitTypeDef GPIO_InitStructure;
 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//ʹÄÜPORTA,PORTEʱÖÓ

    //KEY0~KEY4
    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
 	GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化IO口

}

STM32简单的四则运算计算器,不需要操作系统

 因为设置的是上拉输入,所以是接地。

2.按键处理函数

//按键处理函数
//返回按键值
//mode:0,不支持连按´;1,支持连按;
u8 KEY_Scan(u8 mode)
{	 
	static u8 key_up=1;//按键松开标志
	if(mode)key_up=1;  //支持连按		  
	if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==0||KEY4==0))
	{
		delay_ms(10);//去抖动
		key_up=0;
		if(KEY0==0)return KEY0_PRES;
		else if(KEY1==0)return KEY1_PRES;
		else if(KEY2==0)return KEY2_PRES;
		else if(KEY3==0)return KEY3_PRES;
		else if(KEY4==0)return KEY4_PRES;
	}else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1)key_up=1; 	    
 	return 0;// 无按键按下
}

3.主函数

 int main(void)
 {	 
 	u16 x,y=0;
    u16 Z,flag,num=0;
	vu8 key=0;
	delay_init();	    	 //延时函数初始化

   //设置NVIC中断分组2,2位抢占优先级,2位响应优先级
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	uart_init(115200);	 	//´串口初始化为115200
	LCD_Init();  //LCD屏幕初始化
    KEY_Init();  //按键初始化
	POINT_COLOR=RED;  //设置字体为红色
  	while(1) 
	{
		
		key=KEY_Scan(0);	//等到键值
	   	if(key)
		{						   
			switch(key)
			{			
        case KEY2_PRES:		
					flag=1;
        break;				
				case KEY0_PRES:
					if (flag==1)x--;
				  else   x++;
					break; 
				case KEY1_PRES:
					if (flag==1)y--;
					else  y++;
					break;
				case KEY3_PRES:
       {u8 i;
		     i++;
					
				if(i>4)i=0;
					switch(i)
					{case 1:
						LCD_ShowString(55,150,10,10,24,(u8*)"+");
						Z=1;
						break;						
  					case 2: 
						LCD_ShowString(55,150,10,10,24,(u8*)"-");
						Z=2;
						break;
						case 3: 
						LCD_ShowString(55,150,10,10,24,(u8*)"*");
						Z=3;
						break;
						case 4: 
						LCD_ShowString(55,150,10,10,24,(u8*)"/");
						Z=4;
						break;
						}
				};break;
			 
				case KEY4_PRES:	
         flag=0;					
				if(Z==1)num=x+y;
				if(Z==2)num=x-y;
				if(Z==3)num=x*y;
				if(Z==4)num=x/y;
        break;	
				
			}
		}else delay_ms(10); 
	
		LCD_ShowNum(30,120,x,4,24);
		LCD_ShowNum(30,180,y,4,24);
		LCD_ShowString(55,210,10,10,24,(u8*)"="); 	
		LCD_ShowNum(30,240,num,5,24);
	}
		
}

KEY2按键。按下去之后标志位flag就会发生变化,当确定flag变成1的时候在按下KEY0和KEY1时,x,y的值就是变成减少的,否则就是增加。每次增加1或者减少1。通过按下KEY3,运用switch语句获取当前运算符号。

实验结果

STM32简单的四则运算计算器,不需要操作系统

 

制作不易,需要完整的工程文件,点赞加收藏评论区留邮箱文章来源地址https://www.toymoban.com/news/detail-503196.html

到了这里,关于STM32简单的四则运算计算器,不需要操作系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 四则运算的几种方法?

    Python的四则运算主要有以下几种方法: 1、使用基本算术运算符: Python支持基本的算术运算符,包括加(+), 减(-), 乘(*), 除(/) 和求模运算符(%), 可以用于数值类型的数据,例如整数(int)、浮点数(float)等。例如: 2、使用math模块中的函数: Python的标准库中提供了一个math模块,其

    2024年03月21日
    浏览(32)
  • 小学生四则运算考试系统Java

    作为大一的新生,突然出现一个实训课程,让原本平静的生活变得很充实,学校要求写一个小学生四则运算考试系统的项目,包括自动出题、自动判断对错并给出得分、自动给出正确答案,同时还有倒计时,在经过几天的努力之后,我也是马马虎虎的完成了一个较为简单的考试系统 一

    2024年02月04日
    浏览(47)
  • 图文剖析 big.js 四则运算源码

    big.js,一个小型、快速的用于任意精度的十进制算术的JavaScript 库。 big.js 用于解决平常项目中进行算术运算时精度丢失引起的结果不准确的问题。和 big.js 类似的两个库 bignumber.js 和 decimal.js 也都是出自同一作者(MikeMcl)之手。 作者在 这里 详细说明了他们之间的区别 big.j

    2024年02月05日
    浏览(106)
  • C语言入门 Day_5 四则运算

    目录 前言 1.四则运算 2.其他运算 3.易错点 4.思维导图 图为世界上第一台通用计算机 ENIAC , 于1946年2月14日在美国宾夕法尼亚大学诞生。发明人是美国人 莫克利(JohnW.Mauchly )和 艾克特(J.PresperEckert) 。 计算机的最开始的功能就是用来计算的,今天我们就开始学习计算机的计

    2024年02月12日
    浏览(33)
  • 4.利用matlab符号矩阵的四则运算(matlab程序)

    1. 简述     符号对象的建立 sym函数 sym函数用于建立单个符号对象,其常用调用格式为: 符号对象名=sym(A) 1 将由A来建立符号对象,其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对

    2024年02月13日
    浏览(33)
  • C语言数据结构篇——用栈实现四则运算

    作者名:Demo不是emo  主页面链接: 主页传送门 创作初心: 舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭: 不要让时代的悲哀成为你的悲哀 专研方向: 网络安全,数据结构 每日emo: 我爱

    2024年02月09日
    浏览(42)
  • 华为OD机试真题(Java),四则运算(100%通过+复盘思路)

    华为OD机试 2023B卷题库疯狂收录中,刷题 点这里 输入一个表达式(用字符串表示),求这个表达式的值。 保证字符串中的有效字符包括 [‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’ 。且表达式一定合法。 数据范围:表达式计算结果和过程中

    2024年02月07日
    浏览(35)
  • Jmeter之BeanShell取出参数进行四则运算,并判断是否正确

    首先调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal1 做支付交易 再次调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal2 最后在结果树中可以看到断言错误的信息,断言正确时没有提示 以下是beanshell断言脚本

    2024年02月13日
    浏览(33)
  • 学校头歌作业1_2四则运算(头歌作业[Python])

    在CSDN上补充前几期的内容 第1关:整数四则运算 第2关:浮点类型四则运算 第3关:用户输入数值和符号 第4关:随机出题的四则运算

    2024年02月08日
    浏览(44)
  • 【数据结构】【栈(stack)应用】四则运算表达式求值(带括号)

            先理解原理,再看代码,注意标红字体很重要!结尾附完整测试代码,C语言实现! 更新留言:         本来是侧重演示栈结构的使用,后面评论区发现很多朋友对这个四则运算比较感兴趣,特此做了更新,新增了对负数的运算支持。         若您也有新的想法

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包