反向技术
研究基地

当前位置:首页 > 技术支持与下载 > IC芯片解密

IC解密技术:PIC16C54单片机内部原理及其快速解密

更新时间:2015-12-21 09:11:33  点击次数:1321次 打印
PIC16C54单片机是MICROCHIP公司推出的具有精简指令集高性能8位单片机,其优点是引脚少,性能优越,可直接带LED负载,具有低功耗省电模式,可广泛应用于复杂程度较低的场合。

PIC16C54单片机是MICROCHIP公司推出的具有精简指令集高性能8位单片机,其优点是引脚少,性能优越,可直接带LED负载,具有低功耗省电模式,可广泛应用于复杂程度较低的场合。

一、PIC16C54概述:

1)结构图:

PIC16C54主要资源:

* 512×12位EPROM

* 25字节通用RAM

* 12根双向I/O线

* TMR0定时器/计数器

* 上电复位POR电路

* 复位定时器

* 自振式看门狗WDT.

2)指令周期:

PIC16C54采用8位宽的数据总线和12位宽指令总线相互独立的哈佛(Harvard)结构,与其它一些单片机相比,程序代码更加紧凑,指令执行速度更快。从引脚OSC1输入或振荡电路产生的时钟信号在内部经四分频产生四个不重叠的时钟 Q1,Q2,Q3,Q4。程序计数器PC在每个Q1节拍间加1,指令在Q4节拍从程序存储器中取出并锁存于指令寄存器中,在下一指令周期被译码并执行。因此,在程序执行过程中,取指令与执行指令可重迭进行,即当一条指令被执行时,下一条指令已从程序存储器中读出。

3)引脚功能说明

RA0-RA3:可位控4位双向I/O口,输入为TTL电平

RB0-RB7:可位控8位双向I/O口,输入为TTL电平

TOCKI:定时器/计数器TMR0的外部触发计数信号输入端。软件定义TMR0为计数器时,此引脚上的信号上升沿或下降沿用于计数,可通过软件设置OPTION寄存器相应的控制位选择触发边沿,当TMR0为内部时钟源时,该引脚当接VDD或VSS,以减少功耗。

MCLR:当为低电平时,单片机复位

VSS:地端

VDD:电源电压

OSC1:振荡信号输入端

OSC2:振荡信号输出端

二、应用实例

PIC16C54芯片处于睡眠状态,当任一按键按下,将唤醒PIC16C54进行键盘处理。按下SW1,点亮绿灯,按下SW2,点亮红灯。进入睡眠时,应将键扫描输出线SCAN1,SCAN2置为低电平,进入睡眠后,电容C被充分充电,使MCLR保持高电平。当有按键按下时,电容C经电阻 R2或R3放电,其两端电压迅速下降(下降时间约为1ms),从而使MCLR下拉为低电平,进入复位。唤醒PIC16C54的复位时间(大约为 18ms),也应更小于键按下的最小时间(大约为50-100ms)。每次扫描即SCAN1,SCAN2为低电平的时间大约为10ms,当键处理程序完成后,程序对键盘循环扫描直至键释放,然后将SCAN1,SCNA2输出置为低电平,单片机重新进入睡眠。

程序清单:  ORG 0   START CALL INIT_PORT_B ;初始化B口  CALL DELAY ;延时  CALL SCAN_KEYS ;键盘扫描  MOVWF GP ;W->GP   BTFSC GP,SW1 ;按键SW1按下  BCF PORTB,GRN_LED ;点亮绿灯  BTFSC GP,SW2 ;按键SW2按下?  BCF PORTB,RED_LED ;点亮红灯  CHK_FOR_KEY CALL DELAY ;延时  CALL SCAN_KEYS ;键盘扫描  XORLW 0 ;键释放  GO TO CHK_FOR_KEY ;继续扫描  NO_KEY_PRESSED BCF PORTB,SCAN1 ;置SCAN1为低电平  BCF PORTB,SCAN2 ;置SCAN2为低电平  SLEEP ;睡眠

(编辑:admin)