📄 at2402.c
字号:
_nop_();
_nop_();
_nop_();
_nop_();
SCL = 0;
write_data <<= 1;
}
SDA = 1; // 读取应答
_nop_();
_nop_();
SCL = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ack_bit = SDA;
SCL = 0;
return ack_bit; // 返回AT24Cxx应答位
}
void write_byte(unsigned char addr, unsigned char write_data)
// 在指定地址addr处写入数据write_data
{
start();
shout(OP_WRITE);
shout(addr);
shout(write_data);
stop();
delay_1ms(10); // 写入周期
}
unsigned char read_current()
// 在当前地址读取
{
unsigned char read_data;
start();
shout(OP_READ);
read_data = shin();
stop();
return read_data;
}
unsigned char read_random(unsigned char random_addr)
// 在指定地址读取
{
start();
shout(OP_WRITE);
shout(random_addr);
return(read_current());
}
void delay_1ms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
unsigned char key_scan()
{
unsigned char key_number;
key_number=0x00;
key_number|=k1;
key_number<<=1;
key_number|=k2;
key_number<<=1;
key_number|=k3;
key_number<<=1;
key_number|=k4;
return(key_number);
}
void timer_disp()interrupt 1 using 1
{
TR0=0;
TH0=0xfc;
TL0=0x78;
P0=0xff;
P2=0xff;
++disp_bit;
if(flash_bit)
{
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
}
else
{
if(++flash_500ms==150)
{
flash_cpl=~flash_cpl;
flash_500ms=0x00;
}
if(flash_cpl)
{
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
}
else
{
switch(flash_number_bit)
{
case 1:
switch(disp_bit)
{
case 1:
P0=0xff;
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 2:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=0xff;
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 3:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=0xff;
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 4:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=0xff;
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 5:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=0xff;
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 6:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=0xff;
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 7:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=0xff;
disp_bit6=0;
break;
case 8:
P0=disp_code[eeprom_data[7]];
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
case 8:
switch(disp_bit)
{
case 1:
P0=disp_code[eeprom_data[0]];
disp_bit0=0;
break;
case 2:
P0=disp_code[eeprom_data[1]];
disp_bit1=0;
break;
case 3:
P0=disp_code[eeprom_data[2]];
disp_bit2=0;
break;
case 4:
P0=disp_code[eeprom_data[3]];
disp_bit3=0;
break;
case 5:
P0=disp_code[eeprom_data[4]];
disp_bit4=0;
break;
case 6:
P0=disp_code[eeprom_data[5]];
disp_bit5=0;
break;
case 7:
P0=disp_code[eeprom_data[6]];
disp_bit6=0;
break;
case 8:
P0=0xff;
disp_bit7=0;
disp_bit=0x00;
break;
default:break;
}
break;
default:break;
}
}
}
TR0=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -