学生实验报告
课程名称:单片机原理与应用
专业班级:嵌入式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后面没有分号的,不然会照成延时不对。
成绩
转载于:https://www.cnblogs.com/zhaocundang/p/4925742.html
相关资源:JAVA上百实例源码以及开源项目