文档详情

按键、led流水灯实验

鲁**
实名认证
店铺
DOCX
24.79KB
约3页
文档ID:471845076
按键、led流水灯实验_第1页
1/3

4 ;A恐能号良实验报告实验名称:—按键、LED流水灯学院名称:_电子与信息工程学院专业方向:_嵌入式方向班级:-电信10・1 姓名:-X实验日期:-201X 一・实验目的:掌握ARXI7嵌入式系统实验箱的使用方法;掌握LPC2148的GPIO端I I使用方法:了 解74HC595的控制使用方法二.实验原理1. GPIO接「I的用法LPC2114/2124的PO I I和P1 口由两组(每组4个)寄存器控制,如表6-10所列对 于LPC2210/2212/2214, P2 I I的寄存器起始地址0XE002 8020, P3 II的寄存器起始地址 0XE002 8030,各寄存器的功能与P0和P1的寄存器是一致的©GPIO 引脚值寄存器(IOnPIN,n=0、1、2、3)读取该寄存器可以了解到GPIO引脚当前的电平状态写该寄存器会将值保存到输出寄存器,可用于I/O测试该特性在应用中几乎亳无用处, 原因是不可能对该寄存器中单个字节执行写操作② GPIO 方向寄存器(IOnDIR,n=0、1、2、3)当引脚配置为GPIO模式时,可■使用该寄存器控制引脚的方向比如某引脚用作输出 功能,IODIR寄存器的相应位必须设置为1。

③ GPIO输出置位寄存器(IOnSET,n=0、1、2、3 )当引脚配置为GPIO输出模式时,可使用该寄存器控制引脚输出高电平写入1使对 应引脚输出高电平;写入0无效如果一个引脚被配置为输入或第二功能,写IOSET无 效读IOSET寄存器返回GPIO输出寄存器的值该值由前一次对IOSET和IOCLR (或 前面提到的IOPIN)的写操作决定该值不反映任何外部环境对引脚的影响④ GPIO输出清零寄存器(IOnCLR,n=0、1、2、3)当引脚配置位GPIO输出模式时,可使用该寄存器从引脚输出低电平写入1使对成 引脚输出低电平,并清零IOSET寄存器中相对应的位;写入0无效如果一个引脚被配 置为输入或第二功能,写IOCLR无效2. 74HC595的用法74HC595是8位串行输入,输出或者并行输出移位寄存器,具有高阻关断状态三态特点:①8位串行输入②8位串行或并行输出③存储状态寄存器,三种状态④输 出寄存器可以直接清除⑤100MHz的移位频率⑥输出能力具备并行输出,总线驱动:串 行输出;标准中等规模集成电路三. 实验内容学习使用ARM7嵌入式系统实验箱点亮LED灯,自己编程实现流水灯的闪烁;学习使 用按键输入对单个LED的电平控制,自行编程实现按键对单个LED的边沿控制,自行编程 实现单个按键对LED流水灯的速度控制。

四. 实验步骤1. 连接好实验箱,将按键与所需端口相连2. 打开IAR软件新建workspace命名为LSLED,新建.C文件命名为LSLED.C3. 设置options,完成后右键添加LSLED.C4. 写上实验程序,点击make查看有无错误5. 确认无误后,点击Download and Debug将实验程序烧到实验箱上6. 点击go运行,出现所需结果五. 实验程序#iiiclude#define umt8 unsigned char#define umt!6 unsigned mt#define umt32 unsigned long mt#define H_CS 0x01«20#define H.MOSI 0x01«19#define H.CLK 0x01«17#define KEY1 0x01«13#define KEY2 0x01«14const uint8 led[7]={0xl0,0x20,0x40,0x80,0x40,0x20,0x10};void delayins(umtl6 x)umt!6 i;wliile(x~)fbr(i=O;i<5OO;i++);}void WnteByte(umt8 data){uiiit8 i;IOOCLR = H_CS; 〃片选拉低{IOOCLR = H.CLK; 〃时钟拉低if(data&0x80)IOOSET = H_MOSI;elseIOOCLR = H_MOSI;data«=l;IOOSET = H.CLK; 〃时钟拉高}IOOSET = H_CS; 〃片选拉高}hit maiii(void){umt8 i;uint32 j=1500;PINSELO = 0x00000000;IO0DIR = OxOOlAOOOO;wlule(l){fbr(i=0;i<7;i++){WnteByte(-led[i]);if((IOOPIN & KEY! )==0){j+=200;wlule((IO0PIN & KEY1 )==0);}iR(IOOPIN & KEY2 )==0){J・=200;while((IO0PIN & KEY2 )=0);}delavms(j);},}}六. 实验结果1. 实现595上的4个LED等来回闪烁。

2. 通过KEY1和KEY2加快或减半延迟的时候,从而实现流水灯的速度七. 实验思考与总结。

下载提示
相似文档
正为您匹配相似的精品文档