启闭机厂家
免费服务热线

Free service

hotline

010-00000000
启闭机厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

用单片机设计15s倒计时器

发布时间:2020-07-21 17:37:58 阅读: 来源:启闭机厂家

/*跳线设置:默认跳线位置,注意蜂鸣器选择跳线J5要选23端程序效果:利用单片机的定时/计数器设计一个15到0倒计时器, 按S4后启动,要求精确显示到百分之一秒。发挥部分: 1、定时结束后有提示音报警,并可重新定时2、定时过程中按独立键盘s5可暂停,按S4继续运行环境:51hei单片机学习板*/ ORG 0000H LJMP START //主程序必须避开地址000BH ORG 000BH //定时器0的中段服务程序,起始地址为000BH LJMP IT00 ORG 0030HSTART: 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,#00LOOP2: NOP //空指令 RET //返回//显示子程序DISPLAY: MOV DPTR,#TAB //赋表首地址 MOV A,#0FBH SETB P2.7MOV P0,A //亮最左边的数码管CLR P2.7 XCH A,R0 //暂存A的值 MOV A,33H MOVC A,@A+DPTR //根据表值查找所需的值SETB P2.6MOV P0,A //显示值CLR P2.6 LCALL DELAY //延时 XCH A,R0 //恢复原值 RL A //循环左移,为下次做准备SETB P2.7MOV P0,ACLR P2.7 XCH A,R0 MOV A,32H MOVC A,@A+DPTRSETB P2.6MOV P0,ACLR P2.6 LCALL DELAY XCH A,R0 RL A

SETB P2.7MOV P0,Aclr P2.7

XCH A,R0 MOV A,31H MOVC A,@A+DPTRSETB P2.6MOV P0,Aclr P2.6 LCALL DELAY XCH A,R0 RL ASETB P2.7MOV P0,Aclr P2.7 XCH A,R0 MOV A,30H MOVC A,@A+DPTRSETB P2.6MOV P0,Aclr P2.6 LCALL DELAY RETTAB: DB 3FH,06H,5BH,4FH,66H ;数码管显示的数值 DB 6DH,7DH,07H,7FH,6FHIT00: MOV TH0,#0EBH //装入初值,时间为10ms MOV TL0,#64H LCALL SUB1 //减10ms RETI //返回DELAY: MOV R7,#04 //延时子程序,时间大约为:2us*4*250DEL2: MOV R6,#250DEL1: DJNZ R6,DEL1 DJNZ R7,DEL2 RET END //结束

蜂鸣器相关文章:蜂鸣器原理

01 MySQL 数据库简介

Android 列表控件 ListView

Java 集成开发环境 - Eclipse