#include <REGX52.H>
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;
char fuhao='0',fuhao0='0';
unsigned char duan[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x86};
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);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。51单片机四位数码管计算器 Proteus仿真程序。
资源推荐
资源详情
资源评论
收起资源包目录
四位数码管计算器.rar (18个子文件)
四位数码管计算器
程序
test.uvopt 5KB
Objects
test.hex 3KB
test.build_log.htm 1KB
test 8KB
test.lnp 89B
main.obj 9KB
test.uvgui.noah- 69KB
Listings
main.lst 5KB
test.m51 9KB
test.uvgui.Administrator 82KB
test.uvproj 14KB
main.c 2KB
仿真
CLOCK.PWI 742B
Last Loaded CLOCK.DBK 101KB
Project Backups
CLOCK [20231230, 23-24-37].pdsprj 19KB
CLOCK.pdsprj 19KB
CLOCK.pdsprj.ccd-PC.Administrator.workspace 3KB
CLOCK.DSN 101KB
共 18 条
- 1
资源评论
森旺电子
- 粉丝: 6733
- 资源: 208
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功