嵌入式学习中 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 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口