触摸ICCMS69T08用户手册(V1.3).doc

上传人:文库蛋蛋多 文档编号:4153570 上传时间:2023-04-07 格式:DOC 页数:116 大小:2.41MB
返回 下载 相关 举报
触摸ICCMS69T08用户手册(V1.3).doc_第1页
第1页 / 共116页
触摸ICCMS69T08用户手册(V1.3).doc_第2页
第2页 / 共116页
触摸ICCMS69T08用户手册(V1.3).doc_第3页
第3页 / 共116页
触摸ICCMS69T08用户手册(V1.3).doc_第4页
第4页 / 共116页
触摸ICCMS69T08用户手册(V1.3).doc_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《触摸ICCMS69T08用户手册(V1.3).doc》由会员分享,可在线阅读,更多相关《触摸ICCMS69T08用户手册(V1.3).doc(116页珍藏版)》请在三一办公上搜索。

1、CMS69T08用户手册 触摸MCUV 1.3本用户手册仅供参考,本公司保留对以下所有产品在可靠性、功能和设计改进做进一步说明的权利。1.产品概述11.1功能特性11.2系统结构框图21.3管脚分布31.4管脚描述4烧写选择项 系统配置寄存器52.中央处理器(CPU)62.1内存62.1.1程序内存62.1.2数据存储器112.2寻址模式142.2.1直接寻址142.2.2立即寻址142.2.3间接寻址142.3堆栈152.4工作寄存器(ACC)152.4.1概述152.4.2ACC应用152.5程序状态寄存器(FLAGS)162.6预分频器(OPTION)182.7程序计数器(PC)192.

2、8看门狗计数器(WDT)192.8.1WDT周期193.系统时钟203.1概述203.2系统振荡器213.2.1EXTRC:外部RC振荡213.2.2XT:外部晶体振荡223.2.3INTRC:内部RC振荡223.2.4外部振荡233.3起振时间234.复位244.1上电复位244.2掉电复位254.2.1掉电复位概述254.2.2掉电复位的改进办法264.3看门狗复位264.4P0口下降沿唤醒休眠态CPU复位274.5复位口电平复位274.6基本外部复位电路274.6.1RC复位电路274.6.2二极管及RC复位电路284.6.3三极管复位电路284.6.4稳压二极管复位电路295.系统工作

3、模式305.1休眠模式305.1.1休眠模式应用举例305.1.2休眠模式的唤醒315.1.3休眠模式唤醒时间316.I/0端口326.1I/O口模式及上、下拉电阻336.1.1P0口336.1.2P1口366.1.3P2口386.2I/O使用396.2.1写I/O口396.2.2读I/O口396.3I/O口使用注意事项407.中断407.1中断概述407.2中断控制寄存器417.3中断请求寄存器427.4总中断使能控制寄存器427.5中断现场的保护方法437.6外部中断447.6.1外部中断控制寄存器447.6.2外部中断0457.6.3外部中断1467.6.4外部中断的响应时间467.6.

4、5外部中断的应用注意事项477.7触摸按键中断477.8内部定时中断497.8.1TMR1中断497.8.2TMR2中断507.9ADC中断517.10中断的优先级,及多中断嵌套528.定时计数器TMR0548.1定时计数器TMR0概述548.2与TMR0相关寄存器558.3使用外部时钟作为TMR0的时钟源568.4TMR0做定时器的应用568.4.1TMR0的基本时间常数568.4.2TMR0操作流程579.定时计数器TMR1599.1TMR1概述599.2TMR1相关寄存器609.3TMR1的时间常数619.3.1TMR1基本时间参数619.3.2TMR1初值的计算方法619.4TMR1的

5、应用619.4.1TMR1作定时器使用619.4.2TMR1作计数器使用6210.定时计数器TMR26310.1TMR2概述6310.2TMR2相关的寄存器6510.3TMR2的时间常数6610.3.1TMR2基本时间参数6610.3.2T2DATA初值计算方法:6610.4TMR2应用6610.5T2OUT输出6710.5.1T2OUT的周期6710.5.2T2OUT基本时间参数6710.5.3T2OUT应用6711.模数转换(ADC)6811.1ADC概述6811.2与ADC相关寄存器6911.3ADC应用7011.3.1用查询模式做AD转换流程7011.3.2AD中断模式流程7012.触

6、摸按键(TOUCH KEY)7212.1触摸按键模块概述7212.2CMS69T08触摸按键原理图7312.3与触摸按键相关的寄存器7412.4触摸按键模块应用7612.4.1用查询模式读取“按键数据值”流程7612.4.2用中断模式读取“按键数据值”流程7712.4.3判断按键方法7912.5触摸模块使用注意事项80138位PWM(PWM0)8114.18位PWM概述8114.2与8位PWM相关寄存器8214.38位PWM的周期8314.3.18位PWM调制周期8314.3.28位PWM输出周期8314.48位PWM占空比算法8314.58位PWM应用8514.10位PWM(PWM1)861

7、5.110位PWM概述8615.2与10位PWM相关寄存器8715.310位PWM调制周期8815.3.110位PWM调制周期8815.3.210位PWM输出周期8815.410位PWM占空比算法8815.510位PWM应用8915.高频时钟(CLO)输出9016.1高频时钟(CLO)输出概述9016.2高频时钟(CLO)输出波形9016.3高频时钟(CLO)应用9016.蜂鸣器输出(BUZZER)9117.1BUZZER概述9117.2与BUZZER相关的寄存器9217.3BUZZER输出频率9217.3.1BUZZER输出频率计算方法9217.3.2BUZZER输出频率表9217.4BUZ

8、ZER应用9217.电气参数9318.1DC特性9318.2AC特性9318.3外部RC振荡特性9418.3.1外部RC参数9418.3.2外部RC电压特性9418.4内部RC振荡特性9518.4.1内部RC振荡电压特性9518.4.2内部RC振荡温度特性9518.指令9619.1指令一览表9619.2指令说明981. 产品概述1.1 功能特性内存ROM: 2K*14RAM: 872个PWM输出口两种模式选择的8位PWM10位PWM8级堆栈缓存器指令周期(单指令或双指令周期)简洁实用的指令系统(69条指令)专用蜂鸣器输出口(频率可变)内置低压侦测电路内置WDT定时器6个中断源内部中断源3个:

9、TMR1、TMR2、ADC外部中断源2个: EXT0、EXT1触摸中断源1个: KEY_CI/0口配置P0:具有唤醒功能、上拉电阻选项。P1:具有上拉电阻选项P2:具有上、下拉电阻选项3个8位定时器TMR0TMR1TMR2两种工作模式正常模式睡眠模式高频信号输出口(CLO)占空比可选择:25%、50%、75%。2路内置比较器正端可选择接内部标准电压8路10位模数转换(ADC)查表功能三种振荡模式EXTRC,最高可达8MINTRC,8M/4M可选,精度可达2%XT,最高可达8M多种封装形式可供选择DIP20SOP20内置8通道触摸按键检测电路8路专用电容式触摸按键检测1.2 系统结构框图 1.3

10、 管脚分布1GNDP0.4/AN4/KEY4P0.5/AN5/KEY5VDDP0.3/AN3/KEY3P0.2/AN2/RTCC/KEY220659P0.0/AN0 /EXTINT0/KEY0OSCIN/P2.0192OSCOUT/P2.1P0.1/AN1 /EXTINT1/KEY1183RES/P2.2174T2OUT /P1.016BUZZER /P1.115P1.2147P0.6/AN6/PWM0/KEY6P1.3138P0.7/AN7/PWM1/KEY7P1.412P1.6/CLOCAP*/P1.51110CMS69T081.4 管脚描述管脚名称IO类型管脚说明共享引脚PO.0PO.7

11、I/O可编程为:输入口,带上拉电阻输入口,推挽输出口;也可作为A/D转换的模拟输入口,比较器输入口,外部中断输入口,触摸按键输入口,PWM输出口,带休眠唤醒功能。AN0,AN1,AN2,AN3,AN4,AN5,AN6,AN7KEY0,KEY1,KEY2,KEY3.KEY4,KEY5,KEY6,KEY7RTCC,EXTINT0,EXTINT1 PWM0,PWM1P1.0P1.6I/O可编程为:输入口,带上拉电阻输入口,推挽输出口,开漏输出口,开漏输出口(带上拉);也可作为比较器输入口,CLOPWM2输出口,触摸按键灵敏度电容口。BUZZER,T2OUT,CLO,CAP*P2.0,P2.1I/O输

12、入口,上/下拉电阻输入口,推挽输出口, 开漏输出口OSCIN,OSCOUTP2.2I上拉输入口(上拉不可关断)RESVDD,GNDP电源电压输入脚,接地脚-OSCIN,OSCOUT-晶体振荡,陶瓷振荡,RC振荡输入口P2.0,P2.1RES-外部复位输入口P2.2AN0-AN7IA/D转换的模拟输入口P0.0P0.7KEY0-KEY7I电容式触摸按键输入口P0.0P0.7CAP*I触摸按键灵敏度电容输入口P1.5PWM0O8位PWM输出P0.6PWM1O10位PWM输出P0.7CLOO占空比可选的系统时钟输出P1.6EXT0,EXT1I外部中断输入口P0.0,P0.1T2OUTOT2定时/计数

13、器输出P1.0烧写选择项 系统配置寄存器系统配置寄存器(CONFIG)是MCU初始条件的ROM选项。它只能被CMS烧写器烧写,用户不能访问及操作。它包含了以下内容:1、 OSC(振荡方式) EXTRC: 外部RC XT: 晶振 INTRC: 内部RC(此时OSCINOSCOUT自动成为普通IO口P2.0:1)2、PROTECT(加密) DISABLE ROM代码不加密 ENABLE ROM代码加密,加密后读出来的值将不确定3、OSC TIME(起振时间) 18mS 9mS 2.2mS 560uS4、LVR (低压侦测电路) ENABLE 打开低压侦测电路,选择内部复位,同时P2.2口作为普通上

14、拉输入口 DISABLE 关闭低压侦测电路,选择外部复位,同时P2.2口作为复位口(低电平复位)5、WDT(看门狗选择) ENABLE 打开看门口定时器 DISABLE 关闭看门狗定时器2. 中央处理器(CPU)2.1 内存2.1.1 程序内存 ROM:2K0000H0001H0002H0003H0004H07FDH07FEH07FFH复位向量程序开始跳转到用户程序跳转到用户程序用户程序区程序结束中断向量通用存储区跳转到复位向量2.1.1.1 复位向量(0000H)CMS69T08系列单片机具有一个字长的系统复位向量(0000H)。 上电复位 看门狗复位 外部复位 P0口下降沿唤醒休眠状态下C

15、PU 低压复位(LVR)发生上述任一种复位后,程序将从 0000H 处重新开始执行,系统寄存器也都将恢复为默认值。根据 FLAGS 寄存器中的 PF和 TF 标志位的内容可以判断系统复位方式。下面一段程序演示了如何定义 ROM 中的复位向量。 例:定义复位向量ORG0000H; 系统复位向量JPSTART ; 跳至用户程序ORG 0002H; 用户程序起始地址 START:; 用户程序END; 程序结束2.1.1.2 中断向量中断向量地址为 0001H。一旦有中断响应,程序计数器 PC 的当前值就会存入堆栈缓存器并跳转到 0001H 开始执行中断服务程序。所有中断都会进入0001H这个中断向量

16、,具体执行哪个中断将由用户根据中断请求标志位寄存器(INT_FLAG)的位决定。下面的示例程序说明了如何编写中断服务程序。 例:定义中断向量,中断程序放在用户程序之后ORG 0000H; 系统复位向量JPSTART ; 跳至用户程序ORG 0001HJPINT_STARTORG 0002H; 用户程序起始地址 START:; 用户程序JPSTARTINT_START:CALLPUSH; 中断入口保护ACC及FLAGS; 中断处理程序; 中断处理程序INT_EXIT: CALLPOP; 中断出口恢复现场RETI; 中断返回 例:定义中断向量,中断程序放在0001H之后ORG 0000H; 系统复

17、位向量JPSTART ; 跳至用户程序ORG 0001HINT_START:CALLPUSH; 中断入口保护ACC及FLAGS; 中断处理程序; 中断处理程序INT_EXIT: CALLPOP; 中断出口恢复现场RETI; 中断返回 START:; 用户程序JPSTART; 用户程序结束注:由于CMS69T08系列芯片并未提供专门的出栈、压栈指令,故用户需自己保护中断现场。下面给出出栈、压栈的例子: 例:中断入口保护现场PUSH:LDACC_BAK,A;保存工作寄存器ACCSWAPAFLAGSLDFLAGS_BAK,A;保存状态寄存器FLAGSRET 例:中断出口恢复现场POP:LDA,ACC

18、_BAKSWAPRFLAGS_BAKCLRFLAGSCLRBFLAGS,ZSZBFLAGS_BAK,4SETBFLAGS,0SZBFLAGS_BAK,5SETBFLAGS,1SZBFLAGS_BAK,6SETBFLAGS,2SZBFLAGS_BAK,7SETBFLAGS,3RET2.1.1.3 查表ROM 空间的任何地址都可做为查表使用。相关指令: TABLE R 把表格内容的低字节送给寄存器R,高字节送到寄存器TABLE_DATAH(24H)。 TABLEA 把表格内容的低字节送给累加器A,高字节送到寄存器TABLE_DATAH(24H)。相关寄存器: TABLE_SPH(22H) 可擦写寄

19、存器,用来指明表格高3位地址。 TABLE_SPL(23H) 可擦写寄存器,用来指明表格低8位地址。 TABLE_DATAH(24H) 只读寄存器,存放表格高字节内容。注:在查表之前要先将表格地址写入TABLE_SPH和TABLE_SPL中。如果主程序和中断服务程序都用到查表指令,主程序中TABLE_SPH的值可能会因为中断中执行的查表指令而发生变化,产生错误。也就是说要避免在主程序和中断服务程序中都使用查表指令。但如果必须这样做的话,我们可以在查表指令前先将中断禁止,在查表结束后再开放中断,以避免发生错误。提供表格低8位地址给TABLE_SPL提供表格高3位地址给TABLE_SPH表格11位

20、地址(TABLE_SPH+TABLE_SPL)调表格指令(TABLEA 或 TABLE R)低8位数据给A(TABLEA)或R(TABLE R)高6位数据给TABLE_DATAH表格调用流程图下面例子给出了如何在程序中调用表格。 例:程序中调用表格范例 ; 上接用户程序LDIA02H ; 表格第2个地址CALLTABLE ; 调用表格子程序LD R01,A; 将查表结果的低8位(这里是45H)给寄存器R01LD A,TABLE_DATAH; 将查表结果的高6位(这里是23H)给累加器ALD R02,A ; 将表格高6位给寄存器R02 ; 处理用户程序TABLE: ; 表格子程序LD TABLE

21、_SPL,A ; 将需要查找的表格地址赋给查表低8位地址LDIA10H ; 由于表格内容在0610H,所以低位指针要加上10HADDRTABLE_SPL LDIA06H ; 表格高3位地址为06HLD TABLE_SPH,ATABLEA ; 调表格指令,将低8位结果放入ARET ; 调用返回ORG0610H ; 0610地址存放表格DW03FFFH ; 表格第0个地址内容DW03FFFH ; 表格第1个地址内容DW02345H ; 表格第2个地址内容DW03FFFH ; 表格第3个地址内容2.1.1.4 跳转表跳转表能够实现多地址跳转功能。由于 PCL 和 ACC 的值相加即可得到新的 PCL

22、,因此,可以通过对 PCL 加上不同的 ACC 值来实现多地址跳转。ACC 值若为 n,PCL+ACC 即表示当前地址加 n,执行完当前指令后 PCL 值还会自加 1, 可参考以下范例。如果 PCLACC 后发生溢出,PC不会自动进位,故编写程序时应注意。这样,用户就可以通过修改 ACC 的值轻松实现多地址的跳转。 例:正确的多地址跳转程序示例ROM地址0010HADDR PCL;ACC+PCL0011HJP LOOP1;ACC=0跳至LOOP10011HJP LOOP2;ACC=1跳至LOOP20012HJP LOOP3;ACC=2跳至LOOP30013HJP LOOP4;ACC=3跳至LO

23、OP40014HJP LOOP5;ACC=4跳至LOOP50015HJP LOOP6;ACC=5跳至LOOP60016HJP LOOP7;ACC=6跳至LOOP70017HJP LOOP8;ACC=7跳至LOOP8 例:错误的多地址跳转程序示例 ROM地址00F8HADDR PCL;ACC+PCL00F9HJP LOOP1;ACC=0跳至LOOP100FAHJP LOOP2;ACC=1跳至LOOP200FBHJP LOOP3;ACC=2跳至LOOP300FCHJP LOOP4;ACC=3跳至LOOP400FDHJP LOOP5;ACC=4跳至LOOP500FEHJP LOOP6;ACC=5跳至

24、LOOP600FFHJP LOOP7;ACC=6跳至LOOP700100HJP LOOP8;ACC=7跳至0000H地址注:由于PCL溢出不会自动向高位进位,故在利用PCL作多地址跳转时,一定要注意该段程序一定不能放在ROM空间的分页处。2.1.2 数据存储器 RAM: 128字节 地址RAM0000H系统寄存器区;002FH0030H通用寄存器区;007FH数据存储器由1288位组成,分为两个功能区间:特殊功能寄存器(488)和通用数据存储器(808)。 数据存储器单元大多数是可读/写的,但有些只读的。特殊功能寄存器包地址从00H到2FH,通用数据寄存器地址从30H 到7FH。2.1.2.1

25、 通用数据存储器RAM的0030H007FH地址属于用户可自由定义的通用寄存器区,在此区域的寄存器上电为随机值。当系统上电工作后,若发生意外复位(非上电复位),此区域寄存器保持原来值不变。2.1.2.2 系统专用数据存储器系统专用数据存储器表地 址名 称说 明00HIAR间接寻址寄存器01HTMR0内部定时/计数器02HPCL程序指针PC低8位03HFLAGS系统状态标志寄存器04HMP间接寻址指针05HP0P0 IO口资料寄存器06HP1P1 IO口资料寄存器07HP2P2 IO口资料寄存器08H-通用寄存器(用户可自由操作)09HP0CLP0 IO口功能控制寄存器0AHP0CHP0 IO口

26、功能控制寄存器0BHP1CLP1 IO口功能控制寄存器0CHP1CHP1 IO口功能控制寄存器0DHP2CP2 IO口功能控制寄存器0EH-0FH-通用寄存器(用户可自由操作)10HSYS_GEN中断总使能及ADC使能11HINT_EN中断控制寄存器使能位12HINT_FLAG中断控制寄存器标志位13HINT_EXT外部中断上升或下降沿触发14HADDATAHAD结果存放寄存器高8位(只读)15HADCONAD控制寄存器16HTMR1定时计数器117HTMR1C定时计数器1控制寄存器18HT2CNTTMR2 计数器(只读)19HT2CONTMR2 控制寄存器1AHT2DATATMR2 资料寄存

27、器1BHADDATALAD结果存放寄存器低2位(只读)1CHPWM8DATA8位PWM数据寄存器1DHPWM8CON8位PWM控制寄存器及CLO输出控制1EHPWM10CON10位PWM控制寄存器1FHPWM10DATA10位PWM数据寄存器20H-未用21HBUZCON蜂鸣器控制寄存器22HTABLE_SPH查表高3位地址23HTABLE_SPL查表低8位地址24HTABLE_DATAH查表高6位结果25-27H-通用寄存器(用户可自由操作)28-29H-未用2A-2BH-通用寄存器(用户可自由操作)2CHKEY_C1触摸按键控制寄存器12DHKEY_C2触摸按键控制寄存器22EHKEY_D

28、ATAL触摸按键数据寄存器低8位2FHKEY_DATAH触摸按键数据寄存器高8位2.2 寻址模式2.2.1 直接寻址通过工作寄存器(ACC)来对RAM进行操作。 例:ACC的值送给30H寄存器LD30H,A 例: 30H寄存器的值送给ACCLDA,30H2.2.2 立即寻址把立即数传给工作寄存器(ACC) 例:立即数12H送给ACCLDIA12H2.2.3 间接寻址数据存储器能被直接或间接寻址。通过IAR寄存器可间接寻址,IAR不是物理寄存器。当对IAR进行存取时,它会根据MP寄存器内的值作为地址,并指向该地址的寄存器,因此在设置了MP寄存器后,就可把IAR寄存器当作目的寄存器来存取。间接读取

29、IAR(MP=0)将产生00H。间接写入IAR寄存器,将导致一个空运作。以下例子说明了程序中间接寻址的用法。 例:MP及IAR的应用LDIA 030HLD MP,A;间址指标指向30HCLR IAR;清零IAR实际是清零MP指向的30H寄存器 例:间接寻址清RAM(30H-7FH)举例: ; 上接用户程序 LDIA2FH LD MP,A LOOP:INCRMP ; 地址自加1,初始地址30HCLR IAR ; 清MP所指向的地址LDIA07FHSUBAMPSNZBFLAGS,C ; MP一直加到7FHJP LOOP2.3 堆栈CMS69T08的堆栈缓存器共8层,堆栈缓存器既不是数据存储器的一部

30、分,也不是程序内存的一部分,且既不能被读出,也不能被写入。对它的操作通过堆栈指针(SP)来实现,堆栈指针(SP)也不能读出或写入,当系统复位后堆栈指针会指向堆栈顶部。当发生子程序调用及中断时的程序计数器(PC)值被压入堆栈缓存器,当从中断或子程序返回时将数值返回给程序计数器(PC),下图说明其工作原理。 RET CALL RETI 中断 SP7SP6SP5SP4SP3SP2SP1SP0SP+1 SP-1堆栈缓存器的使用将遵循一个原则“先进后出”。注:堆栈缓存器只有8层,如果堆栈已满,并且发生不可屏蔽的中断,那么只有中断标志位会被记录下来,而中断响应则会被抑制,直到堆栈指针发生递减,中断才会被响

31、应,这个功能可以防止中断使堆栈溢出,同样如果堆栈已满,并且发生子程序调用,那么堆栈将会发生溢出,首先进入堆栈的内容将会丢失,只有最后8个返回地址被保留,故用户在写程序时应注意此点,以免发生程序走飞。2.4 工作寄存器(ACC)2.4.1 概述ALU是8BIT宽的算术逻辑单元,MCU所有的数学、逻辑运算均通过它来完成。它可以对数据进行加、减、移位元及逻辑运算;ALU也控制状态位(FLAGS状态寄存器中),用来表示运算结果的状态。A寄存器是一个8-BIT的寄存器,ALU的运算结果可以存放在此,它并不属于数据存储器的一部分而是位于CPU中供ALU在运算中使用,因此不能被寻址,只能通过所提供的指令来使

32、用。2.4.2 ACC应用 例:做数据传送LD A,R;R寄存器的数值送给ACCLD R,A;ACC的数值送给R寄存器 例:立即寻址目标操作数LDIA 030HANDIA 030HXORIA 030H 例:双操作数指令的第一操作数HSUBA RHSUBR R 例:双操作数指令的第二操作数SUBA RADDA R2.5 程序状态寄存器(FLAGS)寄存器 FLAGS 中包含 ALU 运算状态信息、系统复位状态信息,其中,位 TF 和PF 显示系统复 位状态信息,包括上电复位、外部复位和看门狗复位;位 C、DC 和 Z 显示 ALU 的运算信息。03HBIT7BIT6BIT5BIT4BIT3BIT

33、2BIT1BIT0FLAGSTFPF-OVZHCC读写不可擦写不可擦写-R/WR/WR/WR/W复位值不同复位,值不同不同复位,值不同-XXXXBIT7TF:WDT溢出标志1 = 上电或执行CLRWDT指令或执行STOP指令后;0 = WDT溢出后 。Bit 6PF:低功耗标志1 = 上电或执行了CLRWDT后;0 = 执行STOP指令后 。Bit 5未用BIT4未用BIT3OV:数学运算溢出标志运算结果高两位进位状态异或结果为1时,OV置1。BIT2Z:零标志1 = 算术/逻辑/分支运算的结果为零;0 = 算术/逻辑/分支运算的结果非零。BIT1HC:辅助进位标志1 = 加法运算时低四位有进

34、位,或减法运算后没有向高四位借位;0 = 加法运算时低四位没有进位,或减法运算后有向高四位借位。BIT0C:进位标志 1 = 加法运算后有进位、减法运算没有借位发生或移位元后移出逻辑“1”或比较运算的结果 0;0 = 加法运算后没有进位、减法运算有借位发生或移位元后移出逻辑“0”或比较运算的结果 0。FLAGS寄存器中除了TF和PF位,其它的都可以用指令设置或者清零。 例:CLRFLAGS;清零FLAGS结果是FLAGS=“UU000100”,“U”指未改变, 而不是想象中的全零。也就是说执行指令后,PF和TF的值保持不变,而Z标志位因清零而置一,所以若需要改变FLAGS的值,建议使用SETB

35、、CLRB、LDR,A这几条指令,因为这几条指令不会影响状态标志位。 例:LDIA 00HLDFLAGS,A;把FLAGS中除PF、TF外的位都清零。TF和PF标志位可反映出芯片复位的原因,下面列出影响TF、PF 的事件及各种复位后TF、PF的状态。事件TFPFTFPF复位原因电源上电1100WDT溢出唤醒休眠MCUWDT溢出0X01WDT溢出非休眠态STOP指令1010按键或外部复位唤醒休眠MCUCLRWDT指令1111电源上电休眠10XX外部低电平复位影响PF、TF的事件表复位后TFPF的状态2.6 预分频器(OPTION)预分频器(OPTION)寄存器是 6BIT,只可写的寄存器,它包含

36、各种用于配置 TMR0/WDT预分频器和TMR0 的控制位。通过执行OPTION指令可将累加寄存器的内容传送到预分频器。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0OPTION无无T0CST0SEPSAPS2PS1PS0读写WWWWWW复位值XX111111BIT7未用BIT6未用BIT5T0CS:TMR0时钟源选择位0. 内部时钟1. 外部时钟(RTCC口输入波形)BIT4T0SE:RTCC信号触发源位0. 上升沿触发1. 下降沿触发BIT3PSA:预分频器分配位0. 分给TMR0用1. 分给WDT用BIT2BIT0PS2PS0:预分配参数配置位PS2PS1PS0TMR0

37、分频比WDT分频比0001:21:10011:41:20101:81:40111:161:81001:321:161011:641:321101:1281:641111:2561:128预分频寄存器实际上是一个8位的计数器,用于监视寄存器WDT时,是作为一个后分频器;用于定时器/计数器时,作为一个预分频器,通常统称作预分频器。在片内只有一个物理的分频器,只能用于WDT/TMR0两者之一,不能同时使用。也就是说,若用于TMR0,WDT就不能使用预分频器,反之亦然。当用于WDT时,CLRWDT指令将同时对预分频器和WDT定时器清零。当用于TMR0时,有关写入TMR0的所有指令(如:CLRTMR0,SETBTMR0,1等)都会对预分频器清零。由TMR0还是WDT使用预分频器,完全由软件控制。他可以动态改变。为了避免出现不该有的芯片复位,当从TMR0换为WDT使用时,应该执行以下指令。CLR TMR0 ; TMR0清零和

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号