负数计算机按键,基于51单片机的简易计算器(带负数)

这篇博客介绍了一个基于51单片机的简易计算器,支持负数计算,包括加、减、乘、除等基本运算。通过位选编码控制数码管显示,并包含按键扫描程序和数学运算函数,实现了完整的计算流程。
摘要由CSDN通过智能技术生成

/**************************************

工程名:简易计算器

***************************************/

#include

#define uchar unsigned char

#define uint  unsigned int

//定义位选编码

#define WEI1  0xfe         //千位控制

#define WEI2  0xfd         //百位控制

#define WEI3  0xfb         //十位控制

#define WEI4  0xf7         //个位控制

//定义运算操作符代号

#define add 0x0c        //加

#define dec 0x0d        //减

#define        mul 0x0e        //乘

#define div 0x0f        //除

#define equ        0x0b        //等于

#define clr 0x0a        //清零

sbit P3_4=P3^4;

sbit P3_5=P3^5;

sbit P3_6=P3^6;

sbit P3_7=P3^7;

uchar step;                //操作步骤变量

uchar sybol;        //运算符号变量

uint  first;        //第一个操作数变量

uint  second;        //第二个操作数变量

uint  res;                //结果的变量

uint  tempres;        //中间结果的变量

uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };//数字0~9的编码,共阴

uchar code err[] =         {   0x00,//NULL

0x79,//E

0x50,//R

0x50 //R

};                 //单词 ERR的编码

void delayms(uint z)

{

uint i,j;

for(i=z;i>0;i--)

for(j=120;j>0;j--);

}

//***********************************************************************************

//功能按键扫描程序

//返回值:有键按下,返回具体的键值,无键按下,返回0xff

//***********************************************************************************

uchar keyscan(void)

{

unsigned char temp;   //用于检测按键的临时变量

unsigned char key;

P3=0xff;

P3_4=0;                       //第一行输出低电平

temp=P3;                      

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值