实验二 GPIO跑马灯实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 GPIO跑马灯实验.doc

实验二 I/O接口实验 [实验目的] 1.熟悉ARM芯片I/O口配置方法 2.通过实验掌握ARM芯片I/O控制LED显示的方法 [实验仪器] 1.Proteus仿真的LPC2000系列的ARM处理器 2.软件:PC机操作系统Win98、Win2000或WinXP,Keil for ARM(MDK)集成开发环境 [实验原理] 根据LPC2000系列ARM芯片的特点,可以将P0口的功能设置为GPIO,用来驱动LED等设备或者接受矩阵键盘的输入等。 [实验内容] 设计一个ARM驱动LED的电路,使用LPC2000的GPIO功能,编写一个LED跑马灯程序,并且在Proteus上仿真运行。 [预备知识] LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。 [实验步骤] 参考实验一建立ARM的GPIO电路,图中使用P0口的低八位驱动八个发光二极管,元件参数及种类分别见图及表 元件 元件参数 Res1~8 51欧 Cap1~4 22P(仿真时候没有影响) 晶振1,2 11.0592MHz和32768(仿真时候没有影响) LED 红绿黄蓝颜色的各两个 使用Keil MDK软件和C语言编写LED的驱动程序: 按照实验一创建一个Keil项目,项目名称叫GPIO,不过在提示下图时候选择是,而不是否。此处使用Keil提供的汇编启动文件来启动arm处理器,不再使用自己编写的汇编语言了。 创建项目后界面如下: 在项目配置的界面下,linker页按如下设置,不按照实验一的设置进行。其余的设置按照实验一设定。 双击打开 Startup.s文件,见下图 这个文件有两种编辑方式,一种是使用文本方式,就是上图中的TextEditor。另一种是菜单界面的配置方式Configuration Wizard,用来配置ARM处理器的运行时候的设置。点击Configuration Wizard(上图的编辑区的下方)如下图 按照图上设置,取消锁相环的设置。(同样的方式也可以设置其它选项,大家做实验的时候可以分别展开各个选项查看并熟悉一下,以后实验备用)。 新建一个文本文件,保存并且命名为gpio.c,并添加到该项目中。按照如下操作进行: 弹出如下窗口 像该文本中添加代码 在文本编辑区中右击一下,选择Insert ‘#include LPC2103.H’ 然后添加C语言函数的框架,见下图 点击保存为gpio.c 然后将该文件添加到项目中,按下图顺序操作 点击Add按钮,点击Close按钮即可。最后工程的界面如下: 如果和上图不一样,检查一下操作步骤。 接下来向main函数中添加代码,实现跑马灯功能。 /*主程序main.c*/ #define LEDCON 0x000000ff // P0.0~7引脚控制LED /**************************************************************************** * 名 称:DelayNS() * 功 能:长软件延时。 * 入口参数:dly 延时参数,值越大,延时越久 * 出口参数:无 ****************************************************************************/ void DelayNS(int dly) { int i; for(; dly0; dly--) { for(i=0; i5000; i++); } } int main() { int i; PINSEL0 = 0 // 设置管脚连接GPIO IODIR = LEDCON; // 设置I/O为输出 while(1) //此处设置跑马灯的各种闪烁动作,同学们可以自由修改 { for(i=0;i16;i++){ IOSET = LEDCON; DelayNS(100); IOCLR = LEDCON; DelayNS(100); } for(i=0;i256;i++){ IOCLR = ~i; IOSET = i; DelayNS(30);

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档