📄 099.c
字号:
//================================================
#include <reg51.h>
sbit dat=P0^2;
sbit clk=P0^3;
//================================================
code char led[11]={0x11,0xd7,0x32,0x92,0xd4,0x98,
0x18,0xd3,0x10,0x90,0xff};
//================================================
unsigned char second,third;
//===========主程序===============================
void main()
{
void display(); //函数原形声明
void send_byte(unsigned char t);
void delay();
second=99;third=99;
while(1)
{
if(second>=99)
{second=0;
if(third>=99) third=0;
else third=third+1;
}
else second=second+1;
delay(); //调用延时
display(); //调用显示子程序
}
}
//===========拆分显示程序=============================
void display()
{
send_byte(second%10); //拆分个位,秒个位
send_byte(second/10); //拆分十位,秒十位
send_byte(third%10); //拆分个位,秒个位
send_byte(third/10); //拆分十位,秒十位
send_byte(10);
send_byte(10);
send_byte(10);
send_byte(10);
}
//============移位子程序==============================
void send_byte(unsigned char t)
{
unsigned char i,one_byte;
one_byte=led[t];//以t为偏移量,读取code char 中的数据
for(i=0;i<8;i++)
{
clk=0; //时钟线清零
if(one_byte&0x80)dat=1; //与、判断,往数据线送最高位
else dat=0;
//dat=(one_byte&0x80); //往dat送数,先送最高位
clk=1; //上跳
clk=0; //下跳
dat=0; //dat清零,确保数据的准确性
one_byte=one_byte<<1; //左移一位
}
}
//=============延时子程序=============================
void delay()
{unsigned int i,j;
for(i=0;i<25000;i++); //外循环
for(j=0;j<10;j++); //内循环
}
//====================================================
//end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -