📄 miam.c
字号:
else
{dat=0;}
clk=1;
short_delay();
clk=0;
short_delay();
out_byte=out_byte*2;
}
dat=0;
}
//***接收***
unsigned char receive_byte(void)
{
unsigned char i, in_byte;
dat=1; //设为输入状态
//long_delay();
for (i=0;i<8;i++)
{
clk=1;
short_delay();
in_byte=in_byte*2;
if (dat)
{in_byte=in_byte|0x01;}
clk=0;
short_delay();
}
dat=0;
return (in_byte);
}
//***长延时***
void long_delay(void)
{
unsigned char i;
for (i=0;i<0x30;i++);
}
//***短延时***
void short_delay(void)
{
unsigned char i;
for (i=0;i<8;i++);
}
// ********************* 延时n*10ms **********************
void delay10ms(unsigned char time)
{
unsigned char i;
unsigned int j;
for (i=0;i<time;i++)
{
for(j=0;j<0x390;j++)
{
//if (!key)
//{
;
//}
}
}
}
//中断处理
/*void time0(void) interrupt 1
{ uint k;
//TH0=0xf8;
//TL0=0x2f; //设定时每隔1ms中断一次
zz=0;
// fz=1;
for(k=mk;k>0;k--)
{}
zz=1;
}
void time1(void) interrupt 3
{ uint j;
fz=0;
for(j=mk;j>0; j--)
{}
fz=1;
} */
//***主程序***
main()
{
uchar i;
RES=0;
RES=1;
mk=10;
count = 0;
step_index = 0;
spcount = 0;
stop_flag = 0;
EA = 1; //允许CPU中断
TMOD = 0x11; //设定时器0和1为16位模式1
ET0 = 1; //定时器0中断允许
TH0 = 0xFE;
TL0 = 0x0C; //设定时每隔0.5ms中断一次
TR0 = 1; //开始计数
while(1){
PSB=1 ;
RW=0;
lcdreset(); //初始化LCD屏
lcdwc(0x01);
delay(100);
//lcdfill(0xff);
// delay(500);
// lcdfill(0);
// lcdwc(0x01);
// delay(1000);
hzklib();
delay(1000);
// lcdwc(0x01);
// delay(1000);
// Disp_img(logo); //显示湘灵电子LOGO
// delay(4000);
// lcdwc(0x01);
// delay(1000);
// wait_cnter=0x30000;
for (tmr=0;tmr<0x2000;tmr++); //上电延时
send_byte(CMD_RESET); // 复位HD7279A
wait_cnter=0;
//key_number=0xff;
i=0;
do
{
if (!key) //如果有键按下
{
key_number=read7279(0x15);//读出键码
lcdwshu(key_number);
switch(key_number)
{
case 0x0a: speedlevel = 250;
delay1(100);
break;
case 0x0b: speedlevel =20;
delay1(10000);
break;
case 0x0c: stop_flag=1;
delay1(1000);
break;
case 0x0d: stop_flag=0;
delay1(1000);
}
}
}
while (!key);
}
}
/* if (key_number==0x0b)
{ unsigned int l;
l=0;
while(l<=40)
{
AA = 0;
BB = 0;
CC = 0;
DD = 0;
// delay1(speedlevel);
gorun1(20);
// gorun(0,20);
l++;
}
}
if(key_number==0x0a)
{
unsigned int l;
l=0;
while(l<=12)
{
AA = 0;
BB = 0;
CC = 0;
DD = 0;
// delay1(speedlevel);
gorun(100);
// gorun(0,20);
l++;
}
}
// while (!key);
if(key_number==0x0c)
{
gorun2();
// for (tmr=0;tmr<0x2000;tmr++); //上电延时
//send_byte(CMD_RESET); // 复位HD7279A
// continue;
}
while (!key);
/* if(key_number==0x03)
{
mk=mk+1;}
if(mk>=25)
{mk=5;} */
//lcdwshu(key_number);
/* while (!key); //等待按键放开
/* if (!key) //如果有键按下
{
key_number=read7279(0x15);//读出键码
lcdwshu(key_number);
/* if (key_number==0x0f)
{ unsigned int l;
l=0;
while(l<=40)
{
AA = 0;
BB = 0;
CC = 0;
DD = 0;
// delay1(speedlevel);
gorun(20);
// gorun(0,20);
l++;
}
} */
/* if(key_number==0x01)
{
ET0=0;
TR0=0;
ET1=1;
TR1=1;
// for (tmr=0;tmr<0x2000;tmr++); //上电延时
//send_byte(CMD_RESET); // 复位HD7279A
}
/*if(key_number==0x02)
{
ET1=0;
TR1=0;
ET0=1;
TR0=1;
// for (tmr=0;tmr<0x2000;tmr++); //上电延时
//send_byte(CMD_RESET); // 复位HD7279A
}
if(key_number==0x03)
{
mk=mk+1;}
if(mk>=25)
{mk=5;} */
//lcdwshu(key_number);
/* while (!key); //等待按键放开
// wait_cnter=0;
}
//wait_cnter++;
/*if (key_number==0x0e)
{
AA = 0;
BB = 0;
CC = 0;
DD = 0;
} */
/*}
}
// while (wait_cnter<0x6000);
}
} */
//定时器0中断处理
void timeint(void) interrupt 1
{
TH0=0xFE;
TL0=0x0C; //设定时每隔0.5ms中断一次
count++;
spcount--;
if(spcount<=0)
{
spcount = speedlevel;
gorun();
}
}
void delay1(unsigned int endcount)
{
count=0;
do{}while(count<endcount);
}
void gorun()
{
if (stop_flag==1)
{
AA = 0;
BB = 0;
CC = 0;
DD = 0;
return;
}
switch(step_index)
{
case 0: //0
AA = 1;
BB = 0;
CC = 0;
DD = 0;
break;
case 1: //0、1
AA = 1;
BB = 1;
CC = 0;
DD = 0;
break;
case 2: //1
AA = 0;
BB = 1;
CC = 0;
DD = 0;
break;
case 3: //1、2
AA = 0;
BB = 1;
CC = 1;
DD = 0;
break;
case 4: //2
AA = 0;
BB = 0;
CC = 1;
DD = 0;
break;
case 5: //2、3
AA = 0;
BB = 0;
CC = 1;
DD = 1;
break;
case 6: //3
AA = 0;
BB = 0;
CC = 0;
DD = 1;
break;
case 7: //3、0
AA = 1;
BB = 0;
CC = 0;
DD = 1;
}
if (turn==0)
{
step_index++;
if (step_index>7)
step_index=0;
}
else
{
step_index--;
if (step_index<0)
step_index=7;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -