篇一:嵌入式- 蜂鸣器控制实验
实验二 蜂鸣器控制实验
实验目的: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调制会对输入的时钟进行分频等操作进入计时器逻辑,其电路图如下: 图 PWM计时器框图
如图,输入的时钟PCLK经过一个8bit预置器和一个分频器,将得到的时钟进入计数器逻辑板块作为驱动时钟,而输出的TOUT则作为蜂鸣器(蜂鸣器控制电路如图)的驱动信号。
图 蜂鸣器控制电路
实验总结:实验的主函数首先设置时钟,端口初始化,并捕捉进入测试函数的指令,与实验一大致相同,在此不在赘述,重点分析测试函数。测试函数如下:
void Beep
{
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;}
void beep_test
{
U8 key;
freq=1000; beep;
while
{
Uart_Printf\n”); key=Uart_Getch;
if
break;
else if
gps信号放大器 {freq+=100; beep ; //加号增加频率 Uart_Printf ; 凯膜过滤技术
}
else if//减号降低频率 { freq-=100; beep ; Uart_Printf ; }
实验中,通过DNW将bin文件下载到实验箱中,发现蜂鸣器开始想起,通过“+”“-”的控制,使得频率改变,明显感到蜂鸣器的响声变尖或者变低沉,说明程序有效。
篇二:嵌入式实验报告
嵌入式实验报告
学 院:信息工程学院
专 业:计算机科学与技术
班 级: 计算机班
姓 名:
学 号:
指导老师:
实验目录
实验一 嵌入式系统开发环境实验...................................... 2
实验二 系统节拍定时器实验.......................................... 12
实验三 GPIO控制实验 ............................................... 16