news 2026/6/10 21:04:06

项目三简易计算器 任务3-3加法计算器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
项目三简易计算器 任务3-3加法计算器

任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,
利用矩阵键盘定义0~9数字键,并定义+、-、*、/、=等五个功能键。
编程实现简易计算器功能,完成两个1位十进制数的四则运算。

加法计算器讲解

数字键统一编程,功能键独立讨论。

/************************* 项目名称:项目三简易计算器 任务名称:任务3-3加法计算器 任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘, 利用矩阵键盘定义0~9数字键,并定义+、-、*、/、=等五个功能键。 编程实现简易计算器功能,完成两个1位十进制数的四则运算。 *************************/ #include<reg51.h> #include<intrins.h> //51单片机寄存器定义头文件 sbit row0=P1^0; sbit row1=P1^1; sbit row2=P1^2; sbit row3=P1^3; sbit col0=P1^4; sbit col1=P1^5; sbit col2=P1^6; sbit col3=P1^7; int n;//存放按键编号 int m1,m2;//存放两个加数 int dis[2];//存放结果的十位和个位 int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义0~9共阳极七段码 void key1();//等待按键按下,无限查询 void key2();//扫描按键位置,行列扫描 void key3();//处理按键请求,显示编号 void display();//显示两位结果子函数 /**********************************************/ void delay(int i) { int k,j; for(k=0;k<i;k++) for(j=0;j<100;j++); } /**********************************************/ void main() { while(1) { key1(); key2(); key3(); } } /**********************************************/ void key1() { while(1) { P1=0x0f; if(P1!=0x0f)//有变化,一定是有按键按下,导致某行某列短路 break;//退出查询 } } /**********************************************/ void key2() { P1=0xff;//行列都写1 col0=0;//清零0列 if(row0==0) n=0; if(row1==0) n=1; if(row2==0) n=2; if(row3==0) n=3; P1=0xff;//行列都写1 col1=0;//清零1列 if(row0==0) n=4; if(row1==0) n=5; if(row2==0) n=6; if(row3==0) n=7; P1=0xff;//行列都写1 col2=0;//清零2列 if(row0==0) n=8; if(row1==0) n=9; if(row2==0) m1=n;//'+'键:保存数字1 if(row3==0) {m2=n;n=10;}//'=':保存数字2,并n=10 } /**********************************************/ void key3() { if(n<10)//按下数字键,显示数字 { P2=0xfe;//1111 1110 P0=seg[n]; } else//按下等号键 display();//显示两位结果 } /**********************************************/ void display() { int i,j; dis[0]=(m1+m2)/10;//求和并拆字得到十位显示值 dis[1]=(m1+m2)%10;//求和并拆字得到个位显示值 while(1) { for(i=0,j=0xfd;i<2;i++)//1111 1101 { P2=j; P0=seg[dis[i]]; delay(2); j=_cror_(j,1); } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 21:01:31

5分钟引爆Blender纹理革命:Dream Textures深度实战指南

5分钟引爆Blender纹理革命&#xff1a;Dream Textures深度实战指南 【免费下载链接】dream-textures Stable Diffusion built-in to Blender 项目地址: https://gitcode.com/gh_mirrors/dr/dream-textures 还在为3D模型寻找完美纹理而烦恼吗&#xff1f;还在Photoshop和…

作者头像 李华
网站建设 2026/6/10 21:00:43

GSConv+VoVGSCSP(Slimneck报错修正)

参考有温度的AI提供的Slimneck代码进行的报错修改&#xff1a; 链接&#xff1a;YOLOv5改进之YOLOv5GSConvSlim Neck_vovgscsp-CSDN博客 报错&#xff1a; TypeError: conv2d() received an invalid combination of arguments - got (Tensor, Parameter, NoneType, tuple, t…

作者头像 李华
网站建设 2026/6/10 20:56:34

深度解析ReVanced Patches:Android应用补丁技术的3大核心机制

深度解析ReVanced Patches&#xff1a;Android应用补丁技术的3大核心机制 【免费下载链接】ravanced-patches &#x1f9e9; Patches for ReVanced 项目地址: https://gitcode.com/GitHub_Trending/re/ravanced-patches ReVanced Patches是一个专注于为Android应用提供功…

作者头像 李华
网站建设 2026/6/10 20:53:20

题解:学而思编程 优秀的排列

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

作者头像 李华
网站建设 2026/6/10 20:53:14

在线免费图片处理工具-传道软件图片工具

在线免费图片处理工具-传道软件图片工具 在线免费图片处理工具&#xff0c;无需注册与登录&#xff0c;用完即走。 官网链接&#xff1a; https://www.chdaoai.com/ 功能有&#xff1a; Favicon图标生成&#xff0c;图片颜色拾取器&#xff0c;屏幕颜色拾取&#xff0c;图片…

作者头像 李华