图2如图2所示,从引脚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:振荡信号输出端二.应用实例如图4所示,PIC16C54芯片处于睡眠状态,当任一按键按下,将唤醒PIC16C54进行键盘处理。本例中,按下SW1,点亮绿灯,按下SW2,点亮红灯。进入睡眠时,应将键扫描输出线SCAN1,SCAN2置为低电平,进入睡眠后,电容C被充分充电,使MCLR保持高电平。当有按键按下时,电容C经电阻R2或R3放电,其两端电压迅速下降(下降时间约为1ms),从而使MCLR下拉为低电平,进入复位。唤醒PIC16C54的复位时间(大约为18ms),也应更小于键按下的最小时间(大约为50-100ms)。每次扫描即SCAN1,SCAN2为低电平的时间大约为10ms,当键处理程序完成后,程序对键盘循环扫描直至键释放,然后将SCAN1,SCNA2输出置为低电平,单片机重新进入睡眠。图中所示的电阻R4-R8用来防止电容C放电产生的大电流,保护芯片。
图4程序清单:ORG0STARTCALL INIT_PORT_B;初始化B口CALL DELAY;延时CALL SCAN_KEYS;键盘扫描MOVWF GP;W->GPBTFSC GP,SW1;按键SW1按下?BCF PORTB,GRN_LED;点亮绿灯BTFSC GP,SW2;按键SW2按下?BCF PORTB,RED_LED;点亮红灯CHK_FOR_KEYCALL DELAY;延时CALL SCAN_KEYS;键盘扫描XORLW0;键释放GO TO CHK_FOR_KEY;继续扫描NO_KEY_PRESSEDBCF PORTB,SCAN1;置SCAN1为低电平BCF PORTB,SCAN2;置SCAN2为低电平SLEEP;睡眠
| 欢迎光临 美丽的网站-英华家电维修论坛 (http://www.bsss.info/) | Powered by Discuz! X3.2 |