8051定时器

该博客介绍了如何使用8051单片机的定时器T1作为脉冲计数器,T0产生2秒周期的方波,并通过P1口的8个数码管显示脉冲个数。程序中设置了中断服务子程序,用以处理外部中断INT0和定时器中断TIM0、TIM1,实现了系统的启动和停止控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P3.2口输出周期为2S的方波,T1口为脉冲输入端,记录输入的脉冲个数,脉冲个数由P1口所接的8个数码管显示,设一按键作为开关控制系统运行

实现程序:

        org  0000h

        ljmp MAIN

        org  0003h

        ljmp INT0

        org  000bh

        ljmp TIME0

        org  0013h

        ljmp INT1

        org  001bh

        ljmp TIME1

        org  0030h

MAIN:

        mov  tmod ,#01010001b ;设置定时器1为计数,定时器0为定时

        MOV  TH0  ,#3CH     ;设置定时器0的定时常数

        MOV  TH0  ,#0B0H

        mov  p1   ,#00h  

        mov  th1  ,#0ffh

        mov  tl1  ,#00h

        mov  a    ,#00h

        mov  r0   ,#00h

 

        SETB EA

        SETB EX0

        setb ex1

        SETB ET0

        setb ET1

        SETB IT1

        SETB IT0

        SETB TR0

        ;mov  ip ,#02h

        setb tr1

        AJMP $ 

INT0:

     reti

INT1:

        CPL  00H

        JB   00H  ,Open

        clr  tr0

        clr  tr1  

        reti

Open:

        MOV  TH0 ,#3CH

        MOV  TL0 ,#0B0H

        SETB TR0

        setb tr1

        MOV  R0  ,#00H

        reti

TIME0:  MOV  TH0 ,#3CH

        MOV  TL0 ,#0B0H

        INC  R0

        CJNE R0  ,#0aH ,BYETIME0

        cpl  p3.2

        mov  p1,tl1

        MOV  R0  ,#00H

BYETIME0:

        reti        

TIME1:

        mov th1  ,#0ffh

        mov tl1  ,#00h

        ;inc a

        ;mov p1,a

        reti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值