嵌入式- 蜂鸣器控制实验
嵌入式 PWM实验
5.5 PWM 实验
5.5.1 实验目的
1. 了解PWM的基本原理;
2. 掌握PWM控制的编程方法。
5.5.2 实验内容
1. 编写程序对PWM控制器输出8000Hz 2/3占空比的数字信号控制蜂鸣器;
2. 编写程序改变PWM控制器输出频率;
3. 编写程序改变PWM控制器输出占空比;
5.5.3 预备知识
1. 了解ADT IDE集成开发环境的基本功能;
2. 了解PWM的基本原理以及用途。
5.5.4 实验设备
1. 硬件:JX44B0教学实验箱、PC机;
2. 软件:PC机操作系统 Windows 98(2000、XP) + ADT IDE集成开发环境。
5.5.5 基础知识
1. 脉宽调制的基本原理
模拟电压和电流可直接用来进行控制,如对汽车收音机音量进行控制。尽管模拟控制看起来直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重和昂贵。模拟电路有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。
通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。脉宽调制(PWM)就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。PWM的一个优点是从处理器到被控系统信号都是数字式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,才能对数字信号产生影响。
单片机实验报告蜂鸣器
单片机实验报告蜂鸣器
单片机实验报告:蜂鸣器
引言:
单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。蜂鸣器作
为一种常见的声音输出设备,在单片机实验中也被广泛使用。本文将介绍蜂鸣
器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。一、蜂鸣器的原理
蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。压电材料在受到外
力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。
利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。
二、实验过程
1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路
连接线。
2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。
3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。
4. 烧录程序:将编写好的程序烧录到单片机中。
5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。可以通
过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。三、实验结果
经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。
通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。
四、问题分析与解决
在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。这些问题可能是由以下原因引起的:
嵌入式系统GPIO 输入输出实验报告
实验四GPIO 输入实验
一、实验目的
1、能够使用GPIO的输入模式读取开关信号。
2、掌握GPIO相关寄存器的用法和设置。
3、掌握用C语言编写程序控制GPIO。
二、实验环境
PC机一台
ADS 1.2集成开发环境一套
EasyARM2131教学实验平台一套
三、实验内容
1.实验通过跳线JP8 连接KEY1与P0.16,程序检测按键KEY1 的状态,控制蜂
鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY3键进行输入)。
2.当检测到KEY1有按键输入时点亮发光二极管LED4并控制蜂鸣器响,软件延时
后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4,发光管改为LED6)。
3.结合实验三,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时
后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。
四、实验原理
当P0 口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图 4.2。
进行GPIO 输入实验时,先要设置IODIR 使接口线成为输入方式,然后读取IOPIN 的值即可。
图 4.2按键电路原理图
实验通过跳线JP8 连接KEY1_P0.16,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。
在这个实验中,需要将按键KEY1 输入口P0.16 设为输入口而蜂鸣器控制口P0.7 设置为输出口。蜂鸣器电路如图 4.3 所示,当跳线JP6 连接蜂鸣器时,P0.7 控制蜂鸣器,低电平时蜂鸣器鸣叫。LED灯电路如图4.4所示,低电平时灯亮。
嵌入式- 蜂鸣器控制实验
实验二蜂鸣器控制实验
实验目的:1 了解ARM处理器PWM接口的处理机制
2 掌握在S3C2440A平台下进行PWM接口应用编程实验器材:Sinosys-EA2440实验箱PC机
实验原理:脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。即通过改变方波的占空比表示不同的模拟信号的电平。
在ARM嵌入式实验中,其实是通过微处理器中的计数器,对经过频率变换的输出频率周期进行计数,在PWM中,是通过两个寄存器(TCNTBn和TCMPBn)对输出信号的占空比进行调制,TCNTBn可以设置为TCMPBn+X,当TCNTBn在TCMPBn和TCMPBn+X 之间计数时,TOUTn(即输出信号)输出低电平,当TCNTBn计数下降到TCMPBn时,TOUTn电平反转,变为高电平,直到TCNTBn计数减到0,如果此时开启了重载,则又把预定的值重新装入TCNTBn和TCMPBn中,重复以上过程。
在ARM嵌入式PWM中,会提供一个基准时钟作为输入时钟,PWM调制会对输入的时钟进行分频等操作进入计时器逻辑,其电路图2.1如下:
图2.1 PWM计时器框图
如图2.1,输入的时钟PCLK经过一个8bit预置器和一个分频器,将得到的时钟进入计数器逻辑板块作为驱动时钟,而输出的TOUT则作为蜂鸣器(蜂鸣器控制电路如图2.2)的驱动信号。
图2.2 蜂鸣器控制电路
实验总结:实验的主函数首先设置时钟,端口初始化,并捕捉进入测试函数的指令,与实验一大致相同,在此不在赘述,重点分析测试函数。测试函数如下:
蜂鸣报警器实验设计论文 2
单片机课程设计
论文题目蜂鸣报警器
系别
专业
班级
学号
学生姓名
指导教师(签名)
完成时间 2012 年 6 月
课程设计成绩评定表
该蜂鸣计时报警器由89C51,BUTTON,七段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时。设置一个数段,一旦超过这个数值,蜂鸣器就会想起,达到报警的效果。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用Proteus的ISIS 软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。
关键词:单片机蜂鸣报警键盘控制
第一章方案论证与对比 (1)
1.1单片机的型号选择 (1)
1.2数码管显示工作原理 (1)
第二章系统硬件电路的设计 (2)
2.1主控模块89C51 (2)
2.2 LED数码管显示概述 (2)
2.3其他元件介绍及参数选择 (2)
第三章系统软件电路的设计 (3)
第四章软件调试 (4)
第五章总结 (5)
参考文献 (6)
附录一电路图 (7)
第一章方案论证与对比
1.1单片机的型号选择
通过对多种单片机性能的分析,最终认为89C51是最理想的蜂鸣报警器开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。
嵌入式系统 实验报告
通过本次实验,我复习了中断的有关知识,了解了 LPC2000 向量中断控制
器 VIC 的工作原理与编程细节,掌握了外中断技术的基本使用与编程。对于
LPC2000 系列 ARM7 微控制器的向量中断控制器及外中断的应用技术有了更加
深刻的认识。
六.附录:源代码(电子版)
#include "config.h"
IO0SET = BEEPCON; DelayNS(200); IO0CLR = BEEPCON; DelayNS(200); } return(0); }
// 设置管脚连接 GPIO // 设置 I/O 为输出
// BEEPCON = 1 // BEEPCON = 0
实验三 外中断实验
一.实验目的及实验环境
境下进行简单的实验操作,为之后的实验打下坚实的基础。
六.附录:源代码(电子版)
#include "config.h"
const uint32 LEDS8 = 0xFF << 18;//P1[25:18]控制 LED1~LED8,低电平点亮
const uint32 KEY = 1 << 16;
//P0.16 连接 KEY1
// 设置管脚连接 GPIO // 设置管脚 P0.16 为 EINT0 // 设置 P0.7 为输出 // 设置 P1.18 为输出
单片机课程设计报告利用蜂鸣器播放音乐
课程设计:嵌入式系统应用
题目名称:利用蜂鸣器实现音乐播放功能
姓名:
学号:
班级:
完成时间:
1设计的任务
设计内容:动手焊接一个51单片机
设计目标:利用单片机上的蜂鸣器实现音乐播放功能
2设计的过程
基本结构
在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:~5V单片机/~3V单片机,工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K字节;
STC89C52RC引脚图
STC89C52RC单片机的工作模式:
(1)典型功耗
(2)空闲模式:典型功耗2mA
(3)正常工作模式:典型功耗4Ma~7mA
4唤醒,适用于水表、气表等电池供电系统及便携设备
2.蜂鸣器及其工作原理:
蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型;电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成;接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动
膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声;本实验采用的是
电磁式蜂鸣器;
蜂鸣器按其是否带有信号源又分为有源和无源两种类型;有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率
的信号,驱动蜂鸣器发出声音;无源蜂鸣器可以理解成与喇叭一样,需要在
其供电端上加上高低不断变化的电信号才可以驱动发出声音;本实验采用
的是有源蜂鸣器;
嵌入式实验-GPIO与系统状态
嵌入式系统实验报告
实验名称:GPIO与系统状态
实验目的
●通过FSM4 实验板了解实验的软硬件环境,熟悉MDK 开发环境的使用。
●学习查阅文档和数据手册,获取需要的信息。
●学会使用C 语言直接控制IO 寄存器完成功能。
●掌握基本的软件编写与调试方式。
●学会STM32 GPIO 的基本操作方式。
1实验环境
●FS-STM32F407开发平台
●ST-Link仿真器
●RealView MDK5.23集成开发软件
●PC及其Window7/8/10 (32/64bit)
●串口调试工具
2实验要求
●基本要求:
◆编写程序控制led 灯的亮灭(或者控制板上蜂鸣器的出声),输出
以字母、数字、空格组成的字符串的摩斯码(以“Hello Cortex-M4”为测试用例)。
◆特殊要求:不能使用CMSIS 库函数操作led 灯(蜂鸣器),需用代
码直接操作GPIO 的寄存器。
●拓展要求:
◆使用按键控制系统状态,LED 灯显示系统状态:
➢按键K3按下:待机,系统进入低功耗模拟
➢按键K4长按:系统复位
➢按键K5双击:led灯闪烁
➢按键K6长按:随着按动时长,4个led灯依次点亮
3实验原理
STM32 GPIO的配置:
LED 灯的亮灭、蜂鸣器的鸣响、按键电平的读入都需要使用STM32 芯片的I/O 引脚。
STM32 芯片上,I/O 引脚可以被软件设置成各种不同的功能,如输入或输出,所以被称为GPIO (General-purpose I/O)。而GPIO 引脚又被分为GPIOA、GPIOB…GPIOG 不同的组,每组端口分为0~15,共16 个不同的引脚。
蜂鸣器实验技术及应用实验报告
DSP技术及应用实验报告(电气与信息工程学院)
实验项目名称:蜂鸣器实验
专业班级:
指导教师:
学生姓名/学号:
实验地点:
实验日期:
贵州理工学院实验报告
实
验原理
从电路图可知,当输出高电平时蜂鸣器鸣叫,输出低电平时蜂鸣器不鸣叫,即CPLD_IO输出 1 蜂鸣器鸣叫,输出 0 蜂鸣器不鸣叫。
实验步骤与内容1.首先打开CCS, 菜单栏点击<Debug><Connect>连接设备,然后
<Project><Open...>打开该目录中的工程文件:buzz.pjt;
2.然后点击菜单栏的<File> <Load Program>,选择buzz目录中Debug 文件夹里面的buzz.out文件(后缀.out)。
4.然后点击菜单<Debug>下的<Go Main>,进入主函数入口处,接着便可以通过左边的按钮或<Debug>菜单进行相应调试,现在直接Run ,运行程序,这时注意观察开发板上的变化。
源程序:
#include”DSP28_Device.h”}
void Delay(Uint16 data); }
void main(void) void Delay(Uint16 data) {InitSysCtrl(); //初始化系统{ Uint16 1;
DINT; //关中断for(i=0;i<data;i++) {;}
IER=0x0000; }
IFR=0x0000;
InitPieCtrl(); //初始化PIE
嵌入式系统原理实验四蜂鸣器
实验四蜂鸣器实验
实验目的:
控制ALIENTEK 战舰STM32 开发板上的蜂鸣器发出:“嘀”…“ 嘀”…
的间隔声,进一步熟悉STM32 IO 口的使用
内容要点:
1.硬件介绍
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
战舰STM32 开发板板载的蜂鸣器是电磁式的有源蜂鸣器
这里的有源不是指电源的“源”,而是指有没有自带震荡电路,
有源蜂鸣器自带了震荡电路,一通电就会发声
STM32的单个IO 最大可以提供25mA 电流(来自数据手
册),而蜂鸣器的驱动电流是30mA 左右,两者十分相近,但是全盘考虑,STM32 整个芯片的电流,最大也就150mA,如果用IO 口直接驱动蜂鸣器,其他地方用电就得省着点了…所以,我们不用STM32 的IO 直接驱动蜂鸣器,而是通过三极管扩流后再驱动蜂鸣器,这样STM32 的IO 只需要提供不到1mA 的电流就足够了。IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计就越可靠,可能出现的问题也就越少。
蜂鸣器在硬件上也是直接连接好了的,不需要经过任何设置,直接编写代码就可以了。蜂鸣器的驱动信号连接在STM32 的PB8 上。
图1 蜂鸣器与STM32 连接原理图
当PB.8 输出高电平的时候,蜂鸣器将发声,当PB.8 输出低电平的时候,蜂鸣器停止发声
2.软件设计
可以直接打开本实验工程,也可以按下面的步骤在实验 1 的基础上新建蜂鸣器实验工程。复制上一章的LED 实验工程,然后打开USER 目录,把目录下面工程LED.uvprojx 重命名为BEEP.uvprojx。,然后在HARDWARE 文件夹下新建一个BEEP 文件夹,用来存放与蜂鸣器相关的代码
嵌入式智能系统控制实训项目报告
嵌入式智能系统控制实训项目报告
1.项目实训综述
嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等灵活裁剪软硬件模块的专用计算机系统。
1.1项目名称
嵌入式智能系统控制
2.开发硬件平台和软件环境
vim的三种模式:
普通模式:默认使用vim打开文件时进入的模式即使普通模式,该模式下所有的按键对应功能
在普通模式下,输入a,i,o,A,I,O可以进入插入模式。
在普通模式下,输入 shift + : 组合按键可以进入底行模式。
在普通模式: h:左移 j:下移 k:上移 l:右移
a键:进入插入模式,并且光标停留在向后的一个字符处。
i键:进入插入模式,并且光标停留在当前位置。
o键:进入插入模式,并且光标停留下一行的开头处。
A键:进入插入模式,并且光标停留当前行的末尾处。
I键:进入插入模式,并且光标停留当前行的开头处。
O键:进入插入模式,并且光标停留当上一行的开头处。
c51单片机实验报告
c51单片机实验报告
《C51单片机实验报告》
C51单片机是一种广泛应用于嵌入式系统中的微控制器,具有高性能、低功耗和丰富的外设接口,因此在各种电子设备中得到了广泛的应用。本次实验将以C51单片机为研究对象,通过实验验证其性能和功能。
实验一:LED灯控制实验
首先,我们将C51单片机与LED灯连接起来,通过程序控制LED灯的亮灭。实验结果表明,C51单片机可以准确地控制LED灯的亮度和闪烁频率,具有良好的稳定性和可靠性。
实验二:蜂鸣器控制实验
接着,我们将C51单片机与蜂鸣器连接起来,通过程序控制蜂鸣器的发声。实验结果显示,C51单片机可以精准地控制蜂鸣器的音调和音量,具有较高的音频输出质量。
实验三:温湿度传感器实验
最后,我们将C51单片机与温湿度传感器连接起来,通过程序读取并显示温湿度数值。实验结果表明,C51单片机可以准确地读取传感器的数据,并通过显示屏输出,具有良好的数据处理能力。
通过以上实验,我们验证了C51单片机在LED灯控制、蜂鸣器控制和温湿度传感器应用方面的性能和功能。C51单片机具有较高的稳定性、可靠性和可编程性,适用于各种嵌入式系统的设计与开发。希望本次实验报告能够对C51单片机的应用和研究提供一定的参考价值。
嵌入式跑马灯实验
一、实验名称:跑马灯
二、实验要求:编写程序控制跑马灯的亮灭:首先是全不亮,接着第1个灯亮,第2
个灯亮,第3个灯亮,第4个灯亮,最后所有的灯一起亮,即按顺序亮,然
后全亮,最后全灭,顺序循环。最后蜂鸣器响,然后灯全部灭。
三、实验步骤
1、点击WINDOWS 操作系统的开始-> 程序-> ARM Developer Suite v1.2 ->CodeWarrior for
ARM Developer Suite 启动ADS1.2 IDE 或双击CodeWarrior for ARMDeveloper Suite 快捷方式起动启。
2、打开原有的有关跑马灯实验的工程。
3、源程序代码:。
/******************************************************************** ********
* File:LEDCON.C
* 功能:LED闪烁控制。对发光二极管LED4进行控制,采用软件延时方法。
* 使用I/O口直接控制LED,采用灌电流方式。
* 说明:将跳线器JP8_LED4短接。
********************************************************************* *******/
#include "config.h"
#define LEDCON4 0x00002000 /* P0.13引脚控制LED4,低电平点亮*/
#define LEDCON1 0x00000400 /* P0.10引脚控制LED1,低电平点亮*/
嵌入式系统原理实验四蜂鸣器
实验四蜂鸣器实验
实验目的:
控制ALIENTEK战舰STM32开发板上的蜂鸣器发出:“嘀”…“嘀”…
的间隔声,进一步熟悉 STM32 IO 口的使用
内容要点:
1.硬件介绍
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、
打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电■
磁式蜂鸣器两种类型。
战舰STM32开发板板载的蜂鸣器是电磁式的有源蜂鸣器
这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声
STM32的单个IO最大可以提供25mA电流(来自数据手册),而蜂鸣器的驱动电流是30mA 左右,两者十分相近,但是全盘考虑,STM32整个芯片的电流,
最大也就150mA,如果用IO 口直接驱动蜂鸣器,其他地方用电就得省着点了…所以,我们不用 STM32的IO直接驱动蜂鸣器,而是通过三极管扩流后再驱动蜂鸣
器,这样STM32的10只需要提供不到1mA的电流就足够了。 IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计就越可靠,可能出现的问题也就越少。
蜂鸣器在硬件上也是直接连接好了的,不需要经过任何设置,直接编写代码就可
PBS 139
图1 蜂鸣器与STM32连接原理图
当PB.8输出高电平的时候,蜂鸣器将发声,当PB.8输出低电平的时候,蜂鸣器停止发声
2.软件设计
可以直接打开本实验工程,也可以按下面的步骤在实验 1的基础上新建蜂鸣器实验工程。
嵌入式实验:PWM实验
一.实验内容
1.编写程序对PWM控制器输出8000Hz、2/3占空比的数字信号控制蜂鸣器。
2.编写程序改变PWM控制器输出频率。
3.编写程序改变PWM控制器输出占空比。
二.实验代码
void test_pwm()
{
int index, rate ;
unsigned short div;
int freq;
for ( freq = 500; freq < 14000; freq+=500)
{
div = (PCLK/256/4)/freq;
rTCON=0x0;
rTCNTB0= div;
rTCMPB0= (2*div)/3;
rTCON=0xa;/*手工装载定时器的计数值*/
rTCON=0x9;/*启动定时器,并周期模式触发*/
{
rTCNTB0= div;
rTCMPB0= (rate*div)/100;/*修改占空比*/
rTCON=0xa;/*手工装载定时器的计数值*/
rTCON=0x9;/Βιβλιοθήκη Baidu启动定时器,并周期触发*/
for( index = 0; index < 800000; index++);
rTCON=0x0;
}
}
for( index = 0; index < 800000; index++);
嵌入式蜂鸣器实验报告
竭诚为您提供优质文档/双击可除嵌入式蜂鸣器实验报告
篇一:嵌入式-蜂鸣器控制实验
实验二蜂鸣器控制实验
实验目的:1了解ARm处理器pwm接口的处理机制
2掌握在s3c2440A平台下进行pwm接口应用编程
实验器材:sinosys-eA2440实验箱pc机
实验原理:脉冲宽度调制(pwm)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。即通过改变方波的占空比表示不同的模拟信号的电平。
在ARm嵌入式实验中,其实是通过微处理器中的计数器,对经过频率变换的输出频率周期进行计数,在pwm中,是通过两个寄存器(TcnTbn和Tcmpbn)对输出信号的占空比进行调制,TcnTbn可以设置为Tcmpbn+x,当TcnTbn在Tcmpbn 和Tcmpbn+x之间计数时,TouTn(即输出信号)输出低电平,
当TcnTbn计数下降到Tcmpbn时,TouTn电平反转,变为高
电平,直到TcnTbn计数减到0,如果此时开启了重载,则又把预定的值重新装入TcnTbn和Tcmpbn中,重复以上过程。
在ARm嵌入式pwm中,会提供一个基准时钟作为输入时钟,pwm调制会对输入的时钟进行分频等操作进入计时器逻辑,其电路图2.1如下:
图2.1pwm计时器框图
如图2.1,输入的时钟pcLK经过一个8bit预置器和一
个分频器,将得到的时钟进入计数器逻辑板块作为驱动时钟,而输出的TouT则作为蜂鸣器(蜂鸣器控制电路如图2.2)的驱动信号。
图2.2蜂鸣器控制电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二蜂鸣器控制实验
实验目的:1 了解ARM处理器PWM接口的处理机制
2 掌握在S3C2440A平台下进行PWM接口应用编程实验器材:Sinosys-EA2440实验箱PC机
实验原理:脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。即通过改变方波的占空比表示不同的模拟信号的电平。
在ARM嵌入式实验中,其实是通过微处理器中的计数器,对经过频率变换的输出频率周期进行计数,在PWM中,是通过两个寄存器(TCNTBn和TCMPBn)对输出信号的占空比进行调制,TCNTBn可以设置为TCMPBn+X,当TCNTBn在TCMPBn和TCMPBn+X 之间计数时,TOUTn(即输出信号)输出低电平,当TCNTBn计数下降到TCMPBn时,TOUTn电平反转,变为高电平,直到TCNTBn计数减到0,如果此时开启了重载,则又把预定的值重新装入TCNTBn和TCMPBn中,重复以上过程。
在ARM嵌入式PWM中,会提供一个基准时钟作为输入时钟,PWM调制会对输入的时钟进行分频等操作进入计时器逻辑,其电路图2.1如下:
图2.1 PWM计时器框图
如图2.1,输入的时钟PCLK经过一个8bit预置器和一个分频器,将得到的时钟进入计数器逻辑板块作为驱动时钟,而输出的TOUT则作为蜂鸣器(蜂鸣器控制电路如图2.2)的驱动信号。
图2.2 蜂鸣器控制电路
实验总结:实验的主函数首先设置时钟,端口初始化,并捕捉进入测试函数的指令,与实验一大致相同,在此不在赘述,重点分析测试函数。测试函数如下:
void Beep(int freq,int ms)
{
int div,i
rGPBCON&=~0x3; //将GPB0作为输入口rGPBCON|=0X2; // 接入TIMER0
rTCFG0&=~0XFF; // 设置prescaler为32
rTCFG0|=0XF;
rTCFG1&=~0XF; //选择mux=1/16
rTCFG1|=0X3;
div=plck/32/16/freq 计算TCNTB0的值rTCNTB0=div;
rTCMPB0=rTCNTB0>>2; 占空比为4:1
rTCON&=~0X1F; 设置死区自动重载反转人工载入开始rTCON|=0XB; 关闭死区开启重载关反转开人工载入开始rTCON&=~2; 关闭人工载入
for(i=1,i void beep_test(void) { U8 key; freq=1000;beep(freq,0); while(1) { Uart_Printf("\nWant to quit Alarm I/O test,OK? (Y/N)\n"); key=Uart_Getch(); if(key=='y'||key=='Y') break; else if(key=='+') { freq+=100; beep(freq,0) ; //加号增加频率 Uart_Printf( "Press +to increase/reduce the frequency of beep !\n" ) ; } else if( key == '-' ) //减号降低频率{ freq-=100; beep(freq,0) ; Uart_Printf( "Press - to increase/reduce the frequency of beep !\n" ) ; } 实验中,通过DNW将bin文件下载到实验箱中,发现蜂鸣器开始想起,通过“+”“-”的控制,使得频率改变,明显感到蜂鸣器的响声变尖或者变低沉,说明程序有效。