|
#include <reg52.h> //éùÃ÷μ¥Ƭ»ú¼Ä′æÆ÷¿a
typedef unsigned char u8; //¶¨òåò»¸öÎT·ûoÅààDí8루1¸ö×Ö½ú£©μıäá¿u8
typedef unsigned int u16; //¶¨òåò»¸öÎT·ûoÅààDí16루2¸ö×Ö½ú£μμıäá¿u16
sbit bit1=P2^2; //¶¨òࣴ.2¿úÎabit1
sbit bit2=P2^3; //¶¨òࣴ.3¿úÎabit2
sbit bit3=P2^4; //¶¨òࣴ.4¿úÎabit3
sbit seg=P1^0; //¶¨òࣳ.0¿úÎaseg
#define DATA P0 //¶¨òࣲ¿úÎaDATA
void delay (u16 num) //Ñóê±3ìDòÄ£¿é
{
u16 x,y;
for(x=num;x>0;x--)
for(y=110;y>0;y--)
{
//Ô¼Ñóê±1oáÃë
}
}
u8 code segduan[]={ //12òõêyÂë1ü¶ÎÂëêy×é
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
};
void bitduan(u8 i) //λѡ3ìDòÄ£¿é
{
switch(i)
{
case(1):
bit1=0;bit2=0;bit3=0;break;
case(2):
bit1=1,bit2=0,bit3=0;break;
case(3):
bit1=0,bit2=1,bit3=0;break;
case(4):
bit1=1,bit2=1,bit3=0;break;
case(5):
bit1=0,bit2=0,bit3=1;break;
case(6):
bit1=1,bit2=0,bit3=1;break;
case(7):
bit1=0,bit2=1,bit3=1;break;
case(8):
bit1=1,bit2=1,bit3=1;break;
}
}
void display_led(u8 which_bit, u8 which_nember) //°Ñ3ìDò·a×°Îaoˉêy
{
bitduan(which_bit);
seg=1;
delay(5);
DATA = segduan[which_nember];
seg=0;
}
void main(void) //Ö÷3ìDò
{
seg=0;
while(1)
{
display_led(2, 3); //oˉêyμ÷óà (μú2λ,ÏÔê¾êy×Ö3)
}
} |
|