ฟังค์ชันแปลงเลขฐานสิบเป็นหน่วย ฟังก์ชันตัดเลข0
ฟังก์ชันแสดงผล7SEGMENT4หลักMCS51ภาษาCแจกฟรี!
12/11/2558
SONGCHAI PRAPATRUNGSEE
ฟังค์ชันแปลงเลขฐานสิบเป็นหน่วย ฟังก์ชันตัดเลข0
ฟังก์ชันแสดงผล7SEGMENT4หลักMCS51ภาษาCแจกฟรี!
#include <REGX51.H>
sbit UP_B=P1^0;
bit UP_L;
unsigned char DATA[]={0XC0,0XF9,0XA4,0XB0,0X99,
0X92,0X82,0XF8,0X80,0X90};
unsigned char DG[]={0XFE,0XFD,0XFB,0XF7};//3 2 1 0
unsigned char DIGIT[4];//3 2 1 0
unsigned int UP_T;
void DELAY(unsigned int TIME)//HAVE INPUT
{
unsigned int i;
unsigned char j;
for(i=0;i<TIME;i++)
{
for(j=0;j<100;j++);//0.302 MS
}
}
void DISPLAY()
{
char i;
for(i=0;i<4;i++)
{
P3=DG[i];
P2=DIGIT[i];
DELAY(10);//10=3.15 MS
}
}
void CONVERT_TO_UNIT(unsigned int NUMBER)
{
unsigned int NUM;
//CONVERT DEC TO UNIT
NUM=NUMBER/1000;//PAN
DIGIT[3]=DATA[NUM];
NUM=((NUMBER%1000)/100);//ROY
DIGIT[2]=DATA[NUM];
NUM=((NUMBER%100)/10);//SIB
DIGIT[1]=DATA[NUM];
NUM=NUMBER%10;//NAUY
DIGIT[0]=DATA[NUM];
}
void CUT_ZERO()
{
if(DIGIT[3]==DATA[0])
{
DIGIT[3]=0XFF;
if(DIGIT[2]==DATA[0])
{
DIGIT[2]=0XFF;
if(DIGIT[1]==DATA[0])
{
DIGIT[1]=0XFF;
}
}
}
}
void main()
{
int NUMBER=0;
CONVERT_TO_UNIT(NUMBER);//CONVERT DEC TO UNIT
while(1)
{
if(UP_B==0&&UP_L==0)
{
if(UP_T++==5)
{
UP_L=1;
UP_T=0;
NUMBER++;
if(NUMBER>9999)NUMBER=9999;
CONVERT_TO_UNIT(NUMBER);//CONVERT DEC TO UNIT
}
}else if(UP_B==1)
{
UP_L=0;
UP_T=0;
}
CUT_ZERO();
DISPLAY();
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น