IC解密CPLD作为并行接口
1、IC解密功能描述
单片机的P0、P1和P2与CPLD各引脚相连,本例是将CPLD作为一个并行接口,读出各引脚的数据并在CPLD的显示器上显示出来。使用单片机智能模块中的Up和Down键,分别按下这两个键可使预定的数据增加或减少,该数据显示在智能模块的LED显示器上,同时送往P0和P1口。
CPLD读出与P0和P1口相连的引脚的状态,以十六进制的格式显示在CPLD模块的四位显示器上。
2IC解密、单片机程序
/***************************************************************
;* 单片机教程网
;* IC解密
;* 定时中断实现显示的程序
;* 按Up键加1,按Down键减1
;* 数据同时输出到P0和P1口
***************************************************************/
#include <intrins.h>
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar Xnjz; //虚拟键值
uint Data=100;
sbit KeyShift=P3^5; //移位键
sbit KeyUp=P3^6; //Up键
sbit KeyDown=P3^7; //Down键
uchar code BitTab[]={0x01,0x02,0x04,0x08,0x10,0x20};
uchar code DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
uchar Count=0; //计数器,显示程序通过它得知现正显示哪个数码管
uchar DispBuf[6]={1,2,3,4,5,6}; //6字节的显示缓冲区
#define Hidden 0x10; //消隐码
////定义引脚
sbit Dat=P3^2; //
sbit Clk=P3^3;
sbit RCK=P3^4; //
/* 发送往显示 */
void SendData(unsigned char SendDat)
{ unsigned char i;
for(i=0;i<8;i++)
{ if((SendDat&0x80)==0)
Dat=0;
else
Dat=1;
_nop_();
Clk=0;
_nop_();
Clk=1;
SendDat=SendDat<<1;
}
}

芯片解密