|
#include<STC89C5xRC.H>
typedef unsigned short int uint;
typedef unsigned char uchar;
sbit sclk=P1^0;
sbit rclk=P1^1;
sbit dio=P1^2;
uchar code number[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8E};
uint i,j,k;
void sclkup(uint num,bit dot){
dio=dot;
sclk=0;
sclk=1;
for(i=0;i<7;i++)
{
num<<=1;
if(num&0x80){
dio=1;
}else{
dio=0;
}
sclk=0;
sclk=1;
}
}
void rclkup(uint num,bit dot,uchar position){
uchar *table=number+num;
sclkup(*table,dot);
sclkup(position,0);
rclk=0;
rclk=1;
}
void display(float num){
uint number,number0,number1,number2,number3;
if(num<0||num>=100){
rclkup(10,1,0x08);
rclkup(10,1,0x04);
rclkup(10,1,0x02);
rclkup(10,1,0x01);
}else if(num>=0&&num<10){
number=num*100;
number2=number/100;
number1=number%100/10;
number0=number%10;
rclkup(number2,0,0x04);
rclkup(number1,1,0x02);
rclkup(number0,1,0x01);
}else if(num>=10&&num<100){
number=num*100;
number3=number/1000;
number2=number%1000/100;
number1=number%100/10;
number0=number%10;
rclkup(number3,1,0x08);
rclkup(number2,0,0x04);
rclkup(number1,1,0x02);
rclkup(number0,1,0x01);
}
}
main(){
while(1){
float number=;
display((int)(number*100+0.5)/100.0);
}
}
|
評分
-
查看全部評分
|