[工学]第6章51 lpc系列单片机芯片_第1页
[工学]第6章51 lpc系列单片机芯片_第2页
[工学]第6章51 lpc系列单片机芯片_第3页
[工学]第6章51 lpc系列单片机芯片_第4页
[工学]第6章51 lpc系列单片机芯片_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 6章 51 LPC系列单片机芯片,6.1 内部结构和引脚功能6.2 I/O端口输出模式 6.3 键盘中断功能 6.4 模拟比较器 6.5 定时/计数器新增功能 6.6 时钟及复位电路 6.7 电源管理及复位电路 6.8 看门狗定时器 6.9 中断控制系统 6.10 硬件配置信息 6.11 A/D与D/A转换器,表6-1 P87LPC76X系列芯片的主要性能指标,6.1 内部结构和引脚功能,6.1.1 内部结构,图6-1 P87LPC76X内部结构,图6-2 存储器地址空间分配,在P87LPC76X中,程序存储器容量为14 KB,占用了0000H03FFH。FCE0HFCFFH之间的32字节存储空间是用户代码区,可用于存放产品系列号、产生日期等信息,编程时随程序代码一起写入片内的OTP ROM存储器,例如:ORG FCE0HDB 31H,32H,33H,34H,35H,36H; 在FCE0H处放置了31H、32H、33H、34H、35H、; 36H(即ASCII的123456)作为产品的系列号 这32字节信息可通过“MOVC A, A+DPTR”指令读出。,6.1.2 引脚排列,图6-3 P87LPC76X系列DIP封装引脚排列,图6-3 P87LPC76X系列DIP封装引脚排列,表6-2 DIP封装P87LPC762/4引脚功能描述,表6-2 DIP封装P87LPC762/4引脚功能描述,可见: P87LPC759、P87LPC760、P87LPC761引脚兼容,即P87LPC760 (14引脚封装)是P87LPC761 (16引脚封装)的简化版(少了一个模拟比较,没有P0.0、P0.1两根引脚),而P87LPC759(14引脚封装)又是P87LPC760的简化版(没有模拟比较器、I 2C总线和串行接口;内部RAM容量只有64字节)。 P87LPC762/4引脚完全兼容,实际上P87LPC762与P87LPC764之间只是OTP ROM容量不同(P87LPC762程序存储器容量为2 KB,而P87LPC764程序存储器容量为4 KB)。,P87LPC762/4/7/8/9引脚也兼容,实际上P87LPC767硬件资源比基本型P87LPC764只多了4通道8位A/D转换器;而P87LPC768比P87LPC767多了4路10位PWM脉宽调制输出; P87LPC769比P87LPC767多了两路8位DAC转换器。因此了解 基本型P87LPC762/4的硬件资源、使用方法也就基本掌握了P87LPC76X系列硬件特征、使用规则。因此,本章主要介绍762/764硬件资源和使用方法。,6.1.3 特殊功能寄存器,表6-3 P87LPC762/4特殊功能寄存器,表6-3 P87LPC762/4特殊功能寄存器,表6-3 P87LPC762/4特殊功能寄存器,6.2 I/O端口输出模式,表6-4 I/O引脚输出方式与输出模式控制寄存器位对应关系,6.2.1 准双向输出结构,图6-4 准双向输出结构,6.2.2 漏极开路输出结构,图6-5 漏极开路输出结构,图6-6 上拉输出结构,6.2.3 上拉(互补推挽)输出结构,6.2.4 输入方式,图6-7 P2M1寄存器各位含义,6.3 键盘中断功能,图6-8 键盘中断控制,例如,键盘中断KBI寄存器内容为00000111B,且P0.0、P0.1、P0.2引脚被定义为准双向输入方式,则当P0.0、P0.1、P0.2之一为低电平时,或门输出高电平,如果中断允许寄存器IEN1的EKB(键盘中断允许)位为1,键盘中断标志KBF置位。如果中断开放(EA为1)并满足中断响应条件,将进入键盘中断服务程序(入口地址为003BH)。,【例6.1】 某应用系统键盘接口电路如图6-9所示,写出中断监控方式下的键盘监控程序(键码存放在30H单元中,当有按键被按下时,按键编码存放在30H单元)。,; -键盘接口初始化-MOV A, P0M1ANL A,#01111000BMOV P0M1,A; 将P0M1的b7、b2、b1、b0位清零MOV A, P0M2ANL A,#01111000BMOV P0M2,A; 将P0M2的b7、b2、b1、b0位清零; 使P0.0、P0.1、P0.2、P0.7引脚处于准双向输出(以便利用上拉电阻),MOV A, P2M1ORL A, #00100000B; 为了提高抗干扰能力,避免减少按键抖动造成的干扰,P0口采用施密特; 输入MOV P2M1, ASETB P0.0SETB P0.1SETB P0.2SETB P0.7; 使P0.0、P0.1、P0.2、P0.7位锁存器为1,即处于输入状态SETB EKB; 允许键盘中断SETB EA; 开中断; 根据需要设置中断优先级,ORG 003BHLJMP KBIN; 键盘中断服务程序入口地址; -键盘中断服务程序-PROC KBINKBIN:MOV 30H, #55H; 无按键标志55H送30H单元LCALL DELAY10ms; 延迟10 msMOV A, P0; 读P0口ANL A, #10000111B; 屏蔽无关位XRL A, #10000111BJZ RETURN; 为0,说明本次按键输入无效,退出; 判别哪一按键被按下,MOV C, P0.0JC K1MOV 30H, 00H; 如果P0.0引脚为0,则说明是K0键有输入SJMP EXITK1:MOV C, P0.1JC K2MOV 30H, 01H; 如果P0.1引脚为0,则说明是K1键有输入SJMP EXITK2:MOV C, P0.2JC K3MOV 30H, 02H; 如果P0.2引脚为0,则说明是K2键有输入SJMP EXIT,K3:MOV C, P0.7JC RETURN ; P0.0P0.2、P0.7均为高电平,按键输入无效MOV 30H, 03H ; 如果P0.7引脚为0,则说明是K3键有输入EXIT:MOV A, P0ANL A, #10000111B; 屏蔽无关位XRL A, #10000111BJNZ EXIT; 不为0,说明按键未释放,循环等待RETURN:MOV A, #AUXR1ANL A, #01111111BMOV AUXR1, A; 清除中断标志KBFRETI; 返回 END,6.4 模拟比较器,6.4.1 比较器结构,图6-10 模拟比较器,图6-11 比较器控制寄存器CMPn各位含义,表6-5 比较器8种连接方式,6.4.2 比较器初始化 比较器属于模拟电路,为了获得精确结果,在启动比较器前应先禁止引脚的数字输入/输出功能;启动后必须延迟10 s,待比较器输出稳定后方可读取比较结果。 下面是比较器初始化特例:假设待比较信号从CIN1A(P0.4)引脚输入,接比较器1正向输入端,参考电压为Vref (1.23 V),比较结果输出到CMP1(P0.6)引脚,当比较器结果发生变化时产生中断。,MOV A, PT0AD ORL A, #00010000BMOV PT0AD,A; 禁止CIN1A(P0.4)引脚数字输入功能MOV A, P0M1ORL A,#00010000BMOV P0M1,A; 将P0M1的b4位置1MOV A, P0M2ANL A,#11101111BMOV P0M2,A; 将P0M2的b4位清零。使CIN1A(P0.4)引脚仅为输入MOV CMP1, #00101100B; 启动比较器1,选择CIN1A引脚作为正向输入端;Vref 作为反向输入端;比较结果输出到CMP1引脚LCALL DELAY10U; 调用延迟程序,延迟10 s,等待比较结果ANL CMP1, #11111110B; 清除比较器1中断标志SETB EC1; 允许比较器1中断SETB EA; 开中断 RET; 返回,6.5 定时/计数器新增功能,图6-12 定时器T0方式1结构,图6-13 P87LPC759/760/761定时器T1结构(a) 方式0;(b) 方式1;(c) 方式2,6.6 时钟及复位电路,图6-14 P87LPC76X振荡器控制电路,图6-15 外部晶振连接,图6-16 外部时钟信号连接方式,6.7 电源管理及复位电路,6.7.1 掉电检测功能,掉电检测由下列寄存器位控制: AUXR1.6(BOD)允许/禁止掉电检测功能。当BOD=1时,禁止掉电检测功能(即掉电时既不复位,也不产生掉电中断);当BOD=0时,允许掉电检测。 AUXR1.5(BOI)掉电复位/中断选择。当BOI位置1时,禁止掉电复位,但允许掉电产生中断。,当AUXR1寄存器BOD、BOI位为01时,则电源电压下降到特定值时,不产生掉电复位信号,而是触发掉电中断。在这种情况下,BOD位含义也不再是“允许/禁止掉电检测”,而是作为掉电中断标志。但CPU是否查询掉电中断标志BOD,受掉电中断允许EBO(IE0.5)和中断开关EA控制。 此外,掉电发生时(无论是选择掉电复位还是掉电中断),PCON寄存器的掉电标志BOF置1。另外,上电时BOF也置1。,P87LPC76X系列掉电保护电压可通过位于EPROM存储器区内配置寄存器UCFG1的BOV位选择。未编程时,BOV=1,掉电保护电压为2.5 V(适合低电源电压,如2.74.0 V);当BOV=0时,掉电保护电压为3.8 V(适合电源电压大于4.0 V情况)。 为了保证CPU正确检测到掉电状态,VDD下降速率不得高于50 mV/s;为保证上电时CPU正确复位,VDD上升沿不得高于2 mV/s。可通过加大电源滤波电容容量,使VDD下降、上升速率变慢。,6.7.2 上电检测 上电检测与掉电检测类似,即首次上电时,当电源电压大于掉电保护电压时,PCON寄存器的上电标志POF置1。,6.7.3 空闲模式和掉电操作模式 当PCON寄存器的IDL置1时,即CPU进入空闲操作模式。任一中断发生或复位均可结束空闲模式。这与标准80C51空闲模式完全相同。 当PCON寄存器的PD位置1时,CPU进入掉电运行模式(与VDD下降掉电不同)。进入掉电操作模式后,CPU内振荡器停止工作(看门狗振荡器除外,只要电源电压VDD存在,看门狗振荡器就能继续工作)。复位或特定中断(参考表6-7)发生时,可使CPU退出掉电运行模式。,6.7.4 复位电路,图6-17 P87LPC76X系列复位源,图6-18 典型外部复位电路,6.8 看门狗定时器,图6-19 看门狗定时器结构,图6-20 WDTE为1时的内部结构,图6-21 WDTE为0时的内部结构,看门狗计数器是一个具有8个溢出输出端的20位计数器,由看门狗控制寄存器WDCON的WDS2WDS0位控制,例如当WDS2WDS0位为000时,8选1多路开关与13位计数器溢出端相连,计数长度为213,即8192个时钟;当WDS2WDS0位为001时,8选1多路开关与14位计数器溢出端相连,计数长度为214,即16384个时钟;依次类推,当WDS2WDS0位为111时,8选1多路开关与20位计数器溢出端相连,计数长度为220,即1048576个时钟。 由于RC振荡器输出时钟信号周期为1/500K(2 s),因此看门狗计数器溢出时间为2s8192周期2 s1 048 576周期,即16 ms2.1 s。,图6-22 看门狗控制寄存器WDCON各位含义,WDCLK看门狗计数脉冲选择。当WDTE为0(把看门狗计数器作为一个普通计数器使用,溢出时不输出看门狗复位信号,但看门狗中断标志有效)时,通过WDCLK位(相当于通用定时器的 位)选择看门狗计数脉冲的来源。当WDCLK为0时,计数脉冲来自看门狗RC振荡器;当WDCLK为1时,计数脉冲是CPU状态时钟,在6时钟/机器下,状态时钟频率为晶振频率的1/6,即看门狗计数器也是机器周期计数器。 但需要注意的是:当WDTE位为1(允许看门狗工作)时,计数脉冲一定来自RC振荡器,即当WDTE位为1时,WDCLK位强制为0。,但需要注意的是:当WDTE位为1(允许看门狗工作)时,计数脉冲一定来自RC振荡器,即当WDTE位为1时,WDCLK位强制为0。 WDRUN看门狗运行控制位。当WDTE为0(看门狗计数器是一个普通计数器)时,WDRUN是看门狗计数器运行/停止计数控制位。当WDRUN=0时,与门输出为0,即看门狗停止计数;当WDRUN=1时,与门解锁,处于允许计数状态。即当WDTE为0时,WDRUN位作用类似于定时器T0的启动控制位TR0。,注意:当WDTE为1(处于硬件看门狗工作方式)时,计数器总是处于允许计数状态,WDRUN没有意义,即WDRUN位被强制置1。 WDOVF看门狗溢出标志位。看门狗计数器溢出(无论WDTE为1还是0)时置位,复位(看门狗复位除外)或看门狗计数器被清零时,WDOVF位为0。,表6-6 看门狗定时器溢出时间,6.8.1 硬件看门狗状态,从图6-20中看出,只要WDTE位为1,复位后看门狗计数器即处于计数状态,且没有任何办法停止其计数,一旦溢出将迫使CPU复位。为了避免看门狗计数器溢出复位,必须在看门狗计数器溢出前顺序向看门狗复位寄存器WDRST写入立即数1EH和0E1H,使看门狗计数器清零:MOV WDRST, #1EHMOV WDRST, #0E1H; 看门狗计数器清零,同时清看门狗定时器溢出中断WDOVF 为防止CPU复位后,未完成WDCON控制寄存器初始化前,看门狗溢出。因此初始化WDCON寄存器前,先执行看门狗计数器清零操作,然后再初始化WDCON。,6.8.2 通用定时器方式,看门狗计数器溢出中断WDOVF有效时,CPU是否响应受看门狗中断允许EWD (IEN0.6)位、中断开关EA控制。中断服务程序入口地址为0053H。 通用定时器工作方式的看门狗初始化顺序为:MOV WDRST, #1EHMOV WDRST, #0E1H; 看门狗计数器清零,同时清看门狗定时器溢出中断WDOVF; 初始化看门狗中断的优先级别MOVWDCON, #XX; 初始化看门狗计数器计数长度、计数脉冲来源、启动计数; 允许看门狗中断、开中断,6.9 中断控制系统,图6-23 P87LPC762/764中断控制及掉电唤醒逻辑,表6-7 P87LPC762/4中断源,6.10 硬件配置信息,图6-24 硬件配置寄存器UCFG1各位含义,FOSC2FOSC0晶振类型、频率范围选择位,对应关系如下:FOSC2、FOSC1、FOSC0编码 晶振类型及频率范围 1 1 1外部时钟(缺省时)0 1 1内部RC振荡器(6 MHz25%) 0 1 0低频晶振(20 kHz100 kHz) 0 0 1中频晶振(100 kHz4 MHz) 0 0 0高频晶振(4 MHz20 MHz)此外的状态为非法。,图6-25 硬件配置寄存器UCFG2各位含义,当SB2、SB1为11时,允许对EPROM编程和校验;当SB2、SB1为10时,表示编程被禁止(仍允许校验);当SB2、SB1为00时,表示编程、校验均被禁止。,6.11 A/D与D/A转换器,6.11.1 A/D转换器,图6-26 四通道8位A/D转换器,1. A/D转换控制寄存器 A/D转换器工作过程由A/D转换控制寄存器ADCON控制,各位含义如图6-27所示。 (1) AADR1,AADR0选择A/D转换模拟量输入通道。 当AADR1,AADR0=00时,选择通道0,模拟量从AD0(P0.3)引脚输入;当AADR1,AADR0=01时,选择通道1,模拟量从AD1(P0.4)引脚输入;当AADR1,AADR0=10时,选择通道2,模拟量从AD2(P0.5)引脚输入;而AADR1,AADR0=11时,选择通道3,模拟量从AD3(P0.6)引脚输入。,图6-27 A/D转换控制寄存器ADCON各位含义,(2) RCCLKA/D转换器时钟源选择。 当RCCLK=0时,选择MCU时钟作为A/D转换器的时钟源,转换时间为31个机器周期。例如,在“6时钟/机器周期”模式下,当晶振频率为20 MHz时,A/D转换时间为:31(机器周期)(1/20)6,即9.3 s。为了保证A/D转换的精度,当使用MCU时钟作为A/D转换器的时钟源时,MCU时钟不能小于1 MHz。 当RCCLK=1时,选择CPU内的RC振荡器输出信号(6 MHz25%)作为A/D转换器的时钟源。在这种情况下,需要34个MCU机器周期来同步A/D转换器,转换时间范围在3个MCU机器周期+108RC时钟周期4个MCU机器周期+112RC时钟周期之间。,使用RC时钟源的好处在于:当MCU时钟频率较低时,A/D转换精度仍然很高(因为RC时钟频率为6 MHz);A/D转换启动后,即可进入空闲或掉电运行状态,以减少CPU固有噪声对A/D转换结果的影响(因为A/D转换器属于模拟电路,只要电源电压VDD大于3.0 V,在空闲或掉电运行状态中依然继续工作)。但当MCU时钟频率大于4 MHz时,不能使用RC振荡器输出信号作为A/D转换器的时钟源。,(3) ENADCA/D转换器使能。当ENADC=1时,A/D转换器处于使用状态。该位作用类似于外置A/D转换器的片选信号。 ENADC位置1到A/D转换器准备就绪时间约为10 s(即ENADC位置1后,必须经过10 s后才能启动A/D转换操作)。,(4) ADCSA/D转换启动控制位。当ADC处于准备就绪状态,且ADCI为0时,ADCS位置1将启动A/D转换操作过程。在A/D转换过程中,ADCS位为1,待A/D转换结束后,ADCS位自动清零,同时将A/D转换完成标志ADCI位置1。因此,启动后,可通过查询ADCS位状态确定A/D转换是否结束,也可以通过中断方式确定A/D转换是否完成。 A/D转换结束后转换结果在寄存器DAC0 (地址为0C5H)中。由于在P87LPC76X系列中,使用VDD和VSS作为A/D转换的参考电位,因此理想的A/D转换结果为:,(5) ADCIA/D转换结束中断标志。A/D转换完成后,ADCI自动置1,作为A/D转换结束标志。CPU是否查询ADCI标志受A/D中断允许EAD(IEN1.4)位控制。 A/D中断资源分配如下: A/D中断标志位:ADCI(不自动清除)。即退出A/D中断服务程序时,不会自动清除ADCI标志。 A/D中断允许/禁止控制位:EAD(IEN1.4)。 A/D中断服务程序入口地址:005BH。 A/D中断优先级控制位:IP1H.4(高位)、IP1.4(低位)。 另外,A/D中断可使CPU退出掉电状态。,表6-8 ADCI、ADCS位与转换器状态关系,2. A/D转换初始化 (1) 禁止模拟量输入引脚的数字输入/输出功能。 (2) 选择A/D转换结束查询方式,如果选择中断方式,则必须初始化A/D中断。 (3) 使能A/D转换器(即将ENADC位置1)。 (4) 延迟10 s,使ADC处于准备就绪状态。 (5) 初始化ADCON寄存器,选择A/D转换器输入通道、A/D转换时钟源。 (6) 启动A/D转换过程。即将ADCS位置1,启动转换进程。 (7) 根据使用A/D时钟及精度要求,必要时可强迫CPU进入空闲或掉电状态。 (8) 等待转换结果。当ADCI位为1时,读DAC0寄存器取出本轮A/D转换结果。,【例6.2】 假设在P87LPC767应用系统中,需要两个通道的A/D转换器,MCU时钟频率为1 MHz。 分析:由于需要两个通道,必然占用了比较器1的引脚,因此可选择AD0(P0.3)、AD1(P0.4)作为模拟量输入端。 由于MCU时钟频率只有1 MHz,可考虑使用RC时钟作为A/D时钟源;采用查询方式确定转换过程是否结束。,参考程序如下:MOV A, P0M1ORL A, #00011000B; 使P0M1.4、P0M1.3位为1MOV P0M1, AMOV A, P0M2ANL A, #11100111B; 使P0M2.4、P0M2.4位为0 MOV P0M2, A,; AD0(P0.3)、AD1(P0.4)引脚仅为输入MOV PT0AD, #18H; 禁止P0.4、P0.3引脚数字输入功能MOV ADCON, #10000100SETB ENADC; 启动ADC,选择了RC时钟,通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论