已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
还有一个实列


;=================================================
; 简单时钟
;
; 时间设定    分钟减1    SW1
;        分钟加1    SW2
;        小时减1    SW3
;        小时加1    SW4
;=================================================
LED1    EQU    021H
LED2    EQU    022H
LED3    EQU    023H
LED4    EQU    024H

JS1    EQU    025H    25MS (0-99)
JS2    EQU    026H    1S   (0-39)
TimeS    EQU    027H    (0-59)秒
TimeM    EQU    028H    (0-59)分钟
TimeH    EQU    029H    (0-23)小时

LedT0    EQU    030H

    ORG 0000H
    LJMP START;转入主程序
    ORG    000BH            定时器0中断入口

INT_TO:
    PUSH    ACC
    PUSH    PSW
;=============================时钟
    INC    JS1
    MOV    A,JS1
    CJNE    A,#100,INT_TIME
    MOV    JS1,#00

    INC    JS2
    MOV    A,JS2
    CJNE    A,#40,INT_TIME
    MOV    JS2,#00
    ===========================================
    (11.0592MHz  补偿)提高精度。
    (250.6510417-250)*4000/250=10.4166672
        MOV    JS1,#10
    ===========================================

    秒数加1
    INC    TimeS
    MOV    A,TimeS
    CJNE    A,#60,INT_TIME
    MOV    TimeS,#00
    分钟加1
    INC    TimeM
    MOV    A,TimeM
    CJNE    A,#60,INT_TIME
    MOV    TimeM,#00
    小时加1
    INC    TimeH
    MOV    A,TimeH
    CJNE    A,#24,INT_TIME
    MOV    TimeH,#00
    INT_TIME:

    MOV    A,TimeH
    CALL    HEXtoBCD
    MOV    LED1,A
    MOV    LED2,B

    MOV    A,TimeM
    CALL    HEXtoBCD
    MOV    LED3,A
    MOV    LED4,B


;=============================显示

    MOV    A,#11110000B    关数码管
    ORL    P2,A
    MOV    A,LedT0
    CJNE    A,#0,INT_T0_1
    MOV    A,LED1
    MOVC    A,@A+DPTR
    MOV    P0,A
    CLR    P2.7    
    MOV    LedT0,#1
    LJMP    INT_T0_END
INT_T0_1:
      
    MOV    A,LedT0
    CJNE    A,#1,INT_T0_2
    MOV    A,LED2
    MOVC    A,@A+DPTR
    MOV    P0,A
    CLR    P2.6    
    MOV    LedT0,#2

    点小数点
    MOV    C,TimeS.0
    MOV    P0.5,C
    LJMP    INT_T0_END
INT_T0_2:
      
     MOV    A,LedT0
    CJNE    A,#2,INT_T0_3
    MOV    A,LED3
    MOVC    A,@A+DPTR
    MOV    P0,A
    CLR    P2.5    
    MOV    LedT0,#3
    LJMP    INT_T0_END
INT_T0_3:
      
    MOV    A,LED4
    MOVC    A,@A+DPTR
    MOV    P0,A
    CLR    P2.4    
    MOV    LedT0,#0
    LJMP    INT_T0_END
      
INT_T0_END:

    POP    PSW    
    POP    ACC

RETI

;========十六进制转换为十进制,A高位,B低位
HEXtoBCD:    
     mov   b,#0ah          HEX>BCD
     div   ab
     anl   a,#00001111b
     anl   b,#00001111b
RET

START:
    MOV    SP,#60H

    CLR    A
    MOV    JS1,A
    MOV    JS2,A
    MOV    TimeH,A
    MOV    TimeS,A
    MOV    TimeM,A

    MOV    TMOD,#02H    设定T0为工作方式2,八位自动重载。
    MOV    TH0,#025    
    MOV    TL0,#025    256-(250*11.0592/12)=256-230.4=25.6   250us(11.0592)
                用25时,中断时间为250.6510417us
                
    SETB    TR0        开定时器0
    SETB    ET0        致能定时0中断
    CLR    TF0        清定时0中断标志
    SETB    EA        开总中断

    MOV    LedT0,#00H
    MOV    DPTR,#TABLE

MAIN:

       MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JZ        MAIN
    LCALL    DELAY10MS    去抖动
    MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JZ        MAIN

    JB        ACC.2,KEY_SW1
    JB        ACC.3,KEY_SW2
    JB        ACC.4,KEY_SW3
    JB        ACC.5,KEY_SW4
    LJMP    MAIN

;==============时间设定.分钟减1
KEY_SW1:
    CLR    C
    MOV    A,TimeM
    SUBB    A,#1
    MOV    TimeM,A
    JNC    KEY_SW1_END    
    借位,表示已经减到小于0
    MOV    TimeM,#59
    KEY_SW1_END:
    AJMP    KEY_END

;==============时间设定.分钟加1
KEY_SW2:
    INC    TimeM
    MOV    A,TimeM
    CJNE    A,#60,KEY_SW2_END
    MOV    TimeM,#00
    KEY_SW2_END:
    AJMP    KEY_END

;==============时间设定.小时减1
KEY_SW3:
    CLR    C
    MOV    A,TimeH
    SUBB    A,#1
    MOV    TimeH,A
    JNC    KEY_SW3_END    
    借位,表示已经减到小于0
    MOV    TimeH,#23
    KEY_SW3_END:
    AJMP    KEY_END

;==============时间设定.小时加1
KEY_SW4:
    INC    TimeH
    MOV    A,TimeH
    CJNE    A,#24,KEY_SW4_END
    MOV    TimeH,#00
    KEY_SW4_END:
    AJMP    KEY_END
;按键放开处理
KEY_END:
    MOV    A,#00000011B
    ORL    A,P3
    CPL    A
    JNZ    KEY_END
    LJMP    MAIN

DELAY10MS:
    MOV R4,#20
DELAY10MSA:
    MOV R5,#247
    DJNZ R5,$
    DJNZ R4,DELAY10MSA
RET

TABLE:
    DB    00101000B    0
    DB    11101011B    1
    DB    00110010B    2
    DB    10100010B    3
    DB    11100001B    4
    DB    10100100B    5
    DB    00100100B    6
    DB    11101010B    7
    DB    00100000B    8
    DB    10100000B    9
    DB    01100000B    A
    DB    00100101B    b
    DB    00111100B    C
    DB    00100011B    d
    DB    00110100B    E
    DB    01110100B    F
    DB    11110111B    -
    DB    11111111B    
END
文号 / 77575

千古风流
名片发私信
学术分 4
总主题 494 帖总回复 6744 楼拥有证书:学者 笔友
注册于 2009-01-02 22:19最后登录 2018-01-10 01:36
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步

个人简介

.

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}