嵌入式-蜂鸣器控制实验4页

上传人:文库****9 文档编号:174212031 上传时间:2021-03-15 格式:DOCX 页数:4 大小:146.22KB
返回 下载 相关 举报
嵌入式-蜂鸣器控制实验4页_第1页
第1页 / 共4页
嵌入式-蜂鸣器控制实验4页_第2页
第2页 / 共4页
嵌入式-蜂鸣器控制实验4页_第3页
第3页 / 共4页
嵌入式-蜂鸣器控制实验4页_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式-蜂鸣器控制实验4页》由会员分享,可在线阅读,更多相关《嵌入式-蜂鸣器控制实验4页(4页珍藏版)》请在金锄头文库上搜索。

1、 实验二 蜂鸣器控制实验实验目的:1 了解ARM处理器PWM接口的处理机制 2 掌握在S3C2440A平台下进行PWM接口应用编程实验器材: Sinosys-EA2440实验箱 PC机实验原理:脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。即通过改变方波的占空比表示不同的模拟信号的电平。在ARM嵌入式实验中,其实是通过微处理器中的计数器,对经过频率变换的输出频率周期进行计数,在PWM中,是通过两个寄存器(TCNTBn和TCMPBn)对输出信号的占空比进行调制,TCNTBn可以设置为TCMPBn+X

2、,当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则作为蜂鸣器(蜂鸣器控制电路如图

3、2.2)的驱动信号。 图2.2 蜂鸣器控制电路实验总结:实验的主函数首先设置时钟,端口初始化,并捕捉进入测试函数的指令,与实验一大致相同,在此不在赘述,重点分析测试函数。测试函数如下:void Beep(int freq,int ms)int div,irGPBCON&=0x3; /将GPB0作为输入口rGPBCON|=0X2; / 接入TIMER0rTCFG0&=0XFF; / 设置prescaler为32rTCFG0|=0XF;rTCFG1&=0XF; /选择mux=1/16rTCFG1|=0X3;div=plck/32/16/freq 计算TCNTB0的值rTCNTB0=div;rTCM

4、PB0=rTCNTB02; 占空比为4:1rTCON&=0X1F; 设置死区 自动重载 反转 人工载入 开始rTCON|=0XB; 关闭死区 开启重载 关反转 开人工载入 开始rTCON&=2; 关闭人工载入for(i=1,ims,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文件下载到实验箱中,发现蜂鸣器开始想起,通过“+”“-”的控制,使得频率改变,明显感到蜂鸣器的响声变尖或者变低沉,说明程序有效。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号