📄 m8.c
字号:
//www.yc51dpj.com
//2008年04月20号
#include <mega8.h>
#include <delay.h>
#define suo 225 //255-250=5,5就是可以成功操纵的次数
unsigned int ss;
unsigned char sycs,spi_data=128,n=10,shenying=1,shenying1=1;
unsigned char ASC2[]={192,249,164,176,153,146,130,248,128,144,191,255,163,142};//数码管显示的代码
eeprom unsigned char cs=255,xuansu=255,data_fs=0;
//*********************************************
void Display(unsigned char i)
{
PORTD=ASC2[i];
delay_ms(1);
}
//*********************************************
void key(void)
{
if(PINC.0==0)
{
xuansu--;
if(xuansu<=250)xuansu=254;
if(xuansu==254)data_fs=0;
if(xuansu==253)data_fs=1;
if(xuansu==252)data_fs=2;
if(xuansu==251)data_fs=3;
while(PINC.0==0){Display(data_fs);}
}
}
//*********************************************
void sy(void)
{
if(shenying==1)
{PORTB.0=0;
delay_ms(500);
PORTB.0=1;
delay_ms(200);
PORTB.0=0;
delay_ms(50);
PORTB.0=1;
delay_ms(50);
PORTB.0=0;
delay_ms(50);
PORTB.0=1;
shenying=0;} //滴一声
}
//*********************************************
void sy1(void)
{unsigned char j;
if(shenying1==1)
for(j=0;j<sycs;j++)
{PORTB.0=0;
delay_ms(400);
PORTB.0=1;
delay_ms(400);
}
shenying1=0;//滴一声
}
//*********************************************
void main(void)
{
DDRD= 0b11111111;PORTD=0b11111111;
DDRC= 0b00001111;PORTC=0b11111111;
DDRB= 0b11111101;PORTB=0b11100011;
if(!(cs<=suo))PORTB.5=0;
if(data_fs==0){PORTB.3=0;PORTB.4=0;}
if(data_fs==1){PORTB.3=0;PORTB.4=1;}
if(data_fs==2){PORTB.3=1;PORTB.4=0;}
if(data_fs==3){PORTB.3=1;PORTB.4=1;}
while(n)
{
if( n<=0)n=10;
n--;
Display(n);
delay_ms(200);
}
//*********************************************
while (1)
{
n=10;
Display(n);
delay_ms(50);
if(spi_data&&128)
{
sy();
if(PINC.0==0)
while(cs)
{
while(cs<=suo)
{Display(12);delay_ms(300); //如果到了使用次数就显示OFF
Display(11);delay_ms(300);
Display(13);delay_ms(300);
Display(11);delay_ms(300);
Display(13);delay_ms(300);
Display(11);delay_ms(600);
}
key();
ss++;
if(ss>=300)
Display(data_fs);
else Display(11);
if(ss>=600)ss=0;
if(PINC.1==0)
{cs--; sycs=cs-suo;
while(PINC.1==0){Display(data_fs);}
while(1)
{
if(data_fs==0){PORTB.3=0;PORTB.4=0;}
if(data_fs==1){PORTB.3=0;PORTB.4=1;}
if(data_fs==2){PORTB.3=1;PORTB.4=0;}
if(data_fs==3){PORTB.3=1;PORTB.4=1;}
Display(data_fs);
sy1();
}
}
}
}
} //while
}//end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -