蓝桥杯51小练习--简易计算器

0x00 前言

  有一段时间没写51的单片机了,实验室的学长留了个小练习,我就用来当“复健”了。一个极其简易的计算器,看起来很简单,但有些细节也是琢磨了一下的(俺还是菜),用的是蓝桥杯的板子,代码的质量着实堪忧。

0x01 题目

小练习:简易计算器

初始显示界面

使用16个按键每个按键对应的值为

0   1   2   3

4   5   6   7

8   9   +   -

*   /  清除  =

可以实现两位数的加减

前两个数码管显示第一位数,第三个数码管显示+、-、*、/(然后+、-、*、/分别用A,B,C,D来表示)。第四五个数码管显示第二位数,第六位显示等号,第七八位显示结果。

限制范围,第一个数和第二个数限制在0-30以内的数,结果的范围在0—99,将回到最初的状态(都是0).

举个列子:

假设我要计算12+13=25;首先我要按下对应键值为1的按键,这时第一个数码管显示1,然后继续按下对应键值为2的按键,这时第二个数码管显示2,然后按下键值为+号的按键,这时第三个数码管显示A,然后继续按下对应键值为1的按键,这时第四个数码管显示为1,然后继续按下对应键值为3的按键,这时第五个数码管显示为3,再次按键计算按钮,第六个数码管显示等于号,并且第78数码管显示运算结果25。

清除键可以直接清除数码管,让数码管清0。

0x02 思路

1.  初始化系统。

2.判断当前将要赋值的位选,启用对应的按键。

3.当当前位选赋值完毕后,进行下一个位选(向右)的赋值。

4.实现计算的操作和一些其他的限制。

0x03 代码

质量着实堪忧(菜鸡瑟瑟发抖)

#include <REGX52.H>
typedef unsigned char u8;
typedef unsigned int u16;

sfr P4 = 0xc0;//蓝桥杯比单纯的51多了一个p4,
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值