标题: 单片机秒表汇编程序及proteus仿真 [打印本页]

作者: 51黑ff    时间: 2016-9-26 15:20
标题: 单片机秒表汇编程序及proteus仿真
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



单片机秒表仿真文件要用proteus8.0以上的版本打开.
所有资料下载:
仿真代码.7z (35.4 KB, 下载次数: 58)

  1.        ORG         00H
  2. START:
  3.       CLR    P1.7      ;p1.7=0 关闭蜂鸣器
  4.           MOV    P0,#00H   ;两位七段数码管显示“00”
  5.           JB     P3.5,[        DISCUZ_CODE_1        ]nbsp;   ;如果按钮开关S1没有按下重复执行本行
  6.           CALL   FILTER    ;如果检测S1被按下,调FILTER子程序,消除开关的抖动
  7.           JNB    P3.5,[        DISCUZ_CODE_1        ]nbsp;   ;如果S1没有放开则等待,放开后执行下一行
  8.           MOV    A,#00H    ;累加器A=0
  9.           MOV    R1,#50    ;计时50秒的计数器
  10. PRESS:
  11.       MOV    P0,A      ;输出至P0,七段数码管显示
  12.           MOV    R5,#10    ;为延时1秒设定的寄存器初始值
  13. ADD_1:
  14.       CALL   DELAY     ;调延时子程序
  15.           DJNZ   R5,ADD_1  ;循环10次完成1秒延时
  16.           ADD    A,#01H    ;计时值加1
  17.           DA     A         ;十进制调整
  18.           DJNZ   R1,PRESS  ;判断是不是到50秒,如果没有就继续倒计时
  19.           MOV    R1,#6     ;声音提示计数器
  20. NOTICE:
  21. CPL    P1.7            ;P1.7反相,蜂鸣器转换状态
  22. CALL   DELAY           ;调延时子程序
  23.        DJNZ  R1,NOTICE ;判断是否响了3次
  24.            JMP   START     ;循环
  25. DELAY:                                   ;本段延时0.1ms
  26.        MOV   R6,#200   
  27. D1:
  28. MOV    R7,#248
  29.        DJNZ   R7,$
  30.            DJNZ   R6,D1
  31.            RET                           ;延时子程序返回主程序
  32. FILTER:                                   ;按钮开关过滤抖动子程序
  33.        MOV    R6,#60
  34. F1: MOV       R7,#248
  35.            DJNZ   R7,$
  36.                    DJNZ   R6,F1
  37.                    RET         ;过滤子程序返回主程序
  38.                    END                   ;程序结束点
复制代码


作者: yilinghai    时间: 2022-12-7 22:16
大家不要下,连hex文件都没有,仿真根本无法运行
作者: sijale    时间: 2022-12-8 15:35
自己run一下不就有hex了吗
作者: sijale    时间: 2022-12-8 15:38
这个汇编写的不行啊,开头没有跳转指令,直接运行?
没有使用中断的话勉强能用吧
太久没用汇编,不是很记得了
只记得开头要跳转,避开中断入口区域




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1