51单片机倒计时发声器

来源:本站
导读:目前正在解读《51单片机倒计时发声器》的相关信息,《51单片机倒计时发声器》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机倒计时发声器》的详细说明。
简介:设计要求: 1:上电后二位数码管显示882:单击按钮,倒计时开始从20秒开始,到0时喇叭发声。3:双击按钮开关:倒计时从0开始正常记时,到20秒后发声。4:记数结束从开始状态重新开始下一轮.

基本器件和管脚:

1)数码管:51单片机倒计时发声器

2)74译码器 SN 74LS47

51单片机倒计时发声器

将BCD 码转换成数码管显示的数.

单片机及其接口电路:

51单片机倒计时发声器

程序代码: 本次晶振12MHZ

SW EQU P1.0; 按钮开关指定为P1.0位

BUZZER EQU P3.7; 喇叭指定为P3.7位

ORG 00H; 程序起始地址00H开始

START:

CLR BUZZER ;清零喇叭位为低电平(关闭喇叭)

MOV P0,#88H ; 给2个74译码器都发送88,,88为BCD码

NOP

NOP

JB SW,$ ;判断按钮是否按下,当SW==1时,程序一直跳到$这里T原地不动,当按键按下时,SW==0则进入下面

NOP

NOP

NOP ; 稍微延时

JNB SW,$ ; 判断按键是否松开

MOV R3,#10 ; 在一秒内判断是否双击

D1:

MOV R4,#200

D2:

MOV R5,#250

DJNZ R5,$

JNB SW,TIMER ; 如果按键按下,则进入另外一直记时状态

DJNZ R4,D2

DJNZ R3,D1

MOV R1,#21 ; 倒计时初始值21

COUNTDOWN:

DEC R1 ; R1自减1

MOV A,R1 ; R1复值给累加器A

MOV B,#10 ; 寄存器B赋值10

DIV AB ; 累加器A除以寄存器B,商存A,余存B

SWAP A ; A的高低4位互换 ,目的用于译码器显示,有2个译码器,所以要区分R1中的高位和低位

ORL A,B ; A=A+B做或操作

MOV P0,A ; 输出到译码器从而显示到数码管

CALL DELAY ; 延时1秒

CJNE A,#00H,COUNTDOWN ;如果累加器A不等于00H则跳转到COUNTDOWN,即一直倒计时直到A减到0

SETB BUZZER ; 计数到0喇叭发声

CALL DELAY

JMP START ;跳到开始处从头开始

TIMER:

MOV A,#00H

LOOP:

MOV P0,A ;数码管显示数A

CALL DELAY

ADD A,#1 ;累加器加1操作

DA A ; 十进制调整

CJNE A,#21H,LOOP; 判断是否计时到21

SETB BUZZER

CALL DELAY

JMP START

DELAY: 延时1秒子程序

MOV R3,#10

D3:

MOV R4,#200

D4:

MOV R5,#250

DJNZ R5,$

DJNZ R4,D4

DJNZ R3,D3

RET ; 子程序结束标志

END

51单片机倒计时发声器

提醒:《51单片机倒计时发声器》最后刷新时间 2024-03-14 00:51:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机倒计时发声器》该内容的真实性请自行鉴别。