0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用51单片机设计倒计时发声器的资料概述

2oON_changxuemc 来源:未知 2019-02-03 13:39 次阅读

设计要求:

1:上电后二位数码管显示88

2:单击按钮,倒计时开始从20秒开始,到0时喇叭发声。

3:双击按钮开关:倒计时从0开始正常记时,到20秒后发声。

4:记数结束从开始状态重新开始下一轮.

基本器件和管脚:

1)数码管:

2)74译码器 SN 74LS47

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

单片机及其接口电路:

程序代码: 本次晶振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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口电路
    +关注

    关注

    8

    文章

    453

    浏览量

    56817
  • 51单片机
    +关注

    关注

    269

    文章

    5648

    浏览量

    120690
  • 数码管
    +关注

    关注

    31

    文章

    1827

    浏览量

    89946

原文标题:51单片机倒计时发声器

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    51单片机倒计时器程序

    最近要求做一个51单片机倒计时器程序,可是做了好久也做不出来,看了很多都不太符合要求,就请大家帮个忙。要求用C语言做。倒计时计时器1、LCD1602显示
    发表于 06-02 14:09

    51单片机如何实现数码管99秒倒计时

    51单片机99秒倒计时C语言源程序51单片机实现数码管99秒倒计时,其实很简单,就是使用定时
    发表于 07-15 06:25

    基于51单片机倒计时温度检测报警 精选资料分享

    基于51单片机倒计时温度检测报警学习单片机断断续续半年了,在学长学姐的教学帮助下,完成了51
    发表于 07-16 06:17

    怎么实现基于51单片机多路抢答倒计时开源?

    怎么实现基于51单片机多路抢答倒计时开源?
    发表于 10-15 08:01

    如何实现51单片机实现倒计时数码管仿真设计

    基于51单片机倒计时数码管仿真设计视频演示地址:https://www.bilibili.com/video/BV1ez4y1o71d/功能操作说明:本设计包括四个按键,单片机复位按键
    发表于 11-10 06:17

    proteus单片机实现60秒倒计时器

    proteus单片机实现60秒倒计时器项目要实现的60s秒表倒计时器,用 AT89C51单片机的定时 / 计数
    发表于 11-10 08:18

    51小制作带倒计时闹钟

    51单片机制作的时钟,具有倒计时和闹钟的附加功能。倒计时最大为59分钟,使用24小时制,也可自己依程序改进使用,内附说明书。
    发表于 06-08 14:10 18次下载

    使用51单片机实现倒计时的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机实现倒计时的程序免费下载。
    发表于 09-03 17:28 22次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>实现<b class='flag-5'>倒计时</b>的程序免费下载

    使用51单片机设计一个99分钟倒计时数码管显示的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计一个99分钟倒计时数码管显示的程序免费下载。
    发表于 08-13 17:32 51次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机设</b>计一个99分钟<b class='flag-5'>倒计时</b>数码管显示的程序免费下载

    使用51单片机设计LED点阵9到0倒计时的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计LED点阵9到0倒计时的程序免费下载。
    发表于 07-30 17:35 17次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机设</b>计LED点阵9到0<b class='flag-5'>倒计时</b>的程序免费下载

    使用51单片机设计的70秒倒计时C语言程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计的70秒倒计时C语言程序免费下载。
    发表于 07-23 17:37 10次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机设</b>计的70秒<b class='flag-5'>倒计时</b>C语言程序免费下载

    使用51单片机设计99到00倒计时的秒表电路图和程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计99到00倒计时的秒表电路图和程序免费下载。
    发表于 06-20 17:43 20次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机设</b>计99到00<b class='flag-5'>倒计时</b>的秒表电路图和程序免费下载

    基于51单片机倒计时数码管仿真设计

    基于51单片机倒计时数码管仿真设计视频演示地址:https://www.bilibili.com/video/BV1ez4y1o71d/功能操作说明:本设计包括四个按键,单片机复位按键
    发表于 11-04 18:36 26次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>倒计时</b>数码管仿真设计

    单片机课设-60秒倒计时

    proteus单片机实现60秒倒计时器项目要实现的60s秒表倒计时器,用 AT89C51单片机的定时 / 计数器 T0 产生一秒的定时时间,
    发表于 11-05 15:06 103次下载
    <b class='flag-5'>单片机</b>课设-60秒<b class='flag-5'>倒计时</b>器

    基于51单片机的分钟倒计时源代码

    基于51单片机的一分钟倒计时例程源代码
    发表于 05-12 16:30 18次下载