找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3061|回复: 3
收起左侧

STC89C52单片机定时计数器2使用递加递减计数不知那里错了

[复制链接]
ID:51928 发表于 2013-10-11 14:25 | 显示全部楼层 |阅读模式
;------------单元赋值--------------------
        T2CON EQU 0C8H        ;T2CON定时/计数控制寄存器
        T2MOD EQU 0C9H        ;T2MOD控制寄存器
        RCAP2L EQU 0CAH;捕获缓冲寄存器低
        RCAP2H EQU 0CBH;捕获缓冲寄存器高
        TL2 EQU 0CCH ;16位计数储存低位
        TH2 EQU 0CDH ;16位计数储存高位
        TR2 BIT 0C8H.2;启动T2
        TF2 BIT 0C8H.7 ;溢出标志
        ET2 BIT IE.5  ;中断允许
        EXF2 BIT 0C8H.6        ;外部中断标志
;-------------------------------------------------------
;-----------程序---------------------

        ORG 00H
        SJMP ABC             ;主程序
        ORG 2BH                                 ;中断入口
        SJMP T2MAIN                         ;
ABC:
        MOV T2CON,#02H                 ;设置16自动重装计数
        MOV R0,#0C9H
        MOV A,#0FFH
        MOV @R0, A
        MOV T2MOD,#0FFH                 ;设置可递减计数
        MOV P3,0C9H                         ;我刚才检测T2MOD,对不对
        MOV TH2,#0FFH                 ;送人计数初始值
        MOV TL2,#0F5H
        MOV RCAP2L,#0F5H         ;自动重装值
        MOV RCAP2H,#0FFH
        SETB EA                                 ;开启中断
        SETB ET2                     ;允许T2中断
        CLR P0.0
        ;CLR P1.1                         ;我刚调试用的
        SETB TR2                         ;启动计数2
SSS:
        MOV P2,TL2                         ;捕获16位计数地位数值
        LCALL YS1S                         ;延时1s
        SJMP SSS                         ;重新捕获
T2MAIN:                                         ;T2中断服务
        CLR TF2
        CLR EXF2                                 ;软清零
        MOV A,TH1                         ;判断重新装载数值
        CJNE A,#0FFH,T2MAIN1  ;判断是递加?还是递减?
        CLR P0.1          ;递减帮p0.1清零
        SJMP T2END
T2MAIN1:
        CLR P0.2          ;递加p0.2清零
T2END:
        RETI                   ;返回中断服务断点开始
YS1S:                                   ;延时1s
         MOV R6,#04H
DL0:
        MOV R5,#0F8H
        DJNZ R5,$
        DJNZ R6,DL0
        NOP
        RET
        END
回复

使用道具 举报

ID:7485 发表于 2013-10-13 19:19 | 显示全部楼层
捕获或重装载不能同时用,T2CON.0置位时,是捕获功能,清0时,是重装载功能。重装载16位数值或捕获的16位数值都是在RCAP2L、RCAP2H中。

如果是捕获的话,需要将T2CON.3置位。
回复

使用道具 举报

ID:52286 发表于 2013-10-13 22:06 | 显示全部楼层
汇编看不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表