网站大量收购独家精品文档,联系QQ:2885784924

通过按键控制蜂鸣器.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档