简介

详细介绍如何使用51汇编的Proteus仿真去实现蜂鸣器的控制。此教程只做操作过程,不具体解释每一步具体含义,以极简的方式,通过操作让你实现相关功能。
前提条件:

①新建好相关的仿真工程,绘制好相关原理图

②学会了IO口的基本控制

如果不具备以上条件,可以往回看相关教程,往期内容有较详细的讲解!

1、原理图如下,通过程序控制P1.0口,让蜂鸣器间隔一定时间响一下。

在这里插入图片描述

2、蜂鸣器原理图

在这里插入图片描述

这里使用的是有源蜂鸣器,直接给高低电平就能响。这里源是指振荡源,无源蜂鸣器需要输入一定频率的信号才响,有源蜂鸣器比无源蜂鸣器控制简单。由于蜂鸣器所需电流较大,为了保证蜂鸣器响声大,通过一个三极管做开关和驱动作用。

3、效果展示

在这里插入图片描述

4、蜂鸣器子程序

;=========================

; 蜂鸣器开启子程序

; 名称:BEEP0N

; 输入:空

; 输出:空

; 功能: 开启蜂鸣器

;=========================

BEEPON:

CLR FM

RET

;=========================

;=========================

; 蜂鸣器关闭子程序

; 名称:BEEP0FF

; 输入:空

; 输出:空

; 功能: 开启蜂鸣器

;=========================

BEEPOFF:

SETB FM

RET

;=========================

5、完整程序

;=========================

; 文件名称:main.asm

; 文件描述:汇编基本程序教程:蜂鸣器

; 创建人:lsh

; 创建日期: 2023.8.21

; 程序版本:1.0

; 完成日期:2023.8.21

;=修改记录====

; 修改人:

; 修改内容:

; 修改时间:

;=========================

$NOMOD51

$INCLUDE (80C52.MCU)

; IO引脚定义

;=========================

LED EQU P0 ; 定义P0口为LED

FM EQU P1.0 ; 定义P1.0为蜂鸣器控制端FM

;========================
;=========================

  org   0000h

  jmp   Start        ; 跳转到程序开始入口

;=========================

; 主程序

;=========================

  org   0100h

Start:

;=========================

; 主程序的主循环

;=========================

Loop: ; 程序主循环

LCALL BEEPON ; 调用蜂鸣器开启子程序,开启蜂鸣器

LCALL DELAY ; 调用延时子程序

LCALL BEEPOFF ; 调用蜂鸣器关闭子程序,关闭蜂鸣器

LCALL DELAY ; 调用延时子程序

LCALL DELAY

LCALL DELAY

LCALL DELAY

LCALL DELAY

AJMP   Loop        ;  跳转到程序主循环开头

;=========================

;子程序

;=========================

; 延时子程序

; 名称:DELAY

; 输入:空

; 输出:空

; 功能:占用cpu,实现延时一段时间

;=========================

DELAY:

MOV R0,#228

DELAY1:

MOV R1,#20

DELAY2:

MOV R2,#20

DJNZ R2,$

DJNZ R1,DELAY2

DJNZ R0,DELAY1

RET

;=========================

; 蜂鸣器开启子程序

; 名称:BEEP0N

; 输入:空

; 输出:空

; 功能: 开启蜂鸣器

;=========================

BEEPON:

CLR FM

RET

;=========================

;=========================

; 蜂鸣器关闭子程序

; 名称:BEEP0FF

; 输入:空

; 输出:空

; 功能: 开启蜂鸣器

;=========================

BEEPOFF:

SETB FM

RET

;=========================

;=========================

  END          ;   程序结束

;=========================

点赞、收藏加关注,下期不迷路!

更多精彩内容,请看往期!

一起学起来,让我们成为更优秀的自己!我们下期不见不散!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐