嵌入式流水灯实验心得体会文档格式.docx
《嵌入式流水灯实验心得体会文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式流水灯实验心得体会文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
实验预习要求:
LPCXXGPIO管脚的设置和控制。
四、实验原理
输出实验,蜂鸣器控制
在EasyARM2131开发板上,接有一个蜂鸣器,由控制,通过跳线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单路LED电路图
当跳线JP12连接LED1时,采用灌电流方式驱动LED1,当输出低电平时,LED1点亮,当输出高电平时,LED1熄灭。
实验程序首先设置管脚连接GPIO,接着设置口为输出模式,然后通过IO1CLR和IO1SET控制,驱动LED1的亮灭。
GPIO输出实验-流水灯实验
EasyARM2131开发板上的8路LED(LED8~LED1)分别可选择P1[25:
18]进行控制,电路如图3-4所示。
图3-48路LED控制电路
当跳线JP12全部选择LED8~LED1后,~分别控制这8路LED,就可以进行流水灯实验。
流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,程序清单所示为采用人为定义数组控制显示花样的实验程序,流程图如图3-5所示。
图3-5流水灯花样显示流程图
五、实验步骤
实验内容1步骤
①启动集成开发环境,选择ARMExecutableImageforlpc2131工程模板建立一个工程BeepCon_C。
②在user组里编写主程序代码。
③将EasyARM教学实验开发平台上的管脚与Beep跳线短接。
④选择Project->
Debug,启动AXD进行JLINK仿真调试。
在工程窗口中选择DebugInRAM生成目标,然后编译连接工程(单击Make按钮)。
如图所示。
选择DebugInRAM生成目标时,编译连接生成的目标代码就是用于在片内RAM调试。
打开ADS开发环境下的【Edit】->
【DebugInFLASHSettings...】,在”ARMfromELF”下Outputformat做如图选择,输出文件选择你的文件同一目录下,扩展名’.HEX’
⑥全速运行程序,程序将会在的主函数中停止(因为main函数起始处默认设置有断点)。
⑦单击ContextVariable图标按钮(或者选择ProcessorViews->
Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。
选择SystemViews->
DebuggerInternals即可打开LPCXX系列ARM7微控制器的片内外寄存器窗口。
⑧可以单步运行程序,可以设置/取消断点;
或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。
在FLASH中调试
在工程窗口中选择DebugInFLASH生成目标,然后编译连接工程(单击Make按钮)。
选择DebugInFLASH生成目标时,编译连接生成的目标代码就是用于在片内FLASH调试。
编译连接通过后,按键盘的F5键,启动AXD进行调试。
注意,由于程序要烧写到片内FLASH,默认选项在每次装载FLASH地址的调试文件时,将会擦除FLASH并下载代码到FLASH中。
篇二:
嵌入式系统与单片机流水灯实验报告
中南大学
嵌入式系统与单片机实验报告
学生姓名学号专业班级
指导教师
学院信息科学与工程学院
完成时间XX年5月
[实验名称]
单片机流水灯。
[实验目的]
进一步熟悉keil仿真软件、伟福仿真器和实验板的使用。
了解并熟悉实验板上单片机I/O口和LED灯的电路结构,掌握C51中单片机I/O口的编程方法,掌握顺序控制程序的简单编程。
[实验原理]
MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。
每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。
四组并行I/O端口即可以按字节操作,又可以按位操作。
当系统没有扩展外部器件时,I/O端口用作双向输入输出口;
当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
本实验用到的P1口内部结构如图3-1所示。
作输出时:
输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。
输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。
作输入时:
P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。
为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。
为了能正确读取引脚信号,锁存器必须先写1。
通过C51程序的编写,可以使I/O口的每根引脚在不同的时间输出不同的0、1信号,从而控制外部的设备。
[实验步骤]
1.keil的使用:
新建项目--选择单片机型号--建C语言程序--添加到项目--设置项目--编译加载--选择仿真板
新建项目
添加到项目
设置项目
选择仿真板
2.将实验板上51单片机的P1口的8根线与实验板上的8位LED灯连接,I/O口的一根引脚控制一个LED灯。
根据实验板上LED的硬件连接,编写程序使8个LED灯从最下面依次点亮,每次只亮一盏灯。
依此循环。
代码如下
#include"
"
voidmDelay(unsignedintDelay)
{unsignedinti;
for(;
Delay>
0;
Delay--)
{for(i=0;
i {;
}
}
main()
{intb;
while
(1)
{
P1=0X7f;
mDelay(5000);
for(b=0;
b {P1=P1>
>
1|0X80;
//P1=P1 mDelay(5000);
截图
3.每次原来的灯保留代码如下
Delay--){for(i=0;
1;
//P1=P1 }
篇三:
嵌入式实验流水灯
#include"
#defineLED11 #defineLED21 #defineLED31 #defineLED41 /***********************************************************************************************************Functionname:
DelayNS**Descriptions:
延时函数
**inputparameters:
uiDly值越大,延时时间越长**outputparameters:
无**Returnedvalue:
无
*********************************************************************************************************/voidDelayNS(uint32uiDly){
uint32i;
for(;
uiDly>
0;
uiDly--){for(i=0;
i /***********************************************************************************************************Functionname:
main**Descriptions:
跳线JP4短接,LED1闪烁**inputparameters:
无**outputparameters:
*********************************************************************************************************/intmain(void){
PINSEL1=PINSEL1&
(~(0x03 /*将设置为GPIO*/
IO0DIR=LED1;
/*设
置LED控制口为输出*/
IO0SET=LED1;
/*LED1熄灭*/
while
(1){
/*设置LED控制口为输出*/
/*LED1熄灭
LED1熄灭DelayNS(50);
*/
IO0CLR=LED1;
LED1点亮DelayNS(50);
IO0DIR=LED2;
设置LED控制口为输出IO0SET=LED2;
LED1熄灭
IO0SET=LED2;
IO0CLR=LED2;
IO0DIR=LED3;
设置LED控制口为输出IO0SET=LED3;
IO0SET=LED3;
IO0CLR=LED3;
*/*/