加法器
在做完流水灯后就可以尝试做一个结合数码管和按键结合的简单加法器
我所用的是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;
}
}
相关阅读
作为坚果品类、零食行业的扛把子,三只松鼠已经走过了七年,并开始由淘宝店铺走向品牌IP化与线下门店化。也许你会好奇,作为一个零食品
在上一篇文章《玩遍微信群不同阶段的拉新与留存》中对活动拉新稍做分析,很多详细的点并没有深入探讨,然而拉新又是产品能不能在短期
母婴垂直社区是极为热门的一个领域,众多玩家争相进入,又相继倒下,资本寒冬的来临,更是加剧了这个行业竞争结构的变化。本文从创业者、
最近大量的内容电商的概念炒作于各大媒体,那么内容电商简单来讲是什么?就是内容+电商两个部门组合起来的一个业务吗?这里面是不是也
软文通常不是用来“卖货”,但在中国市场,被称为“软文”的“保健品广告文案”的主要目的就是卖货,这