📄 xianshi.c
字号:
#include <reg51.h>
#include <intrins.h>
#include <math.h>
#include <stdio.h>
sbit CLK=P2^2;
sbit DAT=P2^0;
sbit RCLK=P2^1;
sbit KEY=P2^4;
unsigned char code con[16]={0x80,0x40,0x20,0x10,0x08,0x04,0x82,0x9f,0xa8,0x89,0x95,0xc1,0xc0,0x8f,0x80,0x81};
void out595();
void display(unsigned char word,unsigned char dot);
void delay(unsigned char i);
void main()
{
unsigned long m2;
float m1;
unsigned int num1,num2,num3,num4,num5;
_nop_();
/* SCON=0x57;
TMOD=0x20;
TCON=0x40;
TH1=0xfd;
TL1=0xfd;
TI=1;
TR1=1;*/
m1=123.45;
while(1)
{
m2=54321;
// printf("%f",m1);
// printf("\n");
num1=m2/10000;
m2=m2%10000;
num2=m2/1000;
if(num2!=0)
{
num2+=40;
display(num2,0x00);
num2=num2-40;
delay(100);
}
if(num1!=0)
{
num1+=50;
display(num1,0x00);
num2+=40;
display(num2,0x00);
delay(100);
}
m2=m2%1000;
num3=m2/100;
num3+=30;
display(num3,0x80);
delay(150);
m2=m2%100;
num4=m2/10;
num4+=20;
display(num4,0x00);
delay(150);
m2=m2%10;
num5=m2;
num5+=10;
display(num5,0x00);
}
}
void out595()
{
unsigned int i;
RCLK=0;
for(i=0;i<100;i++);
RCLK=1;
}
void display(unsigned char word,unsigned char dot)
{
unsigned char i,j;
unsigned char temp,k;
i=word/10;
j=word-10*i;
j=j+6;
temp=con[j]-dot;
for(k=0;k<8;k++)
{
CLK=0;
DAT=temp&0x80;
temp=temp<<1;
CLK=1;
}
temp=con[i];
for(k=0;k<8;k++)
{
CLK=0;
DAT=temp&0x80;
temp=temp<<1;
CLK=1;
}
out595();
}
void delay(unsigned char i)
{
unsigned char j;
for(j=i;j>0;j--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -