ThisdocumentcontainsinformationonanewproductunderdevelopmentbyMegawin.
Megawinreservestherighttochangeordiscontinuethisproductwithoutnotice.
MegawinTechnologyCo.
,Ltd.
2008Allrightsreserved.
2008/12versionA4MegawinMPC82G516A8位微处理器用户手册(第Ⅲ版)原著:ByVincentY.
C.
Yu策划/整理:许意义翻译:www.
ourDEV.
cn网友lukeunderwoodeasygoingyixinczzhouyunlcptw校对:www.
ourDEV.
cn网友avenbbsMPC82G516A8位微控制器目录图表清单.
5表格清单.
71综述82功能93方框图.
104引脚.
114.
1引脚结构114.
2引脚定义144.
3引脚功能重映射.
175存储器组织.
185.
1程序存储器185.
2数据存储器.
195.
3关于C51编译器的声明识别符.
236特殊功能寄存器(SFRs)246.
1SFR存储器映射位置246.
2SFR描述256.
2.
1标准80C51的SFRs.
256.
2.
2新加入的SFRs277片上扩展RAM(XRAM)307.
1在软件中使用XRAM.
308外部数据存储器的存取318.
1配置ALE引脚.
318.
2低速存储器的存取时间延展329双数据指针寄存器(DPTR)3510I/O结构3610.
1配置I/O.
3610.
1.
1准双向I/O3710.
1.
2开漏输出.
3810.
1.
3输入口(高阻输入)3810.
1.
4推挽输出3810.
2I/O口用作ADC转换3910.
3I/O口注意事项3911定时/计数器.
4011.
1定时器0和定时器1.
4011.
1.
1模式0:13位定时/计数器.
4111.
1.
2模式1:16位定时/计数器.
4211.
1.
3模式2:8位自动加载.
4211.
1.
4模式3:两个8位定时/计数器4311.
1.
5定时器0的可编程时钟输出模式4411.
2定时器24511.
2.
1捕获模式.
4611.
2.
2自动重装入模式(加计数或减计数)4611.
2.
3波特率发生器模式47ThisdocumentcontainsinformationonanewproductunderdevelopmentbyMegawin.
Megawinreservestherighttochangeordiscontinuethisproductwithoutnotice.
MegawinTechnologyCo.
,Ltd.
2008Allrightsreserved.
2008/12versionA4MEGAWIN11.
2.
4定时器2的可编程时钟输出模式.
5012串行口5112.
1标准UART操作.
5112.
1.
1多处理器通信5112.
1.
2串行口(UART)配置寄存器.
5112.
1.
3波特率.
5212.
1.
4使用定时器1产生波特率.
5312.
1.
5模式0的扩展.
5512.
1.
6模式1的扩展.
5512.
1.
7模式2和模式3的扩展.
5612.
2扩展的UART功能.
6112.
2.
1帧错误检测.
6112.
2.
2自动地址识别.
6113第2个UART(UART2)6313.
1UART2配置寄存器.
6313.
2UART2波特率.
6413.
2.
1模式06413.
2.
2模式1和模式36413.
2.
3模式26413.
3标准UART使用UART2的波特率发生器6513.
4UART2波特率发生器的可编程时钟输出.
6614可编程计数器阵列(PCA)6714.
1PCA概述6714.
2PCA定时/计数器.
6714.
3比较/捕获单元6914.
4PCA模式设置7014.
4.
1捕获模式.
7014.
4.
216位软件定时器模式.
7114.
4.
3高速输出模式.
7114.
4.
4PWM模式.
7215串行外设接口(SPI)7315.
1典型SPI配置.
7515.
1.
1单主机和单从机.
7515.
1.
2双驱动器,可以是主机或从机.
7515.
1.
3单主机和多从机.
7615.
2SPI配置7715.
3从机注意事项7715.
4主机注意事项7715.
5/SS引脚的模式变化7815.
6数据冲突7815.
7SPI时钟频率选择.
7815.
8数据模式.
7916模数(A/D)转换器8116.
1ADC控制寄存器.
8116.
2ADC操作.
8216.
3ADC示例代码.
8316.
4ADC注意事项8416.
4.
1A/D转换时间8416.
4.
2I/O口用于ADC转换.
8416.
4.
3待机和掉电模式.
8416.
4.
4VDD供电要求.
8417键盘中断.
85MEGAWINMPC82G516ADataSheet218看门狗定时器(WDT)8618.
1WDT控制寄存器8618.
2WDT操作.
8718.
3WDT示例代码8718.
4掉电和待机模式下的WDT.
8818.
5WDT硬件初始化.
8819中断系统.
8919.
1中断源.
8919.
2与中断相关的寄存器.
9119.
3中断使能.
9319.
4中断优先级.
9319.
5中断响应9319.
6外部中断.
9419.
7单步运行.
9420ISP,IAP和ICP.
9520.
1Flash存储器9620.
1.
1Flash特点9620.
1.
2Flash结构.
9620.
2ISP操作.
9720.
2.
1ISP寄存器.
9720.
2.
2ISP模式说明.
9920.
2.
3实现在系统编程(ISP)10220.
2.
4ISP注意事项10420.
2.
5Megawin提供的ISP工具10520.
3IAP操作.
10720.
3.
1使用IAP功能更新程序.
10720.
3.
2IAP示例代码10820.
3.
3IAP注意事项10920.
4关于ICP.
11020.
4.
1"Megawin8051ICP编程器"11021节能模式11121.
1空闲模式11121.
2休眠模式.
11221.
2.
1自掉电模式中唤醒.
11221.
3时钟降速11322系统时钟.
11422.
1内部振荡器11423电源监测功能11523.
1上电监测.
11523.
2掉电监测11624复位源.
11724.
1上电复位.
11724.
2RST引脚硬件复位.
11724.
3看门狗复位11724.
4软件复位.
11824.
5掉电复位11825熔丝位选项.
11926指令集12126.
1算数运算指令.
12326.
2逻辑操作指令12426.
3数据传送指令1253MPC82G516ADataSheetMEGAWIN26.
4布尔操作指令12626.
5控制和转移指令12727应用事项12827.
13.
3V,5V供电和宽电压范围.
12827.
1.
13.
3V供电.
12827.
1.
25V供电和宽电压范围12927.
2复位电路.
12927.
3晶振电路13028片上调试功能131特点13129极限参数13230直流特性133[条件1]3.
3V系统(V30连接到VDD)133[条件2]5V或宽电压范围(V30不连接VDD)13531订货信息13732封装尺寸.
13840-引脚PDIP封装13844-引脚PLCC封装.
13944-引脚PQFP封装.
14048-引脚LQFP封装.
14128-引脚SSOP封装.
14233免责声明.
143生命维持系统.
143内容更新.
143版本历史144MEGAWINMPC82G516ADataSheet4图表清单Figure3-1.
方框图10Figure4-1.
引脚结构:40-PinPDIP.
11Figure4-2.
引脚结构:28-PinSSOP11Figure4-3.
引脚结构:44-PinPLCC.
12Figure4-4.
引脚结构:44-PinPQFP12Figure4-5.
引脚结构:48-PinLQFP.
13Figure5-1.
程序存储器.
18Figure5-2.
数据存储器20Figure5-3.
内部RAM的低128字节.
20Figure5-4.
SFR空间21Figure5-5.
通过8位地址访问外部RAM(使用'MOVX@Ri'和页选择)22Figure5-6.
通过8位地址访问外部RAM(使用'MOVX@DPTR'22Figure8-1.
无时间延展的"MOVX@DPTR,A"33Figure8-2.
有时间延展的"MOVX@DPTR,A"33Figure8-3.
无时间延展的"MOVXA,@DPTR"34Figure8-4.
有时间延展的"MOVXA,@DPTR"34Figure9-1.
使用双数据指针35Figure10-1.
准双向lI/O.
37Figure10-2.
开漏输出38Figure10-3.
仅输入38Figure10-4.
推挽式输出38Figure11-1.
Timer1模式0:13-位定时/计数器41Figure11-2.
Timer1模式1:16-位定时/计数器42Figure11-3.
Timer1模式2:8-位自动重装42Figure11-4.
Timer0模式3:双8位定时/计数器43Figure11-5.
Timer0可编程时钟输出44Figure11-6.
Timer2捕获模式.
46Figure11-7.
Timer2自动重装模式(DCEN=0)47Figure11-8.
Timer2自动重装模式(DCEN=1)47Figure11-9.
Timer2波特率发生器模式48Figure11-10.
Timer2可编程时钟输出50Figure12-1.
串口模式0.
57Figure12-2.
串口模式1.
58Figure12-3.
串口模式2.
59Figure12-4.
串口模式3.
60Figure12-5.
UART帧错误侦测61Figure12-6.
UART多机通信,自动地址匹配62Figure13-1.
1号UART新波特率源65Figure13-2.
UART2波特率发生器的可编程时钟输出.
66Figure14-1.
PCA方框图.
67Figure14-2.
PCA定时/计数器68Figure14-3.
PCA中断系统.
69Figure14-4.
PCA捕捉模式70Figure14-5.
PCA软件定时器模式.
71Figure14-6.
PCA高速输出模式.
71Figure14-7.
PCAPWM模式.
72Figure15-1.
SPI方框图73Figure15-2.
SPI单主机单从机组态.
75Figure15-3.
SPI双驱动器,可以是主机或从机.
75Figure15-4.
SPI单主机多从机组态76Figure15-5.
SPI从机通信格式(CPHA=0)79Figure15-6.
从机通信格式(CPHA=1)79Figure15-7.
SPI主机通信格式(CPHA=0)80Figure15-8.
SPI主机通信格式(CPHA=1)80Figure16-1.
ADC方框图.
815MPC82G516ADataSheetMEGAWINFigure18-1.
WDT方框图86Figure19-1.
中断系统90Figure20-1.
Flash组织形式.
96Figure20-2.
Flash页擦除流程图.
99Figure20-3.
Flash编程流程图.
100Figure20-4.
Flash读取流程图.
101Figure20-5.
ISP存储区直接引导(HWBS或HWBS2使能)102Figure20-6.
通过AP存储区重引导.
103Figure20-7.
"8051ISPProgrammer"的照片105Figure20-8.
ISP功能系统连接简图105Figure20-9.
通过串口ISP系统连接简图106Figure20-10.
使用IAP-存储区每页至少512字节107Figure20-11.
"8051ICPProgrammer"的照片.
110Figure20-12.
ICP功能系统连接简图.
110Figure22-1.
系统时钟方框图114Figure23-1.
供电检测方框图115Figure24-1.
复位系统方框图.
117Figure27-1.
供电方案128Figure27-2.
3.
3V系统供电方案.
128Figure27-3.
5V或宽电压范围供电方案.
129Figure27-4.
复位电路129Figure27-5.
晶振电路.
130Figure28-1.
"8051ICEAdapter"的照片.
131Figure28-2.
ICE功能系统连接简图.
131MEGAWINMPC82G516ADataSheet6表格清单Table4-1.
引脚定义.
14Table6-1.
SFR存储器映射位置.
24Table6-2.
标准80C51的SFRs26Table6-3.
新加入的SFRs.
27Table7-1.
XRAM存储类型声明30Table10-1.
可用I/O引脚数.
36Table10-2.
端口模式设定.
36Table11-1.
Timer2功能设定45Table11-2.
Timer2波特率发生器初值表@Fosc=11.
0592MHz.
49Table11-3.
Timer2波特率发生器初值表@Fosc=22.
1184MHz49Table12-1.
Timer1波特率发生器初值表@Fosc=11.
0592MHz.
53Table12-2.
Timer1波特率发生器初值表@Fosc=22.
1184MHz.
54Table14-1.
PCA单元模式表.
70Table15-1.
SPI主从机选择77Table15-2.
SPI串行时钟频率78Table18-1.
WDT溢出周期87Table19-1.
中断源89Table19-2.
外部中断0的四个优先级.
93Table20-1.
不同编程方法比较.
95Table20-2.
ISP时间设置97Table20-3.
ISP模式选择.
977MPC82G516ADataSheetMEGAWIN1综述MPC82G516A是基于80C51的高效1-T结构的单芯片微处理器,每条指令需要1~7个时钟信号(比标准8051快6~7倍),与8051指令集兼容.
因此在与标准8051有同样的处理能力的情况下,MPC82G516A只需要非常低的运行速度,同时由此能很大程度的减少耗电量.
MPC82G516A拥有64K字节的内置Flash存储器用于保存代码和数据.
Flash存储器可以通过并行模式编程,也拥有通过在系统编程(ISP)和在电路编程(ICP)进行编程的能力.
同时,也提供在应用编程(IAP)的能力.
ISP和ICP让使用者无需从产品中取下微控制器就可以下载新的代码;IAP意味着应用程序正在运行时,微控制器能够在Flash中写入非易失数据.
这些功能都由内建的电荷泵提供编程用的高压.
除了8051MCU的标准功能(例如256字节的随机存储器,四个8位I/O口,三个定时/计数器,全双工的串口和一个多源4级中断控制)外,许多系统级的功能已经集成到MPC82G516A内部.
这些功能有1024字节的扩展随机存储器(XRAM),一个额外的I/O口(P4),10位的模/数转换器,PCA,SPI,第二个UART接口,辅助键盘中断,一个看门狗定时器等等.
这些功能能够有效地减少电路板面积和系统成本,而且这些功能使得MPC82G516A在广泛的应用领域内成为一种强有力的微控制器.
MPC82G516A有两种节能模式和8位的系统时钟分频器,以减少耗电量.
在空闲模式下,cpu被冻结而外围模块和中断系统依然活动.
在掉电模式下,随机存储器RAM和特殊功能寄存器SFR的能容被保存,而其他所有功能被终止.
最重要的是,在掉电模式下的微控制器可以被外部中断唤醒.
同时使用者可以通过8位的系统时钟分频器减慢系统速度以减少耗电量.
另外,MPC82G516A装备有Megawin特有的为在电路调试(ICE)设计的在片上调试(OCD)接口.
在片上调试(OCD)提供片上无资源占用的在系统调试.
对于ICE来说,一些功能是必要的而且已经提供了,例如复位、运行、停止、单步、运行到光标和断点.
使用者使用ICE不需要准备任何的固件或者适配器接头.
所有要做的事情就是准备一个四脚的连接座连接到OCD接口上.
这个强有力的功能将使开发变得非常容易.
MEGAWINMPC82G516ADataSheet82功能一般8051功能-8051兼容的指令集-256字节随机存取储存器-64K外部的数据存储器空间-四个8个位双向I/O口-三个16个位定时器/计数器-全双工UART-14中断源,4个优先级-节能模式:空闲模式,掉电模式高速1-T结构80C51内核片上64KFlash程序存储器片上1024字节扩展RAM(XRAM)额外可位寻址的I/O口,P4I/O口结构类型-准双向输出-开漏输出-仅输入-推挽式的输出额外的外部中断/INT2&/INT3Timer2减计数能力增强UART功能-帧错误侦测-自动地址匹配第二个UART和配套的波特率产生器6单元PCA(可编程计数器阵列)-捕捉模式-16位软件定时器模式-高速输出模式-PWM(脉冲宽度调变器)模式SPI接口(主/从模式)10位8通道ADC转换器8输入辅助键盘中断外部中断唤醒掉电模式3个可编程时钟输出看门狗定时器双数据指针低速外部存储器的MOVX时间延展可配置系统时钟减少耗电量电源监视功能:掉电检测和上电标志ISP(在系统编程)&ICP(在电路编程)更新程序存储器IAP(在应用编程)为应用程序写非易失性数据ICE的OCD(片上调试)接口Flash寿命:20,000次擦写循环时钟频率:最高24MHz电源:2.
4V~3.
6V(3.
3V系统),or2.
7V~5.
5V(5Vor宽电压范围系统)温度等级:-40to+85C封装:PDIP40,PLCC44,PQFP44,LQFP48andSSOP289MPC82G516ADataSheetMEGAWIN3方框图Figure3-1MPC82G516A功能方框图.
Figure3-1.
方框图MEGAWINMPC82G516ADataSheet104引脚4.
1引脚结构Figure4-1.
引脚结构:40-PinPDIPFigure4-2.
引脚结构:28-PinSSOP11MPC82G516ADataSheetMEGAWINFigure4-3.
引脚结构:44-PinPLCCFigure4-4.
引脚结构:44-PinPQFPMEGAWINMPC82G516ADataSheet12Figure4-5.
引脚结构:48-PinLQFP13MPC82G516ADataSheetMEGAWIN4.
2引脚定义Table4-1.
引脚定义引脚号助记符40-PinDIP44-PinPLCC44-PinPQFP48-PinLQFP28-PinSSOPI/O类型描述P0.
0(附加功能)AD039433740-I/OI/O*端口0位0.
*AD0:访问外部数据存储器时A0/D0复用P0.
1(附加功能)AD13842363927I/OI/O*端口0位-1.
*AD1:访问外部数据存储器时A1/D1复用P0.
2(附加功能)AD23741353826I/OI/O*端口0位-2.
*AD2:访问外部数据存储器时A2/D2复用.
P0.
3(附加功能)AD33640343725I/OI/O*端口0位-3.
*AD3:访问外部数据存储器时A3/D3复用P0.
4(附加功能)AD43539333624I/OI/O*端口0位-4.
*AD4:访问外部数据存储器时A4/D4复用P0.
5(附加功能)AD534383235-I/OI/O*端口0位-5.
*AD5:访问外部数据存储器时A5/D5复用P0.
6(附加功能)AD63337313423I/OI/O*端口0位-6.
*AD6:访问外部数据存储器时A6/D6复用P0.
7(附加功能)AD732363033-I/OI/O*端口0位-7.
*AD7:访问外部数据存储器时A7/D7复用.
P1.
0(附加功能)T2(附加功能)AIN0(附加功能)T2CKO1240432I/OIIO*端口1位-0.
*T2:定时/计数器2的外部输入.
*AIN0:ADC模拟量输入通道0.
*T2CKO:定时器2的可编程时钟输出.
P1.
1(附加功能)T2EX(附加功能)AIN1(附加功能)ECI234144-I/OIII*端口1位-1.
*T2EX:定时/计数器2重装入/捕获/方向控制.
*AIN1:ADC模拟量输入通道1.
.
*ECI:PCA外部时钟输入.
P1.
2(附加功能)AIN2(附加功能)S2RXD(附加功能)CEX03442453I/OIII/O*端口1位-2.
*AIN2:ADC模拟量输入通道2.
*S2RXD:第二UART串行输入.
*CEX0:PCA单元0外部I/O.
P1.
3(附加功能)AIN3(附加功能)S2TXD(附加功能)CEX14543464I/OIOI/O*端口1位-3.
*AIN3:ADC模拟量输入通道3*S2TXD:第二UART串行输出*CEX1:PCA单元1外部I/O.
.
P1.
4(附加功能)AIN4(附加功能)/SS(附加功能)CEX2564447-I/OIII/O*端口1位-4.
*AIN4:ADC模拟量输入通道4.
*/SS:SPI从机选择*CEX2:PCA单元2外部I/O.
.
P1.
5(附加功能)AIN5(附加功能)MOSI(附加功能)CEX367125I/OII/OI/O*Port1位-5.
*AIN5:ADC模拟量输入通道5*MOSI:SPI主机输出或从机输入.
*CEX3:PCA单元3外部I/O.
P1.
6(附加功能)AIN6(附加功能)MISO(附加功能)CEX47823-I/OII/OI/O*端口1位-6.
*AIN6:ADC模拟量输入通道6.
*MISO:SPI主机输入或从机输出.
*CEX4:PCA单元4外部I/O.
.
P1.
7(附加功能)AIN7(附加功能)SPICLK(附加功能)CEX58934-I/OII/OI/O*端口1位-7.
*AIN7:ADC模拟量输入通道7*SPICLK:SPI时钟,主机输出从机输入*CEX5:PCA单元5外部I/O.
.
MEGAWINMPC82G516ADataSheet14(续上表)PINNUMBERMNEMONIC40-PinDIP44-PinPLCC44-PinPQFP48-PinLQFP28-PinSSOPI/OTYPEDESCRIPTIONP2.
0(附加功能)A8(附加功能)KBI02124181915I/OOI*端口2位-0.
*A8:访问外部数据存储器时输出A8*KBI0:辅助键盘输入0.
P2.
1(附加功能)A9(附加功能)KBI12225192016I/OOI*端口2位-1.
*A9:访问外部数据存储器时输出A9.
*KBI1:辅助键盘输入1.
P2.
2(附加功能)A10(附加功能)KBI223262021-I/OOI*端口2位-2.
*A10:访问外部数据存储器时输出A10.
*KBI2:辅助键盘输入2.
P2.
3(附加功能)A11(附加功能)KBI32427212217I/OOI*端口2位-3.
*A11:访问外部数据存储器时输出A11*KBI3:辅助键盘输入3.
P2.
4(附加功能)A12(附加功能)KBI42528222318I/OOI*端口2位-4.
*A12:访问外部数据存储器时输出A12*KBI4:辅助键盘输入4.
P2.
5(附加功能)A13(附加功能)KBI52629232619I/OOI*端口2位-5.
*A13:访问外部数据存储器时输出A13*KBI5:辅助键盘输入5.
P2.
6(附加功能)A14(附加功能)KBI627302427-I/OOI*端口2位-6.
*A14:访问外部数据存储器时输出A14*KBI6:辅助键盘输入6.
P2.
7(附加功能)A15(附加功能)KBI728312528-I/OOI*端口2位-7.
*A15:访问外部数据存储器时输出A15*KBI7:辅助键盘输入7.
P3.
0(附加功能)RXD1011567I/OI/O*端口3位-0.
*RXD:串行输入,模式0的数据I/O.
P3.
1(附加功能)TXD1113788I/OO*端口3位-1.
*TXD:串行输出.
P3.
2(附加功能)/INT01214899I/OI*端口3位-2.
*/INT0:外部中断0输入.
P3.
3(附加功能)/INT1131591010I/OI*端口3位-3.
*/INT1:外部中断1输入.
P3.
4(附加功能)T0(附加功能)T0CKO14161011-I/OIO*端口3位-4.
*T0:定时/计数器0外部输入.
*T0CKO:定时器0的可编程时钟输出P3.
5(附加功能)T1(附加功能)ALE(附加功能)S2CKO1517111211I/OIOO*端口3位-5.
*T1:定时/计数器1外部输入.
*ALE:地址锁存信号,在外部数据存储器访问期间锁存地址低8位.
*S2CKO:定时器S2BRT.
可编程时钟输出P3.
6(附加功能)/WR16181213-I/OO*端口3位-6.
*/WR:外部数据存储器写信号.
P3.
7(附加功能)/RD17191314-I/OO*端口3位-7.
*/RD:外部数据存储器读信号.
15MPC82G516ADataSheetMEGAWIN(续上表)PINNUMBERMNEMONIC40-PinDIP44-PinPLCC44-PinPQFP48-PinLQFP28-PinSSOPI/OTYPEDESCRIPTIONP4.
0-231718-I/O*端口4位-0.
P4.
1(附加功能)ALE-342831I/OO*端口4位-1.
*ALE:地址锁存信号,在外部数据存储器访问期间锁存地址低8位P4.
2(附加功能)/INT3-139421I/OI*端口4位-2.
*/INT3:外部中断3输入P4.
3(附加功能)/INT2-1267-I/OI*端口4位-3.
*/INT2:外部中断2输入P4.
4---24-I/O*端口4位-4.
P4.
5---25-I/O*端口4位-5.
P4.
6---48-I/O*端口4位-6.
P4.
7---1-I/O*端口4位-7.
OCD_SDA3033273021I/O片上调试接口(OCD),串行数据.
OCD_SCL2932262920I片上调试接口(OCD),串行时钟XTAL11921151613I晶体1:反向振荡放大器输入和内部时钟输入XTAL21820141512O晶体2:反向振荡放大器输出RST910456I24个时钟周期的高电平复位微控制器V303135293222O内部LDO输出:VDD电压高于3.
6伏时,通过一个外部电容(4.
7μF~100μF)接地;VDD电压低于3.
6伏时接到VDD上.
VDD4044384128I空闲、掉电和正常模式的电源正极VSS2022161714I地,0V参考电压Note:"(Alt.
Fun.
)"meanstheAlternateFunctionofthispin.
MEGAWINMPC82G516ADataSheet164.
3引脚功能重映射许多I/O引脚除了标准I/O功能之外,还提供了其他复用功能用于片内自带的外设.
默认情况下,P2和P1被辅助键盘中断,PCA,SPI和UART2等复用.
但是,使用者可以通过设定AUXR1寄存器的P4KB,P4PCA,P4SPI和P4S2控制位使上面的那些功能重新映射到P4上.
.
当采用超过40引脚的封装时,此功能特别有用.
注意,任何时候这四个控制位只能有一个被置位.
AUXR1(地址=8EH,辅助寄存器1,复位值=0000,0000B)76543210P4KBP4PCAP4SPIP4S2GF2--DPSP4KB:被置位时,键盘接口被映射到P4.
'KBI7'P2.
7的功能被映射到P4.
7.
'KBI6'P2.
6的功能被映射到P4.
6.
.
'KBI5'P2.
5的功能被映射到P4.
5.
.
'KBI4'P2.
4的功能被映射到P4.
4.
'KBI3'P2.
3的功能被映射到P4.
3.
.
'KBI2'P2.
2的功能被映射到P4.
2.
.
'KBI1'P2.
1的功能被映射到P4.
1.
.
'KBI0'P2.
0的功能被映射到P4.
0.
.
P4PCA:被置位时,PCA接口被映射到P4'ECI'P1.
1的功能被映射到P4.
1.
'CEX0'P1.
2的功能被映射到P4.
2.
'CEX1'P1.
3的功能被映射到P4.
3.
'CEX2'P1.
4的功能被映射到P4.
4.
.
'CEX3'P1.
5的功能被映射到P4.
5.
'CEX4'P1.
6的功能被映射到P4.
6.
.
'CEX5'P1.
7的功能被映射到P4.
7.
.
P4SPI:被置位时,SPI接口被映射到P4.
'/SS'P1.
4的功能被映射到P4.
4.
'MOSI'P1.
5的功能被映射到P4.
5.
'MISO'P1.
6的功能被映射到P4.
6'SPICLK'P1.
7的功能被映射到P4.
7.
.
P4S2:被置位时,UART2接口被映射到P4'S2RXD'P1.
2的功能被映射到P4.
2.
'S2TXD'P1.
3的功能被映射到P4.
3.
17MPC82G516ADataSheetMEGAWIN5存储器组织像所有的80C51一样,MPC82G516A的程序存储器和数据存储器的地址空间是分开的,这样8位微处理器可以通过一个8位的地址快速而有效的访问数据存储器.
程序存储器(ROM)只能读取,不能写入.
最大可以达到64K字节.
在MPC82G516A中,所有的程序存储器都是片上Flash存储器.
因为没有设计外部程序使能(/EA)和编程使能(/PSEN)信号,所以不允许外接程序存储器数据存储器使用与程序存储器不同的地址空间.
MPC82G516A有256字节的内部RAM,使用外部数据存储器最多可以有64K字节的地址空间.
CPU通过使用一个16位的地址(通过DPTR)和读、写操作信号(/RD和/WR)访问外部数据存储器.
由于一些应用程序需要多一点的内部RAM,所以MPC82G516A在片上集成了1024字节的外部存储器(XRAM).
5.
1程序存储器程序存储器用来保存让CPU进行处理的程序代码,如Figure5-1所示.
复位后,CPU从地址为0000H的地方开始运行,用户应用代码的起始部分应该放在这里.
为了响应中断,中断服务位置(被称为中断矢量)应该位于程序存储器.
每个中断在程序存储器中有一个固定的起始地址,中断使CPU跳到这个地址运行中断服务程序.
举例来说,外部中断0被指定到地址0003H,如果使用外部中断0,那么它的中断服务程序一定是从0003H开始的.
如果中断未被使用,那么这些地址就可以被一般的程序使用.
中断服务程序的起始地址之间有8字节的地址间隔:外部中断0,0003H;定时器0,000BH;外部中断1,0013H;定时器1,001BH等等.
如果中断服务程序足够短,它完全可以放在这8字节的空间中.
如果其他的中断也被使用的话,较长的中断服务程序可以通过一条跳转指令越过后面的中断服务起始地址.
注意,MPC82G516A不能外接程序存储器,所有应用代码都保存在片上的Flash存储器中.
因此/EA和/PSEN信号因为不再需要而被省略了.
用户应注意这一点.
Figure5-1.
程序存储器MEGAWINMPC82G516ADataSheet185.
2数据存储器Figure5-2向MPC82G516A使用者展示了内部和外部数据存储器的空间划分.
内部数据存储器被划分为三部分,通常被称为低128字节RAM,高128字节RAM和128字节SFR空间.
内部数据存储器的地址线只有8位宽,因此地址空间只有256字节.
SFR空间的地址高于7FH,用直接地址访问;而用间接访问的方法访问高128字节的RAM.
这样虽然SFR和高128字节RAM占用相同的地址空间,但他们实际上是分开的如Figure5-3所示,低128字节RAM与所有80C51一样.
最低的32字节被划分为4组每组8字节的寄存器组.
指令中称这些寄存器为R0到R7.
.
程序状态字(PSW)中的两位用于选择哪组寄存器被使用.
这使得程序空间能够被更有效的使用,因为对寄存器访问的指令比使用直接地址的指令短.
接下来的16字节是可以位寻址的存储器空间.
80C51的指令集包含一个位操作指令集,这区域中的128位可以被这些指令直接使用.
位地址从00H开始到7FH结束.
所有的低128字节RAM都可以用直接或间接地址访问,而高128字节RAM只能用间接地址访问.
Figure5-4给出了特殊功能寄存器(SFR)的概览.
SFR包括端口寄存器,定时器和外围器件控制器,这些寄存器只能用直接地址访问.
SFR空间中有16个地址同时支持位寻址和直接寻址.
可以位寻址的SFR的地址末位是0H或8H.
为了访问外部数据存储器,EXTRAM位应该被设为1.
访问外部数据存储器可以使用一个16位地址(使用'MOVX@DPTR')或一个8位地址(使用'MOVX@Ri').
下面详细说明.
用8位地址访问8位地址通常使用1根或更多的I/O口标明RAM的页数.
如果使用8位地址,在访问外部存储器的周期中,P2寄存器保存P2引脚的状态.
这将保证页的访问.
Figure5-5展示了一个2K字节外部数据存储器的硬件配置.
P0口作为地址和数据总线复用,而P2口的三根线用于标明RAM的页数.
.
处理器产生/RD和/WR(P3.
7和P3.
6附加功能)信号控制存储器.
当然也可以使用其他的I/O口而非P2口来标明RAM的页数.
用16位地址访问16位地址通常用于访问64K字节的外部数据存储器.
Figure5-6展示了一个64K字节外部数据存储器的硬件配置.
当使用16位地址的时候,除了P0,/RDand/WR,的动作以外,地址的高字节通过P2口输出,并且在读写周期中是被锁定的.
无论如何,地址的低字节和数据字节在P0口是时分复用的.
ALE(地址锁存使能)被用来使地址字节被外部锁存器锁存,地址字节在ALE负跳变时有效.
在写周期中,数据在/WR有效之前在P0口出现,直到/WR无效的时候消失.
在读周期中,数据在/RD信号无效之前被P0口接受.
在任何外部存储器访问期间,CPU向P0口锁存器(特殊功能寄存器)写0FFH,以消除任何可能被锁存的数据.
注意在MPC82G516A,没有专用的ALE引脚.
ALE是P3.
5或P4.
1的附加功能,可以在AUXR寄存器中的P35ALE和P41ALE控制位进行选择.
.
访问片上扩展存储器(XRAM),EXTRAM位应该被设为0.
Figure5-2,这1024字节的XRAM(0000Hto03FFH)外部访问指令MOVX间接存取.
对XRAM的访问没有任何的地址输出、地址锁存信号和读写控制.
这意味着P0,P2,P3.
5/P4.
1(ALE),P3.
6(/WR)和P3.
7(/RD)在访问XRAM期间保持不变.
19MPC82G516ADataSheetMEGAWINFigure5-2.
数据存储器Figure5-3.
内部RAM的低128字节MEGAWINMPC82G516ADataSheet20.
Port4ACC.
PSW.
Port3.
Port2.
Port1.
Port0Figure5-4.
SFR空间FFHE8HE0H.
D0H1.
I/O是寄存器的映射2.
地址结尾是0H或8H的寄存器可被位寻址.
-端口-累加器-PSW(Etc.
)B0HA0H90H80H21MPC82G516ADataSheetMEGAWINFigure5-5.
通过8位地址访问外部RAM(使用'MOVX@Ri'和页选择)在这种情况下,P2口的其他位可做一般I/O口使用.
Figure5-6.
通过16位地址访问外部RAM(使用'MOVX@DPTR')MEGAWINMPC82G516ADataSheet225.
3关于C51编译器的声明识别符C51编译器的声明识别符与MPC82G516A存储空间的对应关系.
:data128字节的内部数据存储空间(00h~7Fh);使用除MOVX和MOVC以外的指令,可以直接或间接的访问.
全部或部分的堆栈可能保存在此区域中.
idata间接数据;256字节的内部数据存储空间(00h~FFh)使用除MOVX和MOVC以外的指令间接访问.
全部或部分的堆栈可能保存在此区域中.
此区域包括data区和data区以上的128字节.
sfr特殊功能寄存器;CPU寄存器和外围部件控制/状态寄存器,只能通过直接地址访问.
.
xdata外部数据或片上的扩展RAM(XRAM);通过"MOVX@DPTR"指令访问标准80C51的64K存储空间.
MPC82G516A有1024字节的片上xdata存储空间.
pdata分页的外部数据(256字节)或片上的扩展RAM;通过"MOVX@Ri"指令访问标准80C51的64K存储空间.
MPC82G516A有1024字节的片上xdata存储空间.
code64K程序存储空间;通过"MOVC@A+DTPR"访问,作为程序的一部分被读取.
MPC82G516A有64K字节的片上code存储器.
23MPC82G516ADataSheetMEGAWIN-CHCCAP0HCCAP1HCCAP2HCCAP3HCCAP4HCCAP5HB-PCAPWM0PCAPWM1PCAPWM2PCAPWM3PCAPWM4PCAPWM5P4CLCCAP0LCCAP1LCCAP2LCCAP3LCCAP4LCCAP5LACCWDTCRIFDIFADRHIFADRLIFMTSCMDISPCRCCONCMODCCAPM0CCAPM1CCAPM2CCAPM3CCAPM4CCAPM5PSW----KBPATNKBCONKBMASKT2CONT2MODRCAP2LRCAP2HTL2TH2--XICON----ADCTLADCHPCON2IPSADENS2BRT---ADCL-P3P3M0P3M1P4M0P4M1IPHIESADDRS2CON--AUXIEAUXIPAUXIPHP2AUXR1---AUXR2-SCONSBUFS2BUFP1P1M0P1M1P0M0P0M1P2M0P2M1EVRCRTCONTMODTL0TL1TH0TH1AUXRSTRETCHP0SPDPLDPHSPSTATSPCTLSPDATPCON6特殊功能寄存器(SFRs)6.
1SFR映射位置特殊功能寄存器空间的内部记忆区域的一个映像叫做"SFR存储器映射表".
如Table6-1所示,在SFR存储器映射表中,不是所有的地址都被使用.
空闲的地址没有被实现或设计用来进行测试.
读取这些地址将返回随机的数据,而向其中写入数据,将导致不可预知的硬件动作.
使用者的软件最好不要访问空闲的地址.
.
Table6-1.
SFR存储器映射表F8H8BYTESFFHF0HF7HE8HEFHE0HE7HD8HDFHD0HD7HC8HCFHC0HC7HB8HBFHB0HB7HA8HAFHA0HA7H98H9FH90H97H88H8FH80H↑注意新加入的SFR用蓝色字标示.
87H可位寻址的SFRsMEGAWINMPC82G516ADataSheet246.
2SFR描述6.
2.
1标准80C51的SFRs标准80C51的SFR如Table6-2所示.
其中,C51核心寄存器的功能在下面被概略说明.
更多的关于标准SFR的使用信息将在外围器件中介绍.
.
C51核心寄存器累加器:ACC是累加寄存器,这是给累加器的特定助记符,但是只提及累加器内容时被标记位A.
B寄存器:B被用在乘或除运算中,对于其他的指令可以当做一般寄存器使用.
堆栈指针:堆栈指针寄存器宽度是8位,它指向堆栈的顶端最后被使用的数据.
虽然低位字节通常是用来作为工作寄存器,但是使用者通过设置堆栈指针,可以把堆栈放到内部RAM的任何位置.
复位后,堆栈指针的初值为07H,这样堆栈从08H开始.
数据指针:数据指针(DPTR)有一个高字节(DPH)和一个低字节(DPL).
它的功能是为MOVX指令保存一个16位的存储器地址.
这个地址可以指向片上或片外的程序/数据存储器,或者外围设备的存储器映射地址.
它可以被当做16位寄存器或者两个独立的8位寄存器.
程序状态字:PSW寄存器包含如下列各项所详述的程序状态信息.
PSW(地址=D0H,程序状态字,复位值=0000,0000B)76543210CYACF0RS1RS2OV-PCY:进位标志.
当最后一个算数运算有进位(加)或借位(减)的时候,该位被置位.
其他的算术运算将它清除为逻辑0.
AC:辅助进位标志.
(对于BCD运算)当最后一个算数运算向高四位有进位(加)或借位(减)的时候,该位被置位.
其他的算术运算将它清除为逻辑0.
F0:标志0.
可位寻址,通常作为用户使用的软件控制标志位RS1:寄存器组选择位1RS0:寄存器组选择位0.
(RS1,RS0)工作寄存器组和地址(0,0)Bank0(00H~07H)(0,1)Bank1(08H~0FH)(1,0)Bank2(10H~17H)(1,1)Bank3(18H~1FH)OV:溢出标志.
这位在下列的环境之下被设定成1:ADD,ADDC,SUBB指令引起的数据的溢出.
MUL指令的结果引起的溢出(结果超过255).
DIV指令除数为零.
ADD,ADDC,SUBB,MUL,DIV指令的其它结果将该位清0.
P:奇偶标志.
每个指令周期由硬件置1或清0,用来指示累加器中"1"为奇数个或偶数个.
(注意:PSW寄存器可位寻址,所有的被释放的位能被软件设定或清除.
.
)25MPC82G516ADataSheetMEGAWINTable6-2.
标准80C51的SFRs注:*:可位寻址-:保留位#:复位值依赖于复位源MEGAWINMPC82G516ADataSheet266.
2.
2新加入的SFRs新加入的SFRs如Table6-3所示.
更多的关于新加入的SFR的使用信息将在外围器件中介绍.
Table6-3.
新加入的SFRs27MPC82G516ADataSheetMEGAWIN(接上表)MEGAWINMPC82G516ADataSheet28(续上表)注:*:可位寻址-:保留位#:复位值依赖于复位源.
29MPC82G516ADataSheetMEGAWIN7片上扩展RAM(XRAM)访问片上扩展RAM(XRAM),EXTRAM位应该被清零.
这1024字节的XRAM(地址从0000H到03FFH)被外部访问指令"MOVX@DPTR".
间接访问对XRAM的访问没有任何的地址输出、地址锁存信号和读写控制.
这意味着P0,P2,P3.
5/P4.
1(ALE),P3.
6(/WR)和P3.
7(/RD)在访问XRAM期间保持不变.
但是如果地址超过了0x03FF,访问会被自动转到外部数据存储器.
.
AUXR(地址=8EH,辅助寄存器,复位值=0000,xx0xB)76543210URTSADRJP41ALEP35ALE--EXTRAM-EXTRAM:0:当地址小于0x0400的时候禁止访问外部数据存储器;访问地址0x0000~0x03FF时,自动装到片上XRAM.
1:可以访问地址0x0000~0xFFFF的全部外部数据存储器;访问片上XRAM被禁止.
.
7.
1在软件中使用XRAMKeil-C51编译器中,将变量分配到XRAM中,需要使用"xdata"声明.
编译后,被声明位"xdata"的变量将通过"MOVX@DPTR"指令进行存取.
使用者可以通过"KeilSoftware—Cx51CompilerUser'sGuide".
获得更多的信息.
Table7-1.
XRAM存储类型声明MEGAWINMPC82G516ADataSheet308外部数据存储器的存取和5.
2章描述的一样,访问外部数据存储器需要将EXTRAM位置1.
访问外部数据存储器既可用16位地址(使用"MOVX@DPTR),也可以使用8位地址(使用"MOVX@Ri"),如下所述.
通过8位地址访问8位地址线经常使用1个或多个I/O线结合来访问RAM页面.
如果使用8位地址,在外部存储器读写周期,专用寄存器P2口的内容始终保持在P2引脚.
使得访问页面非常容易.
图5-5示一个访问2K的外部RAM的硬件配置.
P0用作一个地址/数据分时复用总线到RAM,P2口的三线用来访问RAM页.
CPU产生/RD和/WR(P3.
7和P3.
6可选择功能)来选通存储器.
当然,用户可以使用其它I/O线来代替P2到RAM页面.
通过16位地址访问16位地址线经常用来访问64K的外部数据存储器.
图5-6示硬件配置来访问外部64K的RAM.
只要使用16位地址,除了P0口、/RD和/WR之外,P2口的高位地址在读写周期一直保持.
在任何情况下,P0口的低位地址线和数据线为分时复用.
ALE(地址锁存使能)用来将地址字节捕获到外部锁存器.
在ALE的负跳变时地址字节有效.
接着,在写周期,在/WR激活之前,要写的数据出现在P0口,并一直保持直到/WR信号释放.
在一个读周期,信号字节从P0口接收在读选通信号释放前.
在访问外部存储器时,CPU写0FFH到端口0锁存(专用寄存器),专用寄存器P0保持的信息被擦除.
8.
1配置ALE引脚对MPC82G516A来说,ALE信号没有专门的引脚.
ALE成为P3.
5或P4.
1的可选择功能,这可通过AUXR寄存器的P35ALE和P41ALD控制位来选择,如下所示.
另外,80C51的单片机在没有外部访问时仍然输出ALE信号,除了访问访问外部数据存储器(EXTRAM=1)时,器件不会输出ALE信号.
AUXR(地址=8EH,辅助寄存器,复位值=0000,xx0xB)76543210URTSADRJP41ALEP35ALE--EXTRAM-P41ALE:置位时,P4.
1作为ALE引脚并用来访问外部MOVX.
P35ALE:置位时,P3.
5作为ALE引脚并用来访问外部MOVX.
EXTRAM:0:当地址小于0x400时,禁止访问外部数据存储器;当访问地址为0x0000~0x03FF时自动切换到片上XRAM.
1:允许访问全部外部数据存储器,地址范围为0x0000~0xFFFF;禁止访问片内XRAM.
31MPC82G516ADataSheetMEGAWIN8.
2低速存储器的存取时间延展为了访问低速的外部数据存储器,设计了时序延长机制来控制"MOVX"指令的访问时序.
延长(STRETCH)寄存器的位ALES1和ALES0,控制延长设置时间和保持时间并保持到ALE的下降沿.
另外,位RWS2、RWS1和RWS0控制延长读写脉冲宽度.
用户可以通过适当的配置STRETCH寄存器,以适应外部数据存储器读写的需求.
STRETCH(地址=8FH,延长寄存器,复位值=0000,0011B)76543210--ALES1ALES0-RWS2RWS1RWS0{ALES1,ALES0}:00:没有延长,P0口地址的设置/保持时间随着ALE的下降沿在一个时钟周期;01:1个时钟周期的延长,P0口地址设置/保持时间随着ALE的下降沿在二个时钟周期;10:2个时钟周期的延长,P0口地址设置/保持时间随着ALE的下降沿在三个时钟周期;11:3个时钟周期的延长,P0口地址设置/保持时间随着ALE的下降沿在四个时钟周期;{RWS2,RWS1,RWS0}:000:没有延长,MOVX读写脉冲为一个时钟周期;001:1个时钟延长,MOVX读写脉冲为2个时钟周期;010:2个时钟延长,MOVX读写脉冲为3个时钟周期;011:3个时钟延长,MOVX读写脉冲为4个时钟周期;100:4个时钟延长,MOVX读写脉冲为5个时钟周期;101:5个时钟延长,MOVX读写脉冲为6个时钟周期;110:6个时钟延长,MOVX读写脉冲为7个时钟周期;111:7个时钟延长,MOVX读写脉冲为8个时钟周期;看如下时序波形的演示.
MEGAWINMPC82G516ADataSheet32图8-1.
"MOVX@DPTR,A"没有延迟图8-2"MOVX@DPTR,A"有延迟33MPC82G516ADataSheetMEGAWIN图8-3"MOVXA,@DPTR"没有延迟图8-4"MOVXA,@DPTR"有延迟MEGAWINMPC82G516ADataSheet349双数据指针寄存器(DPTR)传统的数据指针用来加速代码执行和减少代码尺寸.
双DPTR结构是一种方法,芯片将指定外部数据存储器的定位地址.
外部存储器有两个16位DPTR寄存器,和一个控制位称作为DPS(AUXR1.
0),允许在程序代码和外部存储器之间的切换.
图9-1使用双DPTRDPTR指令使用DPS位的六条指令参考DPTR的当前选择,如下:INCDPTR;数据指针加1MOVDPTR,#data16;DPTR加载16位常量MOVCA,@A+DPTR;将代码字节移动到ACCMOVXA,@DPTR;移动外部RAM(16位地址)到ACCMOVX@DPTR,A;移动ACC到外部RAM(16位地址)JMP@A+DPTR;直接跳转到DPTRAUXR1(地址=8EH,辅助寄存器1,复位值=0000,0000B)76543210P4KBP4PCAP4SPIP4S2GF2--DPSDPS:DPTR选择位,用来在DPTR0和DPTR1之间切换在DPTR0和DPTR1之间切换时,可通过软件来保存DPS位状态DPSDPTR选择0DPTR01DPTR135MPC82G516ADataSheetMEGAWIN10I/O结构MPC82G516A有五个I/O端口:端口0、端口1、端口2、端口3和端口4.
所有的端口都为8位端口.
准确的可用I/O引脚数量由封装类型决定.
见表10-1.
表10-1可用I/O引脚数量10.
1配置I/OMPC82G516A的所有端口可通过软件个别的、独立的配置为四种之中的一种类型,基于位位基础,如表10-2所示.
这四种类型有:准双向(标准8051的I/O端口)、上拉输出、集电极开路输出和输入(高阻抗输入).
每个端口有两个模式寄存器来选择每个端口引脚的输出类型.
表10-2端口配置设定PxM0.
yPxM1.
y端口00准双向端口01上拉输出10输入(高阻抗)11集电极开路输出这里x=0~4(端口号),y=0~7(端口引脚号).
寄存器PxM0和PxM1列表如下.
P0M0(地址=93H,端口0模式寄存器0,复位值=0000,0000B)76543210P0M0.
7P0M0.
6P0M0.
5P0M0.
4P0M0.
3P0M0.
2P0M0.
1P0M0.
0P0M1(地址=94H,端口0模式寄存器1,复位值=0000,0000B)76543210P0M1.
7P0M1.
6P0M1.
5P0M1.
4P0M1.
3P0M1.
2P0M1.
1P0M1.
0P1M0(地址=91H,端口1模式寄存器0,复位值=0000,0000B)76543210P1M0.
7P1M0.
6P1M0.
5P1M0.
4P1M0.
3P1M0.
2P1M0.
1P1M0.
0P1M1(地址=92H,端口1模式寄存器1,复位值=0000,0000B)76543210P1M1.
7P1M1.
6P1M1.
5P1M1.
4P1M1.
3P1M1.
2P1M1.
1P1M1.
0P2M0(地址=95H,端口2模式寄存器0,复位值=0000,0000B)76543210P2M0.
7P2M0.
6P2M0.
5P2M0.
4P2M0.
3P2M0.
2P2M0.
1P2M0.
0MEGAWINMPC82G516ADataSheet36封装类型I/O引脚脚引脚数量40-pinP0,P1,P2,P33228-pinSSOPP0.
1~P0.
4,P0.
6,P1.
0,P1.
2,P1.
3,P1.
5,P2.
0,P2.
1,P2.
3,P2.
4,P2.
5P3.
0~P3.
3,P3.
52044-pinP0,P1,P2,P3,P4.
0~P4.
33644-pinP0,P1,P2,P3,P4.
0~P4.
33648-pinP0,P1,P2,P3,P440P2M1(地址=96H,端口2模式寄存器1,复位值=0000,0000B)76543210P2M1.
7P2M1.
6P2M1.
5P2M1.
4P2M1.
3P2M1.
2P2M1.
1P2M1.
0P3M0(地址=B1H,端口3模式寄存器0,复位值=0000,0000B)76543210P3M0.
7P3M0.
6P3M0.
5P3M0.
4P3M0.
3P3M0.
2P3M0.
1P3M0.
0P3M1(地址=B2H,端口3模式寄存器1,复位值=0000,0000B)76543210P3M1.
7P3M1.
6P3M1.
5P3M1.
4P3M1.
3P3M1.
2P3M1.
1P3M1.
0P4M0(地址=B3H,端口4模式寄存器0,复位值=0000,0000B)76543210P4M0.
7P4M0.
6P4M0.
5P4M0.
4P4M0.
3P4M0.
2P4M0.
1P4M0.
0P4M1(地址=B4H,端口4模式寄存器1,复位值=0000,0000B)76543210P4M1.
7P4M1.
6P4M1.
5P4M1.
4P4M1.
3P4M1.
2P4M1.
1P4M1.
010.
1.
1准双向I/O端口引脚工作在准双向模式时与标准8051端口引脚类似.
一个准双向端口用作输入和输出时不需要对端口重新配置.
这种可能是因为端口输出逻辑高时,弱上拉,允许外部器件拉低引脚.
当输出低时,强的驱动能力可吸收大电流.
在准双向输出时有三个上拉晶体管用于不同的目的.
其中的一种上拉,称为微上拉,只要端口寄存器的引脚包含逻辑1则打开.
如果引脚悬空,则这种非常弱上拉提供一个非常小的电流将引脚拉高.
第二种上拉称为"弱上拉",端口寄存器的引脚包含逻辑1时且引脚自身也在逻辑电平时打开.
这种上拉对准双向引脚提供主要的电流源输出为1.
如果引脚被外部器件拉低,这个弱上拉关闭,只剩一个微上拉.
为了在这种条件下将引脚拉低,外部器件不得不吸收超过弱上拉功率的电流,且拉低引脚在输入的极限电压之下.
第三种上拉称为"强"上拉.
这种上拉用于加速准双向端口的上升沿跳变,当端口寄存器从逻辑0到逻辑1时.
当这发生时,强上拉打开两个CPU时钟,快速将端口引脚拉高.
准双向端口配置如图10-1所示.
准双向端口有施密特触发器来抑制输入噪音.
图10-1准双向I/O37MPC82G516ADataSheetMEGAWIN10.
1.
2开漏输出配置为开漏输出时,当端口寄存器包含逻辑0时,关闭所有上拉,只有端口引脚的下拉晶体管.
使用这个功能配置应用,端口引脚必须有外部上拉,典型的将电阻接到VDD.
这个模式的下拉和准双向端口的模式相同.
另外,在这种配置下的端口输入引脚的输入路径和准双向模式相同.
开漏输出端口配置如图10-2所示.
开漏输入也有一个施密特触发器用来抑制噪音.
图10-2开漏输出10.
1.
3输入口(高阻输入)输入配置一个施密特触发器但是在引脚上没有任何上拉电阻,如下图10-3所示.
图10-3输入10.
1.
4推挽输出推挽输出配置有下拉,和开漏输出、准双向输出模式有着相同的结构,当端口寄存器包含逻辑1时提供一个连续的强上拉.
当一个端口输出需要更大的电流时可配置为推挽输出模式.
另外,在这种配置下的端口输入引脚和输入路径的准双向模式的配置相同.
上拉端口配置如图10-4所示.
上拉端口引脚也包含一个输入施密特触发器用来降低噪音.
图10-4上拉输出MEGAWINMPC82G516ADataSheet3810.
2I/O口用作ADC功能端口1用作于可选择功能的模拟输入.
为了获得最好的模拟性能,引脚用作ADC时应将数字输出禁止.
这可能通过将引脚配置为输入模式来实现.
10.
3I/O口注意事项MPC82G516A的每个输出都设计有吸收典型LED的驱动电流能力,然而,所有端口的总输出最大电流不能超过极限值.
请参考29章:绝对最大值39MPC82G516ADataSheetMEGAWIN11定时器/计数器MPC82G516A有三个16位定时器/计数器:定时器0、定时器1和定时器2.
每一个包含两个8位寄存器,THx和TLx(这里,x=0、1或2).
所有这些操作既可配置为定时器或事件记数器.
定时器功能,TLx寄存器每12个时钟周期或1个周期加1,通过软件来选择.
因此可认为为计数器时钟周期.
每记12个时钟周期,计数速率达1/12的晶振频率.
计数器功能,下降沿时寄存器加1,根据外部输入引脚T0、T1或T2.
在这些功能中,每个时钟周期对外部输入信号(T0引脚和T1引脚)进行采样,每12个时钟周期对T2引脚采样.
当采样信号出现一个高电平接着一个低电平,计数加1.
当检测到跳变时新计数值出现在寄存器中.
对定时器0和定时器1来说,需要用两个时钟周期来识别下降沿跳变,最大的计数速率为1/2的晶振频率;对于定时器2,需要用24个时钟周期来识别下降沿跳变,最大计数速率为1/24的晶振频率.
外部输入信号没有严格的周期限制,但是要确保在电平改变前至少有一次采样,对定时器0和定时器1来说信号应该至少保持一个时钟,定时器2需要12个时钟周期.
对定时器0和定时器2来说,除了标准8051定时器的功能之外,添加了一些新的特征.
下面的子章节将详细描述这些定时器/计数器.
11.
1定时器0和定时器1定时器或计数器功能通过专用寄存器TMOD的控制位C/T来选择,如下所示.
这两个定时器/计数器有四种工作模式,通过TMOD的位对(M1,M0)来选择.
这两个定时器/计数器的模式0、1和模式2是相同的,模式3是不同的.
除了TMOD之外,其它专用寄存器TCON和AUXR2包含几个控制位和状态位与这两个定时也相关,也如下所示.
TMOD(地址=89H,定时器/计数器模式控制位,复位值=0000,0000B)定时器1定时器276543210GATEC/-TM1M0GATEC/-TM1M0GATE:当门控位置位时,只有在/INT0或/INT1引脚是高电平且TR0或TR1控制位置位时,定时器/计数器0或1使能.
当门控制位清零时,只要TR0或TR1置1定时器0或1使能.
C/T:定时器或计数器选择器.
清零为定时器功能(从内部系统时钟输入).
置位为计数器功能(从T0或T1引脚输入).
M0M1工作模式008位定时器/计数器.
THx与TLx作为5位预分频器0116位定时器/计数器.
THx与TLx串联;没有分步频器108位自动重载定时器/计数器.
THx保持一个值,并在每次溢出时加载到TLx11(定时器0)TL0是一个8位定时器/计数器并通过标准定时器0的控制位控制.
TH0仅仅是一个8位定时器通过定时器1的控制位控制11(定时器1)定时器/计数器停止MEGAWINMPC82G516ADataSheet40TCON(地址=88H,定时器/计数器控制位,复位值=0000,0000B)76543210TF1TR1TF0TR0IE1IT1IE0IT0TF1:定时器1溢出标志位.
定时器/计数器溢出时由硬件置位.
处理器进入中断向量程序由硬件清零.
TR1:定时器1运行控制位.
通过软件置位/清零开启或关闭定时器/计数器1.
TF0:定时器0溢出标志位.
定时器/计数器溢出时由硬件置位.
处理器进入中断向量程序由硬件清零.
TR0:定时器0运行控制位.
通过软件置位/清零开启或关闭定时器/计数器0.
AUXR2(地址=A6H,辅助寄存器2,复位值=0000,0000B)76543210T0X12T1X12URM0X6S2TRS2SMODS2TX12S2CKOET0CKOET0X12:当C/T=0时,定时器0的时钟源选择.
置位选择Fosc作为系统时钟源,清零选择Fosc/12作为时钟源.
T1X12:当C/T=0时,定时器1的时钟源选择.
置位选择Fosc作为系统时钟源,清零选择Fosc/12作为时钟源.
T0CKOE:置位/清零来使能/禁止从P3.
4输出定时器0时钟.
四种工作模式在以下的文本中描述.
11.
1.
1模式0:13位定时/计数器定时器0和定时器1的模式0看起来像一个32预分频的8位计数器.
且这两个定时器运行模式0是相同的.
图11-1展示模式0的运行.
在这个模式,定时器寄存器配置为一个13位寄存器.
计数器所有位从全1翻转到全0,置位定时器中断标志位TFx.
当TRx=1且GATE=0或/INTx=1,定时器使能输入计数.
(置GATE=1时通过外部输入/INTx控制定时器,以便脉冲宽度测量).
TRx和TFx控制位在专用寄存器TCON.
GATE位在TMOD.
有两个不同的GATE位,一个是定时器0(TMOD.
7)另一个是定时器0(TMOD.
3).
13位寄存器包含THx的所有8位和TLx的低5位.
TLx的高3位是不确定的可以忽略.
置位运行标志(TRx)不会清除寄存器.
意思是说用户在开始计数前应对THx和TLx进行初始化.
图11-1.
定时器1工作在模式0:13位定时器/计数器41MPC82G516ADataSheetMEGAWIN11.
1.
2模式1:16位定时/计数器除了定时器的寄存器使用全部16位外,模式1和模式0是相同的.
参考图11-2.
在这个模式,THx和TLx串联,没有预分频.
图11-2.
定时器1的模式1:16位定时器/计数器11.
1.
3模式2:8位自动加载模式2配置定时器寄存器为一个自动加载的8位计数器(TLx),如图11-3所示.
TLx溢出不仅置位TFx,而且也将THx的内容加载到TLx,THx内容由软件预置,加载不会改变THx的值.
图11-3.
定时器1的模式2:8位自动加载MEGAWINMPC82G516ADataSheet4211.
1.
4模式3:两个8位定时/计数器定时器1在模式3保持计数值.
效果和设置TR1=0一样.
定时器0在模式3建立TL0和TH0两个独立的计数器.
定时器0的模式3的逻辑图如图11-4所示.
TL0使用定时器0控制位:C/T、GATE、TR0、/INT0和TF0.
TH0锁定为定时器功能(每个机器周期计数)且接替定时器1来使用TR1和TF1,因从TH0控制定时器1中断.
模式3提供当有额外的需求应用时的一个8位时器或计数器时.
当定时器0在模式3时,定时器1可打开或关闭并切换到脱离,进入到自己的模式3,或仍然可用作为串行口的波特率发生器,或者不需要中断的其它应用.
图11-4定时器0工作在模式3:两个8位定时/计数器43MPC82G516ADataSheetMEGAWIN11.
1.
5定时器0的可编程时钟输出模式使用定时器0的可编程时钟输出模式,则从引脚T0CK0(P3.
4)输出占空比为50%的时钟周期.
输出频率根据系统时钟频率(Fosc)和加载值到TH0寄存器,公式如下所示.
定时器0的可编程时钟输出模式编程步骤如下:在AUXR2寄存器置位T0CKOE.
清除定时器0的C/T位在TMOD寄存器.
清除定时器0的GATE位在TMOD寄存器.
从公式计算出8位自动加载值并输入到TH0寄存器.
在TL0寄存器输入一个8位初始值.
可以和自动加载值相同.
通过设置TCON寄存器的TR0位启动定时器.
图11-5.
定时器0的可编程时钟输出模式MEGAWINMPC82G516ADataSheet4411.
2定时器2定时器2是一个16位定时器/计数器,既可作为一个定时器也可以作为一个事件计数器,通过专用寄存器T2CON的C/T2位来选择.
定时器2有四种工作模式:捕获、自动加载(向上或向下计数)、波特率发生器和可编程时钟输出,通过专用寄存器T2CON和T2MOD来选择,如下所示.
T2CON(地址=C8H,定时器/计数器2控制寄存器,复位值=0000,0000B)76543210TF2EXF2RCLKTCLKEXEN2TR2C/-T2CP/-RL2TF2:定时器2溢出标志位,定时器2溢出置位且必须通过软件清零.
当RCLK=1或TCLK=1时,TF2不会被置位.
EXF2:定时器2外部标志位,在EXEN2=1时,且在T2EX上有负跳变时加载或捕获将引起置位.
当时器2中断使能时,EXF2=1时将引起CPU进入定时器2中断向量程序.
EXF2必须通过软件清零.
EXF2在向上/向下计数器模式不会产生中断.
RCLK:接收时钟控制位.
置位时,串行口使用定时器2溢出脉冲来接收,在模式1和模式3时.
RCLK=0使用定时器1溢出脉冲来产生接收时钟.
TCLK:传送时钟控制位.
置位时,串行口使用定时器2溢出脉冲来发送,在模式1和模式3时.
TCLK=0使用定时器1溢出脉冲来产生发送时钟.
EXEN2:定时器2外部使能位.
置位时,如果定时器2没有用作串行口时钟,在T2EX的负跳变时捕获或加载并作为结果.
TR2:定时器2的启始和停止位.
逻辑1时启动定时器.
C/T2:定时器或计数器选择.
清零时,选择内部定时器.
置位时,选择外部事件计数器(下降沿触发).
CP/RL2:捕获/加载控制位.
置位时,如果EXEN2=1,在T2EX的负跳变时将产生捕获.
清零时,如果EXEN2=1,定时器2溢出或T2EX上有负跳变时将产生自动加载.
当RCLK=1或TCLK=1时,这一位被忽略并强制加载在定时器2溢出时.
T2MOD(地址=C9H,定时器/计数器2控制寄存器,复位值=xxxx,xx00B)76543210T2OEDCENT2OE:定时器2时钟输出使能位,置位使能清零禁止.
DCEN:定时器2向下计数使能位,置位使能清零禁止.
表11-1.
定时器2运行模式45MPC82G516ADataSheetMEGAWINRCLK+CP/-RL2TR2DCENT2OEModexx0x0定时器关闭1x100波特率发生器0110016位捕获0010016位自动加载(仅向上计数)0011016位自动加载(向上计数或向下计数)00101可编程时钟输出11.
2.
1捕获模式在捕获模式,有两个选项通过T2CON中的EXEN2位来选择.
如果EXEN2=0,定时器2做为一个16位的定时器或计数器,向上溢出,定时器2溢出时TF2置位.
这位可以用来产生中断(通过使能IE寄存器中的定时器2中断位).
如果EXEN2=1,定时器2仍然向上,当外部输入信号T2EX由下降沿跳变时引起定时器2的寄存器TH2和TL2分别对应的捕获到RCAP2H和RCAP2L.
另外,T2EX的跳变引起T2CON的EXF2置位,且EXF2位(象TF2)将产生一个中断(中断向量的位置和定时器2溢出中断位置相同).
捕获模式图解如图11-6.
(在这个模式TL2和TH2没有加载值.
直到从T2EX捕获事件发生,在T2EX引脚跳变或Fosc/12的脉冲产生时计数器仍然保持计数).
图11-6.
定时器2捕获模式11.
2.
2自动加载模式(加计数或减计数)在16位自动加载模式,定时器既可配置成定时器也可以配置成计数器(C/T2在T2CON寄存器),接着编程向上或向下计数.
计数方向由T2MOD寄存器的DCEN位来决定(向下计数使能).
在复位之后,DCEN=0意思是默认为定时器2向上计数.
如果DCEN置位,定时器2向上或向下计数由T2EX引脚的值来决定.
图11-7示DCEN=0,自动使能定时器2向上计数.
这个模式有两个选项可以通过T2CON寄存器的EXEN2位来选择.
如果EXEN2=0,定时器向上计数0XFFFF接着计数将置位TF2(溢出标志位).
这将引起定时器2的寄存器将RCAP2L和RCAP2H的值加载.
RCAP2L和RCAP2H的值由软件预置.
如果EXEN2=1,一个溢出或在输入T2EX的一个负跳变将触发加载16位值.
跳变将置位EXF2位.
当TF2或EXF2置1时,如果定时器2中断使能,将产生中断.
图11-8示DCEN=1,使能定时器2向上或向下计数.
这种模式下允许T2EX引脚控制计数方向.
当T2EX的引脚为逻辑1时定时器2向上计数.
定时器2在0FFFFH时溢出并置位TF2标志位,如果中断使能将产生中断.
溢出也将引起RCAP2L和RCAP2H的16位值加载到定时器的寄存器TL2和TH2.
当T2EX的引脚为逻辑0时定时器2向下计数.
当TL2和TH2和存储在RCAP2L和RCAP2H的值相等时将产生下溢.
下溢将置位TF2标志位并将0FFFFH加载到定时器的寄存器TL2和TH2.
当定时器2下溢或上溢时外部标志位EXF2将被触发.
如果需要EXF2可作为17位分辨率.
EXF2标志位在这个模式下不会产生中断.
MEGAWINMPC82G516ADataSheet46图11-7.
定时器2自动加载模式(DCEN=0)图11-8.
定时器2自动加载模式(DCEN=1)11.
2.
3波特率发生器模式T2CON寄存器的RCLK和或RCLK位允许串行口发送和接收波特率既可源自定时器1或定时器2.
当TCLK=0时,定时器1作为串行口传送波特率发生器.
当TCLK=1,定时器2作为串行口传送波特率发生器.
RCLK对串行口接收波特率有相同的功能.
有了这两位,串行口可能有不同的接收和发送波特率,一个通过定时器1来产生,另一个通过定时器2来产生.
图11-9示定时器2在波特率发生器模式.
波特率发生器模式像自动加载模式,翻转时将把寄存器RCAP2H和RCAP2L的值加载到定时器2的寄存器,RCAP2H和RCAP2L的值由软件预置.
模式1和3的波特率由定时器2的溢出速率决定16231溢出速率定时时波特率和模式模式47MPC82G516ADataSheetMEGAWIN定时器既可配置为"定时器"或"计数器"工作方式.
在许多应用场合,配置成"定时器"工作方式(C/T2=0).
当定时器2作为波特率发生器时定时器操作是不同的.
通常,作为一个定时器将在1/12的系统时钟频率加1.
作为一个波特率发生器,系统时钟频率的1/2加1.
波特率计算公式如下:161]2,2[65536(231xLRCAPHRCAPxFosc的波特率和模式模式这里:Fosc是系统时钟.
RCAP2H,RCAP2L的内容为一个16位的无符号数,可由如下计算出:波特率xFoscLRCAPHRCAP3265536]2,2[定时器2作为一个波特率发生器模式如图11-9所示,只有在T2CON寄存器的位RCLK和/或TCLK=1为1时有效.
注意TH2翻转不会置位TF2,也不会产生中断.
因而,当定进器2在波特率发生器模式时定时器中断不需要禁止.
如果EXEN2(T2外部中断使能位)置位,T2EX(定时器/计数器2触发输入)的负跳变将置位EXF2(T2外部标志位),但是不会引起从(RCAP2H,RCAP2L)到(TH2,TL2的)重载.
因此,当定时器2作为波特率发生器时,如果需要的话,T2EX也可以作为传统的外部中断.
当定时器2在波特率发生器模式时,不能试着去读TH2和TL2.
作为一个波特率发生器,定时器2在1/2的系统时钟频率或从T2引脚的异步时增1;在这些条件下,读写操作将会不正确.
寄存器RCAP2可以读,但是不可以写,因为写和重载重叠并引起写和/或加载错误.
在进入定时器2或RCAP2寄存器时定时器不可以关闭(清零TR2).
图11-9.
定时器2的波特率发生器模式MEGAWINMPC82G516ADataSheet48表11-2和表11-3列出不同的经常使用的波特率和如何从定时器2获得.
表11-2.
定时器2产生常用的波特率@Fosc=11.
0592MHz表11-3.
定时器2产生常用的波特率@Fosc=22.
1184MHz定时器2在波特率发生器模式波特率[RCAP2H,RCAP2L]RCAP2HRCAP2L30063232F7H00H60064384FBH80H120064960FDHC0H180065152FEH80H240065248FEHE0H480065392FFH70H720065440FFHA0H960065464FFHB8H1440065488FFHD0H1920065500FFHDCH3840065518FFHEEH5760065524FFHF4H11520065530FFHFAH49MPC82G516ADataSheetMEGAWINTimer2inBaudRateGeneratorModeBaudRate[RCAP2H,RCAP2L]RCAP2HRCAP2L364384FBH80H664960FDHC0H1265152FEH80H1865248FEHE0H2465392FFH70H4865440FFHA0H7265464FFHB8H9665488FFHD0H14465500FFHDCH19265518FFHEEH38465524FFHF4H57665530FFHFAH11520065533FFHFDH11.
2.
4定时器2的可编程时钟输出模式使用定时器2的可编程时钟输出模式,则从引脚T2CKO(P1.
0)输出占空比为50%的时钟周期.
输出频率由系统时钟频率(Fosc)和在RCAP2H和RCAP2L寄存器的重载值来决定,如下公式:]2,2[65536(4LRCAPHRCAPxFosc时钟输出频率这里[RCAP2H,RCAP2L]=RCAP2H和RCAP2L内容产生的一个16位无符号数.
定时器2的可编程时钟输出模式编程步骤如下:置位T2MOD寄存器的T2OE位.
清除T2CON寄存器的C/T2位.
从公式计算出16位加载值并输入到RCAP2H和RCAP2L寄存器.
在TH2和TL2输入一个16位初始值.
可以和重载值相等.
设置T2CON的TR2控制位开启动定时器.
在时钟输出模式,定时器2翻转不会产生中断,这和用作波特率发生器时相似.
可同时使用定时器2作为一个波特率发生器和时钟发生器.
注意,波特率和时钟输出都由定时器2的溢出速率来决定.
图11-10.
定时器2的可编程时钟输出模式MEGAWINMPC82G516ADataSheet5012串行口12.
1标准UART操作一个全双工的串行口,意思是可以同时发送和接收数据.
它也有一个接收缓冲,意味着在前一个接收到的字节没有从寄存器读出前,就可以开始接收第二个字节.
(然而,如果第一个字节在第二个字节接收完成前仍然没有被读出,则其中的一个字节将会丢失).
串行口的接收和发送寄存器都通过特殊寄存器SBUF来访问.
写到SBUF加载到传送寄存器,当从SBUF读时是通过一个物理上独立分离的接收寄存器.
串行口可以工作在四种模式:模式0提供同步通讯同时模式1、2和模式3提供异步通讯.
异步通讯作为一个全双工的通用异步收发器(UART),可以同时发送和接收并使用不同的波特率.
模式0:8位数据(低位先出)通过RXD传送和接收.
TXD总是作为输出移位时钟.
波特率固定为系统时钟频率的十二分之一,也就是Fosc/12.
模式1:10位通过TXD传送或通过RXD接收,一个起始位(0),8个数据位(低位优先),和一个停止位(1).
在接收时,停止位进入到专用寄存器(SCON)的RB8.
波特率是可变的.
模式2:11位通过TXD传送或通过RXD接收,起始位(0),8个数据位(低位优先),一个可编程的第九个数据位和一个停止位(1).
在传送时,第9个数据位(TB8在SCON寄存器)可以分配为0或者1.
例如,奇偶检验位(P,在PSW寄存器)可以移到TB8中.
在接收时,第九个数据位到SCON寄存器中的RB8,同时忽略停止位.
波特率可以配置为1/32或1/64的系统时钟频率.
也就是Fosc/64或Fosc/32.
模式3:11位通过TXD传送或通过RXD接收,起始位(0),8个数据位(低位优先),一个可编程的第九个数据位和一个停止位(1).
实际上,模式3和模式2除了波特率不相同之外其它的都相同.
模式3的波特率是可变的.
在四种模式中,使用SBUF作为一个目的寄存器,可以通过任何指令发起传输.
在模式0,当RI=0且REN=1时启动接收.
在其它模式,在REN=1时,通过收到起始位启动接收.
12.
1.
1多处理器通讯模式2和3在用作多处理器通讯时有特殊的规定.
在这两种模式,接收9个数据位.
第9个数据位存入RB8,接着进来一个停止位.
端口可以编程为在RB8=1时,当收到停止位后,串口中断将激活.
这种特征通过设置SM2位(在SCON寄存器中)来使能.
这种方式用于多处理器系统如下:当主处理器想传送一个数据块到多个从机中的某一个时,首先传送想要传送的目标地址标识符的地址.
地址字节与数据字节的区别在于,在地址字节中第9位为1,数据字节中为0.
当SM2=1时,收到一个数据字节将不会产生中断.
然而一个地址字节将引发所有从机中断.
因而所有的从机可以检测收到的字节是否是自己的地址.
从机地址将清除SM2位并准备好接收即将进来的所有数据.
从机地址不匹配的将保持SM2置位,并继续他们的工作,忽略进来的数据字节.
SM2在模式0和模式1没有影响,但是可以用来检测停止位的有效性.
在接收模式1中,如果SM2=1,除非一个收到一个有效的停止位否则接收中断不会被激活.
12.
1.
2串行口(UART)配置寄存器串行口的控制位和状态位在专用寄存器SCON.
这个寄存器不仅包含模式选择位,也包含用来传送和接收(TB8和RB8)的第9个数据位,和串行中断位(TI和RI).
51MPC82G516ADataSheetMEGAWINSCON(地址=98H,串行口控制寄存器,复位值=0000,0000B)76543210SM0/FESM1SM2RENTB8RB8TIRIFE:帧错误位.
当接收器检测到一个无效的停止位时这位置1.
当收到有效的帧时FE不会自动清除,但是可以用软件清除.
SMOD0位(在PCON寄存器)必须置1来使能访问FE位.
SM0:串行口模式位0(SMOD0必须为0来访问SM0位)SM1:串行口模式位1.
SM0SM1模式描述波特率000移位寄存器Fosc/12或Fosc/20118位UART可变的1029位UARTFosc/64或Fosc/321139位UART可变的这里,Fosc是系统时钟频率.
SM2:在模式2和3时使能地址自动识别.
如果SM2=1那么RI将不能设置,除非接收到的第9位数据(RB8)为1,指示是一个地址,并且一个接收字节给出定的或者是一个广播地址.
在模式1,如果SM=1那么RI将不能被激活除非收到一个有效的停止位,并且接收到的字节是给定的或者是一个广播地址.
在模式0,SM可以为0.
REN:允许接收位.
通过软件置1接收使能,软件清零将禁止接收.
TB8:在模式2和3时第9位数据被传送,根据需要通过软件置位或清零.
RB8:在模式2和3时收到第9位数据.
在模式1,如果SM2=0,RB8是收到数据的停止位.
在模式0,RB8没有使用.
TI:发送中断标志.
在模式0时,在第8位个数据位时序后由硬件置位.
或者在其它模式下,在发送停止位前.
在任何串行传输前,必须由软件清除.
RI:接收中断标志.
在模式0时,在第8位个数据位时序后由硬件置位.
或者在其它模式下,在传送的中途改变.
在任何串行传输前,必须由软件清除.
PCON(地址=87H,电源控制寄存器,复位值=00xx,0000B(or00x1,0000B在上电复位后))76543210SMODSMOD0-POFGF1GF0PDIDLSMOD0:清零时SCON.
7的功能为"SM0",置1时SCON.
7的功能为"FE".
AUXR2(地址=A6H,辅助寄存器2,复位值=00x0,0000B)76543210T0X12T1X12URM0X6S2TRS2SMODS2TX12S2CKOET0CKOET1X12:当C/-T=0时,选择定时器1为时钟源.
置位选择Fosc作为时钟源,清零时选择Fosc/12作为时钟源.
URM0X6:置位时选择Fosc/2作为UART模式0的波特率.
清零时选择Fosc/12作为UART模式0的波特率.
12.
1.
3波特率在模式0的波特率可以为Fosc/12或Fosc/2,根据控制位URM0X6(在AUXR2寄存器).
这里,Fosc是系统时钟频率.
模式1和3的波特率由定时器1和定时器2的溢出速率来决定的.
模式2的波特率由PCON寄存器的SMOD位来决定.
如果SMOD=0(复位值),波特率是Fosc/64;如果SMOD=1,波特率是Fosc/32,如下所示.
MEGAWINMPC82G516ADataSheet52xFosc6422SMOD波特率模式12.
1.
4使用定时器1产生波特率定时器1作为波特率发生器(T2CON.
RCLK=0,T2CON.
TCLK=0)时,模式1和模式3的波特率由定时器1溢中速率和SMOD的值来决定,如下所示:在这个应用中可以禁止定时器1中断.
定时器自身可配置为"定时器"或配置为"计数器",或在三种运行模式中的一种.
在多数典型应该中,被配置为"定时器"运行,并且在自动加载模式(TMOD的高四位等于0010B).
在那种情况下波特率由下面的公式给出:)1256(32231THnxFoscxSMOD波特率,模式模式使用定时器1中断使能可实现非常低的波特率,配置定时器作为一个16位定时器(TMOD的高4位为0001B),使用定时器1中断并且用软件加载.
表12-1和表12-2列出不同的经常使用的波特率和如何从定时器1获得8位自动加载模式.
表12-1定时器1产生普通使用的波特率@Fosc=11.
0592MHzTH1,自动加载值T1X12=0T1X12=1波特率SMOD=0SMOD=1SMOD=0SMOD=130016064600208160120023220818002402246424002442321124800250244184112720025224820816096002532502201841440025425223220819200253238220384002472385760025525024411520025325053MPC82G516ADataSheetMEGAWIN表12-2.
定时器1产生通用的波特率@Fosc=22.
1184MHzTH1,自动加载值T1X12=0T1X12=1波特率SMOD=0SMOD=1SMOD=0SMOD=130064---60016064--1200208160--1800224192--2400232208--4800244232112-720024824016064960025024418411214400252248208160192002502201843840025323822057600254244232115200255250244MEGAWINMPC82G516ADataSheet5412.
1.
5模式0的扩展串行数据通过RXD读入和输出,TXD输出移位时钟.
接收和发送8位数据:8个数据位(低位优先).
波特率固定为系统时钟的1/12.
图12-1显示了串口模式0的简化功能框图及相关时序.
使用SBUF作为一个目的寄存器可通过任何指令来启动传输.
"写到SBUF"信号也加载了1到第9个位置到传送寄存器,并且通知TX控制块启动一个传输.
内部时序在"写到SBUF"的适当时机激活发送.
发送使能输出到移位寄存器,选择输出功能线P3.
0,也可以使能移位时钟选择输出功能线P3.
1.
移位时钟是6个低时钟和6个高时钟.
每12个时钟周期激活发送,移位传送的内容移出右边的一位.
数据位从右边移出,左边补零.
当数据字节的最高位在移位寄存器输出位置时,接着1被加载到第9位,在最高位的左侧,左边的所有位包含零.
TX控制块的条件标志位在最后一次移位后释放发送并置位TI.
所有的这些事件发生在"写入到SBUF"的第10位之后.
当REN=1和RI=0时接收启动.
在下一个指令周期,RX控制单元写11111110到接收移位寄存器,且在下一个时钟相位激活接收.
接收使能移位时钟选择输出功能P3.
1引脚.
每6个时钟周期产生一个移位时钟.
当接收激活时,移位寄存器的内容向左移动一位.
数据从右到左在P3.
0脚采样.
数据位从向边移入,1位从左边移出.
当0开始加载到最右边位置到达移位寄存器的最左边位置时,状态RX控制块做最后一次移位并加载SBUF.
在写入SCON的第10位时序后清除RI,接收位RI置1.
12.
1.
6模式1的扩展通过TXD发送10位数据或通过RXD接收10位数据:一个起始位(0),8个数据位(低位先出),和一个停止位(1).
在接收时,停止位进入SCON的RB8,波特率由定时器1或定时器2的溢出速率来决定.
图12-2所示串行口在模式1的一个简单的功能图,和传送和接收的相关时序.
使用SBUF作为目的寄存器可以使用任何指令来启动传输.
写到SBUF信号也加载一个1到移位寄存器的第9位和发送控制单元的标志位,以发出一个传输请求.
真正的传输开始是在指令周期随着下一个除16位计数的翻转.
(因而,位时序与16分频计数器同步,不是到"写到SBUF"信号).
起始位在TXD时,传输开始被激活发送.
一位时序后,数据激活,使能输出传送移位寄存器到TXD.
第一个移位脉冲在一位之后.
数据位从右移出,0从左边移入.
当数据位的最高位在移位寄存器的输出位置时,接着1加载到第9个位置,.
所有位到左边包括0.
这个条件标志当检测到在RXD有1到0的跳变时接收开始.
为此RXD在一位采样16次,只要波特率建立了.
当检测的一个传输时,16分频计数器立即复位,且1FFH写进输入移位寄存器中.
计数器的16种状态分频成16位时序.
接收器在第8、9和第10个采样点采样RXD引脚的值.
在三个采样中有至少两个是逻辑1,则为噪声而拒绝.
如果接收值的第一个位时序不为0,接收电路复位并继续检测下一个1到0的转换.
这提供拒绝假的起始位.
如果一个有效的起始位,将移进移位寄存器,在帧接收完成后接收复位.
55MPC82G516ADataSheetMEGAWIN数据位从右边进入,1位从左边移出.
当起始位到达移位寄存器的最左边位置时(在模式1是一个9位寄存器),在进行最后一个移位时,RX控制块的标志加载到SBUF和RB8,并置位RI.
在最后一个移位脉冲产生时,只要下面的条件满足时,信号加载SBUF和RB8并置位RI,将被产生.
1.
RI=0,且2.
SM2=0,或接收数据位的第9位等于1.
如果有一个条件不满足,接收帧将彻底丢失,且RI不会置位.
如果所有条件都满足,接收的第9个数据位进入RB8,且前8个数据位进入到SBUF.
一个位时序后,不论上述条件是否满足,接收单元继续在RXD输入引脚检测1到0的转换.
12.
1.
7模式2和模式3的扩展通过TXD传送11位或通过RXD接收16位:一个起始位(0),8个数据位(低位优先),一个可编程的第9个数据位和一个停止位(1).
在传送时,数据的第9位(TB8)可分配为0或1.
在接收时,数据的第9位将进入到SCON的RB8.
在模式2波特率可编程为1/32或1/64的系统时钟频率.
模式3可以产生可以从定时器1或定时器2产生可变的波特率.
图12-3和图12-4展示模式2和模式3的串口功能图.
接收部分和模式1相同.
与模式1传送部分不同的只有传送寄存器的第9位.
使用SBUF作为目的寄存器时可通过任何指令来启动传送.
"写到SBUF"信号也加载TB8到传送移位寄存器的第9位,且TX控制单元的标志请求一个传送.
在16分频计数器的下一次翻转时传送开始.
激活发送开始传送,并将起始位放到TXD.
一位时序后,数据激活,使能传送移位寄存器输出到TXD.
第一个移位脉冲发生在第一个移位脉冲之后.
第1个移位时钟1(停止位)进入到移位寄存器的第9位.
此后,只有0移入.
因此,数据位向右移出,0随着时钟从左边移入.
当TB8是移位寄存器的输出位置时,接着停止位左移到TB8,且所有位包括零.
在RXD引脚检测到下降沿时接收开始.
只要波特率建立,RXD以16倍的速率采样.
当检测到一个传送时,16分频计数器立即复位,1FFH写入到移位寄存器.
计数器状态的第8、9和第10个位时序采样RXD引脚的值,在接收值的三个采样中至少有两个为逻辑1.
如果在第1个位时序接收的值不为0,则接收电路立即复位并且继续检测下一个1到0的转换.
如果一个有效的起始位被发现,将移进移位寄存器且接收帧将继续.
数据位从右边进入,1位从左边移出.
当起始位到达移位寄存器的最左边位置时(在模式2和模式3是一个9位寄存器),在进行最后一个移位时,RX控制块的标志加载到SBUF和RB8,并置位RI.
在最后一个移位脉冲产生时,只要下面的条件满足时,信号加载SBUF和RB8并置位RI,将被产生.
3.
RI=0,且4.
SM2=0,或接收数据位的第9位等于1.
如果有一个条件不满足,接收帧将彻底的丢失,且RI不会置位.
如果所有条件都满足,接收的第9个数据位进入RB8,且前8个数据位进入到SBUF.
一个位时序后,不论上述条件是否满足,接收单元继续在RXD输入引脚检测1到0的转换.
MEGAWINMPC82G516ADataSheet56图12-1串行口模式157MPC82G516ADataSheetMEGAWIN图12-2串行口模式1MEGAWINMPC82G516ADataSheet58图12-3串行口模式259MPC82G516ADataSheetMEGAWIN图12-4串行口模式3MEGAWINMPC82G516ADataSheet6012.
2扩展的UART功能除了支持标准操作外,该UART还支持通过检查是否丢失停止位来进行帧错误检测,和自动地址识别功能.
12.
2.
1帧错误检测开启帧错误检测功能后,UART会在通讯中检测是否丢失停止位,如果丢失一个停止位,就设置SCON寄存器的FE标志位.
FE标志位和SM0标志位共享SCON.
7,SMOD0标志位(PCON.
6)决定SCON.
7究竟代表哪个标志,如果SMOD0位(PCON.
6)置位则SCON.
7就是FE标志,SMOD0位清零则SCON.
7就是SM0标志.
当SCON.
7代表FE时,只能软件清零.
请参考图12-5.
图12-5.
UART帧错误检测12.
2.
2自动地址识别自动地址识别通过硬件比较可以让UART识别串行码流中的地址部分,该功能免去了使用软件识别时需要大量代码的麻烦.
该功能通过设定SCON的SM2位来开启.
在9位数据UART模式下,即模式2和模式3,收到特定地址或广播地址时自动置位接收中断(RI)标志,9位模式的第9位信息为1表明接收的是一个地址而不是数据.
自动地址识别功能请参考图12-6.
在8位模式,即模式1下,如果SM2置位并且在8位地址与给定地址或广播地址核对一致后收到有效停止位则RI置位.
模式0是移位寄存器模式,SM2被忽略.
使用自动地址识别功能可以让一个主机选择性的同一个或多个从机进行通讯,所有从机可以使用广播地址接收信息.
增加了SADDR从机地址寄存器和SADEN地址掩码寄存器.
SADEN用来定义SADDR中的那些位是"无关紧要"的,SADEN掩码和SADDR寄存器进行逻辑与来定义供主机寻址从机的"给定"地址,该地址让多个从机进行排他性的识别.
下面的实例帮助理解这个方案的通用性:61MPC82G516ADataSheetMEGAWIN从机0SADDR=11000000SADEN=11111101地址=110000X0从机1SADDR=11000000SADEN=11111110地址=1100000X上面的例子中SADDR是相同的值,而使用SADEN数据来区分两个从机.
从机0要求第0位必须为0,并忽略第1位的值;从机1要求第1位必须为0,并忽略第0位的值.
从机0的唯一地址是11000010,而从机1的唯一地址是11000001,地址11000000是可以同时寻找到从机0和从机1的.
下面一个更为复杂的系统可以寻址到从机1和从机2,而不会寻址到从机0:从机0SADDR=11000000SADEN=11111001地址=11000XX0从机1SADDR=11100000SADEN=11111010地址=11100X0X从机2SADDR=11100000SADEN=11111100地址=111000XX上面的例子中,3个从机的低3位地址不一样,从机0要求第0位必须为0,11100110可以唯一寻址从机0;从机1要求第1位必须为0,11100101可以唯一寻址从机1;从机2要求第2位必须为0,它的唯一地址是11100011.
为了寻址到从机0和从机1而不会寻址到从机2,可以使用地址11100100,因为这个地址第2位是1.
每个从机的广播地址SADDR和SADEN的逻辑或,0按不需关心处理.
大部分情况下,使用FF作为广播地址.
复位后,SADDR(SFR地址0A9H)和SADEN(SFR地址0B9H)值均为0,这样可以接收所有地址的信息,也就有效的禁用了自动地址识别模式,从而使该处理器运行于标准80C51的UART下.
图12-6.
UART多处理器通讯,自动地址识别MEGAWINMPC82G516ADataSheet6213第2个UART(UART2)MPC82G516A带有第2个UART(以后就称作UART2),和第1个UART一样,也有4种运行模式,两个UART的区别如下:(1)UART2没有增强功能:帧错误检测和自动地址识别.
(2)UART2使用特定的波特率定时器作为其波特率发生器.
(3)UART2使用端口P1.
3(S2TXD)和P1.
2(S2RXD)分别作为接收和发送端口.
两个UART可以不同或相同模式、不同或相同通讯速率同时工作.
13.
1UART2配置寄存器以下特殊功能寄存器是和UART2相关的:S2CON(地址=AAH,UART2控制寄存器,复位值=0000,0000B)76543210S2SM0S2SM1S2SM2S2RENS2TB8S2RB8S2TIS2RIS2SM0:UART2模式选择位0.
S2SM1:UART2模式选择位1.
S2SM0S2SM1模式功能描述波特率000移位寄存器Fosc/120118位UART可变1029位UARTFosc/64或Fosc/321139位UART可变表中Fosc是系统时钟频率.
S2SM2:使能模式2和模式3下多机通讯功能,若SM2=1,除非接收到的第9位(RB8)为1,表明接收到的是地址且和设定地址或广播地址相同,否则RI不会置位.
模式1下,若SM2=1,除非收到给定地址或广播地址,且收到有效停止位,否则RI不会置位.
模式0下,SM2应设为0.
S2REN:使能串行接收.
软件设置使能接收,软件清零则关闭接收功能.
S2TB8:模式2和3下,要发送的第9位数据,软件清零或设置.
S2RB8:模式2和3下,收到的第9位数据.
模式1下,若SM2=0,RB8是收到的停止位.
模式0下,RB8没有用.
S2Tl:发送中断标志.
硬件置位,必须软件清零.
模式0下在发送完第8位数据后,或其他串行发送模式下发送停止位时,由硬件自动置位.
S2Rl:接收终端标志.
硬件置位,必须软件清零.
模式0下接收到第8位数据后,或其他串行发送模式下接收到停止位的过程中,由硬件自动置位(例外情况请参见SM2).
S2BUF(地址=9AH,UART2串行数据缓冲器,复位值=xxH)76543210(D7)(D6)(D5)(D4)(D3)(D2)(D1)(D0)S2BRT(地址=BAH,UART2波特率定时器重装寄存器,复位值=00H)76543210(BaudRateTimerReloadValue)AUXR2(地址=A6H,辅助寄存器2,复位值=0000,0000B)76543210T0X12T1X12URM0X6S2TRS2SMODS2TX12S2CKOET0CKOES2TR:UART2波特率定时器控制位.
设置/清零进行打开/关闭.
S2SMOD:UART2二倍波特率使能位.
设置即表示进行波特率二倍频.
S2TX12:UART2波特率定时器时钟源选择.
设置选择Fosc,清零选择Fosc/12.
S2CKOE:设置时打开UART2波特率定时器在P3.
5引脚的输出功能.
63MPC82G516ADataSheetMEGAWINAUXR(地址=8EH,辅助寄存器,复位值=0000,xx0xB)76543210URTSADRJP41ALEP35ALE--EXTRAM-URTS:0:定时器1或定时器2可以用作模式1和模式3下的波特率发生器.
1:当定时器1作为第一个UART的模式1或模式3下的波特率发生器时,定时器1的溢出信号被UART2波特率定时器溢出信号替代.
(请参考13-3节)13.
2UART2波特率13.
2.
1模式0若RM0X6=0,Fosc模式0波特率=12若URM0X6=1,Fosc模式0波特率=213.
2.
2模式1和模式32S2SMODFosc模式1,3波特率=x其中,32若S2X12=0,则n=12,若S2X12=1,则n=1nx(256-S2BRT)13.
2.
3模式22S2SMOD模式2波特率=xFosc64MEGAWINMPC82G516ADataSheet6413.
3标准UART使用UART2的波特率发生器在标准(第1个)UART的模式1和模式3下,用户可以通过清除T2CON寄存器的TCLK和RCLK位选择使用定时器1作为波特率发生器.
在这种情况下,若URTS位(AUXR寄存器)设为1,定时器1的溢出信号被UART2波特率定时器的溢出信号代替,换句话说,用户可以将UART2的波特率发生器作为标准(第1个)UART的模式1或3下的波特率发生器,只要RCLK=0,TCLK=0且URTS=1.
在这种条件下,定时器1可以作其他用途,当然,若UART2(模式1或3下)此时也在工作,则这两个UART运行在相同的波特率.
图13-1.
标准UART的新波特率源65MPC82G516ADataSheetMEGAWIN13.
4UART2波特率发生器的可编程时钟输出使用UART2波特率定时器,可以从引脚S2CKO(P3.
5)输出一个50%占空比的时钟信号.
输出的时钟信号频率取决于时钟频率(Fosc)和S2BRT寄存器中的重装值,如下所示公式计算:UART2波特率定时器的可编程时钟输出模式编程如下:设置AUXR2寄存器的S2CKOE位.
由公式确定8位重载值并写入S2BRT寄存器.
设置AUXR2中的运行控制位来启动UART2波特率定时器图13-2.
UART2波特率定时器的可编程时钟输出MEGAWINMPC82G516ADataSheet6614可编程计数器阵列(PCA)MPC82G516A带有一个可编程计数器阵列(PCA),该功能与标准定时/计数器相比以更少的CPU占用提供了更多的定时能力.
它的优点包括减少了软件复杂度并提高了精度.
14.
1PCA概述PCA由一个特定定时/计数器作为一个6比较/捕获模块的时基,图14-1显示了PCA的功能方框图.
需要注意的是PCA定时器和模块都是16位的.
如果一个外部事件同一个模块关联,那末该功能就和相应的端口1引脚共享.
若某模块没有使用端口引脚,这个引脚还可以用作标准I/O.
6比较/捕获模块中的每一个都可以编程为如下任意模式:-上升和/或下降沿捕获-软件定时器-高速输出-脉宽调制输出所有这些模式将在后面的章节进行详细讨论.
这里,让我们先看看如何设置PCA时钟和模块.
图14-1.
PCA方框图14.
2PCA定时/计数器PCA的定时/计数器由一个可以自由运行的16位定时器组成,如图14-2所示分为CH和CL高低两部分,它是所有模块的共有时基,它的时钟输入可以从以下来源选取:-1/12系统时钟频率,-1/2系统时钟频率,-定时器0溢出,可以让低频时钟源输入到PCA定时器.
-外部时钟输入,ECI(P1.
1)引脚的1-0反转.
特殊功能寄存器CMOD包含了计数脉冲选择位(CPS1和CPS0)来指定PCA定时器时钟源.
这个寄存器也包括了ECF位来使能计数器溢出中断.
此外,用户可以在待机模式下设置计数器待机位(CIDL),来关闭PCA定时器,这样可以进一步降低待机模式下的功耗.
67MPC82G516ADataSheetMEGAWIN图14-2.
PCA定时/计数器图中,Fosc是系统时钟.
CMOD(地址=D9H,PCA计数器模式寄存器)76543210CIDL----CPS1CPS0ECFCIDL:PCA计数器待机控制.
CIDL=0让PCA计数器在待机模式下继续运行.
CIDL=1待机模式下关闭PCA计数器.
CPS1-CPS0:PCA计数器时钟源选择位.
00内部时钟,Fosc/12(Fosc代表系统时钟.
)01内部时钟,Fosc/210定时器0溢出11ECI引脚输入的外部时钟源.
ECF:使能PCA计数器溢出中断.
ECF=1当CF位(CCON寄存器中)置位时使能中断.
如下所示的CCON寄存器包含PCA运行控制位和PCA定时器与每个模块的标志.
要运行PCA,CR为(CCON.
6)必须软件置位,要关闭PCA,可以清除该位.
PCA计数器溢出时,CF(CCON.
7)置位,并且若CMOD寄存器的ECF为置位,还会产生一个中断,CF位只能软件清零.
CCF0到CCF5是模块0到模块5的相应中断标志位,当发生一个匹配或捕获事件时,硬件置位,这些位也必须软件清零.
PCA中断系统如图14-3所示.
CCON(地址=D8H,PCA控制寄存器)76543210CFCRCCF5CCF4CCF3CCF2CCF1CCF0CF:PCA计数溢出标志.
溢出时硬件置位,CF标志在CMOD寄存器的ECF位置位时会产生一个中断,CF可以硬件或软件置位,但只能软件清零.
CR:PCA计数控制位.
软件设置来启停PCA计数器.
1:启动PCA计数器,0:关闭PCA计数器.
CCF0~CCF5:PCA模块0到模块5中断标志.
发生一个匹配或捕获时硬件置位,必须软件清零.
MEGAWINMPC82G516ADataSheet68图14-3.
PCA中断系统14.
3比较/捕获模块6比较/捕获模块中的每一个都有一个模式寄存器,叫做CCAPMn(n代表0,1,2,3,4,5),来选择其工作模式.
ECCFn位控制当中断标志置位时每个模块的中断开启/关闭.
CCAPMn,n=0~5(地址=DAH~DFH,PCA模块比较/捕获寄存器)76543210-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFnECOMn:比较器使能位.
ECOMn=1使能比较器功能.
CAPPn:捕获上升沿.
CAPPn=1使能上升沿捕获CAPNn:捕获下降沿.
CAPNn=1使能下降沿捕获MATn:匹配控制.
MATn=1,PCA计数器同相应模块的比较/捕获寄存器匹配时设置CCON寄存器的CCFn位.
TOGn:翻转控制.
TOGn=1,PCA计数器同相应模块的比较/捕获寄存器匹配时CEXn引脚电平翻转一次.
PWMn:PWM控制.
PWMn=1使能CEXn引脚用作脉宽调制输出.
ECCFn:使能CCFn中断.
使能CCON寄存器中的比较/捕获标志CCFn中断.
注:CAPNn(CCAPMn.
4)位和CAPPn(CCAPMn.
5)位决定了捕获发生时信号脉冲沿,若这两位同时设置,则上下降沿都会发生捕获.
每一个模块都有一对8位比较/捕获寄存器(CCAPnH,CCAPnL)与其相关联.
这些寄存器用来保存捕获事件发生时或比较事件发生时的值.
当某个模块用作PWM模式时,除了上面两个寄存器外,还有一个扩展的寄存器PCAPWMn被用来扩展输出占空比的范围,扩展的范围从0%到100%,步距是1/256.
69MPC82G516ADataSheetMEGAWINPCAPWMn,n=0~5(地址=F2H~F7H,PWM模式辅助寄存器)76543210ECAPnHECAPnLECAPnH:扩展的第9位(最高位扩展),用在PWM模式下,与CCAPnH联用并成为其第9位.
ECAPnL:扩展的第9位(最高位扩展),用在PWM模式下,与CCAPnL联用并成为其第9位.
14.
4PCA模式设置表14-1显示了不同PCA功能对应的CCAPMn寄存器设置.
表14-1.
PCA模块工作模式ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn模块功能0000000无操作X10000X16位CEXn引脚上升沿触发捕获模式X01000X16位CEXn引脚下降沿触发捕获模式X11000X16位CEXn引脚跳变触发捕获模式100100X16位软件定时器100110X16位高速输出10000108位脉宽调制器(PWM)14.
4.
1捕获模式要让某一PCA模块工作与捕获模式,相应的CAPN和/或CAPP位必须置位.
外部CEX输入会在每次跳变是采样,当有效跳变发生时,PCA硬件会将PCA计数器寄存器值装入模块的捕获寄存器(CH放入CCAPnH,CL放入CCAPnL).
若模块的CCFn和ECCFn标志置位,会产生一个中断.
图14-4.
PCA捕获模式MEGAWINMPC82G516ADataSheet7014.
4.
216位软件定时器模式PCA模块可以通过设置CCAPMn寄存器的ECOM位和MAT位来作为一个软件定时器使用,PCA定时器与模块的捕获寄存器值进行比较,若相等则当CCFn和ECCFn位设置时会产生一个中断信号.
图14-5.
PCA软件定时器模式14.
4.
3高速输出模式这种模式下,每当PCA计数器与模块捕获寄存器值相等时,CEX的输出就翻转一次.
为激活这种模式,CCAPMn寄存器的TOG,MAT和ECOM位必须都置为1.
图14-6.
PCA高速输出模式71MPC82G516ADataSheetMEGAWIN14.
4.
4PWM模式所有PCA模块都可用作PWM输出,输出频率取决于PCA定时器的时钟源,所有的模块都有相同的输出频率,因为它们共享PCA定时器.
占空比取决于模块捕获寄存器CCAPnL与扩展的第9位ECAPnL的值.
当9位数据{0,[CL]}值小于{ECAPnL,[CCAPnL]}组成9位数据时,输出低电平,相等或大于时输出高电平.
当CL从0xFF到0x00溢出时,{ECAPnL,[CCAPnL]}的值使用{ECAPnH,[CCAPnH]}的值重载,这样可以允许无异常脉冲的更新PWM.
模块的CCAPMn寄存器PWMn和ECOMn位必须置位以使能PWM模式.
使用9位比较,输出的占空比可以真正实现从0%到100%可调.
占空比计算公式如下:占空比=1–{ECAPnH,[CCAPnH]}/256.
这里,[CCAPnH]是CCAPnH寄存器的值,ECAPnH(PCAPWMn寄存器的第1位)是1位值.
所以,{ECAPnH,[CCAPnH]}组成了9位比较器用的9位值.
例如,a.
若ECAPnH=0且CCAPnH=0x00(即9位值,0x000),占空比是100%.
b.
若ECAPnH=0且CCAPnH=0x40(即9位值,0x040),占空比是75%.
c.
若ECAPnH=0且CCAPnH=0xC0(即9位值,0x0C0),占空比是25%.
d.
若ECAPnH=1且CCAPnH=0x00(即9位值,0x100),占空比是0%.
图14-7.
PCAPWM模式MEGAWINMPC82G516ADataSheet7215串行外设接口(SPI)MPC82G516A提供了一个高速串行通讯接口(SPI).
SPI接口是一种全双工、高速同步通讯总线,有两种操作模式:主机模式和从机模式.
无论哪种模式,12MHz系统时钟时支持高达3Mbps的通讯速度.
MPC82G516A的SPI状态寄存器(SPSTAT)有一个传送完成标志(SPIF)和写冲突标志(WCOL).
图15-1.
SPI框图SPI接口有4个引脚:MISO(P1.
6),MOSI(P1.
5),SPICLK(P1.
7)和/SS(P1.
4):SPICLK,MOSI和MISO通常将两个或多个SPI设备连接在一起.
数据从主机到从机使用MOSI引脚(MasterOut/SlaveIn主出从入),从从机到主机使用MISO引脚(MasterIn/SlaveOut主入从出).
SPICLK信号在主机模式时输出,从机模式时输入.
若SPI接口禁用,即SPEN(SPCTL.
6)=0,这些引脚可以作为普通I/O口使用.
/SS是从机选择端.
典型配置中,SPI主机可以使用其某个端口选择某一个SPI设备作为当前从机,一个SPI从机设备使用它的/SS引脚确定自己是否被选中.
下面条件下/SS被忽略:-若SPI系统被禁用,即SPEN(SPCTL.
6)=0(复位值).
-若SPI作为主机运行,即MSTR(SPCTL.
4)=1,且P1.
4(/SS)被配置成输出.
-若/SS被设置成忽略,即SSIG(SPCTL.
7)=1,这个端口作为普通I/O使用.
注意,即使SPI被配置成主机运行(MSTR=1),它仍然可以被/SS引脚的低电平拉成从机(若SSIG=0),一旦发生这种情况,SPIF位(SPSTAT.
7)置位.
(参见15.
5节:/SS引脚的模式改变)下面是SPI操作相关寄存器:73MPC82G516ADataSheetMEGAWINSPCTL(地址=85H,SPI控制寄存器,复位值=0000,0100B)76543210SSIGSPENDORDMSTRCPOLCPHASPR1SPR0SSIG:忽略/SS若SSIG=1,MSTR位决定该设备是主机还是从机.
若SSIG=0,/SS引脚决定该设备是主机还是从机.
SPEN:SPI使能若SPEN=1,SPI功能打开.
若SPEN=0,SPI接口禁用,所有SPI引脚可作为通用I/O口使用.
DORD:SPI数据顺序1:传送数据时先传数据字节最低位.
0:传送数据时先传数据字节最高位.
MSTR:主机/从机模式选择CPOL:SPI时钟极性选择1:SPICLK待机是为高电平,SPICLK时钟脉冲前沿是下降沿,而后沿是上升沿.
0:SPICLK待机是为低电平,SPICLK时钟脉冲前沿是上升沿,而后沿是下降沿.
CPHA:SPI时钟相位选择1:SPICLK脉冲前沿放数据,后沿采样.
0:/SS引脚低电平(SSIG=0)开始放数据并在SPICLK后沿改变数据.
数据在SPICLK的前沿采样.
(注:若SSIG=1,CPHA必须不为1,否则就是为定义操作.
)SPR1-SPR0:SPI时钟速率选择(主机模式)00:Fosc/401:Fosc/1610:Fosc/6411:Fosc/128(Fosc是系统时钟.
)SPSTAT(地址=84H,SPI状态寄存器,复位值=00xx,xxxxB)76543210SPIFWCOLSPIF:SPI传输完成标志当一次串行传输完成时,SPIF位置位,同时若SPI中断允许,会产生一个中断.
若/SS引脚在主机模式下被拉低且SSIG=0,SPIF位也会置位以表明"模式改变".
SPIF标志通过软件在该位写入"1"来清零.
WCOL:SPI写冲突标志SPI数据寄存器SPDAT在数据传输过程中被写入时,WCOL置位.
(参见15.
6节:写冲突).
WCOL标志通过软件在该位写入"1"来清零.
SPDAT(地址=86H,SPI数据寄存器,复位值=0000,0000B)76543210(MSB)(LSB)SPDAT有两个物理缓冲器供传输过程中写入和读取,一个写入缓冲器,一个读取缓冲器.
MEGAWINMPC82G516ADataSheet7415.
1典型SPI配置15.
1.
1单主机和单从机对于主机:任何端口,包括P1.
4(/SS),都可以用来控制从机的/SS片选引脚.
对于从机:SSIG为'0',/SS引脚决定该设备是否被选中.
图15-2.
SPI单主从机配置15.
1.
2双驱动器,可以是主机或从机两个彼此连接的设备,均可成为主机或从机,没有SPI操作时,都可以被通过设置MSTR=1,SSIG=0,P1.
4(/SS)双向口配置成主机.
任何一方要发起传输,它可以配置P1.
4位输出并强行拉低,使另一个设备发生"被改成从机模式"事件.
(参见15.
5节:/SS引脚模式改变)15-3.
SPI双驱动器,可以是主机或从机配置75MPC82G516ADataSheetMEGAWIN15.
1.
3单主机和多从机对于主机:任何端口,包括P1.
4(/SS),都可以用来控制从机的/SS片选引脚.
对于所有从机:SSIG为'0',/SS引脚决定该设备是否被选中.
图15-4.
SPI单主机和多从机配置MEGAWINMPC82G516ADataSheet7615.
2SPI配置表15-1显示了主/从机模式配置及使用方法和传输方向.
表15-1.
SPI主从机选择SPEN(SPCTL.
6)SSIG(SPCTL.
7)/SS引脚MSTR(SPCTL.
4)模式MISO引脚MOSI引脚SPICLK引脚备注0XXXSPI禁用输入输入输入P1.
4~P1.
7用作通用I/O1000从机(被选中)输出输入输入被选择为从机1010从机(未被选中)高阻输入输入未被选中10010从机(通过模式改变)输出输入输入若/SS被拉低,MSTR被硬件自动清'0',模式被改为从机主机(待机)高阻高阻MOSI和SPICLK在主机待机时被置为高阻,以防止总线冲突.
1011主机(活动)输入输出输出MOSI和SPICLK在主机活动时被上拉.
11X0从机输出输入输入11X1主机input输出输出"X"表示"无需关心".
15.
3从机注意事项当CPHA=0时,SSIG必须为0且/SS引脚必须在每次串行字节传输前负跳变,传输结束恢复正常高电平.
注意SPDAT寄存器不能在/SS引脚低电平市写入;CPHA=0,SSIG=1的操作是未定义的.
当CPHA=1时,SSIG可以为0或1.
若SSIG=0,/SS引脚可以在每次成功传输之间保持低电平(可以一直拉低),这种格式有时非常适合单固定主从机配置应用.
15.
4主机注意事项SPI通讯中,传输总是有主机发起.
若SPI使能(SPEN=1)并作为主机运行,写入SPI数据寄存器(SPDAT)数据即可开始SPI时钟生成器和数据传输器,大约半个到1个SPI位时间后写入SPDAT的数据开始出现在MOSI线上.
在开始传输之前,主机通过拉低相应/SS引脚选择一个从机作为当前从机.
写入SPDAT寄存器德数据从主机MOSI引脚移出,同时从从机MISO移入主机MISO的数据也写入到主机的SPDAT寄存器中.
移出1字节后,SPI时钟发生器停止,置传输完成标志SPIF,若SPI中断使能则生成一个中断.
主机CPU和从机CPU中的两个移位寄存器可以看成一个分开的16位环形移位寄存器,数据从主机移到从机同时数据也从从机移到主机.
这意味着,在一次传输过程中,主从机数据进行了交换.
77MPC82G516ADataSheetMEGAWIN15.
5/SS引脚的模式改变若SPEN=1,SSIG=0,MSTR=1且/SSpin=1,SPI使能在主机模式,这种情况下,其他主机可以将/SS引脚拉低来选择该设备为从机并开始发送数据过来.
为避免总线冲突,该SPI设备成为一个从机,MOSI和SPICLK引脚被强制为输入端口,MISO成为输出端口,SPSTAT中SPIF标志置位,若此时SPI中断使能,则还会产生一个SPI中断.
用户软件必须经常去检查MSTR位,若该位被从机选择清零而用户又想要继续保持该SPI主机模式,用户必须再次设置MSTR位,否则,将处于从机模式.
15.
6数据冲突SPI在发送方向是单缓冲的,而在接收方向是双缓冲的.
发送数据直到上一次数据发送完成后才能写入移位寄存器,数据发送过程中写入数据寄存器就会使WCOL(SPSTAT.
6)置位来表明数据冲突.
这种情况下,正在发送的数据继续发送,而刚写入数据寄存器造成冲突的数据就会丢失.
写冲突对于主从机都有可能发生,对于主机,这种现象并不多见,因为主机控制着数据的传送;然而对于从机,由于没有控制权,因此很可能会发生.
对于数据接收,接收的数据被传输到一个并行读数据缓冲器中,以便于移位寄存器再能接收新的字节.
然而,接收的数据必须在下个字节完全移入前从数据寄存器SPDAT读出,否则前一个数据就会丢失.
WCOL使用软件向其位写入'1'来清零.
15.
7SPI时钟频率选择SPI时钟频率选择(主机模式)使用SPCTL寄存器的SPR1和SPR0位来设置,如表15-2所示表15-2.
SPI串行时钟速率SPR1SPR0SPI时钟速率@Fosc=12MHzFosc分频003MHz401750KHz1610187.
5KHz641193.
75KHz128这里,Fosc是系统时钟.
MEGAWINMPC82G516ADataSheet7815.
8数据模式时钟相位(CPHA)位可以让用户设定数据采样和改变时的时钟沿.
时钟极性位,CPOL,可以让用户设定时钟极性.
下面图例显示了不同时钟相位、极性设置下SPI通讯时序.
图15-5.
SPI从机传送,CPHA=0图15-6.
SPI从机传送,CPHA=179MPC82G516ADataSheetMEGAWIN图15-7.
SPI主机传送,CPHA=0图15-8.
SPI主机传送,CPHA=1MEGAWINMPC82G516ADataSheet8016模数(A/D)转换器MPC82G516A带有一个10位、8通道逐次逼近型(SAR)模数转换器.
图16-1显示了A/D转换器部分框图.
八路模拟输入同P1口共享端口,多路输入带有一个采样保持电路将模拟电压输入到比较器的输入端,比较器的输出连接到SAR进行逐次逼近操作.
图16-1.
ADC功能框图16.
1ADC控制寄存器ADCTL(地址=C5H,ADC控制寄存器,复位值=0000,0000B)76543210ADCONSPEED1SPEED0ADCIADCSCHS2CHS1CHS0ADCON:0:关闭ADC模块;1:开始ADC模块.
SPEED1andSPEED0:模数转换速度选择位.
(0,0):一次转换需要1080个时钟周期.
(0,1):一次转换需要540个时钟周期.
(1,0):一次转换需要360个时钟周期.
(1,1):一次转换需要270个时钟周期.
注:1时钟周期等于1/Fosc.
ADCS:ADC启动位.
软件置此位启动A/D转换,转换完成,ADC硬件会自动清除ADCS并设置ADCI.
.
ADCS不能被软件清零.
ADCS或ADCI为1时将不会开始新的A/D转换.
ADCI:ADC中断标志.
一次A/D转换完成时该标志置1,若中断允许则还会产生一个中断.
该标志必须软件清零.
CHS2,CHS1andCHS0:输入通道选择位(0,0,0):选择AIN0(P1.
0)作为模拟输入(0,0,1):选择AIN1(P1.
1)作为模拟输入(0,1,0):选择AIN2(P1.
2)作为模拟输入(0,1,1):选择AIN3(P1.
3)作为模拟输入(1,0,0):选择AIN4(P1.
4)作为模拟输入81MPC82G516ADataSheetMEGAWIN(1,0,1):选择AIN5(P1.
5)作为模拟输入(1,1,0):选择AIN6(P1.
6)作为模拟输入(1,1,1):选择AIN7(P1.
7)作为模拟输入AUXR(地址=8EH,辅助寄存器,复位值=0000,xx0xB)76543210URTSADRJP41ALEP35ALE--EXTRAM-ADRJ:0:转换结果高8位存入ADCH[7:0],低2位存入ADCL[1:0].
1:转换结果高2位存入ADCH[1:0],低8位存入ADCL[7:0].
若ADRJ=0ADCH(地址=C6H,ADC结果高字节寄存器,复位值=xxH)76543210(B9)(B8)(B7)(B6)(B5)(B4)(B3)(B2)ADCL(地址=BEH,ADC结果低字节寄存器,复位值=xxH)76543210B1)(B0)若ADRJ=1ADCH(地址=C6H,ADC结果高字节寄存器,复位值=xxH)76543210B9)(B8)ADCL(地址=BEH,ADC结果低字节寄存器,复位值=xxH)76543210(B7)(B6)(B5)(B4)(B3)(B2)(B1)(B0)16.
2ADC操作基于引脚兼容标准8051MCU的考虑,ADC硬件没有独立的内部正参考电压(Vref+)和负参考电压(Vref-)输入引脚.
Vref+和Vref-输入芯片内部分别接至VDD和地.
所以,满量程Vref+–Vref-就是VDD.
A/D转换结果可以由下面公式计算:ADC结果=1024xVin-Vref-=AINx模拟输入电压Vref+-Vref-VDD电压这里,Vin是模拟输入电压,x=0~7(AIN0~AIN7的任何引脚).
输入的模拟电压应在Vref+和Vref-之间,即VDD和地之间.
对于输入电压介于Vref-和Vref-+1/2LSB之间的,转换结果是00,0000,0000B=000H.
对于输入电压介于Vref+–3/2LSBandVref+之间的,转换结果是11,1111,1111B=3FFH.
这里:Vref+-Vref-VDD1LSB=1024=1024MEGAWINMPC82G516ADataSheet82在使用ACD功能之前,用户应:1)设置ADCON位启动ADC硬件,2)设置SPEED1和SPEED0位设定转换速度,3)设置CHS2、CHS1和CHS0选择输入通道,4)设置P1M0和P1M1寄存器将所选引脚设定成只输入模式,并5)设置ADRJ位配置ADC转换结果输出形式.
现在,用户就可以置位ADCS来启动AD转换了.
转换时间取决于SPEED1和SPEED0位的设置.
一旦转换结束,硬件自动清除ADCS位,设置中断标志ADCI,并将转换结果按照ADRJ的设置存入ADCH和ADCL.
如上所述,中断标志ADCI,由硬件设置以表明一次转换完成.
因此,有两种方法检测AD转换是否完成:(1)软件检测ADCI中断标志;(2)设置AUXIE寄存器EADC位和IE寄存器EA位使能ADC中断.
这样,转换结束就会跳入中断服务进程.
无论(1)或(2),ADCI标志都必须在下次转换前用软件清零.
16.
3ADC示例代码start:;.
.
.
;.
.
.
MOVADCTL,#0E2h;ADCON=1,启动ADC硬件;(SPEED1,SPEED0)=(1,1),转换时间=270个时钟周期;选择AIN0(P1.
2)作为模拟输入ORLP1M0,#00000100B;配置P1.
2为只输入模式ANLP1M1,#11111011B;ANLAUXR,#10111111B;ADRJ=0:ADCH包含B9~B2;ADCL包含B1,B0;现在,假定AIN2(P1.
2)模拟输入已经就绪ORLADCTL,#00001000B;ADCS=1→开始A/D转换wait_loop:MOVACC,ADCTLJNBACC.
4,wait_loop;等到ADCI=1→转换结束;现在,10位ADC结果已在ADCH和ADCL中.
;.
.
.
;.
.
.
83MPC82G516ADataSheetMEGAWIN16.
4ADC注意事项ADC注意事项如下所列.
16.
4.
1A/D转换时间用户可以根据输入的模拟信号频率选择合适的转换速度.
例如,若Fosc=10MHz,转换速度设为270个时钟周期,则输入的模拟信号频率不应超过37KHz,以保证转换精度.
(转换时间=1/10MHzx270=27us,所以转换速率=1/27us=37KHz.
)16.
4.
2I/O口用于ADC转换用作A/D转换的模拟输入引脚也可以保持其数字I/O输入输出功能.
为了获得最佳转换效果,用作ADC的引脚应当禁止其数字输出和输入,可以按照引脚配置一节中的描述将引脚设为只输入模式.
16.
4.
3待机和掉电模式在待机和掉电模式下,ADC将无法使用,若A/D功能打开,它将消耗一部分的电流.
因此,为了降低待机和掉电模式下的功耗,可以在进入掉电和待机模式前关闭ADC硬件(ADCON=0).
16.
4.
4VDD供电要求如前所述,Vref+和Vref-内部分别连接到了VDD和地,VDD可加载的电压为2.
7V~5.
5V(5V系统)或2.
4V~3.
6V(3.
3V系统),所以满量程电压Vref+–Vref-=VDD就并不固定.
然而,计算公式保持不变,这造成同样的Vin却得到不同的转换结果.
因此,VDD必须保持不变,这是用户必须要注意的.
既然VDD用作正参考电压Vref+,用户也必须保证VDD尽可能的纯净,以期得到最佳的ADC性能.
MEGAWINMPC82G516ADataSheet8417键盘中断键盘中断功能主要用于当P2口等于或不等于某个值时产生一个中断,这个功能可以用作总线地址识别或键盘键码识别.
有3个特殊功能寄存器与此功能相关.
键盘中断掩码寄存器(KBMASK)用来定义P2口哪些引脚可以产生中断;键盘模式寄存器(KBPATN)用来定义与P2口值进行比较的值,比较匹配时硬件置键盘中断控制寄存器(KBCON)中的键盘中断标志(KBIF),若AUXIE中的EKBI中断允许且EA=1,则还会产生一个中断.
键盘中断控制寄存器(KBCON)中的PATN_SEL位用来定义比较是"相等"还是"不等"匹配.
为了使用键盘中断作为"键盘"中断,用户需要设置KBPATN=0xFF和PATN_SEL=0(不相等),然后将任意按键连接到KBMASK寄存器定义的相应P2口,按下时就可以设置中断标志KBIF,并当中断使能时产生中断.
这个中断可以将CPU从待机模式或掉电模式下唤醒.
这个功能在手持设备,电池供电系统等要求低功耗而且易用的设备上特别有用.
下面是键盘中断操作相关特殊功能寄存器:KBPATN(地址=D5H,键盘模式寄存器,复位值=1111,1111B)76543210KBPATN.
7KBPATN.
6KBPATN.
5KBPATN.
4KBPATN.
3KBPATN.
2KBPATN.
1KBPATN.
0KBPATN.
7~0:键盘模式.
KBCON(地址=D6H,键盘控制寄存器,复位值=xxxx,xx00B)76543210PATN_SELKBIFPATN_SEL:模式匹配极性选择.
1:键盘输入等于KBPATN中用户定义模式时产生中断.
0:键盘输入不等于KBPATN中用户定义模式时产生中断.
KBIF:键盘中断标志.
P2端口值匹配KBPATN,KBMASK,PATN_SEL设置条件时置位.
需要软件写入'0'来清零.
KBMASK(地址=D7H,键盘中断掩码寄存器,复位值=0000,0000B)76543210KBMASK.
7KBMASK.
6KBMASK.
5KBMASK.
4KBMASK.
3KBMASK.
2KBMASK.
1KBMASK.
0KBMASK.
7:置位时,使能P2.
7作为键盘中断源(KBI7).
KBMASK.
6:置位时,使能P2.
6作为键盘中断源(KBI6).
KBMASK.
5:置位时,使能P2.
5作为键盘中断源(KBI5).
KBMASK.
4:置位时,使能P2.
4作为键盘中断源(KBI4).
KBMASK.
3:置位时,使能P2.
3作为键盘中断源(KBI3).
KBMASK.
2:置位时,使能P2.
2作为键盘中断源(KBI2).
KBMASK.
1:置位时,使能P2.
1作为键盘中断源(KBI1).
KBMASK.
0:置位时,使能P2.
0作为键盘中断源(KBI0).
85MPC82G516ADataSheetMEGAWIN18看门狗定时器(WDT)看门狗定时器(WDT)用来使程序从跑飞或死机状态恢复的一个手段.
软件跑飞时,WDT使用系统复位来防止系统执行错误的代码.
WDT由一个15位独立定时器、一个8分频器和一个控制寄存器组成,图18-1显示了WDT功能框图.
图18-1.
WDT功能框图18.
1WDT控制寄存器WDTCR(地址=E1H,WDT控制寄存器,上电复位值=0x00,0000B)76543210WRF-ENWCLRWWIDLPS2PS1PS0WRF:WDT复位标志.
WDT溢出时,这一位被硬件置位,应当软件清零.
ENW:WDT使能位.
设置打开WDT.
(注:一旦设置,该位就只能上电复位清零了.
)CLRW:WDT清零位.
该位写"1"会清除15位WDT计数器为0000H.
注意该位本身不需写'0'清除.
WIDL:WDT在待机模式的运行.
置位该位会让WDT在待机模式下继续计数.
PS2~PS0:分频系数设置.
PS2PS1PS0分频值000001010011100101110111248163264128256MEGAWINMPC82G516ADataSheet8618.
2WDT操作WDT上电复位后默认是禁用的.
要使能WDT,用户必须设置ENW位.
当WDT使能时,用户需要不断设置CLW位来清除WDT计数器以防止其溢出.
15位WDT计数器计数到32767(7FFFH)时溢出,发生溢出会复位器件.
WDT使能时,每12个时钟周期加1,这意味着,用户必须至少每32767x12系统时钟周期清零WDT计数器一次.
WDT是一次性使能的,所谓"一次性使能"指:一旦通过设置ENW位使能WDT,就没有其它办法来禁用,除非上电复位.
WDTCR寄存器也将始终保持最先编程的值,即使在任何复位(硬件复位、软件复位、WDT复位)后,除了上电复位.
例如,若WDTCR值是0x2D,WDTCR将保持0x2D,而不是每次复位后都是0x00,只有上电复位才能将该值初始成0x00.
换句话说,WDT只能上电复位禁用,这就是所谓"一次性使能"WDT.
WDT复位周期由下面公式决定:215x预分频器值x(12/Fosc)表18-1显示了运行在6/12/24MHz下的MCU的WDT溢出周期,这些周期都是用户清除WDT防止复位的最大时间间隔.
表18-1.
WDT溢出周期PS2PS1PS0预分频器值Fosc=6MHzFosc=12MHzFosc=24MHz000001010011100101110111248163264128256131.
072ms262.
144ms524.
288ms1.
048s2.
097s4.
194s8.
389s16.
778s65.
536ms131.
072ms262.
144ms524.
288ms1.
048s2.
097s4.
194s8.
389s32.
768ms65.
536ms131.
072ms262.
144ms524.
288ms1.
048s2.
097s4.
194s18.
3WDT示例代码条件:WDT溢出周期=1.
048秒@Fosc=12MHzWDTCR_bufDATA30h;声明WDTCR寄存器缓冲;(由于WDTCR是一个只写寄存器)start:;.
.
.
MOVWDTCR_buf,#00h;初始化WDTCR缓冲ORLWDTCR_buf,#04h;PS2=1ANLWDTCR_buf,#0FCh;PS1=0,PS0=0MOVWDTCR,WDTCR_buf;写WDTCR→(PS2,PS1,PS0)=(1,0,0),预分频器=32ORLWDTCR_buf,#20h;ENW=1MOVWDTCR,WDTCR_buf;写WDTCR→使能WDTmain_loop:ORLWDTCR_buf,#10h;CLRW=0MOVWDTCR,WDTCR_buf;写WDTCR→清WDT计数器;.
.
.
;.
.
.
JMPmain_loop87MPC82G516ADataSheetMEGAWIN18.
4掉电和待机模式下的WDT掉电模式下,晶振停止,WDT也停止了,所以掉电模式下,用户不需要在喂狗了.
有3种从掉电模式下恢复的方法:硬件复位,外部中断(/INT0~/INT3)或键盘中断,需要在进入掉电模式前确定中断优先级.
上电复位,器件所有部分都复位了,WDT也不例外.
使用外部中断或键盘中断退出掉电模式,为了防止WDT复位器件,建议在这些中断服务进程中清WDT计数器.
当然,为了确保退出掉电模式后不会立即被WDT复位,更好的办法是进入掉电模式前喂一次狗.
待机模式下,晶振仍然工作着,用户可以设置WIDL位让WDT继续工作或清零WIDL位使WDT在待机模式停止工作.
对于待机模式下继续工作的情况,为了防止待机模式下WDT溢出,用户应当使用一个定时器周期性退出待机模式喂狗,喂狗后再进入待机模式.
18.
5WDT硬件初始化WDTCR除了软件可以初始化外,也可以使用硬件选项HWENW,HWWIDL和HWPS[2:0]在系统上电时由硬件自动初始化,这些硬件选项可以使用通用编程器或烧写器进行编程.
(参考25节:MCU的硬件选项)若HWENW编程使能,硬件将会在上电时自动做以下WDTCR初始化动作:(1)设置ENW位.
(2)装HWWIDL到WIDL位,并(3)装HWPS[2:0]到PS[2:0]位.
MEGAWINMPC82G516ADataSheet88序号名称使能中断请求优先位优先级地址#1外部中断INT0EX0IE0PX0H,PX0(高优先级)0003H#2Timer0ET0TF0PT0H,PT0.
000BH#3外部中断,INT1EX1IE1PX1H,PX1.
0013H#4Timer1ET1TF1PT1H,PT1.
001BH#5串口中断ESRI,TIPSH,PS.
0023H#6Timer2ET2TF2,EXF2PT2H,PT2.
002BH#7外部中断,INT2EX2IE2PX2H,PX2.
0033H#8外部中断,INT3EX3IE3PX3H,PX3.
003BH#9SPIESPISPIFPSPIH,PSPI.
0043H#10ADCEADCADCIPADCH,PADC.
004BH#11PCAEPCACF,CCFn(n=0~5)PPCAH,PPCA.
0053H#12欠压检测EBDOPF,CPFPBDH,PBD.
005BH#13UART2ES2S2RI,S2TIPS2H,PS2.
0063H#14键盘中断KBIEKBKBIFPKBH,PKB(低优先级)006BH19中断系统MPC82G516A有四级中断优先级的14个中断源.
通过几个寄存器来设置4级中断.
通过IE,IP,IPH,AUXIE,AUXIP,AUXIPH,XICON和TCON.
使用IPH(中断优先级高位)和AUXIPH(辅助中断优先级高位)寄存器来设置四级中断优先级.
四级中断优先级结构为中断源的应用提供了很大的便利.
19.
1中断源表19-1列出了所有的中断源.
使能位被允许,中断请求时硬件会产生一个中断请求标志.
当然,总中断使能位EA(IE寄存器)必须使能.
中断请求位能由软件置1或清零,这和硬件置1或清零结果相同.
同理,中断可以由软件产生或取消.
中断优先级位决定每个中断产生的优先级.
多个中断同时产生时依照中断优先级顺序处理.
中断向量地址表示中断服务程序的入口地址.
图19-1对所有中断系统进行综述.
表19-1.
中断源89MPC82G516A数据手册MEGAWIN图19-1.
中断系统MEGAWINMPC82G516A数据手册9019.
2与中断相关的寄存器下面是中断过程中的相关特殊功能寄存器IE(地址A8H,中断使能寄存器,复位值=0x00,0000B)76543210EA-ET2ESET1EX1ET0EX0EA:总中断使能位.
EA=0,禁止所有中断.
EA=1,使能所有中断ET2:定时器2中断使能.
ES:串口中断使能ET1:定时器1中断使能EX1:外部中断1使能.
ET0:定时器0中断使能EX0:外部中断0使能.
IP(地址B8H,中断优先级寄存器,复位值=xx00,0000B)76543210--PT2PSPT1PX1PT0PX0PT2:定时器2中断优先级位.
PS:串口中断优先级位.
PT1:定时器1中断优先级位.
PX1:外部中断1优先级位.
PT0:定时器0中断优先级位.
PX0:外部中断0优先级位.
IPH(地址B7H,中断优先级高位寄存器,复位值=0000,0000B)76543210PX3HPX2HPT2HPSHPT1HPX1HPT0HPX0HPX3H:外部中断3优先级位,H.
PX2H:外部中断2优先级位,H.
PT2H:定时器2中断优先级位,H.
PSH:串口中断优先级位,H.
PT1H:定时器1中断优先级位,H.
PX1H:外部中断1优先级位,H.
PT0H:定时器0中断优先级位,H.
PX0H:外部中断0优先级位,H.
AUXIE(地址ADH,辅助中断使能寄存器,复位值=xx00,0000B)76543210--EKBES2EBDEPCAEADCESPIEKB:键盘中断使能位.
ES2:UART2中断使能位.
EBD:欠压检测中断使能位.
EPCA:PCA中断使能位.
EADC:ADC中断使能位.
ESPI:SPI中断使能位.
91MPC82G516A数据手册MEGAWINAUXIP(地址AEH,辅助中断优先级寄存器,复位值=xx00,0000B)76543210--PKBPS2PBDPPCAPADCPSPIPKB:键盘中断优先级位.
PS2:UART2中断优先级位.
PBD:欠压检测中断优先级位.
PPCA:PCA中断优先级位.
PADC:ADC中断优先级位.
PSPI:SPI中断优先级位.
AUXIPH(地址AFH,辅助中断优先级高位寄存器,复位值=xx00,0000B)76543210--PKBHPS2HPBDHPPCAHPADCHPSPIHPKBH:键盘中断优先级位,HPS2H:UART2中断优先级位,HPBDH:欠压监测中断优先级位,H.
PPCAH:PCA中断1优先级位,H.
PADCH:ADC中断优先级位,H.
PSPIH:SPI中断0优先级位,H.
XICON(地址C0H,外部中断控制寄存器,复位值=0000,0000B)76543210PX3EX3IE3IT3PX2EX2IE2IT2PX3:外部中断3优先级位.
EX3:外部中断3使能位.
IE3:外部中断3中断标志.
IT3:外部中断3类型控制位.
1:边沿触发;0:电平触发.
PX2:外部中断2优先级位.
EX2:外部中断2使能位.
IE2:外部中断2中断标志.
IT2:外部中断2类型控制位.
1:边沿触发;0:电平触发.
TCON(地址88H,定时/计数器控制寄存器,复位值=0000,0000B)76543210TF1TR1TF0TR0IE1IT1IE0IT0IE1:外部中断1请求标志.
外部中断1由边沿或电平触发(由IT1设置)硬件置标志.
IT1:外部中断1类型控制位.
软件选择下降沿/低电平触发外部中断1.
IE0:外部中断0请求标志.
外部中断0由边沿或电平触发(由IT0设置)硬件置标志.
IT0:外部中断0类型控制位.
软件选择下降沿/低电平触发外部中断0.
MEGAWINMPC82G516A数据手册9219.
3中断使能通过设置寄存器IE,AUXIE和XICON能对每个中断进行使能和禁止操作.
需注意IE中有个总中断允许位EA.
EA置'1'所有中断的使能和禁止由单独的设置位决定.
EA被清'0',所有中断被禁止.
19.
4中断优先级中断优先级设置和80C51相同,除了有四级中断优先级比80C51多两级.
优先级位(参见表19-1)决定每个中断的优先级.
表19-2,外部中断0中断优先级设置,通过不同的设置组合决定中断优先级.
表19-2.
外部中断0的四级优先级优先级位PX0HPX0优先级00级别0(低)01级别110级别211级别3(高)如果两个优先级的中断同时产生,高优先级的中断总是优先处理.
低优先级的中断在处理过程中可以被高优先级的中断打断,等高优先级的中断处理完后低优先级的中断才能从被打断处继续执行.
同等优先级的中断同时产生,执行顺序由中断向量决定顺序执行,中断向量越小的优先级越高.
19.
5中断响应每个机器周期都会采样中断标志位.
如果没有下列阻止条件.
前一个指令周期中产生中断标志位置位,接下来的指令周期中将以LCALL调用中断服务程序,下列几种情况将LCALL指令锁定:1.
另一个高优先级的中断正在处理.
2.
当前机器周期不是正在执行的指令的最后一个机器周期.
3.
正在执行指令RETI或正在写和中断相关的寄存器(IE或IP寄存器).
上述三种情况将锁定LCALL指令使之暂时不能访问中断服务程序.
第二种情况在引导任何中断服务程序之前必须执行完.
第三种情况保证RETI的执行或写中断相关的寄存器能顺利完成,在中断进入引导程序之前至少运行一个以上的指令周期.
每个指令周期执行一次采样,采样结果在下一个指令周期被执行.
如果电平触发的外部中断的中断标志被置位,在下一个中断来临之前未处理,则处理当前中断,前一中断被忽略,每个采样周期都采样的当前的中断,如果不及时处理则被忽略.
处理器硬件产生LCALL来调用中断服务程序来响应一个中断.
中断在下一次同种中断来临之前必须被处理,否则将会被覆盖,但不会被其他中断影响.
定时器2,串口,PCA,电源监测和UART2产生的中断标志必须由软件来清除.
清除中断标志(IE0,IE1,IE2orIE3)后中断源被再次激活.
硬件执行LCALL将当前PC值推入堆栈(但是不保存PSW状态)将中断服务程序的向量地址装载到PC中,如表19-1所示.
93MPC82G516A数据手册MEGAWIN中断处理程序以RETI指令结束.
RETI提示处理器中断服务程序已经结束,然后从堆栈中将断点的地址装载到程序计数器(PC)中.
从断点处继续执行.
注意指令RET也可以结束中断,虽然可以从中断返回但中断控制系统会认为中断还在继续.
这意味着在多次中断后堆栈将溢出.
注意:中断向量开始的空间只有8字节.
这意味着如果一个中断服务程序超过7个字节以上,就必须使用跳转到其他空间以便不覆盖其他中断的入口地址.
19.
6外部中断外部中断源包括/INT0,/INT1,/INT2和/INT3,外部中断能被任意的低电平触发或下降沿触发,通过设置寄存器TCON和XICON中的位IT0,IT1,IT2和IT3.
ITx=0,INTx管脚被拉低将触发中断.
ITx=1,INTx管脚上的下降沿将触发中断.
中断被触发后将置位TCON、XICON中的IE0、IE1、IE2、IE3.
如果中断被激活这些标志在进入中断服务程序后被硬件清除.
如果中断是电平触发,外中断源必须有效,直到中断被响应,在执行完中断服务程序前,此有效中断必须被清除.
每个指令周期都采样外部中断引脚,输入的高或低将保持至少一个振荡周期以确保能被采样到.
如果外部中断有效,外部中断引脚上的信号高必须保持至少一个周期,接下来的低也必须至少保持一个周期,以确保中断能响应置标志IEx.
执行中断服务程序后IEx标志将被CPU硬件清除.
如果外部中断是电平触发,外中断源必须有效,直到中断被响应,在执行完中断服务程序前,此有效中断必须被清除.
否则将产生下一次中断.
19.
7单步运行80C51的中断结构允许使用很少的软件开销来实现单步运行.
如前所述,在正在执行相同或更高优先级的中断的时候中断请求是不会被响应的,直到运行完当前中断服务程序后至少再执行一条以上的指令.
因而,如果一个中断服务程序正在执行,这不能被其他中断重入,直到当前中断服务程序被执行完后至少再执行一条以上的指令.
下面是一个电平触发的外部中断(e.
g.
,INT0)的使用实例.
代码如下:JNBP3.
2,$;等待直到INT0变高JBP3.
2,$;等待直到INT0变低RETI;服务程序结束并执行一条指令当前INT0引脚(P3.
2)保持低状态,CPU进入外部中断0服务程序等待INT0的引脚上有脉冲产生(从低到高再到低).
然后执行RETI指令,跳回被中断的程序执行一条指令,然后再次进入外部中断0中断服务程序等待引脚P3.
2上再次产生一个脉冲.
这样就是在引脚P3.
2上每产生一个脉冲程序步进一条指令,这样就实现了单步操作.
MEGAWINMPC82G516A数据手册9420ISP,IAP和ICPMPC82G516A可以使用下面的方法对内部FLASH进行编程.
(1)传统的并行编程方法:通用编程器(此处不再累述).
(2)在系统编程方式(ISP):使用内部引导程序来编程.
(3)在应用编程方式(IAP):使用用户自定义的下载程序.
(4)在电路编程方式(ICP):使用专用的ICP编程器(参见20.
4.
1).
如图20-1所示MPC82G516A的Flash结构,MPC82G516A的FLASH被划分成AP-部分,IAP-部分和ISP-部分.
AP-部分装载用户服务程序;IAP-部分装载非遗失数据,ISP-空间装载在系统编程的引导程序.
通用并行编程和ICP可以编程MCU的任何空间,包括全部Flash和MCU的硬件选项.
ISP和IAP只能编程FLASH的一些确切的空间;ISP能编程AP-空间和IAP-空间,IAP只能编程IAP空间.
表20-1罗列了上述操作方法的不同之处.
表20-1.
不同的编程模式对照分类并行编程模式ISPIAPICP擦除/编程/校验YesYesYesYes编程区域所有Flash&MCU's硬件选项AP-部分&IAP-部分IAP-部分所有Flash&MCU's硬件选项硬件或软件限制硬件限制软件限制软件限制硬件限制编程介面并口串行方式使用DTA(P3.
1)None串行方式SDA&SCL编程前的预处理无预编程引导程序&HWBSenabledNoneNone编程工具通用编程器或"Megawin8051Writer""MegawinISP编程器"None"MegawinICP编程器"为什么要ISPISP使用户无需将MCU从应用系统中取下修改程序(AP-空间)和非易失性数据(IAP-空间)成为可能.
这个功能非常实用是在应用现场改写应用程序成为可能.
(注意ISP功能引导预编程在ISP-空间中的程序)为什么要IAPIAP-空间能保存应用系统中需要保存的实时数据,掉电后不易失,所以可以替代串行存储器比如93C46或24C01等.
为什么要ICPICP可以在系统编程MCU的所有资源(包括所有的Flash空间和MCU的硬件选项).
如同ISP功能,这个功能很有效可以在应用现成随时下载程序.
95MPC82G516A数据手册MEGAWIN20.
1Flash存储器20.
1.
1Flash特点Flash只能页擦除,不能字节擦除.
并且页擦除后数据全部变成0xFF.
字节0xFF能被编程成非0xFF字节.
任何非-0xFF字节不能编程成0xFF字节除非使用页擦除.
每页有512字节,页地址总是位于0x0200*N,N(=0,1,2,3,.
.
)意思为第N个页.
擦写次数:20,000擦写次数.
20.
1.
2Flash结构图20-1显示MPC82G516A的FLASH结构.
Flash被划分成AP-区域,IAP-区域和ISP-区域.
AP-空间用来存储用户应用程序;IAP-空间用于保存非易失性数据;ISP-空间用来保存在系统编程的引导程序.
Flash总容量为64K字节,IAP-空间和ISP-空间能被"Megawin8051烧录器"或"Megawin8051ICP编程器"全空间编程(参见20.
4.
1节).
图20-1.
Flash结构MEGAWINMPC82G516A数据手册96CKS2CKS1CKS0振荡器频率(MHz)000001010011100101110111>2420~2412~206~123~62~31~2下载主机,只需简单连接.
以上描述使得ICP编程对使用者来说非常友好.
显然,这能单独下载程序无需控制主机.
这在野外无PC机情况下非常实用.
"Megawin8051ICP编程器"如下图显示.
只有和ICP下载有关的四根插针:SDA插针和SCL插针分别用来传输串行数据和串行时钟,分别连接ICP编程的目标MCU;VCC和GND用来提供ICP编程的电源.
USB接口直接连接PC机的USB端口用来使用ICP编程软件来下载和编程数据.
图20-11.
"8051ICP编程器"图片图20-12.
ICP功能系统连接图MEGAWINMPC82G516A数据手册11021节能模式MPC82G516A有两种降低功耗的模式和一种通过设置8位系统时钟来降低功耗.
空闲模式下CPU停止操作外部设备内部中断系统继续运行.
掉电模式只保持RAM和SFR的内容,其他功能均冻结;重要的是外部中断能唤醒掉电模式.
可以通过降低工作频率来降低待机功耗.
寄存器PCON和PCON2与节能模式有关,如下所示.
PCON(地址87H,PowerControl寄存器,复位值=00xx,0000B(或00x1,0000B上电复位后))76543210SMODSMOD0-POFGF1GF0PDIDLGF1:通用多功能控制位1.
GF0:通用多功能控制位0.
PD:节能模式设置位.
设置此位可以激活节能模式.
IDL:空闲模式设置位.
设置此位可以激活空闲模式.
PCON2(地址C7H,PowerControl寄存器2,复位值=00x0,0000B)76543210SCKD2SCKD1SCKD0SCKD2~SCKD0:系统时钟分频控制位.
SCKD2SCKD1SCKD0Fosc(系统时钟)000晶振频率001晶振频率/2010晶振频率/4011晶振频率/8100晶振频率/16101晶振频率/32110晶振频率/64111晶振频率/128(参见22节:系统时钟.
)21.
1空闲模式设置IDL位(PCON.
0)将使MCU进入空闲模式,CPU的内部时钟源停止工作外部设备继续工作,例如中断,定时器,串口功能andsoforth.
TheCPUcontents,片内RAM,所有的特殊寄存器在空闲状态时保持不变.
I/O口保持空闲模式前的逻辑状态.
有两种办法终止空闲模式.
激活中断使能例如外部中断,定时器,串口中断和键盘中断能硬件清除PCON.
0来终止空闲模式.
进入中断服务程序知道执行到指令RETI,执行下一条指令表示空闲模式已经执行完了.
另一个结束空闲模式的方法是RST引脚上产生一个上电复位.
晶振将继续运行,硬件复位需要保持24时钟周期确保复位完成.
标志位GF0和GF1能指示出中断是在非空闲操作还是空闲时产生的.
举例说明,激活空闲模式的指令也能设置一个或两个标志位.
空闲状态被中断打断时,中断服务程序能通过标志位判断是普通操作还是空闲操作.
111MPC82G516A数据手册MEGAWIN21.
2休眠模式软件调用休眠模式能进一步降低功耗.
通过指令设置PD位(PCON.
1)可以使MCU进入休眠模式.
在休眠模式下,片内振荡停止工作.
时钟被冻结.
所有功能均被冻结,片内RAM和所有的工作寄存器保持进入休眠前的状态.
端口输出依照各自的工作寄存器保持状态.
任何RST引脚引起的硬件复位或外部中断(INT0~INT3)与键盘中断都能将MCU从休眠状态唤醒.
复位将初始化工作寄存器但不改变片内RAM的值.
外部中断与键盘中断唤醒将保持工作寄存器和片内RAM的值;然后将进入中断服务程序,从中断服务程序返回后再执行一条指令将使系统结束休眠状态.
21.
2.
1自休眠模式中断唤醒休眠模式能被外部中断或键盘中断唤醒,必须在调用休眠模式指令之后插入至少一个NOP指令.
这个NOP指令将避免从中断服务程序返回时产生意外的错误.
示例:使用/INT0唤醒的例子.
;用/INT0中断来唤醒休眠INT0BIT0B2H;P3.
2EABIT0AFH;IE.
7EX0BIT0A8H;IE.
0IE0_isr:;start:CSEGAT0000hJMPstartCSEGAT0003h;/INT0中断向量,地址0003hJMPIE0_isrCLREX0;.
.
.
嵌入应用程序;.
.
.
RETI;.
.
.
;.
.
.
SETBINT0;拉高P3.
2CLRIE0;清除/INT0中断标志SETBIT0;mayselectfalling-edge/low-leveltriggeredSETBEA;充许中断SETBEX0;使能/INT0中断ORLPCON,#02h;使MCU进入休眠模式NOP;!
注意:这必须有一个NOP操作摘要:;If/INT0是下降沿触发,MCU被唤醒,进入"IE0_isr",;然后回到这里继续运行!
;.
.
.
;.
.
.
;MEGAWINMPC82G516A数据手册11221.
3时钟降速对SCKD2~SCKD0位(PCON2寄存器,参见22节)进行编程成非-0/0/0的数将使MCU的运行速度减慢来降低功耗.
用户可以对照列表来选择不同的运行速度.
原则上速度选项不影响系统的正常操作,可以随时通过编程来恢复到常速运行.
113MPC82G516A数据手册MEGAWIN22系统时钟系统时钟有两个时钟源:外部时钟和内置振荡.
系统时钟,Fosc,可以通过设置来选择两种时钟源,如图22-1所示.
用户能通过设置SCKD2~SCKD0位(PCON2寄存器)来获得理性的时钟.
内置振荡由硬件选项ENROSC来使能.
参见25节:MCU的硬件选项.
图22-1.
系统时钟示意图PCON2(地址C7H,电源控制寄存器2,复位值=00x0,0000B)76543210SCKD2SCKD1SCKD0SCKD2~SCKD0:系统时钟分频器选择位.
SCKD2SCKD1SCKD0Fosc(SystemClock)000晶振频率001晶振频率/2010晶振频率/4011晶振频率/8100晶振频率/16101晶振频率/32110晶振频率/64111晶振频率/12822.
1内置振荡器TheMPC82G516A有一个内置的6MHz振荡.
如果不需要精确的外部时钟时.
可以使能内部振荡,可以使用通用编程器对ENROSC硬件选项进行编程来对此进行设置.
特点是6MHz室温(25°C).
误差±30%在–40°C到+85°C(–40°C误差+30%,+85°C误差-30%).
所以只能在不需要精准的振荡时钟的时候选择内部振荡.
MEGAWINMPC82G516A数据手册11423电源监测功能MPC82G516A具有电源监测功能预防在上电掉电过程中或电源不稳定时引发错误操作.
这由两种硬件功能来保证:上电监测和掉电监测.
图23-1电源监测原理图.
图23-1.
电源监测结构图表23.
1上电监测POF标志(PCON.
4)由硬件设置用来指示上电过程.
标志由硬件设置由软件来清除,能帮助用户了教MCU的启动条件是什么,冷启动(即上电过程)或热启动(如由RST引脚输入的硬件复位,软件复位或看门狗复位).
除上电时,POF位同样在VDD降到VPOR电压之下时也由硬件进行设置.
PCON(地址87H,电源控制寄存器,复位值=00xx,0000B(或00x1,0000B上电复位时))76543210SMODSMOD0-POFGF1GF0PDIDLPOF:Power-ON标志.
上电复位标志.
能被软件设置.
这只能被软件清除115MPC82G516A数据手册MEGAWIN23.
2掉电监测电源监测功能能监测电源是否已经跌到正常工作电压阀值一下.
电源监测功能在电源异常时将置位电源异常标志位,如果电源监测被使能这将产生一个电源监测(#12in表19-1).
以下简述两种电源监测模式.
有两种电源监测方式:(1)VDD电源异常选项:当VDD引脚电压降到VOPF(3.
7V)以下,OPF标志被硬件置位表明VDD电压异常.
此选项适用使用在5V电压系统.
(2)LDO电源异常选项:当LDO输出电压降到VCPF(2.
4V)以下,CPF标志被硬件置位表明LDO电压异常,此选项适用于3.
3V电压系统.
注:参见27.
1节3.
3V,5V或宽电压系统.
注意在上电复位过程中,电压异常标志OPF和CPF在电压高于3.
7V和2.
4V将分别被硬件置位,用户可以对此进行软件清除.
标志OPF和CPF可以触发电源监测中断,如果EA被置位和EOPFI或EOPCI被置位参见19节:中断系统).
硬件选项ENLVRO或ENLVRC如果被使能,电源监测触发一次内部复位.
(参见25节:MCU的硬件选项).
EVRCR寄存器电源监测控制及相关标志位.
EVRCR(地址97H,EVRControl寄存器,复位值=00xx,0000B(或0011,0000B在上电复位后))76543210EOPFIECPFIOPFCPFPMUOFF(保留)(保留)(保留)EOPFI:使能/禁止中断OPF=1时.
ECPFI:使能/禁止中断CPF=1时.
OPF:VDD电压异常标志.
VDD引脚上的电源电压跌倒3.
7V以下时,硬件置位此位,只能被软件清除.
CPF:LDO电压异常标志.
LDO电压跌倒2.
4V以下时,硬件置位此位,只能被软件清除.
PMUOFF:设置此位将不使用电源监测功能来记录电源状态.
寄存器的保留位必须是'0'.
MEGAWINMPC82G516A数据手册11624复位源复位能通过下列的复位源触发(参见图24-1):上电复位通过RST引脚硬件复位看门狗定时器复位软件复位电源监测的欠压复位图24-1.
复位结构图表24.
1上电复位上电复位(POR)用于在电源上电过程中产生一个复位信号.
微控制器在VDD电压上升到VPOR(POR开始电压)电压之前将保持复位状态.
VDD电压降到VPOR之下后微控制器将再次进入复位状态.
在一个电源周期中,如果需要再产生一次上电复位VDD必须降到VPOR之下.
参见30节:直流特性相关VPOR部分.
24.
2RST引脚硬件复位保持复位引脚RST至少24个振荡周期的高电平,将产生一个上电复位信号,为确保微控制器的正常工作,必须在RST引脚上连接可靠的硬件复位电路.
24.
3看门狗复位看门狗定时器被使能,它将以系统时钟的12分频(12/Fosc)进行增量计数,正常使用过程中必须不断清零,如果溢出将会产生中断复位信号.
117MPC82G516A数据手册MEGAWIN24.
4软件复位向位SWRST写'1'将触发软件复位,然后通过设置SWBS寄存器来选择从AP-空间或ISP-空间来重新引导程序.
下面是ISPCR寄存器详细说明.
ISPCR(地址E7H,ISPControl寄存器,复位值=000x,x000B)Bit-7Bit-6Bit-5Bit-4Bit-3Bit-2Bit-1Bit-0ISPENSWBSSWRST--CKS2CKS1CKS0SWBS:软件引导选择.
1/0用来选择软件复位后从ISP-空间/AP-空间引导.
SWRST:写'1'触发软件复位.
24.
5掉电复位硬件选项ENLVRO或ENLVRC被使能,欠压时触发中断复位.
(参见25节:微控制器的硬件选项).
MEGAWINMPC82G516A数据手册11825熔丝位选项单片机的熔丝位选项决定了器件的性能,且不能够被编程或者软件控制.
熔丝位选项只能用通用编程器,如"Megawin8051烧录器"或者"Megawin8051ICP编程器"进行程式化.
当全片擦除后,所有熔丝位选项均为"disabled"状态,并且没有ISP内存和IAP内存设定.
MPC82G516A有如下熔丝位选项:ISP-内存空间:ISP内存空间由其起始地址确定.
上边界由Flash结束地址限定,如0xFFFF.
(参看20.
1.
2:Flash结构)IAP-内存空间:IAP内存空间由其下边界确定.
如果ISP内存配置了,上边界由ISP内存空间的起始地址限定;否则,上边界默认为地址0xFFFF.
(参看20.
1.
2:Flash结构)LVFWP:[enabled]:在IAP/ISP操作中当LDO输出低于VCPF(如,2.
4V)时,闪存写保护使能[disabled]:无闪存写保护.
ENLVRC:[enabled]:欠压复位当LDO输出低于VCPF(2.
4V)时.
[disabled]:无欠压复位当LDO输出低于VCPF(2.
4V)时.
HWBS:[enabled]:当上电时,如果ISP内存设置则从ISP内存启动.
[disabled]:只从IAP内存启动.
SB:[enabled]:为安全,代码打乱,欺骗通用烧录器或编程器.
[disabled]:代码不打乱LOCK:[enabled]:为安全,用通用烧录器或编程器读器件ID锁定为0xFF.
[disabled]:不锁定OSCDN:[enabled]:振荡增益衰减,减少EMI干扰.
[disabled]:正常振荡增益.
HWBS2:[enabled]:如果ISP内存设置了,上电或者任意复位均将从ISP内存启动.
[disabled]:启动时视HWBS而定ENLVRO:[enabled]:欠压复位,当VDD低于VOPF(3.
7V).
[disabled]:无欠压复位,当VDD低于VOPF(3.
7V).
ENROSC:[enabled]:使能内置RC振荡器.
[disabled]:禁用内置RC振荡器.
WDSFWP:[enabled]:特殊功能寄存器WDTCR软件写保护,除CLRW位外.
[disabled]:特殊功能寄存器WDTCR可软件写.
119MPC82G516ADataSheetMEGAWINHWENW(带有变量HWWIDL和HWPS[2:0]):[enabled]:上电时自动硬件使能看门狗定时器.
也就是说:在WDTCR寄存器中,硬件自动:(1)设置ENW位,(2)载入HWWIDL进WIDL位中,并且(3)载入HWPS[2:0]进PS[2:0]位中.
例如:如果HWWIDL和HWPS[2:0]分别被设定为1和5,那么WDTCR将被初始化为0x2D当上电时,如下:[disabled]:上电时看门狗定时器无改变.
MEGAWINMPC82G516ADataSheet12026指令集80C51指令集专门为8位控制应用程序最优化,它规定了多种快速寻址模式访问内部RAM,减轻小型数据结构的字节运算.
这种指令集提供广泛的类似于分散数据类型支持单个位变量,允许当需要布尔运算时的直接位操作控制和逻辑运算.
MPC82G516A指令集除了执行时间外,是完全兼容80C51指令的.
例如,执行一条指令的时钟周期数,最短只需要一个时钟周期,最长需要7个时钟周期.
寻址模式80C51指令集的寻址模式如下:DirectAddressing直接寻址直接寻址时操作数用指令中一个8位地址的区域表示,只有内部数据存储器和特殊功能寄存器可以直接寻址.
IndirectAddressing间接寻址间接寻址时指令用一个包含操作数地址的寄存器表示,内部和外部存储器均可间接寻址.
8位地址的地址寄存器可以是选中区的R0或R1,16位地址的地址寄存器只能是16位的"数据指针"寄存器,DPTR.
RegisterInstructions寄存器操作(寻址)包含从R0到R7的寄存器区可以被某些指令存取,这些指令的操作码中用3位寄存器说明.
存取寄存器的指令有更高的代码效率,因为这种模式减少了一个地址字节.
当指令被执行时,其中被选取的区一个8位寄存器被存取.
执行时,用PSW寄存器中两位区选择位来选择四分之一区.
Register-SpecificInstructions特殊寄存器寻址(寄存器间接寻址)一些指令具有一个特定的寄存器,例如,一些指令常用于累加器,或数据指针等等,所以没有需要指向它的地址字节.
操作码本身就行了.
有关累加器的指令A就是累加器的特殊操作码.
ImmediateConstants立即寻址常量的数值可以在程序存储器中跟随操作码.
例如,"MOVA,#100"将十进制数100装入累加器,该数表示为十六进制是64H.
IndexedAddressing索引寻址索引寻址只能访问程序存储器,且只读.
这种寻址模式用查表法读取程序存储器.
一个16位基址寄存器(数据指针DPTR或程序计数器PC)指向表的基地址,累加器提供偏移量.
程序存储器中表项目地址由基地址加上累加器数据后形成.
另一种索引寻址方式是利用"casejump"指令.
跳转指令中的目标地址是基地址加上累加器数据后的值.
121MPC82G516ADataSheetMEGAWIN介绍指令集之前,需注意的:Rn当前选中寄存器区的工作寄存器R0-R7direct128个内部RAM地址,包括任意I/O口、控制或状态寄存器@Ri用R0或R1间接寻址内部RAM地址#data指令中的8位常量#data16指令中的16位常量addr16用于LCALL和LJMP指令中的16位目标地址,可以是64K字节程序存储器地址空间的任何位置addr11用于ACALL和AJMP指令中的11位目标地址,只能是从下一条指令的第一个字节开始计算,同一个程序存储器2K字节页面内的位置rel有符号的8位偏移字节,用SJMP和所有的条件跳转,范围在以下一条指令的第一个字节开始的-128到+127字节内bit内部RAM、I/O、控制位或状态位的128位直接位寻址位MEGAWINMPC82G516ADataSheet12226.
1算术运算指令助记符描述字节占用时钟周期算术运算ADDA,Rn将寄存器Rn中的内容加到累加器中12ADDA,direct直接地址单元中的内容加到累加器中23ADDA,@Ri寄存器工作寄存器Ri指向的地址单元中的内容加到累加器中13ADDA,#data立即数加到累加器中22ADDCA,Rn累加器与工作寄存器Rn中的内容、连同进位位相加,结果存在累加器中12ADDCA,direct累加器与直接地址单元的内容、连同进位位相加,结果存在累加器中23ADDCA,@Ri累加器与工作寄存器Ri指向的地址单元中的内容、连同进位位相加,结果存在累加器中13ADDCA,#data累加器与立即数、连同进位位相加,结果存在累加器中22SUBBA,Rn累加器与工作寄存器中的内容、连同借位位相减,结果存在累加器中12SUBBA,direct累加器与直接地址单元中的内容、连同借位位相减,结果存在累加器中23SUBBA,@Ri累加器与工作寄存器Ri指向的地址单元中内容、连同借位位相减,结果存在累加器中13SUBBA,#data累加器与立即数、连同借位位相减,结果存在累加器中22INCA累加器中的内容加112INCRn寄存器Rn的内容加113INCdirect直接地址单元中的内容加124INC@Ri工作寄存器Ri指向的地址单元中的内容加114INCDPTR数据指针DPTR的内容加111DECA累加器中的内容减112DECRn寄存器Rn中的内容减113DECdirect直接地址单元中的内容减124DEC@Ri工作寄存器Ri指向的地址单元中的内容减114MULABACC中内容与寄存器B中内容相乘,其结果低位存在ACC中、高位存在寄存器B中14DIVABACC中内容除以寄存器B中内容,商存在ACC,而余数存在寄存器B中15DAAACC十进制调整14123MPC82G516ADataSheetMEGAWIN26.
2逻辑操作指令助记符描述字节占用时钟周期逻辑运算ANLA,Rn累加器和寄存器Rn中的内容相"与"12ANLA,direct累加器和直接地址单元中的内容相"与"23ANLA,@Ri累加器和工作寄存器Ri指向的地址单元中的内容相"与"13ANLA,#data累加器和立即数相"与"22ANLdirect,A直接地址单元中的内容和累加器相"与"24ANLdirect,#data直接地址单元中的内容和立即数相"与"34ORLA,Rn累加器和寄存器Rn中的内容相"或"12ORLA,direct累加器和直接地址单元中的内容相"或"23ORLA,@Ri累加器和工作寄存器Ri指向的地址单元中的内容相"或"13ORLA,#data累加器和立即数相"或"22ORLdirect,A直接地址单元中的内容和累加器相"或"24ORLdirect,#data直接地址单元中的内容和立即数相"或"34XRLA,Rn累加器和寄存器Rn中的内容相"异或"12XRLA,direct累加器和直接地址单元中的内容相"异或"23XRLA,@Ri累加器和工作寄存器Ri指向的地址单元中的内容相"异或"13XRLA,#data累加器和立即数相"异或"22XRLdirect,A直接地址单元中的内容和累加器相"异或"24XRLdirect,#data直接地址单元中的内容和立即数相"异或"34CLRA累加器内容清"0"11CPLA累加器按位取反12RLA累加器循环左移一位11RLCA累加器连同进位位CY循环左移一位11RRA累加器循环右移一位11RRCA累加器连同进位位CY循环右移一位11SWAPA累加器高低半字节互换11MEGAWINMPC82G516ADataSheet12426.
3数据传送指令助记符描述字节占用时钟周期数据传送MOVA,Rn寄存器Rn中的内容送到累加器中11MOVA,direct直接地址单元中的内容送到累加器中22MOVA,@Ri工作寄存器Ri指向的地址单元中的内容送到累加器中12MOVA,#data立即数送到累加器中22MOVRn,A累加器中内容送到寄存器Rn中12MOVRn,direct直接寻址单元中的内容送到寄存器Rn中24MOVRn,#data立即数直接送到寄存器Rn中22MOVdirect,A累加器送到直接地址单元23MOVdirect,Rn寄存器Rn中的内容送到直接地址单元23MOVdirect,direct直接地址单元中的内容送到另一个直接地址单元34MOVdirect,@Ri工作寄存器Ri指向的地址单元中的内容送到直接地址单元24MOVdirect,#data立即数送到直接地址单元33MOV@Ri,A累加器送到以工作寄存器Ri指向的地址单元中13MOV@Ri,direct直接地址单元中内容送到以工作寄存器Ri指向的地址单元中23MOV@Ri,#data立即数送到以工作寄存器Ri指向的地址单元中23MOVDPTR,#data1616位常数的高8位送到DPH,低8位送到DPL33MOVCA,@A+DPTR以DPTR为基地址变址寻址单元中的内容送到累加器中14MOVCA,@A+PC以PC为基地址变址寻址单元中的内容送到累加器中14MOVXA,@Ri注1寄存器Ri指向扩展RAM地址(8位地址)中的内容送到ACC中13MOVXA,@DPTR注1数据指针指向扩展RAM地址(16位地址)中的内容送到ACC中13MOVX@Ri,A注1累加器中的内容送到寄存器Ri指向的扩展RAM地址(8位地址)中14MOVX@DPTR,A住1累加器中的内容送到寄存器Ri指向的扩展RAM地址(16位地址)中13MOVXA,@Ri注2寄存器Ri指向片外RAM地址中的内容送到ACC中17Note3MOVXA,@DPTR注2数据指针指向片外RAM地址(16位地址)中内容送到ACC17Note3MOVX@Ri,A注2累加器中的内容送到寄存器Ri指向片外RAM地址(8位地址)中17Note3MOVX@DPTR,A注2累加器中的内容送到数据指针指向片外RAM地址(16位地址)中17Note3PUSHdirect直接地址单元中的数据压入堆栈中24POPdirect出栈数据送到直接地址单元中23XCHA,Rn累加器与寄存器Rn中的内容互换13XCHA,direct累加器与直接地址单元中的内容互换24XCHA,@Ri累加器与工作寄存器Ri指向的地址单元中内容互换14XCHDA,@Ri累加器与工作寄存器Ri指向的地址单元中内容低半字节互换14注1:当控制位EXTRAM=0,所有"MOVX"指令均指向片内扩展XRAM区注2:当控制位EXTRAM=1,所有"MOVX"指令均指向外部数据存储区注3:访问外部数据存储区的机器周期时间计算方法是:7+2x(ALE延长时钟)+(RW延长时钟)125MPC82G516ADataSheetMEGAWIN26.
4布尔操作指令助记符描述字节占用时钟周期布尔变量操作CLRC清"0"进位位11CLRbit清"0"直接地址位24SETBC置"1"进位位11SETBbit置"1"直接地址位24CPLC进位位求反11CPLbit直接地址位求反24ANLC,bit进位位和直接地址位相"与"23ANLC,/bit进位位和直接地址位的反码相"与"23ORLC,bit进位位和直接地址位相"或"23ORLC,/bit进位位和直接地址位的反码相"或"23MOVC,bit直接地址位数据送入进位位23MOVbit,C进位位数据送入直接地址位24MEGAWINMPC82G516ADataSheet12626.
5控制和转移指令助记符描述字节占用时钟周期PROAGRAMANDMACHINECONTROLACALLaddr11绝对短调用子程序,2K字节(页内)空间限制26LCALLaddr16绝对长调用子程序,64K字节空间限制36RET子程序返回14RETI中断子程序返回14AJMPaddr11绝对短转移,2K字节(页内)空间限制23LJMPaddr16绝对长转移,64K字节空间限制34SJMPrel相对转移23JMP@A+DPTR转移到DPTR加ACC所指间接地址13JZrel累加器为"0"则转移23JNZrel累加器不为"0"则转移23JCrel进位位为"1"则转移23JNCrel进位位为"0"则转移23JBbit,rel直接地址位为"1"则转移34JNBbit,rel直接地址位为"0"则转移34JBCbit,rel直接地址位为"1"则转移,且清"0"该位35CJNEA,direct,rel累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行35CJNEA,#data,rel累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行34CJNERn,#data,rel寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行34CJNE@Ri,#data,rel工作寄存器Ri指向的地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行35DJNZRn,rel寄存器Rn中的内容减1,如不等于0,则转移到偏移量所指向的地址,否则程序往下执行24DJNZdirect,rel直接地址单元中的内容减1,如不等于0,则转移到偏移量所指向的地址,否则程序往下执行35NOP空操作指令11127MPC82G516ADataSheetMEGAWIN27应用事项27.
13.
3V,5V供电和宽电压范围MPC82G516A由5V逻辑器件和3V逻辑器件组成;前者直接由VDD供电,后者通过内部低压差稳压器(LDO)供电.
V30引脚为LDO输出,需要连接一个滤波电容到地,能够得到更好的负载调整.
图27-1表示了内部电源电路.
供电工作范围由VDD和V30引脚的连接方式决定.
图27-1.
电源电路27.
1.
13.
3V供电使MPC82G516A工作在3.
3V系统中,供电变动范围从2.
4V到3.
6V之内,V30引脚必须连接到VDD,如图27-2所示.
此时,内部LDO旁路.
因此芯片能工作在最低2.
4V.
图27-2.
3.
3V供电MEGAWINMPC82G516ADataSheet12827.
1.
25V供电和宽电压范围MPC82G516A工作在5V系统中,供电范围从2.
7V到5.
5V,V30引脚不能连接到VDD,且需要一个滤波电容,如图27-3所示.
图27-3.
5V供电或宽电压范围27.
2复位电路通常,上电时能够成功产生上电复位.
不过,为了更加确保上电时MCU可靠的复位,需要有外部复位.
图27-4示意了外部复位电路,由一个连接到VDD(电源)的电容CEXT和一个连接到VSS(地)的电阻REXT所组成.
一般来说,REXT是可选的,由于RST引脚有一个内部下拉电阻(RRST).
这个内置的接地集成电阻允许上电时只用一个接到VDD的外部电容CEXT.
参看章节30:直流特性RRST的相关部分.
图27-4.
复位电路129MPC82G516ADataSheetMEGAWIN27.
3晶振电路为了成功获得精确的振荡(至24MHz),电容C1和C2是必需的,无论硬件选项OSCDN的状态(enabled或disabled).
通常,C1和C2可以选取相同的值,大约20pF~150pF范围内.
图27-5.
晶振电路MEGAWINMPC82G516ADataSheet13028片上调试功能MPC82G516A为在线仿真(In-CircuitEmulator,ICE)设计有专门的片上调试(On-ChipDebug,OCD)接口.
OCD接口提供片上和在系统的无干扰调试,不占用任何目标系统资源.
ICE的常用必备操作均支持,如复位,运行,停止,单步,运行到光标,断点设置.
Megawin提供使用OCD技术的在线调试工具"Megawin8051OCDICE"给用户,如图28-1.
1.
用户开发时不必准备任何开发板或者传统的ICE探针插座转接器.
用户所需的仅仅是在系统上为OCD接口保留一个4引脚的接插件:VCC,OCD_SDA,OCD_SCL和GND.
图28-2展示了OCDICE的系统框图.
另外,最强大的特点是它能直接用Keil8051IDESoftware中的dScope-Debugger功能选项连接到用户的目标系统进行调试.
当然,你得要用Keil8051IDE软件来调试.
注:"Keil"是"KeilElektronikGmbHandKeilSoftware,Inc.
"的注册商标,"Keil8051IDEsoftware"是8051嵌入式系统开发中最常用的C51编译器.
特点Megawin专利OCD(On-Chip-Debug)技术单芯片在系统实时调试2引脚专用串行OCD接口,不占用目标系统资源直接连接到Keil8051IDESoftware的调试功能USB连接目标板和上位机(PC)常用调试功能:复位,运行,停止,单步和运行到光标可编程断点,最多可同时设置4个断点多种常用调试窗口:寄存器、反汇编、Watch、内存窗口源级(汇编或C语言)调试能力图28-1.
"8051ICEAdapter"的图片图28-2.
ICE功能的结构框图注:关于OCDICE更加详细的信息,欢迎联系Megawin索取.
131MPC82G516ADataSheetMEGAWIN29极限参数参数范围单位工作温度*注4-40~+85℃存储温度-55~+125℃VDD对VSS电压-0.
5~+6.
5V其他引脚对VSS电压-0.
5~VDD+0.
5V单输出最大IOL/IOH*注520mA所有输出最大IOL/IOH*注5100mA消耗功率*注61.
5W注:1.
器件超过"极限参数范围"可能导致永久性损坏.
工作或者存储超出这个范围是不推荐的,且可能影响器件的可靠性.
2.
本产品包括专门为保护其内部设备不被静电损坏的电路.
虽然如此,还是建议应采取常规的预防措施,以避免应用时超过额定最大值.
3.
参数是有效的工作温度范围内,另有指明的除外.
4.
样品测试5.
在稳态(非瞬态)条件,IOL/IOH必须外部限制.
.
6.
基于封装的传热限制,不是器件的能量消耗MEGAWINMPC82G516ADataSheet132符号参数测试条件MinTyp*1MaxUnitIIL1逻辑0输入电流,P0/P1/P2/P3/P4(准双向)VDD=3.
6VandVIN=0.
4V---10AIIL2逻辑0输入电流,P0/P1/P2/P3/P4(仅输入)VDD=3.
6VandVIN=0.
4V-0-A*2ITL逻辑1至0过度电流,P0/P1/P2/P3/P4(准双向)VDD=3.
6VandVIN=1.
5V---120AVIH1输入高电压,P0/P1/P2/P3/P4(准双向或仅输入)0.
3V+0.
5-V+0.
5VVIH2输入高电压,RST0.
25VDD+0.
5-VDD+0.
5VVIH3输入高电压,XTAL10.
4VDD-VDD+0.
5VVIL1输入低电压,P0/P1/P2/P3/P4(准双向或仅输入)-0.
5-0.
3VDDVVIL2输入低电压,RST-0.
5-0.
3VDDVVIL3输入低电压,XTAL1-0.
5-0.
35VDDVVOH1*3输出大电流,P0/P1/P2/P3/P4(准双向)VDD=2.
4VandIOH=-17AVDD=3.
6VandIOH=-70A2.
02.
4--VVOH2*3输出大电流,P0/P1/P2/P3/P4(推挽输出)VDD=2.
4VandIOH=-2.
1mAVDD=3.
6VandIOH=-8.
5mA2.
02.
4--VVOH3*3输出大电流,XTAL2VDD=2.
4VandIOH=-0.
9mAVDD=3.
6VandIOH=-3.
2mA2.
02.
4--V*3VOL1输出小电流,P0/P1/P2/P3/P4(准双向)VDD=2.
4VandIOL=+7.
0mAVDD=3.
6VandIOL=+10.
2mA--0.
4V*3VOL2输出小电流,P0/P1/P2/P3/P4(推挽输出)VDD=2.
4VandIOL=+7.
0mAVDD=3.
6VandIOL=+10.
2mA--0.
4V*3VOL3输出小电流,P0/P1/P2/P3/P4(开漏输出)VDD=2.
4VandIOL=+7.
0mAVDD=3.
6VandIOL=+10.
2mA--0.
4V*3VOL4输出小电流,XTAL2VDD=2.
4VandIOL=+1.
4mAVDD=3.
6VandIOL=+1.
6mA--0.
4VRRST内部复位下拉电阻180-320KΩVCPF欠压阀值,LDO输出-2.
4-VVRA*4MRAM保持电压1.
2--V30直流特性[条件1]3.
3V系统(V30连接到VDD)FOSC=12MHz,Tamb=-40℃~+85℃,VDD=2.
4V~3.
6V,除非另外说明DDDD133MPC82G516ADataSheetMEGAWIN符号参数测试条件MinTyp*1MaxUnitFosc=6MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
11.
8-3.
6Fosc=12MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
11.
8-3.
6V*5,*8电源电压Fosc=24MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
32.
3-3.
6VVPOR上电复位电压阀值Tamb=-40℃Tamb=+25℃Tamb=+85℃-2.
42.
11.
8-VVDD=2.
4VFosc=6MHzFosc=12MHzFosc=24MHz-4.
06.
211.
05.
07.
513.
5工作时,电源电流*7VDD=3.
6VFosc=6MHzFosc=12MHzFosc=24MHz-9.
113.
020.
811.
015.
525.
0mAVDD=2.
4VFosc=6MHzFosc=12MHzFosc=24MHz-1.
72.
64.
52.
53.
55.
5闲置时,电源电流VDD=3.
6VFosc=6MHzFosc=12MHzFosc=24MHz-3.
14.
88.
24.
06.
010.
0mA*6IDD关断时,电源电流Fosc=24MHz,VDD=2.
4V~3.
6V-110A(接上页)DD注:*1:典型值是根据数目有限的样品,并没有保证.
所列的值是在室温下,另有指明的除外.
*2:用准双向模式,当外部驱动从逻辑1到逻辑0时端口引脚通过的电流.
当VIN大约为1.
5V时电流值最大.
*3:参考章节29:极限参数范围中稳态(非瞬态)的IOH和IOL的限定如果IOH超出测试条件,VOH将会比列出的数值低.
如果IOL超出测试条件,VOL将会比列出的数值高*4:RAM数据保存时的电源电压.
*5:硬件选项ENLVRO&ENLVRCdisabled.
*6:硬件选项OSCDNenabled.
*7:当CPU运行一条空指令循环,如下.
Loop:NOPJMPLoop*8:列出的最低限度电源电压供给仅包括低于正常工作下的逻辑功能,但不包括闪存擦除和写入.
2.
4V~3.
6V范围是整个芯片功能正常工作的电源电压.
MEGAWINMPC82G516ADataSheet134符号参数测试条件MinTyp*1MaxUnitIIL1逻辑0输入电流,P0/P1/P2/P3/P4(准双向)VDD=5.
5VandVIN=0.
4V---30AIIL2逻辑0输入电流,P0/P1/P2/P3/P4(仅输入)VDD=5.
5VandVIN=0.
4V-0-A*2ITL逻辑1至0过度电流,P0/P1/P2/P3/P4(准双向)VDD=5.
5VandVIN=2.
0V---260AVIH1输入高电压,P0/P1/P2/P3/P4(准双向或仅输入)0.
25V+0.
7-V+0.
5VVIH2输入高电压,RST0.
25VDD+0.
5-VDD+0.
5VVIH3输入高电压,XTAL10.
5VDD-0.
3-VDD+0.
5VVIL1输入低电压,P0/P1/P2/P3/P4(准双向或仅输入)-0.
5-0.
25VDD+0.
1VVIL2输入低电压,RST-0.
5-0.
25VDD+0.
2VVIL3输入低电压,XTAL1-0.
5-0.
35VDD-0.
1VVOH1*3输出大电流,P0/P1/P2/P3/P4(准双向)VDD=2.
7VandIOH=-17AVDD=5.
5VandIOH=-210A2.
4--VVOH2*3输出大电流,P0/P1/P2/P3/P4(推挽输出)VDD=2.
7VandIOH=-2.
1mAVDD=5.
5VandIOH=-25.
0mA2.
4--VVOH3*3输出大电流,XTAL2VDD=2.
7VandIOH=-0.
9mAVDD=5.
5VandIOH=-9.
4mA2.
4--V*3VOL1输出小电流,P0/P1/P2/P3/P4(准双向)VDD=2.
7VandIOL=+11.
8mAVDD=5.
5VandIOL=+17.
6mA--0.
4V*3VOL2输出小电流,P0/P1/P2/P3/P4(推挽输出)VDD=2.
7VandIOL=+11.
8mAVDD=5.
5VandIOL=+17.
6mA--0.
4V*3VOL3输出小电流,P0/P1/P2/P3/P4(开漏输出)VDD=2.
7VandIOL=+11.
8mAVDD=5.
5VandIOL=+17.
6mA--0.
4V*3VOL4输出小电流,XTAL2VDD=2.
7VandIOL=+1.
4mAVDD=5.
5VandIOL=+1.
6mA--0.
4VRRST内部复位下拉电阻110-280KΩVOPF欠压阀值,LDO输出-3.
7-VVRA*4MRAM保持电压1.
5--V[条件2]5V或宽电压范围(V30不连接VDD)FOSC=12MHz,Tamb=-40℃~+85℃,VDD=2.
7V~5.
5V,除非特别说明DDDD135MPC82G516ADataSheetMEGAWINSymbolParameterTestConditionsMinTyp*1MaxUnitFosc=6MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
11.
8-5.
5Fosc=12MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
21.
9-5.
5V*5,*8电源电压Fosc=24MHz,Tamb=-40℃Tamb=+25℃Tamb=+85℃2.
42.
42.
4-5.
5VVPOR上电复位电压阀值Tamb=-40℃Tamb=+25℃Tamb=+85℃-2.
42.
11.
8-VVDD=2.
7VFosc=6MHzFosc=12MHzFosc=24MHz-4.
76.
911.
06.
08.
513.
5工作时,电源电流*7VDD=5.
5VFosc=6MHzFosc=12MHzFosc=24MHz-8.
911.
618.
111.
014.
022.
0mAVDD=2.
7VFosc=6MHzFosc=12MHzFosc=24MHz-1.
92.
95.
02.
53.
56.
0闲置时,电源电流VDD=5.
5VFosc=6MHzFosc=12MHzFosc=24MHz-4.
15.
18.
15.
06.
510.
0mA*6IDD关断时,电源电流Fosc=24MHz,VDD=2.
7V~5.
5V-110A(接上页)DD注:*1:典型值是根据数目有限的样品,并没有保证.
所列的值是在室温下,另有指明的除外.
*2:用准双向模式,当外部驱动从逻辑1到逻辑0时端口引脚通过的电流.
当VIN大约为2.
0V时电流值最大.
*3:参考章节29:极限参数范围中稳态(非瞬态)的IOH和IOL的限定如果IOH超出测试条件,VOH将会比列出的数值低.
如果IOL超出测试条件,VOL将会比列出的数值高*4:RAM数据保存时的电源电压.
*5:硬件选项ENLVRO&ENLVRCdisabled.
*6:硬件选项OSCDNenabled.
*7:当CPU运行一条空指令循环,如下.
Loop:NOPJMPLoop*8:列出的最低限度电源电压供给仅包括低于正常工作下的逻辑功能,但不包括闪存擦除和写入.
2.
7V~5.
5V范围是整个芯片功能正常工作的电源电压.
MEGAWINMPC82G516ADataSheet13631订货信息封装零件号码名称描述包装MPC82G516AEPDIP-40塑料双列直插封装40引脚(600mil)Tube管MPC82G516APPLCC-44PlasticLeadedChipCarrier;44引脚Tube管MPC82G516AFPQFP-44塑料四面扁平封装44引脚外形10x10x2.
0mmTray盘MPC82G516ADLQFP-48塑料超低四面扁平封装48引脚外形7x7x1.
4mmTray盘MPC82G516AS3SSOP-28窄型小外观封装28引脚外形10.
2x5.
3x1.
75mmTube管零件号码示意MPC82G516AEMainNumber封装方式:S3:SSOP-28E:PDIP-40P:PLCC-44F:PQFP-44D:LQFP-48137MPC82G516ADataSheetMEGAWIN32封装尺寸40-PinPDIP封装MEGAWINMPC82G516ADataSheet13844-PinPLCC封装139MPC82G516ADataSheetMEGAWIN44-PinPQFP封装MEGAWINMPC82G516ADataSheet14048-PinLQFP封装141MPC82G516ADataSheetMEGAWIN28-PinSSOP封装MEGAWINMPC82G516ADataSheet14233免责声明此中,Megawin表示"MegawinTechnologyCo.
,Ltd.
"生命维持系统—本产品不能设计于医疗,生命救护或生命维持系统的应用,或者系统故障时将导致可预料的人身伤害.
客户使用或销售应用于此类应用时的产品,自担风险,且同意完全赔偿Megawin任何由于此类不适当的使用或销售导致的损害赔偿.
内容更新—Megawin保留修改产品的权利-包括电路,标准单元,以及软件(叙述或包含此中改进设计及性能).
当产品量产时,相关修改将通过工程变更通知(ECN)传达.
143MPC82G516ADataSheetMEGAWIN版本历史修订描述日期A1初始版本2007/7A2修改一些说明2008/3A3重写规格书充实部分内容2008/6A4规格化文挡2008/12翻译版本(中文版)历史修订描述日期初稿初始翻译版本2009/2第Ⅰ版修改一些图片,提高图片清晰度2009/2第Ⅱ版按照英文A4版重写规格书,充实部分内容2009/2第Ⅲ版修改了部分己发现的翻译错误2009/3MEGAWINMPC82G516ADataSheet144
美国高防服务器提速啦专业提供美国高防服务器,美国高防服务器租用,美国抗攻击服务器,高防御美国服务器租用等。我们的海外高防服务器带给您坚不可摧的DDoS防护,保障您的业务不受攻击影响。HostEase美国高防服务器位于加州和洛杉矶数据中心,均为国内访问速度最快最稳定的美国抗攻击机房,带给您快速的访问体验。我们的高防服务器配有最高层级的DDoS防护系统,每款抗攻击服务器均拥有免费DDoS防护额度,让您...
hostround怎么样?大硬盘服务器,高防服务器。hostround,美国商家,2017年成立,正规注册公司(Company File #6180543),提供虚拟主机、VPS云主机、美国服务器、荷兰服务器租用等。现在有1款特价大硬盘独服,位于达拉斯,配置还不错,本月订购时包括免费 500Gbps DDoS 保护,有兴趣的可以关注一下。点击直达:hostround官方网站地址美国\荷兰独立服务器...
Hostinger 商家我们可能一些新用户不是太熟悉,因为我们很多新人用户都可能较多的直接从云服务器、独立服务器起步的。而Hostinger商家已经有将近十年的历史的商家,曾经主做低价虚拟主机,也是比较有知名度的,那时候也有接触过,不过一直没有过多的使用。这不这么多年过去,Hostinger商家一直比较稳妥的在运营,最近看到这个商家在改版UI后且产品上也在活动策划比较多。目前Hostinger在进...
下载主机为你推荐
accessdenied上网时电脑上显示access denied 是怎么回事开启javascript怎么在浏览器中启用JavaScript?linux防火墙设置如何在Linux中启动/停止和启用/禁用FirewallD和Iptables防火墙新iphone也将禁售苹果ID换了个新的怎么还是停用outlookexpressOUTLOOK EXPRESS作用是什么?我想删除它会不会影响系统netshwinsockreset开始-运行-输入CMD-确定-输入netsh winsock reset,按Enter确定。然后重启。 是什么意思文档下载如何 下载 文库文件客服电话赶集网客服电话是多少滴滴估值500亿滴滴拉屎 App 为何能估值 100 亿美金?是怎么计算出来的三友网怎么是“三友”
域名劫持 阿云浏览器 服务器配置技术网 securitycenter vps.net googleapps 美国php主机 私有云存储 500m空间 空间合租 免费高速空间 免费申请个人网站 支付宝扫码领红包 申请网页 环聊 丽萨 贵阳电信 lamp什么意思 主机返佣 江苏徐州移动 更多