一、功能描述
①
②
③
二聊训、程序
①/******************D???·?à?ê|μ?51μ¥???ú?a·¢????°?ày********************
ó2?t£o XMF05A 51μ¥???ú?a·¢ì×?t
°?ày????£oμ¥??êy??1ü??ê?êy×?
êó?μ?ì3ì£o??êy??1ü??ê?02??μ¥??êy??1ü??ê?êy×?£¨′ú??2?íêè?ò???£?±??êé?ê?ò??ù£?
**********************************************************************/
#include "reg52.h"
//?¨ò?12??êy??1ü?TD?êyμ?μ?êy×??????μ
unsigned char SMGNoDot_CA[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
/*=======================?òμ¥μ??óê±oˉêy========================*/
void Delay(unsigned int t)
{
while(t--);
}
/*=====================êy??1ü??ê?êy×?oˉêy=======================*/
void DisPlaySMG()
{
char i;
P2 = 0x80; //ê1?üêy??1ü×?×ó±?μ?ò???
//?e??μ?ááêy??1ü
for(i = 0; i <= 8; i++)
{
P0 = 0xff << i;
Delay(40000);
}
//òà′???ê?êy×?0??9
for(i = 0; i < 10; i++)
{
P0 = SMGNoDot_CA[i];
Delay(40000);
}
}
/*==========================?÷oˉêy============================*/
void main()
{
while(1)
{
DisPlaySMG();
}
}
②/******************D???·?à?ê|μ?51μ¥???ú?a·¢????°?ày********************
*********?·o??′?2??51μ¥???úó|ó??a·¢?ù′??·êó?μ?ì3ìμ?????1¤3ì?′??********
ó2?t£o XMF05A 51μ¥???ú?a·¢ì×?t
°?ày????£o?à??êy??1ü?2ì???ê?
êó?μ?ì3ì£o??êy??1ü??ê?04???à??êy??1ü?2ì???ê?
**********************************************************************/
#include "reg52.h"
sbit C1 = P2^7;
sbit C2 = P2^6;
sbit C3 = P2^5;
sbit C4 = P2^4;
//?¨ò?12??êy??1ü?TD?êyμ?μ?êy×??????μ
unsigned char SMGNoDot_CA[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
/*=======================?òμ¥μ??óê±oˉêy========================*/
void Delay(unsigned int t)
{
while(t--);
}
/*=====================êy??1ü??ê?êy×?oˉêy=======================*/
void DisPlaySMG()
{
char i;
P2 = 0x00; //P2μ?8??òy??ê?3?μ?μ???
//×?óò±?1??êy??1ü£?òà′???ê?êy×?0??9
for(i = 0; i < 10; i++)
{
C4 = 1;
P0 = SMGNoDot_CA[i];
Delay(40000);
}
//×?óò±?2??êy??1ü£?òà′???ê?êy×?0??9
for(i = 0; i < 10; i++)
{
C4 = 1;
C3 = 1;
P0 = SMGNoDot_CA[i];
Delay(40000);
}
//3??êy??1ü£?òà′???ê?êy×?0??9
for(i = 0; i < 10; i++)
{
C4 = 1;
C3 = 1;
C2 = 1;
P0 = SMGNoDot_CA[i];
Delay(40000);
}
//4??êy??1ü£?òà′???ê?êy×?0??9
for(i = 0; i < 10; i++)
{
C4 = 1;
C3 = 1;
C2 = 1;
C1 = 1;
P0 = SMGNoDot_CA[i];
Delay(40000);
}
}
/*==========================?÷oˉêy============================*/
void main()
{
while(1)
{
DisPlaySMG();
}
}
③/******************D???·?à?ê|μ?51μ¥???ú?a·¢????°?ày********************
D???·?μ??a·¢ì×?t1o?òá′?ó£oxmfkj.taobao.com
**********************************************************************/
#include "reg52.h"
sbit C1 = P2^7;
sbit C2 = P2^6;
sbit C3 = P2^5;
sbit C4 = P2^4;
//?¨ò?12??êy??1ü?TD?êyμ?μ?êy×??????μ
unsigned char SMGNoDot_CA[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
unsigned int count = 1523;
/*==================êy??1ü?ˉì???ê?רó??óê±oˉêy==================*/
void DelaySMG(unsigned int t)
{
while(t--);
}
/*=====================μ¥??êy??1ü??ê?oˉêy=======================*/
void DisPlaySMG_Bit(unsigned char pos, unsigned char dat)
{
P0 = 0xff; //??òt
switch(pos) //????êy??1ü????
{
case 1:
C1 = 1; C2 = 0; C3 = 0; C4 = 0;
break;
case 2:
C1 = 0; C2 = 1; C3 = 0; C4 = 0;
break;
case 3:
C1 = 0; C2 = 0; C3 = 1; C4 = 0;
break;
case 4:
C1 = 0; C2 = 0; C3 = 0; C4 = 1;
break;
}
P0 = dat; //ê?3?êy??1ü??ê?μ??úèY
}
/*====================4??êy??1ü?ˉì???ê?oˉêy======================*/
void DisPlaySMG_4Bit(unsigned int dat)
{
DisPlaySMG_Bit(1, SMGNoDot_CA[dat / 1000]); //?§??
DelaySMG(100);
DisPlaySMG_Bit(2, SMGNoDot_CA[(dat % 1000) / 100]); //°ù??
DelaySMG(100);
DisPlaySMG_Bit(3, SMGNoDot_CA[(dat % 100) / 10]); //ê???
DelaySMG(100);
DisPlaySMG_Bit(4, SMGNoDot_CA[(dat % 10)]); //????
DelaySMG(100);
}
/*===================4??êy??1üòà′???ê?0??9oˉêy====================*/
void DisPlaySMG_zero_nine()
{
char i;
C1 = 1;
C2 = 1;
C3 = 1;
C4 = 1;
for(i = 0; i < 10; i++)
{
P0 = SMGNoDot_CA[i];
DelaySMG(40000);
}
}
/*=================′?êy??1ü?¢D?μ??óê±oˉêy======================*/
void Delay(unsigned int t)
{
while(t--)
{
DisPlaySMG_4Bit(count);
}
}
/*==========================?÷oˉêy============================*/
void main()
{
DisPlaySMG_zero_nine();
while(1)
{
DisPlaySMG_4Bit(count);
Delay(100);
count++;
if(count == 1600)
{
count = 0;
}
}
}
四抱究、小結(jié)