找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3442|回复: 0
打印 上一主题 下一主题
收起左侧

[求助]这个汇编程序的流程图啊,怎么搞

[复制链接]
跳转到指定楼层
楼主
ID:34305 发表于 2012-3-30 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

利用8051单片机定时器/计数器测量某正脉冲宽度,已知脉冲宽度小于10ms,主机频率为12MHz,编程测量脉冲宽度,并把结果转换成BCD码,顺序存放在以片内50H单元为首地址的内存单元中(50h单元存个位)

 

;用Gate位控,方式1
         MOV TMOD,#00001001B
         MOV TH0,#0
         MOV TL0,#0
         JB P3.2,$    ;等待下降沿
         SETB TR0     ;启动,注意门控信号尚未有效
         JNB P3.2,$   ;等待上升沿
         JB P3.2,$    ;及新的下降沿
         CLR TR0      ;计数结束
         MOV 50H,#0 ;准备换算为BCD码
         MOV 51H,#0
         MOV 52H,#0
 LP1:  CLR C
         MOV A,TL0    ;减1000=3E8H
         SUBB A,#0E8H
         MOV TL0,A
         MOV A,TH0
         SUBB A,#3
         MOV TH0,A
         JC LP2     ;不够减的话,转移,处理百位
         INC 50H     ;够减,千位增1
         AJMP LP1
LP2:    MOV A,TL0   ;先恢复数据
         ADD A,#0E8H
         MOV TL0,A
         MOV A,TH0
         ADDC A,#3
         MOV TH0,A
         CLR C
 LP3:    MOV A,TL0  ;减100=64H
         SUBB A,#100
         MOV TL0,A
         MOV A,TH0   ;仍有可能是双字节数
         SUBB A,#0
         MOV TH0,A
         JC LP4     ;不够减的话,转移,处理十位
         INC 51H    ;够减,百位增1
         AJMP LP3
 LP4:    MOV A,TL0    ;先恢复数据
         ADD A,#100
         CLR C
 LP5:    SUBB A,#10    ;减10=0AH
          JC LP6     ;不够减的话,转移,处理个位
         INC 52H    ;够减,十位增1
         AJMP LP5
 LP6:    ADD A,#10  ;恢复数据
         MOV 53H,A  ;存个位
         SJMP $

 

 

 

这段程序看不懂啊,求高手发发流程图,谢谢啦


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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