网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 基础知识 > 正文
  • RSS
  • 用单片机设计15s倒计时器
    http://www.ic72.com 发布时间:2011/7/21 10:51:29

        跳线设置:默认跳线位置,注意蜂鸣器选择跳线J5要选23端

        程序效果:利用单片机的定时/计数器设计一个15到0倒计时器,

        按S4后启动,要求精确显示到百分之一秒。

        发挥部分:

        1、定时结束后有提示音报警,并可重新定时

        2、定时过程中按独立键盘s5可暂停,按S4继续

        运行环境:51hei单片机学习板

        */

        ORG 0000H

        LJMP START //主程序必须避开地址000BH

        ORG 000BH //定时器0的中段服务程序,起始地址为000BH

        LJMP IT00

        ORG 0030H

        START: MOV TH0,#0EBH //装入初始值,定时时间为10ms

        MOV TL0,#64H

        MOV TMOD,#01H //工作方式1

        MOV 33H,#01 //显示初值为15s

        MOV 32H,#05

        MOV 31H,#00

        MOV 30H,#00

        SETB ET0 //打开定时0

        SETB EA //开总中断

        LOOP1: JB P3.6,LOOP //判断高低位,即按键KEY0是否按 下

        LCALL DISPLAY //为低,即按键按下,延时消抖

        LCALL DISPLAY

        JB P3.6,LOOP //按键真的按下,并不是外界的干扰

        SETB TR0 //启动定时器

        HERE: LCALL DISPLAY //调用显示

        JB P3.7,LOOP3 //判断高低,即KEY1按键是否按下

        CLR TR0 //按下,关闭定时器,这里并没有消抖

        LJMP LOOP1 //等待KEY0的按下

        LOOP3: SJMP HERE //KEY1没有按下,就需显示

        LOOP: LCALL DISPLAY //KEY1没有按下,就需显示

        LJMP LOOP1

        //减10ms子程序

        SUB1: DEC 30H //百分位减1

        MOV A,30H

        CJNE A,#0FFH,LOOP2 //判断百分位减到0之后是否 再减1

        MOV 30H,#09 //是,装入初值9

        DEC 31H //十分位减1

        MOV A,31H

        CJNE A,#0FFH,LOOP2 //判断百分位减到0之后是否 再减1

        MOV 31H,#09

        DEC 32H

        MOV A,32H

        CJNE A,#0FFH,LOOP2

        MOV 32H,#09

        DEC 33H

        MOV A,33H

        CJNE A,#0FFH,LOOP2

        clr P2.2 //从15s减到0s后,驱动蜂鸣器

        LCALL DELAY //延时

        LCALL DELAY

        SETB P2.2 //关闭蜂鸣器

        MOV 33H,#01 //装入初值15s

        MOV 32H,#05

        MOV 31H,#00

        MOV 30H,#00

        LOOP2: NOP //空指令

        RET //返回

        //显示子程序

        DISPLAY: MOV DPTR,#TAB //赋表首地址

        MOV A,#0FBH

        SETB P2.7

        MOV P0,A //亮最左边的数码管

        CLR P2.7

        XCH A,R0 //暂存A的值

        MOV A,33H

        MOVC A,@A+DPTR //根据表值查找所需的值

        SETB P2.6

        MOV P0,A //显示值

        CLR P2.6

        LCALL DELAY //延时

        XCH A,R0 //恢复原值

        RL A //循环左移,为下次做准备

        SETB P2.7

        MOV P0,A

        CLR P2.7

        XCH A,R0

        MOV A,32H

        MOVC A,@A+DPTR

        SETB P2.6

        MOV P0,A

        CLR P2.6

        LCALL DELAY

        XCH A,R0

        RL A

        SETB P2.7

        MOV P0,A

        clr P2.7

        XCH A,R0

        MOV A,31H

        MOVC A,@A+DPTR

        SETB P2.6

        MOV P0,A

        clr P2.6

        LCALL DELAY

        XCH A,R0

        RL A

        SETB P2.7

        MOV P0,A

        clr P2.7

        XCH A,R0

        MOV A,30H

        MOVC A,@A+DPTR

        SETB P2.6

        MOV P0,A

        clr P2.6

        LCALL DELAY

        RET

        TAB: DB 3FH,06H,5BH,4FH,66H ;数码管显示的数值

        DB 6DH,7DH,07H,7FH,6FH

        IT00: MOV TH0,#0EBH //装入初值,时间为10ms

        MOV TL0,#64H

        LCALL SUB1 //减10ms

        RETI //返回

        DELAY: MOV R7,#04 //延时子程序,时间大约为:2us*4*250

        DEL2: MOV R6,#250

        DEL1: DJNZ R6,DEL1

        DJNZ R7,DEL2

        RET

        END //结束

     


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质