文章分类

当前位置:首页>技术文章>PIC16C54单片机原理及应用

PIC16C54单片机原理及应用

美国 Microchip 公司推出的 PIC 系列 8 位单片机是业界率先采用精简指令集计算机(RISC-Reduced Instruction Set Computer)结构,具有高性价比的嵌入式控制器。PIC 系列单片机具有高速度,低工作电压,较大的输入输出直接驱动能力(可直接驱动 LED 负载),低价一次性编程(OTP-One Time Programmable)技术,低功耗,小体积等优点。 PIC16C5X 系列是 PIC 系列的基础级产品,现在,介绍该系列的典型芯片 PIC16C54。一、PIC16C54 概述:

1)结构图: PIC16C54 主要资源:* 512×12 位 EPROM* 25 字节通用 RAM* 12 根双向 I/O 线* TMR0 定时器/计数器* 上电复位 POR 电路* 复位定时器* 自振式看门狗 WDT.2)指令周期:PIC16C54 采用 8 位宽的数据总线和 12 位宽指令总线相互独立的哈佛(Harvard)结构,与其它一些单片机相比,程序代码更加紧凑,指令执行速度更快。图(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 放电产生的大电流,保护芯片。 程序清单: ORG 0START 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 ;睡眠


© 星光电子技术工作室 2021 All Rights Reserved.
如有任何问题、建议、业务、合作,请联系手机/微信:13713820066