目录
概要
仿真图
部分代码
资料下载地址:51单片机四位数码管计算器 Proteus仿真程序
概要
1.系统通过4x4的矩阵键盘输入数字及运算符。 2.可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E 3.可以进行加法以外的计算 (乘、除、减) 。
仿真图
部分代码
void main(){ while(1){ keyScan(); pd(); display(num); } } void keyAdd(){ if(numKey<10000){ num=num*10+numKey; numKey=10000; } } void pd(){ keyAdd(); if(fuhao=='c'){ num=0; num0=0; fuhao0='0'; fuhao='0'; } if(fuhao=='+'){ fuhao0='+'; fuhao='0'; num0=num; num=0; } if(fuhao=='-'){ fuhao0='-'; fuhao='0'; num0=num; num=0; } if(fuhao=='*'){ fuhao0='*'; fuhao='0'; num0=num; num=0; } if(fuhao=='/'){ fuhao0='/'; fuhao='0'; num0=num; num=0; } if(fuhao=='='){ if(fuhao0=='+')num=num0+num; else if(fuhao0=='-')num=num0-num; else if(fuhao0=='*')num=num0*num; else if(fuhao0=='/')num=num0/num; fuhao='0'; num0=0; } } void keyScan(){ P3=0xef;//1110 1111 if(!P3_3){numKey=7;while(!P3_3);}if(!P3_2){numKey=8;while(!P3_2);}if(!P3_1){numKey=9;while(!P3_1);}if(!P3_0){fuhao='/';while(!P3_0);} P3=0xdf; if(!P3_3){numKey=4;while(!P3_3);}if(!P3_2){numKey=5;while(!P3_2);}if(!P3_1){numKey=6;while(!P3_1);}if(!P3_0){fuhao='*';while(!P3_0);} P3=0xbf; if(!P3_3){numKey=1;while(!P3_3);}if(!P3_2){numKey=2;while(!P3_2);}if(!P3_1){numKey=3;while(!P3_1);}if(!P3_0){fuhao='-';while(!P3_0);} P3=0x7f; if(!P3_3){fuhao='c';while(!P3_3);}if(!P3_2){numKey=0;while(!P3_2);}if(!P3_1){fuhao='=';while(!P3_1);}if(!P3_0){fuhao='+';while(!P3_0);} } void display(int num1){ if(num1<= 9999) { n4=num1%10; n3=num1/10%10; n2=num1/100%10; n1=num1/1000%10; P2=0x01; P0=duan[n1]; DelayXms(4); P2=0x02; P0=duan[n2]; DelayXms(4); P2=0x04; P0=duan[n3]; DelayXms(4); P2=0x08; P0=duan[n4]; DelayXms(4); } else { P2=0x01; P0=duan[10]; DelayXms(4); P2=0x02; P0=duan[10]; DelayXms(4); P2=0x04; P0=duan[10]; DelayXms(4); P2=0x08; P0=duan[10]; DelayXms(4); } } void DelayXms(unsigned int x) { unsigned char i, j; while(x--) { i = 2; j = 239; do{while (--j); }while (--i); } }
猜你喜欢
- 1小时前BOM简介
- 1小时前前端已死?探讨人工智能与低代码对前端的影响
- 1小时前Azure机器学习 - 使用与Azure集成的Visual Studio Code实战教程
- 1小时前【图书推荐第一期】Java官方编程手册(第12版)上下两册
- 1小时前已解决java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying e
- 1小时前实时云渲染服务:流式传输 VR 和 AR 内容
- 1小时前概率论与数理统计————3.随机变量及其分布
- 1小时前vue基于Spring Boot的中医在线学习课程购买服务管理系统
- 1小时前Python神器:psutil库使用详解
- 1小时前CCF-CSP真题《202309-2 坐标变换(其二)》思路+python,c++满分题解
网友评论
- 搜索
- 最新文章
- 热门文章