- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通过按键控制蜂鸣器
嵌入式系统设计与开发
实验一:通过按键控制蜂鸣器
所在系(院):
学 生 姓 名:
指 导 教 师:
起 止 日 期:
实验目的:了解ARM2131开发板;
搭建JLINK开发环境;
运行第一个嵌入式程序
参考书本:P44,P154
实验电路图
实验流程图
3、程序清单
#ifndef __CONFIG_H_
#include config.h
#endif
void WaitKey(void)
{
uint32 i;
while(1)
{ // 等待KEY1按下(即等待KEY1对应的口线为低电平,若为高电平则一直循环等待)
// 通过IO0PIN读取P0.0~P0.31口的电平值,屏蔽其它位后判断P0.7是否为低电平。
while( (IO0PINKEY1)!=0 );
for(i=0; i50000; i++); // 软件延时,去抖动(根据系统时钟调整)
// 判断KEY1是否仍为低电平,若是表明按键有效,否则表明是假按键
if((IO0PINKEY1) == 0) break;
}
// 等待KEY1放开(即等待KEY1对应的口线为高电平,若为低电平则一直循环等待)
while((IO0PINKEY1) == 0);}
******************************************************************************************
** 函数名称 : DelayNS()
** 函数功能 : 长软件延时。
** 入口参数 : dly 延时控制值,值越大延时越长
** 出口参数 : 无
******************************************************************************************
*/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly0; dly--)
for(i=0; i50000; i++);
}
/*
******************************************************************************************
** 名称 : main()
** 功能 : 初始化GPIO,然后等待KEY1按键,若有按键则控制蜂鸣器响两声。
******************************************************************************************
*/
int main (void)
{ // 由于LPC2131的P0口的I/O与其它功能复用,比如P0.7与PWM2、SSEL0、EINT2复用,
// 所以要先设置管脚连接。把口线设置为GPIO功能时,才能进行I/O控制。
PINSEL0 = 0 // 设置P0.0~P0.15为GPIO功能
PINSEL1 = 0 // 设置P0.16~P0.31为GPIO功能
IO0DIR = BEEP; // 设置BEEP控制口P0.7为输出模式,(P0的)其它I/O为输入模式
IO0SET = BEEP; // 控制BEEP(P0.7)输出高电平1
while(1)
{
WaitKey(); // 等待KEY1按键
// 控制蜂鸣器响第一声
IO0CLR = BEEP; // 控制BEEP(P0.7)输出低电平0,蜂鸣器响
DelayNS(20); // 延时
IO0SET = BEEP; // 控制BEEP(P0.7)输出高电平1,蜂鸣器不响
DelayNS(30); // 延时
// 控制蜂鸣器响第二声
IO0CLR = BEEP;
DelayNS(20);
IO0SET = BEEP;
DelayNS(20);
// 控制蜂鸣器响第二声
IO0CLR = BEEP;
DelayNS(20);
IO0SET = BEEP;
DelayNS(20);
}
return 0;
}
嵌入式系统设计与开发
1
3
开始
文档评论(0)