1、 实验预习要求: LPCXX GPIO管脚的设置和控制。 四、实验原理 输出实验,蜂鸣器控制 在 EasyARM2131 开发板上,接有一个蜂鸣器,由 控制,通过跳线JP11 选择连接。 蜂鸣器控制电路如所示。 图 3-1 蜂鸣器控制电路 如果跳线JP11 选择蜂鸣器,当 输出低电平时,蜂鸣器鸣叫,当 输出高电平则停止鸣叫。程序设置PINSEL0 使 连接GPIO,并通过IO0DIR将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位 口,控制蜂鸣器,流程图见图 3-2。 图 3-2 蜂鸣器控制实验流程图 2 GPIO 输出实验流水灯实验 单路LED 控制 EasyARM2131
2、开发板上有8 个独立的LED,分别由8 个GPIO口控制,现在使用其中一路进行实验,使用的电路如图 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 控制电路 当跳线
3、JP12 全部选择LED8LED1 后, 分别控制这8 路LED,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,程序清单所示为采用人为定义数组控制显示花样的实验程序,流程图如图 3-5 所示。 图 3-5 流水灯花样显示流程图 五、实验步骤 实验内容1步骤 启动集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程BeepCon_C。 在user组里编写主程序代码。 将EasyARM教学实验开发平台上的管脚与Beep跳线短接。 选择Project-Debug,启动AXD进行JLINK仿真调试。在工程窗口中选择D
4、ebugInRAM生成目标,然后编译连接工程(单击Make按钮)。如图所示。 选择 DebugInRAM 生成目标时,编译连接生成的目标代码就是用于在片内RAM 调试。 打开ADS开发环境下的【Edit】-【DebugInFLASH Settings.】,在”ARM fromELF”下Output format做如图选择,输出文件选择你的文件同一目录下,扩展名.HEX 全速运行程序,程序将会在的主函数中停止(因为main函数起始处默认设置有断点)。 单击Context Variable图标按钮(或者选择Processor Views-Variables)打开变量观察窗口,通过此窗口可以观察局部
5、变量和全局变量。选择System Views-Debugger Internals 即可打开LPCXX系列ARM7微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。 在FLASH 中调试 在工程窗口中选择 DebugInFLASH 生成目标,然后编译连接工程(单击Make 按钮)。 选择 DebugInFLASH 生成目标时,编译连接生成的目标代码就是用于在片内FLASH 调试。 编译连接通过后,按键盘的F5 键,启动AXD进行调试。注意,由于程序要烧写到片内FLASH,默认选项在每次装载FLASH 地址的
6、调试文件时,将会擦除FLASH 并下载代码到FLASH 中。篇二:嵌入式系统与单片机 流水灯 实验报告 中南大学 嵌入式系统与单片机 实 验 报 告 学生姓名 学 号 专业班级 指导教师 学 院 信息科学与工程学院 完成时间 XX年5月 实验名称 单片机流水灯。 实验目的 进一步熟悉keil仿真软件、伟福仿真器和实验板的使用。了解并熟悉实验板上单片机I/O口和LED灯的电路结构,掌握C51中单片机I/O口的编程方法,掌握顺序控制程序的简单编程。 实验原理 MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输
7、出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。 本实验用到的P1口内部结构如图3-1所示。作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引
8、脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1。通过C51程序的编写,可以使I/O口的每根引脚在不同的时间输出不同的0、1信号,从而控制外部的设备。 实验步骤 1. keil的使用: 新建项目-选择单片机型号-建C语言程序-添加到项目-设置项目-编译加载-选择仿真板 新建项目 添加到项目 设置项目 选择仿真板 2. 将实验板上51单片机的P1口的8根线与实验板上的8位LED灯连接,I/O口的一根引脚控制一个LED灯。根据实验板上LED的硬件连接,编写程序使8个LED灯从最下面依次点亮,每次只亮一盏灯。依此循环。 代码如下 #include vo
9、id 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;bP1=P11|0X80;/P1=P1mDelay(5000); 截图 3. 每次原来的灯保留 代码如下 Delay-) for(i=0;1;/P1=P1 篇三:嵌入式实验 流水灯 #include # define LED1 1 # define LED2 1 # define LED3 1 # define LED4 1 /* *
10、Function name: DelayNS * Descriptions: 延时函数 * input parameters: uiDly值越大,延时时间越长 * output 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: */
11、int main (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; */ */
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1