驱动蜂鸣器的实验

简介:                                     学生实验报告               课程名称:单片机原理与应用  专业班级:嵌入式14103班  __ 姓    名:_赵存档___________ 学    号:1416031...

 

                       

 

 

 

 

 

 

学生实验报告

 

 

 

 

 

 

 

课程名称:单片机原理与应用 

专业班级:嵌入式14103班  __

姓    名:_赵存档___________

学    号:14160310317      

 

 

2015--2016    学年第 1 学期

 

 


 

实验项目( 二 ) — 预习报告

项目

名称

驱动蜂鸣器实验

实验

目的

要求

目的:学会本次实验是如何进行实现的,以及对实验原理的理解。

要求:认真完成本实验的keil代码的编写,proteus电路仿真图的设计。 小组内独立完成实验项目内容。

实验

内容

原理

驱动蜂鸣器的实验:

实验内容:先在proteus仿真软件中画好电路图,然后在keil中编写驱动蜂鸣器的代码。进行调试代码是否正确,如果正确设置好晶振频率,生成hex文件,加载到proteus 51单片机中去。

实验原理:

让蜂鸣器发出声音,需要给蜂鸣器一个脉冲信号。51单片机没有输出脉冲信号的引脚,就要自己编写一个脉冲信号的代码。即:先给蜂鸣器一段高电平,然后延长一段时间,给一段低电平,然后延长一段时间。最后加一个循环。

      

预习过程中的疑问以及疑问  解答

 

 

关于驱动蜂鸣器的实验:

疑问一:怎么样让单片机产生一个脉冲信号给蜂鸣器?

解答:定义一个引脚,定义一段时间为高电平,定义一段时间为低电平,然后可以加一个循环。

 

疑问二:使蜂鸣器发生函数是怎么写的?

解答:for循环里面加脉冲,即:for(i=0;i<count;i++){   buzzer=1;delay(High);buzzer=0;

Delay(Low)};

 

疑问三:void pulse_BZ(int,int,int)是什么意思?

解答:定义蜂鸣器发声的函数,第一个括号里面的int表示传参,第一个int 表示

Count发声的次数,第二个int表示高电平,第三个int表示低电平。

 

疑问四:delay延时函数是怎么计算的?

解答:void delay(int x){ int i,j; for(i=0;i<x;i++)for(j=0;j<1200;j++);}   这里12MHZ的晶振,一个机器周期12*1/12=1us,一个for循环8us,这里8*1200约等于10ms

总的延时 x*10ms

 

实验项目( 二 ) — 实验报告

 

项目

名称

驱动蜂鸣器实验

指导教师

高照玲

 

实验室

教室

实验日期

2015/10/14

 

分组

情况

赵存档、

成    绩

 

 

实验步骤(算法、代码、方法)给出流程图

驱动蜂鸣器的实验:

流程图:

    

主要实现代码:

延迟函数:

void   delay(int x)

   {    int i,j;

               for(i=0;i<x;i++)

               for(j=0;j<60;j++); }

蜂鸣器发声函数:  

void   Buzzer(int count,int High,int Low)

{  int i;

              for(i=0;i<count;i++)

               {  buzzer = 1;

                      delay(High);

                      buzzer = 0;

                      delay(Low);}

}

 

 

实验结果(结论及

分析)

通过实验,知道怎么样给单片机产生一个脉冲信号:一段高电平,一段低电平。

编写代码的时候,知道怎么写一个延迟函数也就是for循环:先知道机器周期12MHZ的晶振是12*1/12=1us。X * 第2个for循环里面的数字约等于几ms;

Delay()函数里面填写 X数字。

画电路的时候注意一些要点:加不加电阻和二极管之类的。

编写代码的时候:延时函数的第一个for后面没有分号的,不然会照成延时不对。

 

成绩

 

 

 

 

 

 

目录
相关文章
|
Linux 网络安全 Android开发
向日葵 Windows 端无法连接 Linux 问题的解决方案
向日葵 Windows 端无法连接 Linux 问题的解决方案
5444 0
|
10月前
|
人工智能 文字识别 监控
卷死传统系统!AIOA 协同办公,傻瓜式玩转智能管理
AIOA协同管理平台基于钉钉和钉钉低代码构建,以预置OA应用快速迭代满足业务需求。方案内置销售、采购、财务费用闭环等主线应用,并提供固定资产、车辆管理、证照管理、访客管理等高频场景,实现开箱即用,快速响应企业信息化需求。通过统一门户、互联互通的流程体系、丰富的办公管理应用以及智能化能力,提升企业内外协同效率,支持持续数字化转型。
641 12
卷死传统系统!AIOA 协同办公,傻瓜式玩转智能管理
|
安全 前端开发 Android开发
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
鸿蒙开发学习是一项探索性的工作,旨在开发一个全场景分布式操作系统,覆盖所有设备,让消费者能够更方便、更直观地使用各种设备。
1263 6
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
|
算法 数据处理 数据库
生物学经典Blast序列比对算法原理,如何在R语言和Python中实现序列的比对分析?
生物学经典Blast序列比对算法原理,如何在R语言和Python中实现序列的比对分析?
|
网络协议 数据可视化 测试技术
面向对象分析与设计的底层逻辑
真正掌握了面向对象分析和设计的方法,也体会到其中的益处,对理解业务、方案设计、编码开发都有好处。
989 72
面向对象分析与设计的底层逻辑
|
Java 数据安全/隐私保护 Python
python 实现登录网页的操作
python 实现登录网页的操作
python 实现登录网页的操作
|
存储 编译器 C语言
C语言基础知识(一)-字节、变量、常量、数据类型以及进制
本文是C语言的基础知识,主要讲解字节、变量、常量、数据类型以及不同进制。
949 0
C语言基础知识(一)-字节、变量、常量、数据类型以及进制
|
存储 IDE 开发工具
IntelliJ IDEA 详细配置图解,用了这些可能别人叫你秀儿
IntelliJ IDEA 详细配置图解,用了这些可能别人叫你秀儿
1143 0
IntelliJ IDEA 详细配置图解,用了这些可能别人叫你秀儿
|
存储 SQL 运维
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-基于 DLA 的联邦查询
前言在订单系统中,基于订单数据对客户和商家商品进行画像分析是一种常见的需求。常见的分析需求有:基于主键、分区键数据的条件组合检索,例如获取某用户最近 30 的订单列表。根据非主键列、分区键的条件组合检索工作,例如查询过去一天异常订单列表、查询过去一天成交额最大的10 笔订单。聚合统计类需求,比如统计某店铺过去一个月各商品销售额排名;统计双十一期间销售额前 10 的店铺;统计双十一期间某店铺每天订单
741 0
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-基于 DLA 的联邦查询