必威体育Betway必威体育官网
当前位置:首页 > IT技术

用51单片机做一个简单加法器

时间:2019-10-02 03:43:19来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

加法器

在做完流水灯后就可以尝试做一个结合数码管和按键结合的简单加法器

我所用的是sct89c51单片机

此单片机有3个数码管,可以通过2个key按键控制

1key个选择数码管,另为一个调整数码管的显示

代码如下:

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

sbit w1=P1^0;

sbit w2=P1^1;

sbit w3=P1^2;

sbit k1=P3^3;

sbit k2=P3^4;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delayms(uint a)

{

uint x,y;

for(x=a;x>0;x--)

for(y=113;y>0;y--);

}

void key1(uint i)

{

w1=1;

w2=0;

w3=0;

P0=table[i];

 w1=0;

delayms(5);

w1=1;

}

void key2(uint i)

{

w1=0;

w2=1;

w3=0;

P0=table[i];

w2=0;

delayms(5);

w2=1;

}

void key3(uint i)

{

w1=0;

w2=0;

w3=1;

P0=table[i];

w3=0;

delayms(5);

w3=1;

}

void main()

{

while(1)

{

uint t=0;

uint j=0;

uint s;

if(k2==0)

{

delayms(10);

if(k2==0)

{

key1(t);

delayms(1000);

while(k2==1)

{

if(k1==0)

{

delayms(10);

if(k1==0)

{

t++;

delayms(1000);

}

key1(t);

}

}

}

}

if(k2==0)

{

delayms(10);

if(k2==0)

{

key2(j);

delayms(1000);

while(k2==1)

{

if(k1==0)

{

delayms(10);

if(k1==0)

{

j++;

delayms(1000);

}

key2(j);

}

}

}

}

s=t+j;

if(s>=10)

{

s=s-10;

}

if(k2==0)

{

delayms(10);

if(k2==0)

{

key3(s);

delayms(1000);

while(k2==1)

{

}

}

}

t=0;

j=0;

s=0;

}

}

相关阅读

全年营收70亿,净利润3亿,三只松鼠到底做对了什么

作为坚果品类、零食行业的扛把子,三只松鼠已经走过了七年,并开始由淘宝店铺走向品牌IP化与线下门店化。也许你会好奇,作为一个零食品

活动运营:以拉新为目的的活动该如何做?

在上一篇文章《玩遍微信群不同阶段的拉新与留存》中对活动拉新稍做分析,很多详细的点并没有深入探讨,然而拉新又是产品能不能在短期

母婴社区缘何玩家不断,却很难做大?

母婴垂直社区是极为热门的一个领域,众多玩家争相进入,又相继倒下,资本寒冬的来临,更是加剧了这个行业竞争结构的变化。本文从创业者、

产品设计中的那些谎言03:内容电商是不是一个谎言?

最近大量的内容电商的概念炒作于各大媒体,那么内容电商简单来讲是什么?就是内容+电商两个部门组合起来的一个业务吗?这里面是不是也

在写保健品广告软文之前我们需要做些什么?

软文通常不是用来&ldquo;卖货&rdquo;,但在中国市场,被称为&ldquo;软文&rdquo;的&ldquo;保健品广告文案&rdquo;的主要目的就是卖货,这

分享到:

栏目导航

推荐阅读

热门阅读