【单片机】简易计算器完整代码带电路图 您所在的位置:网站首页 计算器功能流程图片大全高清 【单片机】简易计算器完整代码带电路图

【单片机】简易计算器完整代码带电路图

2024-07-09 20:48| 来源: 网络整理| 查看: 265

【单片机】51单片机计算器代码和电路图

文章目录 【单片机】51单片机计算器代码和电路图一、问题描述二、具体实现1.完整代码带注释2.电路图 总结

一、问题描述

通过AT89C51单片机16位矩阵键盘设计简易计算器(仅能实现加减操作)

二、具体实现 1.完整代码带注释 #include #define uint unsigned int #define uchar unsigned char uchar code table[]= {0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe, 0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};//显示数字0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f uchar code address[]={0xfe,0xfd};//位选1,2 //1111 1110数码管显示第一位 //1111 1101数码管显示第二位 uchar code KEY_TABLE[] = {0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd, 0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};//(反转法)矩阵键盘的各个按键的计算值 void delay(int k) { for( ; k>0; k--); } void delay1() { uint n = 50000;while(n--); } void delay2() { uint n = 10000;while(n--); } main() { uchar temp,key,num,i; int sum,sign,j,a[16],k=0; while(1) { P3 = 0xf0;//1111 0000 if(P3 != 0xf0) { delay2(); if(P3 != 0xf0) { temp = P3; P3 = 0x0f;//0000 1111 key = temp|P3;//低四位改变,若有键按下,得出低四位的值。xxxx 1111 for(i=0; i a[k++]=num;//a[0]=0 P2 = address[0];//位选为0xfe,显示第一位数字 P1 = table[num];//显示数字num delay(2000); } else if(num==15)//按下15等号键进行判断 { //判断输入的值是否合法 if(a[0]>=0 && a[0]=0 && a[2] if(a[1]==10)//按下加号键 sum=a[0]+a[2];//实现加法 else if(a[1]==11)//按下减号键 sum=a[0]-a[2];//实现减法 } } delay1(); } } //合法 if(sign == 1) { if(sum for(i=0;i P2=address[0];//位选为0xfe,显示第一位数字 P1=table[15];//显示字符f P2=address[1];//位选为0xfd,显示第二位数字 P1=table[15];//显示字符f } //无效键判断 if(sign == 0) { P2=address[0];//位选为0xfe,显示第一位数字 P1=table[0];//显示字符f P2=address[1];//位选为0xfd,显示第二位数字 P1=table[0];//显示字符f } } } 2.电路图

初始界面 ![计算器](https://img-blog.csdnimg.cn/20201120214433935.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODcwMTUyMQ==,size_16,color_FFFFFF,t_70#pic_center 实现加法操作 在这里插入图片描述

总结

全网最详细代码,直接拿去用,感谢大家对我的关注!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有