显示电话号码和学号
#include <reg51.h>
unsigned char code bit_code[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
unsigned char code smgduan[17]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
unsigned int code number[] = {1, 3, 0, 6, 2, 5, 3, 0, 6, 3, 4, 2, 0, 8, 1, 6, 0, 6, 1, 7};
void delay(unsigned int i)
{
while(i)
{
i--;
}
}
void main()
{
unsigned int i;
unsigned int n = 200;
unsigned int j = 0;
while(1)
{
while(n--)
{
for(i = 0; i < 8; i++)
{
P2 = bit_code[i];
if(i > 20 - j - 1)
{
P1 = 0x00;
delay(100);
}
else
{
P1 = smgduan[number[i + j]];
delay(100);
P1 = 0x00;
}
}
}
n= 200;
j++;
if(j == 20)
{
j = 0;
}
}
}
简单的抢答器
#include <reg51.h>
sbit k1 = P0^0;
sbit k2 = P0^1;
sbit k3 = P0^2;
sbit k4 = P0^3;
sbit reset = P0^7;
unsigned int i;
unsigned int j;
unsigned int n;
unsigned char code bit_code[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
unsigned char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(unsigned int i)
{
while(i)
{
i--;
}
}
void main()
{
j = 10;
n = 1000;
while(1)
{
for(i = 10; i >= 0; i--)
{
while(n--)
{
if(j == 0)
{
j = 10;
}
P2 = bit_code[0];
P1 = smgduan[j - 1];
delay(30);
P1 = 0x00;
if(i == 0)
{
j--;
i = 10;
}
P2 = bit_code[1];
P1 = smgduan[i - 1];
delay(30);
P1 = 0x00;
if(k1 == 0)
{
delay(1000);
if(k1 == 0)
{
P1 = 0x00;
P2 = bit_code[4];
P1 = smgduan[1];
while(reset);
j = 10;
i = 10;
}
}
else if(k2 == 0)
{
delay(1000);
if(k2 == 0)
{
P2 = bit_code[4];
P1 = smgduan[2];
while(reset);
j = 10;
i = 10;
}
}
else if(k3 == 0)
{
delay(1000);
if(k3 == 0)
{
P2 = bit_code[4];
P1 = smgduan[3];
while(reset);
j = 10;
i = 10;
}
}
else if(k4 == 0)
{
delay(1000);
if(k4 == 0)
{
P2 = bit_code[4];
P1 = smgduan[4];
while(reset);
j = 10;
i = 10;
}
}
else if(reset == 0)
{
delay(1000);
if(reset == 0)
{
j = 10;
i = 10;
}
}
}
n = 1000;
}
}
}
倒计时
#include <reg51.h>
unsigned char code bit_code[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
unsigned char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(unsigned int i)
{
while(i)
{
i--;
}
}
void main()
{
unsigned int i;
unsigned int j;
unsigned int n;
j = 10;
n = 1500;
while(1)
{
for(i = 10; i >= 0; i--)
{
while(n--)
{
P2 = bit_code[0];
P1 = smgduan[j - 1];
delay(30);
P1 = 0x00;
if(j == 0)
{
j = 10;
}
P2 = bit_code[1];
P1 = smgduan[i - 1];
delay(30);
P1 = 0x00;
if(i == 0)
{
j--;
i = 10;
}
}
n = 1500;
}
}
}