IC解密MFRC522 IC卡号识别单片机通信程序
IC解密#include "STC8xxxx.H"//<STC8G.h>
#include "Config.H"
#define uchar unsigned char
#define uint unsigned int
sbit JDQ=P5^4; //继电器(高电平充电,低电平不充电)
sbit KEY1 = P3^0;
sbit KEY2 = P3^1;
sbit RED_flash=P5^5; //充电中指示灯闪烁
enum {OFF = 1, ON = 0};
enum {JDQ_OFF = 0, JDQ_ON = 1};
void key();
bit delay_OnOff=1; //延时上电和延时断电选择位,开机检查Key1设置此位,0表示延时上电,1表示延时断电。
uchar i;
uint t = 0; //按键计数变量
uint k = 0; //计时计数变量
uint m = 0; //闪烁计数变量
uint T0_flag = 0; //定时器运行后不为0
void LED_Init() //状态指示灯检测 初始化
{
RED_flash=ON;
Delay_ms(300);
RED_flash=OFF;
}
/******定时器0初始化,12T自动重装模式,定时60毫秒******/
void InitTimer0() //60ms定时器
{
TMOD = 0x01;
TH0=(65536-60000)/256;
TL0=(65536-60000)%256;
EA = 1; //开 总中断
ET0 = 1; //开 定时器T0中断
// TR0 = 1; //开启 定时器T0
}
/*--------------------------主函数------------------------------*/
void main()
{
P3M0 = 0x00;
P3M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
delay_OnOff=KEY1; //延时断电或延时上电选择。0:延时上电,1:延时断电。先长按KEY1不松再通电有效
JDQ = JDQ_OFF; //关闭继电器,等待开始充电。
LED_Init(); //状态指示灯检测 初始化
Light_Level_Set(4); //设置亮度等级1-8级
for(i=0;i<10;i++) //测试显示屏
{
AiP650_DisPlay(1,i);
AiP650_DisPlay(2,i);
AiP650_DisPlay(3,i);
AiP650_DisPlay(4,i);
Delay_ms(400);
}
// i=0;
AiP650_CLR();
Delay_ms(500);
InitTimer0(); //定时器初始化
TR0 = 0; //关闭 定时器T0
t=0; //上电默认充电时间
while(1)
{
key(); //循环按键函数
AiP650_DisPlayFourNum(t); //显示数字
if(delay_OnOff==1) //延时断电模式,定时充电未启动
{
if(t==0)
{
JDQ = JDQ_OFF; //断开继电器,停止充电
TR0 = 0; //停止定时器
RED_flash=OFF;
}
else
{
TR0 = 1; //启动定时器
JDQ = JDQ_ON;
}
}

芯片解密