ARM课程设计报告GPIO—流水灯

合集下载

STM32实验-GPIO输出-流水灯实验报告

STM32实验-GPIO输出-流水灯实验报告

课程实验报告学院:专业: 2018年10月18日姓名学号班级指导老师课程名称嵌入式系统原理与应用实验成绩实验名称GPIO输出-流水灯1.实验目的通过一个经典的跑马灯程序,了解 STM32F1的IO口作为输出使用的方法。

通过代码控制开发板上的4个 LED灯交替闪烁,实现类似跑马灯的效果。

2.实验内容工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。

3.实验环境Windouws10 Keil uVision5 4.实验方法和步骤(含设计)(1)实验硬件连接图四个led灯如图连接到GPIO的6~9引脚上。

(2)软件分析使用到的GPIO端口需配置为输出模式,使用推挽(PP)模式输出,IO口速度为 50MHz。

(3)实验步骤①建立工程文件:导入程序运行需要的库,加入主程序,调试运行环境,使程序可以成功被编译和运行且没有错误和警告。

②安装JLINK驱动程序,点击下载按钮将程序烧写进开发板中。

③检查led灯是否逐一顺序点亮,能够通过调整程序使点亮顺序改变。

(4)原函数5.程序及测试结果6.实验分析与体会如果4个LED灯是与A口的PA1、PA2、PA3、PA4相连,将led.c文件中的“GPIOC”改为“GPIOA”,并将Pin_X改为对应的1~4脚。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);改为RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);实验日期: 2018 年 10 月 18 日成绩评定教师签名:年月日Welcome To Download欢迎您的下载,资料仅供参考!。

ARM课程设计报告GPIO—流水灯

ARM课程设计报告GPIO—流水灯
0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81//从两边叠加后递减
};
int main (void)
{
uint8 i;
//PINSEL1 = 0x00000000;//设置管脚连接GPIO
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
图2
流水灯程序:
/
#include "config.h"
/* LED8~LED1 8个LED分别由P1.25~P1.18控制*/
const uint32 LEDS8 = (0xFF << 18);// P1[25:18]控制LED8~LED1,低电平点亮
/*
*********************************************************************************************************
SSPCR1 = (0x00 << 3) | // SOD从机输出禁能,1=禁止,0=允许
(0x00 << 2) | // MS主从选择,0=主机,1=从机
(0x01 << 1) | // SSE SSP使能,1=允许SSP与其它设备通信
(0x00 << 0); // LBM回写模式
SSPCPSR = 0x52; // PCLK分频值
一、设计目的………………………………………………3
二、设计原理
1、GPIO—流水灯……………………………………3
2、SPI…………………………………………………7

ARM7流水灯课程设计

ARM7流水灯课程设计

ARM7流水灯课程设计一、课程目标知识目标:1. 学生理解ARM7处理器的基本结构和工作原理,掌握流水灯程序设计所需的基础知识。

2. 学生掌握C语言编程的基本语法和流程控制,能运用所学知识编写ARM7流水灯程序。

3. 学生了解嵌入式系统开发流程,熟悉Keil MDK集成开发环境和调试方法。

技能目标:1. 学生能独立设计并实现基于ARM7处理器的流水灯程序,具备一定的编程实践能力。

2. 学生通过课程学习,培养解决问题的能力,提高逻辑思维和动手实践能力。

3. 学生能够运用所学知识,对实际嵌入式项目进行需求分析和方案设计。

情感态度价值观目标:1. 培养学生对嵌入式系统开发的兴趣,激发学习热情,树立正确的学习态度。

2. 通过团队合作,培养学生的沟通与协作能力,提高团队意识。

3. 引导学生关注我国嵌入式技术的发展,增强民族自豪感,培养爱国主义情怀。

课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握嵌入式系统编程和开发方法。

学生特点:学生已具备一定的C语言基础和硬件知识,具有较强的学习能力和动手能力。

教学要求:结合课程性质和学生特点,注重理论与实践相结合,强调动手实践,提高学生的编程能力和实际操作技能。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. ARM7处理器基本原理:介绍ARM7处理器的内部结构、工作原理,重点讲解其指令集和编程模型。

相关教材章节:第1章 ARM处理器概述,第2章 ARM7处理器架构。

2. C语言编程基础:复习C语言基本语法,强调与ARM7编程相关的重要语法点和编程规范。

相关教材章节:第3章 C语言基础,第4章 C语言控制语句。

3. 嵌入式系统开发环境:介绍Keil MDK集成开发环境的使用方法,包括工程创建、代码编写、编译、下载和调试等。

相关教材章节:第5章 嵌入式系统开发工具。

4. 流水灯程序设计:讲解流水灯程序的原理和设计方法,引导学生通过实践掌握嵌入式系统编程。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告
实验目的:
通过编程实现单片机控制的流水灯电路的设计与实现,熟悉单片机的输入输出功能和简单的控制逻辑。

实验原理:
流水灯是一种常见的LED灯控制电路,通过依次点亮多个LED灯,从而形成“流水”的效果。

单片机作为控制中心,根据程序设计的指令,通过I/0口控制LED灯的状态。

实验材料:
1. STM32F103C8T6 ARM Cortex-M3开发板
2. 杜邦线
3. LED灯
4. 220 Ω电阻
实验步骤:
1. 将STM32F103C8T6开发板与电脑连接,打开开发板软件。

2. 将LED灯分别连接到开发板的引脚PA0-PA7。

3. 在开发板软件中新建一个工程,选择合适的模板,例如“BlinkLed”模板。

4. 在程序中编写控制流水灯的代码,控制LED灯的点亮和熄灭。

5. 通过编译、下载和运行,将程序烧录到STM32F103C8T6开发板中。

6. 接通电源,观察LED灯的闪烁情况,确认流水灯控制电路的正常工作。

实验结果与分析:
经过实验,我们成功设计和实现了单片机控制的流水灯电路。

LED灯按照预定的顺序依次点亮和熄灭,形成了流水灯的效果。

调整程序中的控制逻辑,可以改变流水的速度和方向,实现不同的灯光效果。

实验总结:
通过这次实验,我们深入了解了单片机的输入输出功能和简单的控制逻辑。

通过编写程序,实现了流水灯的控制,加深了对单片机的理解和应用。

在实验过程中,我们还学会了使用开发板软件进行工程的创建、编译、下载和调试操作,提高了工程能力和实践能力。

单片机实训报告_流水灯

单片机实训报告_流水灯

一、实验目的1. 掌握单片机的基本原理和操作方法。

2. 熟悉单片机编程环境Keil的使用。

3. 熟悉LED流水灯的原理和编程方法。

4. 培养动手实践能力和团队协作精神。

二、实验原理1. 单片机(Microcontroller Unit,MCU)是一种具有中央处理器(CPU)、存储器(RAM、ROM)和输入输出接口(I/O)等功能的集成电子电路。

它广泛应用于各种电子设备中,如家用电器、工业控制、汽车电子等。

2. LED(Light Emitting Diode,发光二极管)是一种半导体器件,具有单向导电性。

当电流通过LED时,会发出光亮。

3. 流水灯是一种通过控制LED灯的亮灭,模拟流水效果的电子装置。

在单片机控制下,可以实现不同形式的流水灯效果。

三、实验设备1. 单片机实验板(如STC89C52单片机实验板)2. LED灯若干3. 跳线若干4. 电阻若干5. 电源(5V)6. Keil软件四、实验步骤1. 硬件连接(1)将单片机的P1.0-P1.7引脚与LED灯的正极相连,负极接地。

(2)将电阻串联在LED灯和单片机引脚之间,起到限流作用。

(3)将单片机的VCC和GND分别连接到5V电源的正负极。

2. 软件编写(1)在Keil软件中创建一个新的项目,选择相应的单片机型号。

(2)编写主函数main(),实现流水灯的编程。

(3)初始化单片机的P1口为输出模式。

(4)定义延时函数Delay(),实现流水灯的延时效果。

(5)在主循环中,通过改变P1口的高低电平,控制LED灯的亮灭,实现流水灯效果。

(6)保存并编译程序。

3. 程序调试(1)将编译后的程序下载到单片机实验板中。

(2)观察LED灯的流水效果,检查程序是否正确。

(3)如有错误,修改程序并重新编译、下载。

五、实验结果与分析1. 实验结果通过实验,成功实现了LED流水灯效果,实现了不同形式的流水灯效果。

2. 实验分析(1)在实验过程中,学习了单片机的基本原理和操作方法,掌握了Keil软件的使用。

单片机课程设计报告流水灯(WORD档)

单片机课程设计报告流水灯(WORD档)

XX工程学院单片机课程设计报告题目:流水灯学生姓名:学号:系部名称:职业技术学院班级:机电一体化Z11-1 指导教师:目录摘要 (3)一、课程设计题目 (4)二、设计任务及要求 (4)三、实验方案 (4)四、流程图 (4)五、硬件电路 (6)六、软件设计 (6)1 主体程序 (6)2 键扫描子程序 (6)3 闪烁控制程序 (6)4 延时子程序 (6)5 源程序设计 (7)七、功能调试 (12)八、设计总结 (12)九、参考文献 (13)【摘要】单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。

了解软硬件的有关知识,并掌握软件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。

另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。

一、课程设计题目:流水灯二、设计任务及要求:任务:完成对接在P1,P3口的发光二极管闪亮控制程序的设计1.用程序延时方法让P1的一个LED小灯每隔1S交替闪亮2.用程序延时方法让P1的8个LED小灯循环(每个亮50MS)闪亮3.用程序延时方法让P1的8个LED小灯追逐闪亮(50MS间隔变化)4.用程序延时方法让P1、P3的16个LED小灯循环(每个亮50MS)闪亮要求:1. 根据硬件电路原理,画出接线2. 设计出相应的软件程序三、实验方案:方案:单片机采用40脚的89C52标准双列直插系列,有4个标准输入/输出端口共32位控制端口。

本次设计采用并行口低电平(吸电流)直接驱动LED发光管发光形式,选择了P1和P3口的16个端口进行模拟LED小灯控制,如要多些小灯单元可再将P2口、P0口及其他空余端口用LED小灯驱动控制。

因系统功能要求能控制灯亮的方式,在P0.0—P0.3端口接了4个按键小开关,每个小开关可控制一种亮灯方式。

在端口较紧张的情况下,LED小灯驱动也可用串入/并出移位寄存器(如74HC595),单片机用并行移位方式进行驱动。

arm实验报告——流水灯

arm实验报告——流水灯

实验六 ARM环境下汇编语言与C语言实验一、实验目的1 掌握基本的ARM汇编语言和C语言编程方法2 掌握ADS下C语言和汇编语言互相调用的方法3 深入理解ARM开发环境的体系结构4 初步掌握S3C2410的I/O口德操作方法5 巩固使用AXD和Multi-ICE调试的方法二、实验内容1 单独使用ARM汇编语言编写一个程序,在AXD下调试,观察结果。

2 采用内嵌汇编和C完成一个工程在AXD下调试,观察结果。

3 用C语言实现跑马灯功能。

三、实验设备1 硬件:DM2410B+实验系统PC机JTAG仿真器串口线2 软件:PC机操作系统ARM Developer Suiter v1.2Multi-ICE v2.2.5(Build1319)DNW2410(或超级终端)四、实验说明汇编语言程序实验程序程序代码如下:#include <string.h>#include "2410addr.h"#include "2410lib.h"//================================ //名称:Led_Test//功能:LED循环显示//参数: void//返回值: void//================================ void Led_Test(){unsigned long LED;Uart_Printf("Led_Test.\n");//GPBCON GPB10 [21:20] = 01 : Output//GPBCON GPB10 [19:18] = 01 : Output//GPBCON GPB10 [17:16] = 01 : Output//GPBCON GPB10 [15:14] = 01 : OutputrGPBCON &= (~(0x3<<20));rGPBCON |= ((0x1<<20));rGPBCON &= (~(0x3<<18));rGPBCON |= ((0x1<<18));rGPBCON &= (~(0x3<<16));rGPBCON |= ((0x1<<16));rGPBCON &= (~(0x3<<14));rGPBCON |= ((0x1<<14));//GPBDAT GPB[10:0] [10:0] : Output DatarGPBDAT = 0xf7f;Delay(100);Uart_Printf("PRESS ANY KEY TO STOP.");while (!Uart_GetKey()){LED = rGPBDAT;LED = (LED<<1); //下一个灯亮rGPBDAT = LED;Delay(200);if(!(rGPBDAT & 0x400)) //保证第四个LED点亮后重新点亮第一个LED;rGPBDAT=0xf7f;Delay(200);}Uart_Printf("\nTEST FINISHED.");}//============================//名称:delay//功能:延迟指定时间//参数: x//返回值: void//============================void delay(unsigned int x){unsigned int i,j,k;for(i=0;i<=x;i++)for(j=0;j<0xff;j++)for(k=0;k<0xff;k++);}六实验步骤第一大部分(目标机的连接):把开发板电源接口、Muilti-ICE Embeded接口连接好,如下图,然后打开开发板电源。

STM32 ARM C语言编程之流水灯

STM32 ARM C语言编程之流水灯

#include "stm32f10x.h"//头文件包含将stm32的函数库stm32f10x.h包进来#define RCC_GPIO_LED RCC_APB2Periph_GPIOF//宏定义LED使用的GPIO时钟#define LEDn 4//宏定义LED数量#define GPIO_LED GPIOF//宏定义LED灯所使用的gpio组#define DS1_PIN GPIO_Pin_6//宏定义LED1所使用的gpio管脚#define DS2_PIN GPIO_Pin_7//宏定义LED2所使用的gpio管脚#define DS3_PIN GPIO_Pin_8//宏定义LED3所使用的gpio管脚#define DS4_PIN GPIO_Pin_9//宏定义LED4所使用的gpio管脚GPIO_InitTypeDef GPIO_InitStructure;//gpio口初始化结构体ErrorStatus HSEStartUpStatus;// (等待时钟的稳定?)(使强制执行c规则)u8 count=0;//定义8位无符号数据变量void RCC_Configuration(void);//初始化stm32系统时钟void NVIC_Configuration(void);//定义中断管理初始化函数void Delay(vu32 nCount);//声明延时函数void Turn_On_LED(u8 LED_NUM);//LED控制函数int main(void){//配置GPIO口管脚模式RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE);//使能LED灯所使用的时钟GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN;//设定LED所使用的管脚,使之有效GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设GPIO口的输出模式为推免模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置GPIO口的输出时钟为50MHzGPIO_Init(GPIO_LED, &GPIO_InitStructure); //初始化LED灯所使用的管脚GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED 的GPIO口管脚为高电平,关闭所有LED灯while(1){GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);//置所有控制LED的GPIO口管脚为高电平,关闭所有LED灯Turn_On_LED(count%4);//点亮一个LED灯count++;Delay(0x2FFFFF);}}void Turn_On_LED(u8 LED_NUM){switch(LED_NUM){case 0:GPIO_ResetBits(GPIO_LED,DS1_PIN); //点亮DS1灯break;case 1:GPIO_ResetBits(GPIO_LED,DS2_PIN); //点亮DS2灯break;case 2:GPIO_ResetBits(GPIO_LED,DS3_PIN); //点亮DS3灯break;case 3:GPIO_ResetBits(GPIO_LED,DS4_PIN); //点亮DS4灯break;default:GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); //点亮所有的灯break;}}void Delay(vu32 nCount){while(nCount--);}。

STM32实验-GPIO输出-流水灯实验报告

STM32实验-GPIO输出-流水灯实验报告
GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
改为
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
课程实验报告
学院:专业:2018年10月18日
姓名
学号
班级
指导老师
课程名称
嵌入式系统原理与应用实验


实验名称
GPIO输出-流水灯
1.实验目的
通过一个经典的跑马灯程序,了解STM32F1的IO口作为输出使用的方法。通过代码控制开发板上的4个LED灯交替闪烁,实现类似跑马灯的效果。
2.实验内容
工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_Init(GPIOC, &GPIO_InitStructure);
欢迎您的下载,资料仅供参考!
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);
实验日期:2018年10月18日

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告引言单片机是一种集成电路,可以通过编程来控制不同的功能。

其中,流水灯是一个最简单的单片机实验项目,也是学习单片机的第一步。

本篇实验报告将详细介绍如何通过使用 AVR 单片机来实现一个流水灯的控制器。

实验原理流水灯的原理很简单,就是通过一个方向控制信号,以及一定的时间延时控制来逐步点亮和熄灭多个 LED 灯。

在本次实验中,我们将使用 AVR ATmega328P 单片机,它可以通过编程来实现流水灯的控制功能。

实验步骤1. 硬件准备将 ATmega328P 单片机插入到开发板中,并使用杜邦线将单片机的引脚连接到各个 LED 灯。

我们需要将一个引脚连接到方向控制信号,用于控制灯的点亮方向。

同时,我们还需要连接一个电位器,用于调节流水灯的速度。

2. 程序设计使用 Arduino 开发环境来编写 AVR 单片机的程序。

首先需要包含头文件 avr/io.h 和 util/delay.h,并定义输入输出引脚。

然后,我们需要定义一个名为“led” 的一个数组,来存储各个 LED 灯的输出状态。

同时,还需要定义一个变量“dir”,来表示流水灯的方向。

在程序主循环中,我们使用 for 循环来遍历各个 LED 灯。

同时,根据“dir”变量的不同,我们可以实现流水灯的正向和反向控制。

另外,我们还需要使用“_delay_ms()”函数来延时一定的时间,实现流水灯的闪烁效果。

3. 程序烧录使用 AVR ISP 编程器将编写好的程序烧录到单片机中。

在烧录过程中需要设置正确的程序和芯片类型,并选择正确的口线连接方式。

实验结果经过实际测试,我们成功地实现了一个流水灯控制器。

在调节电位器之后,灯的闪烁速度可以得到不同的调整。

同时,也可以通过改变方向控制信号来改变流水灯的运动方向。

结论通过本次实验可以学习到如何使用 AVR 单片机来实现一个简单的流水灯控制器。

通过编写程序、烧录编译等过程,可以加深对单片机的基础知识和理解。

实验2 GPIO实现LED流水灯

实验2 GPIO实现LED流水灯

实验二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寄存器其位域定义如表所列。

4.各引脚IOCON寄存器的位[2:0]配置不同的值所相应功能。

5.GPIO寄存器GPIO数据寄存器用于读取输入管脚的状态数据,或配置输出管脚的输出状态,表5-5对GPIOnDATA寄存器位进行描述。

GPIO的数据方向的设置是通过对GPIOnDIR寄存器的位进行与或操作实现的,LPC1100微处理器和8051单片机的GPIO不同,在使用前一定要先设置数据方向才能使用,6.发光二级管的工作电压和工作电流如何?___________________________________________________________________________ ___________________________________________________________________________ _________________________________________________________________________。

实验四、GPIO输出实验-流水灯

实验四、GPIO输出实验-流水灯

实验四:GPIO 输出控制实验一、实验目的1. 掌握LPC21XX 专用工程模板的使用;2. 掌握EasyJTAG 仿真器的安装和使用;3. 能够在EasyARM21XX 开发板上运行第一个程序(无操作系统);4. 熟悉LPC2000 系列ARM7 微控制器的GPIO 控制。

二、实验设备硬件:PC 机一台、EasyARM2103 开发板一套软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境三、实验内容控制EasyARM2103 开发板上的LED闪烁形成流水灯效果。

四、实验预习要求仔细阅读《EasyARM2103》手册第4 章的内容,熟悉GIPO的设置。

仔细阅读《EasyARM2103》第 2 章的内容,了解EasyARM2103 开发板的硬件结构,注意LED灯的相关控制电路。

仔细阅读《EasyARM2103》第 3 章的内容,了解ADS 1.2 集成开发环境、LPC2200 专用工程模板、EasyJTAG 仿真器的应用。

五、实验原理如何在EasyARM2103 上运行第一个程序。

安装ADS 1.2 (PC)了解ADS 1.2 (PC)连接EasyJTAG 仿真器和EasyARM2103 开发板(硬件)安装EasyJTAG 驱动程序(PC)添加工程模板(PC)用工程模板建立第一个工程(PC)仿真调试第一个工程(PC+硬件)说明:(PC) ----------------属于在PC 机上操作,即软件的操作(硬件) --------------属于开发板硬件操作(PC+硬件) --------属于在PC 机上进行软件操作,硬件上要连接或跳线操作六、实验步骤1. 连接EasyJTAG 仿真器和EasyARM2103 开发板,然后安装EasyJTAG 仿真器的驱动程序(若已经安装过,此步省略)。

2. 为ADS1.2 增加LPC2103 专用工程模板(若已增加过,此步省略)。

3. 启动ADS 1.2,使用ARM Executable Image for lpc2103 工程模板建立一个工程BeepCon_C。

基于GPIO的LED流水灯设计

基于GPIO的LED流水灯设计

基于GPIO的LED流水灯设计题目基于GPIO的LED流水灯设计姓名蒋娜学号 2010541230111系部电子信息工程系专业计算机控制技术指导教师李列文职称讲师2012 年 11 月 19 日长沙师范专科学校教务处制1目录摘要 (3)1 设计内容 ...................................................... 3 1.1 设计目的 ........................................................ 3 1.2 设计意义 ........................................................3 2 设计方案 ...................................................... 3 2.1 设计要求 ........................................................ 3 2.2 提出的问题 ...................................................... 3 3 看门狗电路的设计 ...............................................4 4 软件设计 ...................................................... 5 4.1 程序清单 ........................................................ 5 5 心得体会 ...................................................... 8 6 参考文献 (8)2看门狗的设计摘要:根据嵌入式系统的具体应用特点,应用常规看门狗芯片设计了一种看门狗电路,在未处理气进入休眠低功耗、编程、远程升级维护等模式时,看门狗功能被临时屏蔽,从而保障了这些模式的正常运行,该电路已应用在实际系统中,应用效果证明了设计的有效性。

ARM报告PWM和SPI流水灯

ARM报告PWM和SPI流水灯

龙岩学院实验报告班级07电本一班学号2007050326 姓名刘桂银同组人 ____________________ 实验日期2010.5.12 室温___________________ 大气压 _________ 成绩______实验题目:PWM 音乐输出、数码显示和LED 显示一、实验目的1、复习GPI0的管脚功能及蜂鸣器电路蜂鸣的工作原理。

2、复习SPI引脚、结构和工作原理3、熟悉7段数码管真值表的由来。

4、掌握PWM模块的基本原理及应用。

5、了解简谱和频率的关系6、锻炼学生自己的设计、创造和综合性。

二、实验仪器微型电子计算机(含软件H-JTAG V0.3.1和ADSv1_2)、Easy ARM2131开发板、UART0接口线、USB接口电源线和JTAG接口线以及部分跳线。

三、实验原理1、(1)蜂鸣器控制电路在EasyARM2131开发板上,接有一个蜂鸣器,由P0.7控制,通过跳线JP11选择连接。

蜂鸣器控制电路如图一所示。

图一蜂鸣器控制电路电路说明:如果跳线JP11选择蜂鸣器,当P0.7输出低电平时,蜂鸣器鸣叫,当P0.7输出高电平则停止鸣叫。

实验利用P0.7的输出功能,控制蜂鸣器鸣叫。

程序设置PINSEL0使P0.7连接GPIO,并通过IOODIR 将其设置为输出状态,然后通过IOOCLR和IOOSET清零和置位P0.7 口,控制蜂鸣器。

LPC2131中,具有I2C总线功能的I/O 口(P0.2 —SCL、P0.3 —SDA0 P0.11 —SCL1 P0.14 —SDA1)为开漏输出,在用作I2C 总线以及其它功能时,需要加1K〜10KQ的上拉电阻。

则此电路图在JP11前,力口R22=10K的上拉电阻。

(2)七段数码管在显示方面,EasyARM2131开发板采用了一片74HC595驱动一位静态共阳LED数码管,如图(a)所示,其时钟(SCK八数据(SI)分别接到LPC2131的SP接口的SCLK0、MOSI0 ,这样就可以发送数据到74HC595 ;片选(RCK , 即74HC595输出触发端)与P0.29 口连接,由P0.29控制74HC595数据锁存输出;而最高位输出(SQH)连接到LPC2131的SPI接口的MISO0 ,可用来读回数据。

ARM报告PWM和SPI流水灯

ARM报告PWM和SPI流水灯

龙岩学院实验报告班级07电本一班学号2007050326 姓名刘桂银同组人实验日期2010.5.12 室温大气压成绩实验题目:PWM音乐输出、数码显示和LED显示一、实验目的1、复习GPIO的管脚功能及蜂鸣器电路蜂鸣的工作原理。

2、复习SPI引脚、结构和工作原理3、熟悉7段数码管真值表的由来。

4、掌握PWM模块的基本原理及应用。

5、了解简谱和频率的关系6、锻炼学生自己的设计、创造和综合性。

二、实验仪器微型电子计算机(含软件H-JTAG V0.3.1和ADSv1_2)、Easy ARM2131开发板、UART0接口线、USB接口电源线和JTAG接口线以及部分跳线。

三、实验原理1、(1)蜂鸣器控制电路在EasyARM2131开发板上,接有一个蜂鸣器,由P0.7控制,通过跳线JP11选择连接。

蜂鸣器控制电路如图一所示。

图一蜂鸣器控制电路电路说明:如果跳线JP11选择蜂鸣器,当P0.7输出低电平时,蜂鸣器鸣叫,当P0.7输出高电平则停止鸣叫。

实验利用P0.7的输出功能,控制蜂鸣器鸣叫。

程序设置PINSEL0使P0.7连接GPIO,并通过IO0DIR 将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位P0.7口,控制蜂鸣器。

LPC2131中,具有I2C 总线功能的I/O口(P0.2-SCL、P0.3-SDA0;P0.11-SCL1、P0.14-SDA1)为开漏输出,在用作I2C总线以及其它功能时,需要加1K~10KΩ的上拉电阻。

则此电路图在JP11前,加R22=10K的上拉电阻。

(2)七段数码管在显示方面,EasyARM2131开发板采用了一片74HC595驱动一位静态共阳LED数码管,如图(a)所示,其时钟(SCK)、数据(SI)分别接到LPC2131的SPI接口的SCLK0、MOSI0,这样就可以发送数据到74HC595;片选(RCK,即74HC595输出触发端)与P0.29口连接,由P0.29控制74HC595数据锁存输出;而最高位输出(SQH)连接到LPC2131的SPI接口的MISO0,可用来读回数据。

最新单片机实验流水灯报告

最新单片机实验流水灯报告

最新单片机实验流水灯报告在本次实验中,我们设计并实现了一个基于单片机的流水灯系统。

该系统的主要功能是通过编程控制LED灯按照一定的顺序和时间间隔依次点亮和熄灭,从而形成流水灯效果。

以下是实验的详细报告:实验目的:1. 熟悉单片机的基本操作和编程。

2. 掌握GPIO(通用输入输出)的配置和使用。

3. 提高编程能力,理解时间控制的概念。

实验材料:- 单片机开发板- LED灯若干- 杜邦线若干- 电源适配器- 计算机及相应的编程软件实验步骤:1. 首先,将LED灯通过杜邦线连接到单片机的GPIO端口上。

确保每个LED连接正确,并且限流电阻已经安装以保护LED不被烧毁。

2. 使用编程软件编写单片机程序。

程序的主要逻辑是通过循环结构控制每个GPIO端口的高低电平,从而控制LED的亮灭。

3. 在程序中设置适当的延时函数,以控制LED点亮和熄灭的时间间隔,实现流水灯的效果。

4. 将编写好的程序通过编程软件下载到单片机中。

5. 连接电源,观察LED灯是否按照预期进行流水式点亮。

实验结果:通过实验,我们成功实现了流水灯效果。

LED灯按照预定的顺序依次点亮和熄灭,形成了流畅的动态效果。

通过调整延时参数,我们还可以改变流水的速度,从而观察不同设置下的灯光变化。

实验分析:在实验过程中,我们发现GPIO端口的配置对于LED的亮灭至关重要。

同时,延时函数的精确度直接影响了流水灯效果的平滑度。

通过对程序的不断调试和优化,我们加深了对单片机编程和硬件控制的理解。

结论:本次单片机实验不仅锻炼了我们的编程技能,而且增强了我们对电子硬件的认识和操作能力。

通过实际操作,我们更加深刻地理解了理论知识,为未来的电子设计和创新打下了坚实的基础。

基于GPIO的LED流水灯设计

基于GPIO的LED流水灯设计

学生课程设计题目基于GPIO的LED流水灯设计姓名蒋娜学号2010541230111 系部电子信息工程系专业计算机控制技术指导教师李列文职称讲师2012 年11 月19 日长沙师范专科学校教务处制目录摘要 (3)1 设计内容 (3)1.1设计目的 (3)1.2设计意义 (3)2 设计方案 (3)2.1设计要求 (3)2.2提出的问题 (3)3 看门狗电路的设计 (4)4 软件设计 (5)4.1程序清单 (5)5 心得体会 (8)6 参考文献 (8)看门狗的设计摘要:根据嵌入式系统的具体应用特点,应用常规看门狗芯片设计了一种看门狗电路,在未处理气进入休眠低功耗、编程、远程升级维护等模式时,看门狗功能被临时屏蔽,从而保障了这些模式的正常运行,该电路已应用在实际系统中,应用效果证明了设计的有效性。

关键词:看门狗;低功耗;嵌入式系统1 设计内容1.1 设计目的看门狗的设计是为了实现一种灵活配置、多复位输出的看门狗电路(且复位时间可调),实现了在系统被复位前做好重要自愿的备份工作以满足具体的应用需求。

1.2 设计意义随着电子系统朝规模大、体积小、速度快等特点发展,关于看门狗电路的设计也层出不穷,以降低成本和空间,意法半导体退出一款看门狗定时器芯片STWD100,提供多种配置规格,超时设定包括3.4ms,6.3ms,102ms或者1.6s,另外还通过增加一个芯片使能输入接口,以实现当微处理器在系统编程或系统开机期间防止自动生成复位信号,为开发人员控制和管理应用提供了更好的灵活性。

2 设计方案2.1 设计要求通常,硬件看门够只能监测微处理器是否正常“清狗”,却不能监测软件是否工作正常,特别是任务功能十分正常,因此,此设计提出了一种软件看门狗的设计思路,对软件任务在执行时间上进行时间约束利定时器对软件任务计时,当任务的执行时间超过了最大指定时间,将这个任务所使用的资源释放,也就是将这个任务复位,等待下一次的执行,以弥补或克服硬件看门狗电路的不足。

ARM 流水灯实验

ARM 流水灯实验

《ARM单片机原理》实验指导书殷群2010年2月昆明理工大学应用技术学院实验三流水灯实验一、实验目的与要求1.认识LPC2103单片机的硬件电路;2.学习用C语言编写延时子程序3.学习用仿真软件模拟流水灯;二、实验设备计算机三、实验原理电路P0口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。

实验电路如下:四、实验内容与步骤1.编写程序,使LED1一闪一闪;C源程序:#include<lpc2103.h>void Delay(void){int N=5000;while(N--);}int main(void){PINSEL0 = 0x000000;IODIR = 1<<0 ;IOCLR = 1<<0 ;while(1){IOSET = 1<<0;Delay();IOCLR = 1<<0;}}2.编写程序,使LED1——LED2顺序点亮;C源程序:#include<lpc2103.h>void Delay(void){int N=500000;while(N--);}int main(void){PINSEL0 = 0x000000;IODIR = 1<<0 | 1<<1;IOCLR = 1<<0 | 1<<1;while(1){IOSET = 1<<0;Delay();IOCLR = 1<<0;IOSET = 1<<1;Delay();IOCLR = 1<<1;}}3.编写程序,使LED1——LED8顺序点亮;C源程序:#include<lpc2103.h>void Delay(void){int N=500000;while(N--);}int main(void){PINSEL0 = 0x000000;IODIR = 1<<0 | 1<<1| 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7; IOCLR = 1<<0 | 1<<1| 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7; while(1){IOSET = 1<<0;Delay();IOCLR = 1<<0;IOSET = 1<<1;Delay();IOCLR = 1<<1;IOSET = 1<<2;Delay();IOCLR = 1<<2;IOSET = 1<<3;Delay();IOCLR = 1<<3;IOSET = 1<<4;Delay();IOCLR = 1<<4;IOSET = 1<<5;Delay();IOCLR = 1<<5;IOSET = 1<<6;Delay();IOCLR = 1<<6;IOSET = 1<<7;Delay();IOCLR = 1<<7;}}4.C源程序并下装到LPC2103单片机,观察发光二极管的点亮效果;。

ARM流水灯课设

ARM流水灯课设

一.Cortex系列ARM核心及体系结构介绍众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。

ARM一直以来都是自己研发微处理器内核架构,然后将这些架构的知识产权授权给各个芯片厂商,精简的CPU 架构,高效的处理能力以及成功的商业模式让ARM公司获得了巨大的成功,使他迅速占据了32位嵌入式微处理器的大部分市场份额,甚至现在,ARM芯片在上网本市场的也大有与INTEL的ATOM处理器一较高低的实力。

目前,随着对嵌入式系统的要求越来越高,作为其核心的嵌入式微处理器的综合性能也受到日益严峻的考验,最典型的例子就是伴随3G网络的推广,对手机的本地处理能力要求很高,现在一个高端的智能手机的处理能力几乎可以和几年前的笔记本电脑相当。

为了迎合市场的需求,ARM公司也在加紧研发他们最新的ARM架构,Cortex系列就是这样的产品。

在Cortex之前,ARM核都是以ARM为前缀命名的,从ARM1一直到ARM11,之后就是Cortex系列了。

Cortex在英语中有大脑皮层的意思,而大脑皮层正是人脑最核心的部分,估计ARM公司如此命名正有此含义吧。

发布于2005年,根据应用和需求划分成整套系列的完整解决方案Cortex-A:针对复杂OS和应用程序Cortex-R:针对实时系统的嵌入式处理器Cortex-M:针对价格敏感应用领域的嵌入式处理器ARM Cortex处理器系列都是基于ARMv7架构的产品,从尺寸和性能方而来看,既有少于33000个门电路的Cortex-M系列,也有高性能的Cortex-A系列。

其中,Cortex-A系列是针对日益增长的,运行包括Linux、Windows,CE和Symbian操作系统在内的消费娱乐和无线产品设计的;ARM Cortex-R系列针对的是需要运行实时操作系统来进行控制应用的系统,包括汽车电子、网络和影像系统;ARM Cortex-M系列则面向微控制器领域,为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用所设计的。

单片机实验报告流水灯

单片机实验报告流水灯

单片机实验报告流水灯单片机实验报告:流水灯引言:单片机是现代电子技术中非常重要的一部分,它广泛应用于各个领域,如家电、汽车、通信等。

单片机实验是学习单片机的基础,通过实际操作来理解单片机的原理和应用。

本报告将介绍一个常见的单片机实验项目——流水灯实验。

一、实验目的流水灯实验旨在通过控制单片机的IO口,实现多个LED灯按照顺序依次点亮和熄灭的效果。

通过这个实验,可以加深对单片机IO口的控制和编程的理解。

二、实验器材1. 单片机开发板:我们使用的是STC89C52开发板,它是一种基于8051内核的单片机开发板。

2. LED灯:我们使用了8个LED灯,分别连接到单片机开发板的8个IO口上。

3. 连接线:用于连接单片机开发板和LED灯。

三、实验原理流水灯实验的原理很简单,通过控制单片机的IO口输出高低电平来控制LED灯的亮灭。

当某个IO口输出高电平时,对应的LED灯点亮;当IO口输出低电平时,对应的LED灯熄灭。

四、实验步骤1. 连接电路:将8个LED灯分别连接到单片机开发板的8个IO口上,确保连接正确。

2. 编写程序:使用C语言编写单片机程序,控制IO口的高低电平变化。

程序的主要逻辑是通过一个循环,依次将某个IO口输出高电平,然后延时一段时间,再将该IO口输出低电平,再延时一段时间,以此循环实现流水灯的效果。

3. 烧录程序:将编写好的程序烧录到单片机开发板中,确保程序能够正确运行。

4. 调试实验:将单片机开发板连接到电源,观察LED灯是否按照预期的顺序点亮和熄灭。

如果有问题,可以通过调试程序或检查电路连接来解决。

五、实验结果经过调试和实验,我们成功地实现了流水灯的效果。

8个LED灯按照顺序依次点亮和熄灭,形成了一个流动的灯光效果。

这个实验不仅让我们学习了单片机的IO口控制,还提高了我们的动手能力和解决问题的能力。

六、实验总结通过这个实验,我们深入了解了单片机的原理和应用。

单片机作为一种微型计算机,具有体积小、功耗低、成本低等优点,广泛应用于各个领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的………………………………………………3
二、设计原理
1、GPIO—流水灯……………………………………3
2、SPI…………………………………………………7
3、定时器………………………………………………10
4、实时时钟……………………………………………12
三、所用仪器…………………………………………………18
七、参考文献……………………………………………………29
一、设计目的
1、根据要求,复习巩固ARM的基础知识。
2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。
3、熟练掌握ARM软件和2131开发板的使用。
4、提高综合运用所学的理论知识独立分析和解决问题的能力;
二、设计原理
1、GPIO—流水灯
四、EasyARM2131开发套件功能介绍………………………18
五、设计内容:万年历-定时器-流水灯-SPI
1、功能描述………………………………………………21
2、流程图…………………………………………………22
3、程序设计………………………………………………22
六、心得体会…………………………序:
/
#include "config.h"
/* LED8~LED1 8个LED分别由P1.25~P1.18控制*/
const uint32 LEDS8 = (0xFF << 18);// P1[25:18]控制LED8~LED1,低电平点亮
/*
*********************************************************************************************************
*/
/*流水灯花样,低电平点亮,注意调用时候用了取反操作*/
const uint32 LED_TBL[] = {
0x00, 0xFF,//全部熄灭后,再全部点亮
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,//依次逐个点亮
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,//依次逐个叠加
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01,//依次逐个递减
0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81,//两个靠拢后分开
0xA0, 0x50, 0x7e, 0x28, 0x14, 0x0A, 0x05, 0x82,
所有I/O口在复位后默认为输入。
应用:
通用I/O口
驱动LED或其它指示器
控制片外器件
检测数字输入
(3)GPIO引脚描述
GPIO管脚描述见表4.1。
表4.1 GPIO管脚描述
管脚连接设置
将相应管脚的PINSELn位设置为00,即选择GPIO功能;大部分管脚复位后默认为GPIO。
3、GPIO寄存器
LPC2138有2个32位的通用I/O口。PORT0使用了30个管脚,PORT1有多达16个管脚可用GPIO功能。PORT0和PORT1由2组(4个)寄存器控制,如表4.2所示。
当管脚选择GPIO功能时,有IOSET、IOCLR和IOPIN 3个寄存器用于控制GPIO的使用。IOSET用于口线置位,而IOCLR则用于口线清零,IOPIN则反映当前IO口的状态,读回IOSET则反映当前IO口设定状态。
(2)GPIO的特性和应用
特性:
单个位的方向控制;
单独控制输出的置位和清零;
IO1DIR = LEDS8;//设置LED1控制口为输出
表4.2 GPIO寄存器映射
4. GPIO输出实验——流水灯实验
EasyARM2131开发板上的8路LED(LED8~LED1)分别可选择P1[25:18]进行控制,电路如图1所示。
图1
当跳线JP12全部选择LED8~LED1后,P1.25~P1.18分别控制这8路LED,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,流程图如图2所示。
**函数名称:DelayNS()
**函数功能:长软件延时
**入口参数:dly延时参数,值越大,延时越久
**出口参数:无
*********************************************************************************************************
0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81//从两边叠加后递减
};
int main (void)
{
uint8 i;
//PINSEL1 = 0x00000000;//设置管脚连接GPIO
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
(1)LPC2131具有多达47个通用I/O口(GPIO,General Purpose I/O ports),分别为P0[31:0]、
P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。
*/
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<100000; i++);
}
/*
*********************************************************************************************************
**函数名称:main()
**函数功能:流水灯显示实验。
**调试说明:连接跳线JP12至LED8~LED1。
*********************************************************************************************************
相关文档
最新文档