📄 5w mself.c
字号:
//--------------头文件------------------------
#include<REG51.H>
//--------------自定义-----------------------
#define DB_port P2
sbit key_start=P1^0;
sbit key_stop=P1^1;
sbit relay_out=P1^7;
sbit clk_164=P2^4;
sbit data_164=P2^5;
unsigned char step;
unsigned int relay_data;
unsigned char data_array[5];
//--------------函数声明---------------------
void delay(unsigned char j);
void delays(void);
void key_dispose(void);
void display(void);
void display2(void);
void transmit(unsigned char digital);
void timer0_initial(void);
void xxxqq(void);
//--------------主函数------------------------
void main(void)
{
relay_out=1;
clk_164=1;
delay(50);
transmit(0x00);
do{
xxxqq();
}
while(1);
}
void xxxqq(void)
{
if(key_start==0)
delays();
if(key_start==0)
{
relay_out=1;
DB_port=DB_port||0x0f;
timer0_initial();
for(;;)
{
if(key_stop==0)
delays();
if(key_stop==0)
{EA=0;}
if(key_start==0)//+
delays(); //+
if(key_start==0)//+
{EA=1;} //+
if(relay_data>=25000)
{EA=0;}
display();
}
}
else
display2();
}
//-------------延时--------------------------
void delay(unsigned char j)
{
unsigned char i;
unsigned int db_data;
for(i=0;i<j;i++)
{
data_array[4]=relay_data/10000;
db_data=relay_data%10000;
data_array[3]=db_data/1000;
db_data=db_data%1000;
data_array[2]=db_data/100;
db_data=db_data%100;
data_array[1]=db_data/10;
data_array[0]=db_data%10;
}
}
void delays(void)
{
unsigned char d;
for(d=0;d<10;d++);
}
//-------------响应按键----------------------
void key_dispose(void)
{
}
//--------------定时器初始化------------------
void timer0_initial(void)
{
EA=0;
ET0=0;
TR0=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
ET0=1;
TR0=1;
EA=1;
}
//--------------定时器中断函数----------------
void timer0(void) interrupt 1 using 1
{
TH0=0x3c;
TL0=0xb0;
step++;
if(step==80)
relay_out=0;
if(step==86)
{
relay_out=1;
step=0;
relay_data++;
}
}
//--------------显示处理函数-------------------0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
void display(void)
{
unsigned char code
form[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//
DB_port=DB_port|0x0f;
transmit(form[0]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf0;
delay(1);
DB_port=DB_port|0x0f;
transmit(form[data_array[4]]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf1;
delay(1);
DB_port=DB_port|0x0f;
transmit(form[data_array[3]]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf2;
delay(1);
DB_port=DB_port|0x0f;
transmit(form[data_array[2]]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf3;
delay(1);
DB_port=DB_port|0x0f;
transmit(form[data_array[1]]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf4;
delay(1);
DB_port=DB_port|0x0f;
transmit(form[data_array[0]]);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf5;
delay(1);
DB_port=DB_port|0x0f;
}
void display2(void)
{
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf0;
delay(1);
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf1;
delay(1);
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf2;
delay(1);
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf3;
delay(1);
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf4;
delay(1);
DB_port=DB_port|0x0f;
transmit(0x3f);
DB_port=DB_port|0x0f;
DB_port=DB_port&0xf5;
delay(1);
DB_port=DB_port|0x0f;
}
//--------------发送字节函数-------------------
void transmit(unsigned char digital)
{
unsigned char a;
unsigned char b=0x01;
unsigned char i=0;
for(i=0;i<8;i++)
{
a=(digital&b);
if(a==0)
{
data_164=0;
data_164=0;
data_164=0;
clk_164=0;
clk_164=0;
clk_164=1;
clk_164=1;
}
else
{
data_164=1;
data_164=1;
data_164=1;
clk_164=0;
clk_164=0;
clk_164=1;
clk_164=1;
}
b<<=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -