收藏 分销(赏)

实验2 IO口实现流水灯.doc

上传人:pc****0 文档编号:7427437 上传时间:2025-01-04 格式:DOC 页数:7 大小:384.50KB 下载积分:10 金币
下载 相关 举报
实验2 IO口实现流水灯.doc_第1页
第1页 / 共7页
实验2 IO口实现流水灯.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
实验二 IO口实现LED灯闪烁 一、实验目的: 1. 正确安装keil软件 2. 正确安装调试驱动,熟悉实验板的用法 3. 学习IO口的使用方法。 二、实验设备: 单片机开发板、学生自带笔记本电脑 三、 实验内容: 利用单片机IO口做输出,接发光二极管,编写程序,使发光二极管按照要求点亮。 四、实验原理: 1. LPC1114一共有42个GPIO,分为4个端口,P0、P1、P2口都是12位的宽度,引脚从Px.0~Px.11,P3口是6位的宽度,引脚从P3.0~P3.5。引脚的内部构造如图所示。其中Rpu为上拉电阻、Rpd为下拉电阻。 2. 为了节省芯片的空间和引脚的数目,LPC1100系列微处理器的大多数引脚都采用功能复用方式,用户在使用某个外设的时候,要先设置引脚。控制引脚设置的寄存器称之为IO配置寄存器,每个端口管脚PIOn_m都分配一个了一个IO配置寄存器IOCON_PIOn_m,以控制管脚功能和电气特性。 3. IOCON_PIOn_m寄存器其位域定义如表所列。 位域 符号 描述 2:0 FUNC 选择管脚功能 000:选择功能1 001:选择功能2(如果未定义功能2,则保留) 010:选择功能3(如果未定义功能3,则保留) 011:选择功能4(如果未定义功能4,则保留) 100~111:保留 4:3 MODE 选择功能模式(片内上拉/下拉电阻控制) 00:无效模式(无上拉和下拉电阻被允许) 01:允许下拉电阻 10:允许上拉电阻 11:中继模式 5 HYS 滞后模式 1:禁止 0:允许 6 - 保留,复位值为1 7 ADMODE 选择 模拟/数字模式(无AD功能,则保留,复位值为1) 0:模拟输入模式 1:数字功能模式 9:8 I2CMODE 选择为I2C模式 00:标准I2C模式/快速I2C模式(默认) 01:标准I/O功能 10:FM+I2C模式 11:保留 31:8 - 保留,复位值为0 4. 各引脚IOCON寄存器的位[2:0]配置不同的值所相应功能。 5. GPIO寄存器 GPIO数据寄存器用于读取输入管脚的状态数据,或配置输出管脚的输出状态,表5-5对GPIOnDATA寄存器位进行描述。 位 符号 访问 描述 11:0 DATA R/W 管脚PIOn_0~PIOn_11输入数据(读)或输出数据(写) 31:12 - - 保留 GPIO的数据方向的设置是通过对GPIOnDIR寄存器的位进行与或操作实现的,LPC1100微处理器和8051单片机的GPIO不同,在使用前一定要先设置数据方向才能使用, 位 符号 访问 值 描述 11:0 IO R/W 0 引脚PIOn_0~PIOn_11配置为输入 1 引脚PIOn_0~PIOn_11配置为输出 31:12 - - - 保留 6. 发光二级管的工作电压和工作电流如何? _______________________________________________________________________________________________________________________________________________________________________________________________________________________________。 7. 发光二极管的限流电阻如何计算? __________________________________________________________________________。 五、实验原理图: 六、实验步骤: 一、基本要求 1、默写发光二极管闪烁程序。 二、扩展要求 1.查找关于呼吸灯的资料,弄懂呼吸灯工作原理。 2.自行编写呼吸灯代码,在实验板子上面验证。 七、程序框图: 八、供参考程序: /*************************************************************************/ #include "LPC11XX.H" // 头文件 #define LED1_ON() (LPC_GPIO1->DATA &= ~(1<<0)) // 点亮连接到P1.0的LED #define LED1_OFF() (LPC_GPIO1->DATA |= (1<<0)) // 熄灭连接到P1.0的LED #define LED2_ON() (LPC_GPIO1->DATA &= ~(1<<1)) // 点亮连接到P1.1的LED #define LED2_OFF() (LPC_GPIO1->DATA |= (1<<1)) // 熄灭连接到P1.1的LED /************************************************************************** * FunctionName : Delay() * Description : 延时函数 * EntryParameter : None * ReturnValue : None **************************************************************************/ void Delay() { uint16_t i,j; for(i=0;i<5000;i++) for(j=0;j<200;j++); } /************************************************************************** * FunctionName : LedInit() * Description : 初始化LED引脚 * EntryParameter : None * ReturnValue : None **************************************************************************/ void LedInit(void) { LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON时钟 LPC_IOCON->R_PIO1_0 &= ~0x07; LPC_IOCON->R_PIO1_0 |= 0x01; //把P1.0脚设置为GPIO LPC_IOCON->R_PIO1_1 &= ~0x07; LPC_IOCON->R_PIO1_1 |= 0x01; //把P1.1脚设置为GPIO LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON时钟 LPC_GPIO1->DIR |= (1<<0); // 把P1.0设置为输出引脚 LPC_GPIO1->DATA |= (1<<0); // 把P1.0设置为高电平 LPC_GPIO1->DIR |= (1<<1); // 把P1.1设置为输出引脚 LPC_GPIO1->DATA |= (1<<1); // 把P1.1设置为高电平 } /************************************************************************** * FunctionName : main() * Description : 主函数 * EntryParameter : None * ReturnValue : None **********************************************************************/ int main(void) { LedInit(); while(1) { Delay(); LED1_ON(); LED2_OFF(); Delay(); LED1_OFF(); LED2_ON(); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服