51单片机简单计算器实现(100行)附源码

本文介绍了一个使用51单片机、矩阵键盘和四位数码管实现的简易计算器项目。代码中包括按键扫描、数字输入、运算判断及数码管显示等功能,支持加减乘除和清零操作。程序通过全局变量管理状态,并提供了延时函数确保稳定显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 不引流,项目最后附上本项目百行源码!!

如果对你有帮助不妨点个赞!

本项目使用:51单片机矩阵键盘四位数码管

使用LCD显示的思路相差不大,由于是仿真,包容性比较强,所以还有很大优化空间

先上仿真图!

先上代码,看不太明白的接着往下看

#include <REGX52.H>		//程序核心:始终显示num,操作改变num
void display(int num1);			//显示函数
void DelayXms(unsigned int x);	//延时函数
void keyScan();					//按键扫描
void keyAdd();					//数字多位输入
void pd();						//判断
int n1, n2, n3, n4, numKey=10000, num=0, num0=0;//显示的个十百千位  键值,显示值,存储值1
char fuhao='0',fuhao0='0';		//键入的符号值,存储的符号值
unsigned char duan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void main(){
	while(1){
		keyScan();				//扫描键值
		pd();					//判断键值情况
		display(num);			//显示函数
	}
}
void keyAdd(){              //实现键入多位数的效果
	if(numKey<10000){
		num=num*10+numKey;
		numKey=10000;
	}
}
void pd(){
	keyAdd();				
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值