📄 main.c
字号:
#include "reg51.h"
bit Read_Test(unsigned char);
void delay(unsigned int);
void Led_Show(unsigned char,bit );
unsigned char Read_Key(unsigned char *,unsigned char *);
void Process(void);
bit I2c_Read(unsigned char,unsigned char);
bit I2c_Write(unsigned char,unsigned char);
unsigned char data intr[6];
unsigned char error = 0;
unsigned char old_data = 0,pc = 0,key;
void main()
{
// unsigned char key;
// unsigned char in_data = 0, old_data = 0, pc = 0,old_pc = 0;
unsigned char in_data = 0;
unsigned char old_pc = 0;
bit b = 0,old_b = 0;
I2c_Read(pc,1);
old_data = in_data = intr[0];
Led_Show(in_data,0);
while(1)
{
key = Read_Key(&in_data,&pc);
b = key & 0xf0 ? 1:0;
switch (key){
case 0x00: if (old_data != in_data || old_b != b )
{
if (old_b != b)
{
I2c_Read(pc,1);
in_data = intr[0];
}
old_b = b;
old_data = in_data;
Led_Show(in_data,0);
}
break;
case 0x01: Led_Show(in_data,0); break;
case 0x02: Led_Show(in_data,0); break;
case 0x03: if (I2c_Write(pc,in_data) == 0) // test Wri == 0
{
pc += 1;
Led_Show(pc,1);
while(Read_Key(&key,&pc) == 03) ;
old_b = 1;
}
else
while(1) Led_Show(0xee,1);
break;
case 0x10:
case 0x11:
case 0x12: if (old_pc != pc || old_b != b)
{
old_b = b;
old_pc = pc;
Led_Show(pc,1);
I2c_Read(pc,1);
in_data = intr[0];
}
break;
case 0x13: Process(); // test DA == 0 and Wri == 0
default: ;
}
}
}
void delay(unsigned int count)
{
unsigned int i;
unsigned char j;
for (i = 0;i < count;i++)
for (j = 0;j < 100;j++)
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -