51单片机课设 计算器
typedef unsigned int u16;
typedef unsigned char u8;
#define led P1
#define juzhen P0
sbit u1=P2^3;
sbit u2=P2^4;
sbit u3=P2^5;
sbit beer=P2^6;
u16 code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
long int we=0,qian=0,hou=0,ge=16,shi=16,bai=16,qian1=16,wan=16,shiwan=16,baiwan=16,qianwan=16,jia=0,jian=0,
cheng=0,chu=0,qingling=0,dengyu=0;
void delay(u16 i)
{
while(i--)
{
}
}
void baibai()
{
we=0,qian=0,hou=0,ge=16,shi=16,bai=16,qian1=16,wan=16,shiwan=16,baiwan=16,qianwan=16,jia=0,jian=0,
cheng=0,chu=0,qingling=0,dengyu=0;
}
{ unsigned char a,b,c;
for(c=18;c>0;c--)
{
for(b=50;b>0;b--)
{
for(a=33;a>0;a--)
{
beer=~beer;
delay(200);
}
}
}
}
{
int i;
if(qingling==1)
baibai();
for(i=0;i<8;i++)
{
led=0x00;
switch(i)
{
case 0:u1=0;u2=0;u3=0;led=duan[qianwan];delay(100);break;
case 1:u1=1;u2=0;u3=0;led=duan[baiwan];delay(100);break;
case 2:u1=0;u2=1;u3=0;led=duan[shiwan];delay(100);break;
case 3:u1=1;u2=1;u3=0;led=duan[wan];delay(100);break;
case 4:u1=0;u2=0;u3=1;led=duan[qian1];delay(100);break;
case 5:u1=1;u2=0;u3=1;led=duan[bai];delay(100);break;
case 6:u1=0;u2=1;u3=1;led=duan[shi];delay(100);break;
case 7:u1=1;u2=1;u3=1;led=duan[ge];delay(100);break;
}
}
}
void input ()
{
long int gaibian=20;
juzhen=0x0f;
if(juzhen!=0x0f)
delay(1000);
if(juzhen!=0x0f)
{
switch(juzhen)
{
case 0x07:gaibian=0;break;
case 0x0b:gaibian=1;break;
case 0x0d:gaibian=2;break;
case 0x0e:gaibian=3;break;
}
}
juzhen=0xf0;
if(juzhen!=0xf0)
delay(1000);
if(juzhen!=0xf0)
{
switch(juzhen)
{
case 0x70:gaibian=gaibian+0;break;
case 0xb0:gaibian=gaibian+4;break;
case 0xd0:gaibian=gaibian+8;break;
case 0xe0:gaibian=gaibian+12;break;
}
}
juzhen=0xf0;
while(1)
{
if (juzhen==0xf0)
{
break;
}
}
if(gaibian!=20)
{
switch(gaibian)
{
case 10:qingling=1;break;
case 11:dengyu=1;break;
case 12:jia=1;break;
case 13:jian=1;break;
case 14:cheng=1;break;
case 15:chu=1;break;
default :we=we+1;break;
}
}
if(gaibian<10)
{
switch(we)
{
case 0:ge=16;shi=16;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 1:ge=gaibian;shi=16;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;qian=qian+gaibian*1;break;
case 2:shi=gaibian;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;qian=qian+gaibian*10;break;
case 3:bai=gaibian;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;qian=qian+gaibian*100;break;
case 4:qian1=gaibian;wan=16;shiwan=16;baiwan=16;qianwan=16;qian=qian+gaibian*1000;break;
case 5:wan=gaibian;shiwan=16;baiwan=16;qianwan=16;qian=qian+gaibian*10000;break;
case 6:shiwan=gaibian;baiwan=16;qianwan=16;qian=qian+gaibian*100000;break;
case 7:baiwan=gaibian;qianwan=16;qian=qian+gaibian*1000000;break;
case 8:qianwan=gaibian;qian=qian+gaibian*10000000;break;
}
}
}
{
long int pp;
beer=0;
while(1)
{
display();
if(jia==0&&jian==0&&cheng==0&&chu==0)
{
input();
}
else
{
hou=qian;
qian=0;
we=0,ge=16,shi=16,bai=16,qian1=16,wan=16,shiwan=16,baiwan=16,qianwan=16,qian=0;
while(dengyu==0)
{
display();
input();
}
if(jia==1)
{
hou=hou+qian;
if(jian==1)
{
hou=hou-qian;
}
if(cheng==1)
{
hou=hou*qian ;
}
if(chu==1)
{
if(qian==0)
{
hou=0;break;
}
hou=hou/qian;
}
we=0,ge=16,shi=16,bai=16,qian1=16,wan=16,shiwan=16,baiwan=16,qianwan=16;
pp=hou ;
while(pp!=0)
{
pp=pp/10;
we=we+1;
if(we>8)
{
sing();
we=0;
}
switch(we)
{
case 0:ge=0;shi=16;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 1:ge=hou;shi=16;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 2:ge=hou%10;shi=hou/10;bai=16;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 3:ge=hou%10;shi=hou/10%10;bai=hou/100;qian1=16;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 4:ge=hou%10;shi=hou%100/10;bai=hou/100%10;qian1=hou/1000;wan=16;shiwan=16;baiwan=16;qianwan=16;break;
case 5:ge=hou%10;shi=hou/1000%10;bai=hou/100%10;qian1=hou/1000%10;wan=hou/10000;shiwan=16;baiwan=16;qianwan=16;break;
case 6:ge=hou%10;shi=hou/10000%10;bai=hou/100%10;qian1=16;wan=hou/1000%10;shiwan=hou/100000;baiwan=16;qianwan=16;break;
case 7:ge=hou%10;shi=hou/100000%10;bai=hou/100%10;qian1=16;wan=hou/1000%10;shiwan=hou/100000%10;baiwan=hou/1000000;qianwan=16;break;
case 8:ge=hou%10;shi=hou/1000000%10;bai=hou/100%10;qian1=16;wan=hou/1000%10;shiwan=hou/100000%10;baiwan=hou/1000000%10;qianwan=hou/10000000;break;
}
while(1)
{
input();
display();
}
}
}
}
51单片机课设 计算器相关推荐
- 51单片机课设代做_微波炉控制系统设计
微波炉控制系统设计 一.设计要求 选用温度传感器.按键.LED灯和蜂鸣器等,采用MCS-51系列单片机实现温度的设置.显示和报警. (1)可通过按键设置三种最高温度值,如低温(20°),中温(30°) ...
- imut 51单片机课设 模拟室内温度检测器 *秋昊
写在前面的话: 本文主要讲述了一下IMUT的单片机课设报告. 下面的百度云链接中包括了:ICL7109手册,ICL7109自检_标度转换(excel),课设报告(word版),演示视频,程序源码. 链 ...
- 51单片机课设项目大全
1-基于51单片机的音乐彩灯 2-基于51单片机的蓝牙智能台灯设计 3-基于51单片机的篮球计分器 4-基于51单片机的无线病床呼叫系统设计 5-基于51单片机的语音实时采集系统 6-基于51单片机的 ...
- 51单片机课设——模拟电梯控制系统
基于51单片机的模拟电梯控制系统 利用51单片机模拟5层电梯控制系统,还原真实生活场景.当某层被按下呼梯按键(电梯厢外)时,电梯将运行到该楼层,同时步进电机模拟电梯运转,液晶显示屏实时显示楼层数及电梯 ...
- 单片机课设基于51单片机的波形发生器(公开资源)(四种波形)(同时输出两种波形)
单片机课设-波形发生器 前言 一.课设任务是什么? 二.如何解决这几个任务? 三.仿真原理图 四.代码 4.1 LCD1602代码 4.2 波形输出以及8*8点阵显示代码 4.3 波形选择 五.仿真源 ...
- 【Proteus仿真】51单片机制作简易计算器+ LCD1602显示
[Proteus仿真]51单片机制作简易计算器+ LCD1602显示 Proteus仿真效果演示 程序代码 #include<reg51.h> //头文件 #define uint uns ...
- 51单片机实现简易计算器
本来做出来之后时间也是比较久了,具体代码的意义我暂时没有再回看,给标注出来,相信读者也是看了就明白,主要是当初在调试折腾的过程需要下一些功夫,因为当时是初学者,完成慢,成品也不好,还请多多包涵. 目录 ...
- c语言51单片机计算器,新基于51单片机的简易计算器
<新基于51单片机的简易计算器>由会员分享,可在线阅读,更多相关<新基于51单片机的简易计算器(24页珍藏版)>请在人人文库网上搜索. 1.基于51单片机的简易计算器1.前言: ...
- 单片机课设-LED点阵广告牌设计
单片机课设系列文章-2-LED点阵广告牌设计 文章目录
- 51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告)
本设计: 基于51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号S0001 芯片可以替换为 ...
最新文章
- python request timeout是什么意思_request timeout是什么意思
- sitemesh的使用
- (七)全半角转换(转)
- C#中的thread和task之 Thread ThreadPool
- 常用公有云接入——谷歌
- 中国电信第三大IDC机房落户南海
- 计算机网络知识大总结,包含各种熟悉得不能再熟悉的术语解析
- UNetbootin | 轻松制作Linux/BSD安装引导U盘
- hdu 3996 Gold Mine ( 最大权闭合图 )
- 如何把一张图片做成一个好看的电脑图标
- 日期插件datepicker的使用
- 栈 -- 以及用栈实现计算器
- Android改机 安卓改机软件 免root/不刷机/拒绝Xposed 实现 技术分析
- Ubuntu查看IP地址
- EfficientNet 简介
- LG E900 越狱
- php实现addon安装卸载,插件Addon文件
- Convert Kilometers to Miles 2010.3.6
- android 亮屏分析,Android亮屏速度分析总结
- thinkpad x12018换固态_【求助】ThinkPad X1Carbon 更换ssd - 笔记本电脑(Notebook)版 - 北大未名BBS...