第一范文网 - 专业文章范例文档资料分享平台

单片机原理及应用实验指导书 - 图文 (6)

来源:用户分享 时间:2020-06-08 本文由雾隐青山林 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验四 蜂鸣器

一.实验目的

掌握蜂鸣器的发声原理,及相关编程技巧 二.实验设备及器件

计算机 一台 单片机实验箱一台 一台 三.实验内容

1、 使用汇编语言编写程序,让蜂鸣器发出某固定频率的“哔-哔”声(如1KHz);

2、 使用C语言编写程序,实现蜂鸣器发声,要求同上。 四.实验要求

一人一组,独立完成实验的操作步骤,按教学要求完成实验内容。 五.实验步骤

1、 熟悉蜂鸣器发声原理,选取某频率值(如1KHz),计算周期及高低电平需维持的时间;

2、 画好程序流程图;

3、 按流程图编写程序,并完成调试

4、 用单片机实验箱演示结果(用跳线连接P1.0和J17中的BELL)。 六.实验原理图:

蜂鸣器由ULN2003驱动 七.实验参考程序: 汇编参考程序:

19

ORG 0000H

START: MOV R0,#100 ; 每次100个周期

LOOP: ;使P1.0输出高电平

ACALL DELAY ;维持时间,根据所选声音频率确定时长 ;使P1.0输出低电平

ACALL DELAY DJNZ R0, LOOP

ACALL DELAY1 ; “哔”声间隔 SJMP START

DELAY: MOV R1, # DJNZ R1, $ RET

DELAY1:MOV R5, # DLL: MOV R6, # DL: MOV R7, # NOP

DJNZ R7,$ DJNZ R6,DL DJNZ R5,DLL RET END

C参考程序:

#include sbit buzzer=P1^0; void delay(int);

void pulse_BZ(int,int,int); main() { while(1)

{pulse_BZ( , , );//根据所选频率,填入count, TH, TL值

delay( );//“哔”声间隔时间 } }

void delay(int x) {int i,j;

for(i=0;i

20

void pulse_BZ(int count,int TH,int TL)//count为周期个数,TH为高电平持续时间,TL为低电平持续时间 {int i;

for(i=0;i

八.实验思考题

1、 试着改变上述参考程序中的延时时间长短,然后利用单片机实验箱听改变后的结果;

2、 试编写程序,让蜂鸣器发出电话铃声。

21

实验五 定时器

一.实验目的

1,理解单片机内部定时器的工作原理及使用方法; 2,掌握定时器的基本使用方法; 二.实验设备及器件

计算机 一台 单片机实验箱一台 一台 三.实验内容

用定时器的方式1来实现定时,在数码管上显示十个数,利用C语言编写程序。

四.实验要求

一人一组,独立完成实验的操作步骤,按教学要求完成实验内容。 五.实验步骤

1,单片机内部定时器的工作原理及使用方法; 2,画好程序流程图;

3,按流程图编写程序,并完成调试; 4,用单片机实验箱演示结果。

六.实验原理图:

七.实验参考程序: #include

#define uchar unsigned char #define uint unsigned int

22

uchar Count = 0; uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/********************************************************************

* 名称 : Time0_Init()

* 功能 : 定时器的初始化,11.0592MZ晶振,50ms * 输入 : 无 * 输出 : 无

***********************************************************************/

void Time0_Init() {

TMOD = ; 定时器T0工作在方式1 TH0 = ; 赋初值 TL0 = ;

IE = ; 中断标志位设置 TR0 = ; 开启定时器 }

/********************************************************************

* 名称 : Time0_Int()

* 功能 : 定时器中断,中断中实现 Count 加一 * 输入 : 无 * 输出 : 无

***********************************************************************/

void Time0_Int() interrupt 1 {

TH0 = ; 重新赋初值 TL0 = ;

Count++; //长度加1 }

/********************************************************************

23

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新IT计算机单片机原理及应用实验指导书 - 图文 (6)全文阅读和word下载服务。

单片机原理及应用实验指导书 - 图文 (6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1076063.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top