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

嵌入式系统实验1解读.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统实验1解读

嵌入式系统原理及应用 实验一 【实验项目】 GPIO实验——LED及按键 姓名: 班级: 学号: 【实验目的】 1、熟悉KEIL4嵌入式开发环境以及Proteus仿真环境; 2、了解ARM7 LPC2138虚拟开发板上各个器件; 3、掌握LPC2138的GPIO配置及使用方法。 【实验设备】 硬件:PC机一台。 软件:Keil uVision集成开发环境,Proteus仿真软件,LPC2138.DSN仿真电路图文件。 【实验原理】 1. LED电路 观察图1所示的LED驱动电路,当LPC2138单片机的GPIO口P0.8~P0.15输出为低电平时,LED D1~D8点亮。 图1. LED驱动电路 2. 按键电路 观察图2所示的按键接口电路,当按键K1~K6按下时,LPC2138单片机的GPIO口P0.16~P0.21为低电平。 图2. 按键接口电路 【实验内容】 项目1. 循环“点亮-熄灭”LED D1; 项目2. 按键K1控制LED D1的点亮和熄灭; 项目3. 以流水灯方式点亮LED D1~D8; 项目4. 按下按键K1改变LED D1~D8的流水方向。 【实验步骤】 项目1. 循环“点亮-熄灭”LED D1; 1. 建立一个新的keil工程; (1)在D盘(或其它盘)根目录下新建一个以你学号为名的文件夹,并在其下创建“exp1”文件夹,在“exp1”文件夹下创建“exp1_1”子文件夹。 (2)新建一个新keil工程,名称为“exp1_1”,路径为“exp1_1”子文件夹。 (3)CPU型号选择为“NXP”中的“LPC2138”。 (4)开发环境询问是否将“启动代码”复制到工程中,点击“是”。 (5)将“添加文件”文件夹中的Config.h,Target.c,Target.h以及Deal_err.h复制到工程文件夹中(“exp1_1\”),并添加到工程。 (6)新建main.c文件,并添加至工程。 (7)在main文件开头包含相应的头文件: (8)修改“目标选项(Target Option)”: 在“输出(Output)”选项卡里,勾选“生成十六进制文件(Create Hex File)”。 2. 配置LED D1对应的GPIO引脚P0.8,代码为: 3. 实现P0.8输出反转,代码为: 4. 延时函数代码为: 5. 点击“构建(Build)”,产生十六进制可执行文件。 6. 在Proteus中打开LPC2138.DSN仿真电路图文件,双击LPC2138器件。在对话框的“程序文件(Program File)”栏里选择上一步生成的十六进制Hex文件,并将时钟频率修改为“12MHz” 7. 运行仿真,观察并记录实验现象。 项目2. 按键K1控制LED D1的点亮和熄灭; 1. 新建Keil工程“exp1_2”。 2. 配置LED D1对应的GPIO引脚P0.8。 3. 配置按键K1对应的GPIO引脚P0.16,代码为: 4. 当K1按下时,点亮D1;K1松开时,熄灭D1: 5. 生成十六进制文件,在Proteus中观察并记录实验结果。 项目3. 以流水灯方式点亮LED D1~D8; 1. 新建Keil工程“exp1_3”。 2. 配置LED D1~D8对应的引脚,代码为 4. LED D1~D8流水点亮的代码为: 5. 生成十六进制文件,在Proteus中观察并记录实验结果。 项目4. 按下按键K1改变LED D1~D8的流水方向。 1. 新建Keil工程“exp1_4”。 2. 自己编写main.c文件。附上你的main.c中的所有代码: #include LPC213x.h #include Config.h void delay (uint32 dly) { uint32 i; for ( ; dly0; dly--) for (i=0; iFcclk/8000; i++); } void main() { int i=8; //利用i来改变点亮的灯 char c=0; //定义一个流水方向的变量 PINSEL0 = 0; //使IO为GPIO IO0DIR = 0xff00; //点亮 IO0SET = 0xff8; //熄灭 while (1) { if((IO0PIN0x10000) == 0)//如果按下键换流水方向 { if(c==0) c=1; else c=0; de

文档评论(0)

33ggoup + 关注
内容提供者

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

1亿VIP精品文档

相关文档