IC解密LCD1602液晶版本 单片机程序
IC解密主要区别的核心代码:
IC解密#include "HS595.h"
unsigned char HS595_data; //HS595的输出数据
/*
0位 RS
1位 RW
2位 E
3位 D4
4位 D5
5位 D6
6位 D7
*/
//向HC595发送串行数据
void HC595SendData(unsigned char SendVal)
{
unsigned char i;
HS595_ST_CP=0; //停止输出
for(i=0; i<8; i++)
{
if((SendVal<<i)&0x80) //0X80 最高位与SendVal左移的最高位 进行逻辑运算
HS595_DS=1; //如果为真 HS595_DS= 1
else
HS595_DS=0; //如果为假 HS595_DS= 0
//产生数据移位信号
HS595_SH_CP=0;
_nop_(); //短暂延时产生一定宽度的脉冲信号
_nop_(); //短暂延时
HS595_SH_CP=1;
}
//产生数据输出信号
_nop_(); //短暂延时
_nop_(); //短暂延时
_nop_();
HS595_ST_CP=1; //总体输出
}
void SetRS(bit state)
{
if(state)
{
HS595_data|=0x01; //置1
} else
{
HS595_data&=0xFE; //置0
}
}
void SetRW(bit state)
{
if(state)
{
HS595_data|=0x02; //置1
} else
{
HS595_data&=0xFD; //置0
}
}
void SetE(bit state)
{
if(state)
{
HS595_data|=0x04; //置1
} else
{
HS595_data&=0xFB; //置0
}
}

芯片解密