嵌入式学习中 2022-11-29 10:42 采纳率: 33.3%
浏览 115
已结题

51单片机对脉冲计数

问题遇到的现象和发生背景

51单片机对脉冲计数,添加TH1,显示数值范围增加至16位,即66536,使用汇编语言,尽量在原来代码上修改。

用代码块功能插入代码,请勿粘贴截图

原文链接:http://t.csdn.cn/H365S

  • 写回答

2条回答 默认 最新

  • fengyuzhe13 嵌入式领域优质创作者 2022-11-29 21:39
    关注

    编写汇编代码,并搭建仿真工程,已经验证

    img


    明天在我的博客展示仿真效果。
    部分代码:

    ORG        0000H
    LJMP    INIT
    ORG        0003H                //外部中断0
    LJMP    INT0SUB                
    ORG        0013H                //外部中断1
    LJMP    INT1SUB
    
    ORG        0100H
    INIT:    CLR        P1.0        //控制端复位
            CLR        P1.1
            MOV        DPTR,#TABLE    //指向表头
            MOV        50H,#05H        //循环次数
            MOV        51H,#7FH        //位选信号
            MOV        TMOD,#50H    //工作模式
            MOV        TL1,#00H    //初始化
            SETB    EA            //启动总中断
            SETB    EX0            //启动外部中断0
            SETB    EX1            //启动外部中断1
            SETB    TR1            //启动计数器1
                
    TRANS:    SETB    TR1            //启动计数器1
    ;        MOV        A,TL1        //16进制转10进制
    ;        MOV        B,#10
    ;        DIV        AB
    ;        MOV        40H,B        //个位
    ;        MOV        B,#10
    ;        DIV        AB
    ;        MOV        41H,B        //十位
    ;        MOV        42H,A        //百位        
    
            MOV     38H, TH1
            MOV     39H, TL1
            MOV     R6, 38H
            MOV     R7, 39H        
            MOV     R4, #00H
            MOV     R5, #10
            LCALL    UIDIV
            MOV        40H,R5        //个位
            MOV     R5, #10
            LCALL    UIDIV
            MOV        41H,R5        //十位
            MOV     R5, #10
            LCALL    UIDIV
            MOV        42H,R5        //百位        
            MOV     R5, #10
            LCALL    UIDIV
            MOV        43H,R5        //千位    
            MOV     R5, #10
            LCALL    UIDIV
            MOV        44H,R5        //万位    
            MOV     R5, #10
            LCALL    UIDIV
                
    
    MAIN:    MOV        A,51H        //位选信号
            MOV        P0,A        //输出位信号
            SETB    P1.1        //上升沿
    。。。。。
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月30日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)