低功耗方式Sleep,通过执行一条睡眠指令就进入低功耗方式。如果使能,MDT将被清0,但仍保持运行。TO(STUATUS<4>)位被置1,PD位(STUATUS<3>)被清0,振荡器驱动器被停止。所有I/O端口保持Sleep指令执行前它们所有的状态(驱动高、驱动低或高阻)。 在这种方式时为使电流消耗最低,把所有的I/O引脚放在VDD或VSS电平上,以保证外部电路从I/O引脚、低功耗的A/D、不使能的外部时钟中拉出电流。为使电流消耗最低,TOCK1输入电平应该在VDD或VSS上。 1.睡眠唤醒 单片机通过下列事件之一唤醒睡眠: · 在MCLR引脚上的外部复位输入; 在显示/光电技术中,LCD显示接口模块的程序设计是一个至关重要的环节,它涉及到低功耗操作、唤醒机制以及单片机的中断处理等多个方面。本文将深入探讨这些关键知识点。 低功耗方式(Sleep)是为降低电流消耗而设计的一种工作模式。在执行Sleep指令后,微控制器(MCU)进入低功耗状态,MDT被清零,但依然保持运行。此时,TO(STUATUS<4>)位置1,表示处于睡眠状态,而PD位(STUATUS<3>)被清0,意味着振荡器驱动器被停止。在Sleep模式下,所有I/O端口维持其执行Sleep指令前的状态,可以是驱动高、驱动低或高阻态。为了最小化电流消耗,应将所有I/O引脚设置为VDD或VSS电平,确保外部电路不会从这些引脚、低功耗的A/D转换器或未启用的外部时钟中抽取电流。同时,TOCK1输入电平应保持在VDD或VSS,以达到最佳的电流节省效果。 睡眠唤醒机制是单片机从Sleep模式恢复到正常运行的关键。MCU可以通过以下几种事件之一被唤醒: 1. MCLR引脚上的外部复位输入; 2. 监视定时器(Watchdog Timer, WDT)如果被使能,超时后会唤醒单片机; 3. INT引脚中断、RB端口变化中断以及其他的外部中断。 具体的外部中断源包括:PSP读写操作、TMR1中断(需配置为异步计数器)、捕获方式中断、特殊事件触发器(如TIMER1使用外部时钟异步方式)、SSP(SPI)的START/STOP位探测中断、SSP在主从模式下的发送和接收、USART的RX或TX(同步从模式)、A/D转换(当A/D时钟源为RC时)、E2PROM写操作完成等。 在Sleep模式期间,由于无片内时钟,只有特定的外部事件能引发中断。执行Sleep指令时,下一条指令(PC+1)会被预取。若通过中断事件唤醒,中断使能位会被置1,且唤醒过程不受全局中断使能位(GIE)状态的影响。如果GIE位清0,则单片机会连续执行指令。如果GIE置1,单片机会执行指令后跳转至中断服务子程序地址(0004h)。为了防止执行Sleep指令后的指令,用户可添加NOP指令。 中断处理的注意事项包括:在Sleep指令执行前发生的中断会导致Sleep指令被视为NOP,不重置WDT和其分频器,TD位不置1,PD位不清0。而执行Sleep指令期间或之后发生的中断则会立即唤醒单片机,并重置相关寄存器。 此外,内部电路调试器功能在DEBUG位编程为0时被启用,允许在MPLAB环境中进行简易的调试,但可能会影响某些资源的使用。为了使用内部电路调试器,设计中需要实现内部电路串行编程,连接MCLR/VPP、VDD、GND、R87和RB6引脚。 程序验证和代码保护功能允许在未编程代码保护位的情况下读取片内程序存储器进行验证。4个ID存储单元用于存储识别码,通常建议使用低4位。内部电路串行编程(ICSP)则允许通过两根时钟线和数据线对微处理器进行简单编程,即使在应用电路中也能实现。 总结来说,LCD显示接口模块的程序设计涉及单片机的低功耗策略、中断处理、睡眠与唤醒机制,以及内部调试和代码保护功能,这些是实现高效、节能且安全的显示系统设计的基础。理解和掌握这些知识点对于优化硬件性能和提高系统可靠性至关重要。
- 粉丝: 4
- 资源: 950
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助