加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

51实现上升沿,下降沿触发,汇编程序

(2007-08-31 09:06:52)
标签:

其他频道

分类: 技术文章(电子)
 

  下降沿触发在硬件上可以用INT0,INT1中断来实现,当中断不够用的时候,可以考虑软件实现,如下:
;上升沿触发:/A×B为高启动计数
;下降沿触发:A×/B为高启动计数
;这是个计数器,若有上升沿或下降沿,则计数.count+/A×B--->count
;设R0为计数单元地址,P1.0为信号输入口,00H,01H分别记录A(本次采样得到的值),B(上次采样得到的值)状态
;上升沿触发:
       MOV C,P1.0   ;采样B值
       MOV 01H, C   ;放入01H中
       ANL C,00H    ;/A(00H)×B(01H)的值送C
       CLR A        ;COUNT+C送COUNT,先把ACC清零,确保加的是CY
       ADDC A,@R0   ;这个指令其实是ACC,CY,@R0三个相加,所以,是COUNT+C+0--->COUNT
       MOV @R0, A
       MOV C,01H    ;/B送A,更新A值
       CPL C
       MOV 00H,C

下降沿触发:
       MOV C,P1.0
       MOV 01H,C
       CPL C        ;/B
       ANL C,01H    ;A×/B-->C
       CLR A        ;作十六位加计数
       ADDC A,@R0  
       MOV @R0, A
       INC R0
       CLR A
       ADDC A,@R0
       MOV @R0,A
       MOV C,01H    ;刷新A值
       MOV 00H,C

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有