嵌入式流水灯实验心得体会

上传人:bin****86 文档编号:56749584 上传时间:2018-10-15 格式:DOCX 页数:11 大小:19.25KB
返回 下载 相关 举报
嵌入式流水灯实验心得体会_第1页
第1页 / 共11页
嵌入式流水灯实验心得体会_第2页
第2页 / 共11页
嵌入式流水灯实验心得体会_第3页
第3页 / 共11页
嵌入式流水灯实验心得体会_第4页
第4页 / 共11页
嵌入式流水灯实验心得体会_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《嵌入式流水灯实验心得体会》由会员分享,可在线阅读,更多相关《嵌入式流水灯实验心得体会(11页珍藏版)》请在金锄头文库上搜索。

1、嵌入式流水灯实验心得体会嵌入式流水灯实验心得体会篇一:嵌入式流水灯实验实验三 GPIO 输出控制实验 一、 实验目的 熟悉 LPCXX 系列 ARM7 微控制器的 GPIO 输入控制。 二、实验设备 ? 硬件:PC 机 一台 LPC2131 教学实验开发平台 一套 ? 软件:Windows 98/XP/XX 系统,集成开发环境。 三、实验内容 1. 管脚控制 EasyARM 教学实验开发平台上的蜂鸣器报警。 2. GPIO 输出实验流水灯实验 实验预习要求: LPCXX GPIO 管脚的设置和控制。 四、实验原理 输出实验,蜂鸣器控制 在 EasyARM2131 开发板上,接有一个蜂鸣器,由

2、控制,通过跳线 JP11 选择连接。 蜂鸣器控制电路如所示。 图 3-1 蜂鸣器控制电路 如果跳线 JP11 选择蜂鸣器,当 输出低电平时,蜂鸣器鸣叫,当 输出高电平则停止鸣叫。程序设置 PINSEL0 使 连接 GPIO,并通过 IO0DIR 将其设置为输出状态,然后通过IO0CLR 和 IO0SET 清零和置位 口,控制蜂鸣器,流程图见图 3-2。 图 3-2 蜂鸣器控制实验流程图 2 GPIO 输出实验流水灯实验 单路 LED 控制 EasyARM2131 开发板上有 8 个独立的 LED,分别由 8 个 GPIO 口控制,现在使用其中一路进行实验,使用的电路如图 3-3 所示。 图 3

3、-3 单路 LED 电路图 当跳线 JP12 连接 LED1 时, 采用灌电流方式驱动LED1,当 输出低电平时,LED1 点亮,当 输出高电平时,LED1 熄灭。实验程序首先设置管脚连接 GPIO,接着设置 口为输出模式,然后通过 IO1CLR 和 IO1SET 控制,驱动LED1 的亮灭。 GPIO 输出实验流水灯实验 EasyARM2131 开发板上的 8 路 LED(LED8LED1)分别可选择 P125:18进行控制,电路如图 3-4 所示。 图 3-4 8 路 LED 控制电路 当跳线 JP12 全部选择 LED8LED1 后, 分别控制这 8 路 LED,就可以进行流水灯实验。流

4、水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,程序清单所示为采用人为定义数组控制显示花样的实验程序,流程图如图 3-5 所示。 图 3-5 流水灯花样显示流程图 五、实验步骤 实验内容 1 步骤 启动集成开发环境,选择 ARM Executable Image for lpc2131 工程模板建立一个工程 BeepCon_C。 在 user 组里编写主程序代码。 将 EasyARM 教学实验开发平台上的管脚与 Beep 跳线短接。 选择 Project-Debug,启动 AXD 进行 JLINK 仿真调试。在工程窗口中选择 DebugInRAM 生成目标,然后编译连接工程(单击 M

5、ake 按钮) 。如图所示。 选择 DebugInRAM 生成目标时,编译连接生成的目标代码就是用于在片内 RAM 调试。 打开 ADS 开发环境下的【Edit】-【DebugInFLASH Settings.】,在”ARM fromELF”下 Output format 做如图选择,输出文件选择你的文件同一目录下,扩展名.HEX 全速运行程序,程序将会在的主函数中停止(因为 main 函数起始处默认设置有断点) 。 单击 Context Variable 图标按钮(或者选择Processor Views-Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择 Sys

6、tem Views-Debugger Internals 即可打开 LPCXX 系列 ARM7 微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。 在 FLASH 中调试 在工程窗口中选择 DebugInFLASH 生成目标,然后编译连接工程(单击 Make 按钮) 。 选择 DebugInFLASH 生成目标时,编译连接生成的目标代码就是用于在片内 FLASH 调试。 编译连接通过后,按键盘的 F5 键,启动 AXD 进行调试。注意,由于程序要烧写到片内 FLASH,默认选项在每次装载 FLASH 地址的

7、调试文件时,将会擦除 FLASH 并下载代码到 FLASH 中。 篇二:嵌入式系统与单片机 流水灯 实验报告中南大学 嵌入式系统与单片机 实 验 报 告 学生姓名 学 号 专业班级 指导教师 学 院 信息科学与工程学院 完成时间 XX 年 5 月 实验名称 单片机流水灯。 实验目的 进一步熟悉 keil 仿真软件、伟福仿真器和实验板的使用。了解并熟悉实验板上单片机 I/O 口和 LED 灯的电路结构,掌握 C51 中单片机 I/O 口的编程方法,掌握顺序控制程序的简单编程。 实验原理 MCS-51 系列单片机有四组 8 位并行 I/O 口,记作P0、P1、P2 和 P3。每组 I/O 口内部都

8、有 8 位数据输入缓冲器、8 位数据输出锁存器及数据输出驱动等电路。四组并行I/O 端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O 端口用作双向输入输出口;当系统作外部扩展时,使用 P0、P2 口作系统地址和数据总线、P3 口有第二功能,与 MCS-51 的内部功能器件配合使用。 本实验用到的 P1 口内部结构如图 3-1 所示。作输出时:输出 0 时,将 0 输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出 1,下面的场效应管导通,输出引脚成低电平。输出 1 时,下面的场效应管截止,上面的上拉电阻使输出为 1。作输入时:P1 端口引脚信号通过一

9、个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是 1。为了能正确读取引脚信号,锁存器必须先写 1。通过 C51 程序的编写,可以使 I/O 口的每根引脚在不同的时间输出不同的 0、1 信号,从而控制外部的设备。 实验步骤 1. keil 的使用: 新建项目-选择单片机型号-建 C 语言程序-添加到项目-设置项目-编译加载-选择仿真板 新建项目 添加到项目 设置项目 选择仿真板 2. 将实验板上 51 单片机的 P1 口的 8 根线与实验板上的 8 位 LED 灯连接,I/O 口的一根引脚控制一个

10、LED 灯。根据实验板上 LED 的硬件连接,编写程序使 8 个 LED 灯从最下面依次点亮,每次只亮一盏灯。依此循环。代码如下 #include“ void mDelay(unsigned int Delay) unsigned int i; for(;Delay0;Delay-) for(i=0;i ; main() int b; while(1) P1=0X7f; mDelay(5000); for(b=0;b P1=P11|0X80;/P1=P1 mDelay(5000); 截图 3. 每次原来的灯保留 代码如下 #include“ void mDelay(unsigned int D

11、elay) unsigned int i; for(;Delay0;Delay-) for(i=0;i ; main() int b; while(1) P1=0X7f; mDelay(5000); for(b=0;b P1=P11;/P1=P1 篇三:嵌入式实验 流水灯#include “ # define LED1 1 # define LED2 1 # define LED3 1 # define LED4 1 /* * Function name: DelayNS * Descriptions: 延时函数 * input parameters: uiDly 值越大,延时时间越长 * o

12、utput parameters:无 * Returned value:无 */ void DelayNS (uint32 uiDly) uint32 i; for (; uiDly 0; uiDly-)for(i = 0; i /* * Function name: main * Descriptions: 跳线JP4 短接,LED1 闪烁 * input parameters: 无 * output parameters:无 * Returned value:无 */ int main (void) PINSEL1 = PINSEL1 /* 设 置 LED 控制口为输出*/IO0SET =

13、 LED1; /* LED1 熄灭 */ while (1) IO0DIR = LED1; /* 设置 LED 控制口为输出*/ IO0SET = LED1; /* LED1 熄灭 IO0SET = LED1; LED1 熄灭 DelayNS(50);*/ IO0CLR = LED1; LED1 点亮 DelayNS(50);*/ IO0DIR = LED2; 设置 LED 控制口为输出 IO0SET = LED2; LED1 熄灭 IO0SET = LED2; LED1 熄灭 DelayNS(50);*/ IO0CLR = LED2; LED1 点亮 DelayNS(50);*/ IO0DI

14、R = LED3; 设置 LED 控制口为输出 IO0SET = LED3; LED1 熄灭 IO0SET = LED3; LED1 熄灭 DelayNS(50);*/ IO0CLR = LED3; */ */ */ */ */ */ */ */ */ */ /* /* 延时 /* /* 延时 /* /* /* /* 延时 /* /* 延时 /* /* /* /* 延时 /* LED1 点亮 */ DelayNS(50); /* 延时*/ IO0DIR = LED4; /* 设置 LED 控制口为输出*/ IO0SET = LED4; /* LED1 熄灭 */ IO0SET = LED4; /* LED1 熄灭 */ DelayNS(50); /* 延时*/ IO0CLR = LED4; /* LED1 点亮 */ DelayNS(50); /* 延时*/ return 0; /*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号