计时秒表程序设计

;题目要求:
;秒表计时,按S0开始计时,并由数码管显示;
;再按S0停止。若计满1分钟结束未按S0停止,则蜂鸣器报警。
;要在proteus软件上面模拟......
;悬赏分:100 - 离问题结束还有 14 天 23 小时
;==================================================================
;提问者给出了程序,经过修改,要求的功能,除了蜂鸣器报警,都能实现。
;蜂鸣器报警,从原来的程序上修改,困难较大,建议改成LED发光报警。
;程序如下:
;----------------------------------------------
TEMP    EQU   22H
        ORG   0000H
        SJMP START
        ORG   0003H
        LJMP X0_INT
        ORG   0050H
;----------------------------------------------
START:
        MOV   IE, #85H
        MOV   IP, #00000001B
        MOV   TEMP, #0
;----------------------------------------------
M_LOOP:
        CALL DISPLAY
        CALL DELAY2         ;延时约500ms
        CALL DELAY2
        JNB   F0, NEXT
        INC   TEMP
        MOV   A, TEMP
        CJNE A, #61, NEXT
        CLR   P0.1
        MOV   TEMP, #60
NEXT:
        SJMP M_LOOP         ;一个循环,约1s
;----------------------------------------------
X0_INT:
        CPL   F0
        JB    P0.1, X0_END
        SETB P0.1
        MOV   TEMP, #0
X0_END:       
        JNB   P3.2, $
        RETI
;----------------------------------------------
DISPLAY:
        MOV   DPTR, #NUMTAB ;指定查表地址
        MOV   A, TEMP
        MOV   B, #10
        DIV   AB             ;A/B商=a,余数=b
        MOVC A, @A+DPTR    ;查十位七段码
        MOV   P1, A         ;送出十位七段码
        MOV   A,   B         ;个位在b
        MOVC A, @A+DPTR    ;查个位七段码
        MOV   P2, A         ;送出个位七段
        RET
;----------------------------------------------
NUMTAB:
        DB    0C0H,0F9H,0A4H,0B0H,099H
        DB    092H,082H,0F8H,080H,090H
;----------------------------------------------
DELAY2:                      ;延时约500ms
        MOV   R5, #10    
DEL3:   MOV   R6, #100
DEL4:   MOV   R7, #248
        DJNZ R7, $
        DJNZ R6, DEL4
        DJNZ R5, DEL3
        RET
END
;----------------------------------------------
;程序用PROTEUS运行,屏幕截图如下:

计时秒表程序设计 - 非著名博主 - 电子信息角落
;图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/e0908bf1d6cba5fc7b31aa7a.html

程序使用了软件延时,定时1s的精度不足,建议改为定时器硬件定时。
;==================================================================
;原题网址:http://zhidao.baidu.com/question/163658218.html#here

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值