嵌入式操作系统跑马灯实验报告
嵌入式系统课程设计 跑马灯报告
嵌入式系统课程设计报告学部专业学号姓名指导教师日期一、实验内容设计msp430单片机程序并焊接电路板,利用msp430单片机芯片实现对跑马灯、按键识别及数码显示这三大模块的控制二、实验目的1.熟悉电路原理图,了解单片机芯片与各大模块间的控制关系2.增强看图和动手设计能力,为将来从事这个专业及相关知识奠定基础3.在焊接的同时,理解源程序是如何实现相应功能的三、实验设备及器材清单实验设备:电烙铁、烙铁架、尖嘴钳、斜口钳、镊子、万用表等器材清单:四、硬件电路框图五、程序清单跑马灯程序#include <MSP430X14X.H>#define uchar unsigned char#define uint unsigned intint main( void ){void delay( );WDTCTL = WDTPW + WDTHOLD; unsigned char i=0,j=0;P2DIR=0XFF;P2SEL=0X00;while(1){for(i=0;i<10;i++){P2OUT=0XFF;delay(50);P2OUT=0X00;delay(50);}for(j=0;j<10;j++){P2OUT=0X55;delay(50);P2OUT=0XAA;delay(50);}}}void delay(uint n){uint a,b;for(a=0;a<=n;a++){for(b=0;b<=1538;b++);}}键盘程序#include "msp430x14x.h"int keyvalue=0;int i;int table[]={0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07};void main( void ){WDTCTL = WDTPW + WDTHOLD; // 关看门狗P3DIR|=0X0b; //P3.0 P3.1 P3.3设置为输出状态P3SEL=0X0a; //选择P.1 P3.3为外围器件功能使用P3OUT=0X00; //P3引脚低电平P3OUT=0XFF; //P3引脚高电平P4DIR=0X00; //P4.0-P4.7引脚设置为输入P4SEL=0X00; //选择P4.0-P4.7为外围器件功能使用,即按键的输入口P1DIR=0X00; //P1.0-P1.7引脚设置为输入P1SEL=0X08; //选择P1.3为外围器件功能使用P1IE=0X08; //P1.3中断使能P1IES=0X08; // 下降沿中断标志置位U0CTL=SWRST; //UART逻辑为复位状态,可以设置串口U0CTL=CHAR+SYNC+MM; //8位数据位,SPI模式,地址位多机协议U0TCTL=SSEL1+SSEL0+STC;//选择主时钟MCTL,3端SPI,STE禁止U0TCTL=CKPH; //UCTL时钟信号延迟半个周期U0TCTL=~CKPL; //CKPL=1,时钟信号的高电平位无效电平U0BR0=0X02; //波特率2分频U0BR1=0X00;U0MCTL=0X00;ME1|=USPIE0; //串口0同步模块使能U0CTL&=~SWRST; //UART处于工作状态while(1){for(i=0;i<8;i++){if((P4IN&0x01<<i)==0X00) //按下1键(低电平)1111 1110&0000 0001=00000 0000==0x00//按下2键(低电平)1111 1101&0000 0010=0000 0000==0x00{keyvalue=table[i]; //按下1键keyvalue=0x3f 按下2键eyvalue=0x06U0TXBUF=keyvalue; //接收数据缓存//while((IFG1&UTXIFG0)==0);//IFG1&=~UTXIFG0;}}}}#pragma vector=PORT1_VECTOR //进入中断程序__interrupt void port1_vr(void){P3OUT=0X00; //P3输出低电平}六、实验小结时间过的很快,这个学期的MSP430单片机结束了,随之而来的课程设计也要结束了。
嵌入式跑马灯实验
一、实验名称:跑马灯二、实验要求:编写程序控制跑马灯的亮灭:首先是全不亮,接着第1个灯亮,第2个灯亮,第3个灯亮,第4个灯亮,最后所有的灯一起亮,即按顺序亮,然后全亮,最后全灭,顺序循环。
最后蜂鸣器响,然后灯全部灭。
三、实验步骤1、点击WINDOWS 操作系统的开始-> 程序-> ARM Developer Suite v1.2 ->CodeWarrior forARM Developer Suite 启动ADS1.2 IDE 或双击CodeWarrior for ARMDeveloper Suite 快捷方式起动启。
2、打开原有的有关跑马灯实验的工程。
3、源程序代码:。
/******************************************************************** ********* File:LEDCON.C* 功能:LED闪烁控制。
对发光二极管LED4进行控制,采用软件延时方法。
* 使用I/O口直接控制LED,采用灌电流方式。
* 说明:将跳线器JP8_LED4短接。
********************************************************************* *******/#include "config.h"#define LEDCON4 0x00002000 /* P0.13引脚控制LED4,低电平点亮*/#define LEDCON1 0x00000400 /* P0.10引脚控制LED1,低电平点亮*/#define LEDCON2 0x00000800 /* P0.11引脚控制LED2,低电平点亮*/#define LENCON3 0x00001000 /* P0.12引脚控制LED3,低电平点亮*/#define BEEP 0x00000080 /* P0.7引脚控制蜂鸣器,低电平响*/#define ALL 0x00003C80#define LEDALL 0x00003C00/******************************************************************** ********* 名称:DelayNS()* 功能:长软件延时* 入口参数:dly 延时参数,值越大,延时越久* 出口参数:无********************************************************************* *******/void DelayNS(uint32 dly){ uint32 i;for(; dly>0; dly--)for(i=0; i<50000; i++);/******************************************************************** ********* 名称:main()* 功能:控制LED闪烁********************************************************************* *******/int main(void){ PINSEL0 = 0x00000000; // 设置所有管脚连接GPIOPINSEL1 = 0x00000000;IODIR = ALL; // 设置ALL控制口为输出while(1) //实现循环{IOSET =ALL;//初始化所有的灯灭IOSET =BEEP;// 蜂鸣器不响IOCLR = LEDCON1; //低电平灯亮DelayNS(100); //延迟时间IOSET = LEDCON1; //高电平灯灭DelayNS(100); //延迟时间IOCLR = LEDCON2;DelayNS(100);IOSET = LEDCON2;DelayNS(100);IOCLR = LEDCON3;DelayNS(100);IOSET = LEDCON3;DelayNS(100);IOCLR = LEDCON4;DelayNS(100);IOSET = LEDCON4;DelayNS(100);IOCLR =ALLLED;//所有的灯亮DelayNS(100);IOCLR =BEEP;//蜂鸣器响DelayNS(100);}return(0);4、调试程序观察实验结果。
嵌入式系统实训报告5--走马灯
《嵌入式系统技术》实训报告1、实验目的z 熟悉ADS开发环境调试环境。
z 掌握简单的ARM汇编指令的使用方法。
z 掌握S3C2440A的I/O控制寄存器的配置。
z 掌握ARM汇编指令和C语言相互调用的方法2、实验设备z PC机、ARM仿真器、2440实验箱、串口线。
3、实验内容z 熟悉ARM开发环境的建立。
z 使用ARM汇编和C语言设置GPIO 口的相应寄存器。
z 编写跑马灯程序。
4、实验原理C程序与汇编程序相互调用规则为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规贝农ATPCS即ARM Thumb过程调用标准(ARM/Thumb Procedure Call Standard),是ARM程序和Thumb程序中子程序调用的基本规则,它规定了一些子程序间调用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规则等。
下面结合实际介绍几种ATPCS规则,如果读者想了解更多的规则,可以查看相关的书籍籍。
1. 基本ATPCS基本ATPCSS定了在子程序调用时的一些基本规则,包括下面3方面的内容:(1) 各寄存器的使用规则及其相应的名称。
(2) 数据栈的使用规则。
(3) 参数传递的规则。
相对于其它类型的ATPCS满足基本ATPCS勺程序的执行速度更快,所占用的内存更少。
但是它不能提供以下的支持:ARM程序和Thumb程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。
而派生的其他几种特定的ATPCS就是在基本ATPCS的基础上再添加其他的规则而形成的。
其目的就是提供上述的功能。
2.寄存器的使用规则寄存器的使用必须满足下面的规则:(1) 子程序间通过寄存器R0〜R3来传递参数。
这时,寄存器R0〜R3可以记作A0〜A3。
被调用的子程序在返回前无需恢复寄存器R0〜R3的内容。
(2) 在子程序中,使用寄存器R4〜RII来保存局部变量。
嵌入式实训跑马灯报告
一、引言随着科技的飞速发展,嵌入式系统在各个领域得到了广泛的应用。
为了更好地了解嵌入式系统的开发过程,提高自己的实践能力,我参加了嵌入式实训课程,并完成了跑马灯项目的开发。
本文将详细介绍跑马灯项目的背景、设计思路、实现过程以及总结和反思。
二、项目背景跑马灯是一种常见的嵌入式应用,其基本功能是在屏幕上显示不断滚动的文字。
跑马灯项目旨在通过实践,让我们掌握嵌入式系统开发的基本流程,包括硬件选型、软件开发、调试与优化等。
三、设计思路1. 硬件选型跑马灯项目主要涉及硬件部分有:单片机、显示模块、按键模块、电源模块等。
考虑到成本和易用性,我选择了基于STC89C52单片机的硬件平台,该单片机具有丰富的外设资源,且价格低廉。
2. 软件设计跑马灯项目主要涉及软件设计,包括主程序、显示模块、按键模块等。
(1)主程序:负责跑马灯的基本功能,包括文字显示、滚动速度调整、按键控制等。
(2)显示模块:负责将文字显示在屏幕上,包括字体选择、颜色设置等。
(3)按键模块:负责实现按键功能,包括启动/停止跑马灯、调整滚动速度等。
3. 调试与优化在软件开发过程中,需要不断调试和优化程序,以提高跑马灯的性能。
主要优化方向包括:(1)优化程序结构,提高代码可读性和可维护性。
(2)优化显示模块,提高显示效果。
(3)优化按键模块,提高按键响应速度。
四、实现过程1. 硬件搭建首先,根据设计图纸,焊接电路板,连接单片机、显示模块、按键模块等硬件设备。
2. 软件编写(1)主程序:编写主程序,实现跑马灯的基本功能。
(2)显示模块:编写显示模块,实现文字显示、颜色设置等功能。
(3)按键模块:编写按键模块,实现按键控制功能。
3. 调试与优化在软件开发过程中,使用示波器、逻辑分析仪等工具进行调试,观察程序运行情况,发现问题并及时修改。
经过多次调试,跑马灯项目最终实现预期功能。
五、总结与反思1. 总结通过本次嵌入式实训,我掌握了跑马灯项目的开发过程,包括硬件选型、软件开发、调试与优化等。
心形跑马灯实训报告
一、实训目的本次心形跑马灯实训旨在通过实际操作,让学生掌握心形跑马灯的设计原理、电路搭建、编程控制以及实际应用等方面的知识。
通过实训,提高学生的动手能力、创新能力和团队协作能力,同时加深对电子技术、嵌入式系统及编程的理解。
二、实训背景随着科技的发展,嵌入式系统在日常生活中得到了广泛应用。
心形跑马灯作为一种新颖的电子装饰品,具有较高的观赏性和实用性。
本实训项目以心形跑马灯为载体,让学生在实训过程中学习相关知识,培养创新意识。
三、实训内容1. 心形跑马灯设计原理心形跑马灯采用LED灯珠作为显示单元,通过单片机控制LED灯珠的亮灭,形成动态的心形图案。
设计原理主要包括以下几个方面:(1)心形图案设计:通过数学公式计算心形图案的坐标点,将坐标点映射到LED灯珠上。
(2)LED灯珠驱动电路:设计LED灯珠的驱动电路,确保LED灯珠正常工作。
(3)单片机控制电路:设计单片机控制电路,实现LED灯珠的亮灭控制。
2. 心形跑马灯电路搭建(1)电路元器件:主要包括单片机、LED灯珠、电阻、电容、面包板、导线等。
(2)电路搭建步骤:①根据设计原理,设计电路图。
②在面包板上搭建电路,连接单片机、LED灯珠、电阻、电容等元器件。
③检查电路连接是否正确,确保电路正常工作。
3. 心形跑马灯编程控制(1)编程环境:使用C语言进行编程。
(2)编程步骤:①初始化单片机端口,设置LED灯珠的亮灭模式。
②编写心形图案的生成函数,计算心形图案的坐标点。
③编写控制LED灯珠亮灭的函数,实现心形图案的动态显示。
4. 心形跑马灯实际应用(1)展示平台:将心形跑马灯应用于各类活动、展览等场合,展示其独特魅力。
(2)应用场景:如商场、酒店、旅游景点等。
四、实训过程1. 理论学习:首先,学生对心形跑马灯的设计原理、电路搭建、编程控制等方面进行理论学习,了解相关知识。
2. 电路搭建:在面包板上搭建心形跑马灯电路,连接元器件,确保电路正常工作。
3. 编程实践:使用C语言编写心形跑马灯的代码,实现心形图案的动态显示。
ARM嵌入式跑马灯设计实验报告
ARM嵌入式设计实验报告题目:跑马灯的设计专业:班级:姓名:学号:指导教师:2014年11 月目录1 题目要求 (1)2 设计软件的安装 (1)3 开发平台的搭建 (4)4 项目设计 (8)4.1 设计思路概述 (8)4.1.1 设计层次介绍 (9)4.1.2 设计模块介绍 (12)5总结 (16)1.题目要求:在windows系统上安装一个Linux操作系统,并且在自己搭建的平台上实现跑马灯的设计。
1.1.实验工具:计算机 linux操作系统1.1.2.实验目的:熟练掌握arm开发环境的设计,了解跑马灯的编程。
2.设计软件的安装:本项目设计软件为ReHat Linux 9.0操作系统,实验开发平台为MagicARM270具体关键安装步骤如下:3.开发平台的搭建:实验步骤(1)安装交叉编译器将光盘提供的交叉编译器安装包arm-linux-3.4.1.tar.bz2复制到某个目录下,然后进行解压安装,指定安装路径为/usr/local/arm。
# tar xjvf arm-linux-3.4.1.tar.bz2 -C /usr/local/arm注意:安装交叉编译器需要root权限,请使用root登录或者使用su命令增加root权限。
(2)设定交叉编译器路径修改/etc/profile文件,在其中增加arm-linux-gcc的路径,然后重新登录:# Path manipulationif [ `id -u` = 0 ]; thenpathmunge /sbinpathmunge /usr/sbinpathmunge /usr/local/sbinpathmunge /usr/local/arm/3.4.1/bin ⇓增加此行fi(3)设置宿主机网络从RedHat Linux的Main Menu菜单,选择System Settings◊Network,打开网络配置界面。
(4)设置宿主机网络双击eth0,在弹出的界面进行具体的网络设置,如IP地址、子网掩码等信息。
嵌入式系统原理实验三跑马灯
嵌入式系统原理实验三跑马灯(共4页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验三跑马灯实验实验目的:通过一个经典的跑马灯程序,了解 STM32F1 的 IO 口作为输出使用的方法。
通过代码控制 ALIENTEK 战舰 STM32 开发板上的两个 LED: DS0 和DS1 交替闪烁,实现类似跑马灯的效果内容要点:1.硬件设计本章用到的硬件只有LED(DS0 和DS1)。
其电路在ALIENTEK 战舰STM32F103 开发板上默认是已经连接好了的。
DS0 接PB5,DS1 接PE5。
所以在硬件上不需要动任何东西。
其连接原理图如图:2.软件设计跑马灯实验我们主要用到的固件库文件是:/stm32f10x_usart /其中头文件在每个实验中都要引入,因为系统时钟配置函数以及相关的外设时钟使能函数都在这个其源文件中。
和头文件在我们SYSTEM 文件夹中都需要使用到,所以每个实验都会引用。
首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE 的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新建一个LED 文件夹,用来存放与LED 相关的代码。
新建和文件,一个外设对应一个.h和.c文件。
在Manage Components 管理里面新建一个HARDWARE 的组,并把加入到这个组里面,将头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。
一般的格式如下:#ifndef __LED_H#define __LED_H……#endif第一次调用时会将#define下面这一节全部定义,重复调用时,下面的东西就不会被引用。
头文件里一般用来写函数声明或者宏定义,在源文件中再去定义具体的函数。
#ifndef __LED_H#define __LED_Hvoid LED_Init(void);#endif然后我们打开USER 文件夹下的工程(如果是使用的上面新建的工程模板,那么就是Template. uvprojx,大家可以将其重命名为LED. uvprojx),按新建按钮新建一个文件,然后保存在HARDWARE->LED 文件夹下面,保存为。
嵌入式跑马灯实验报告
嵌入式跑马灯实验报告嵌入式跑马灯实验报告引言:嵌入式系统是现代科技中的重要一环,它融合了计算机科学和电子工程的知识,被广泛应用于各个领域。
而跑马灯作为嵌入式系统中的一个经典实验,不仅能够帮助我们理解嵌入式系统的原理,还能够培养我们的动手能力和创新思维。
本篇实验报告将详细介绍嵌入式跑马灯实验的设计与实现过程,并总结实验中的收获和经验。
一、实验背景跑马灯是一种常见的电子显示器件,它能够按照一定的规律闪烁或滚动显示文字、图案等内容。
在本次实验中,我们将使用嵌入式系统来设计一个跑马灯,并通过编程控制其显示效果,从而加深对嵌入式系统的理解和应用。
二、实验材料1. 嵌入式开发板:我们选择了一款基于ARM架构的开发板,具有较高的性能和丰富的外设接口,适合进行跑马灯实验。
2. LED灯:我们使用了8个LED灯作为跑马灯的显示元素,通过控制每个LED的亮灭状态,实现跑马灯的效果。
3. 连接线:用于将开发板和LED灯进行连接,确保信号的传输和控制的准确性。
三、实验设计与实现1. 硬件连接:首先,我们将LED灯与开发板的GPIO口进行连接。
通过查阅开发板的引脚图,我们确定了每个LED灯对应的GPIO引脚,并使用连接线将它们相连。
2. 系统初始化:在嵌入式开发环境中,我们编写了初始化代码,用于配置GPIO 口的工作模式和初始化LED灯的状态。
通过设置引脚为输出模式,并将其电平置低,我们确保了LED灯的初始状态为熄灭。
3. 跑马灯效果实现:为了实现跑马灯的效果,我们编写了一个循环程序。
在每个循环中,我们通过改变LED灯的亮灭状态,实现灯光的闪烁。
具体而言,我们使用一个变量来表示当前亮灯的位置,然后将该位置对应的LED引脚电平置高,其他LED引脚电平置低。
随后,我们通过延时函数控制灯光的亮灭时间,再将亮灯位置变量进行更新,实现灯光的移动效果。
通过不断循环执行该程序,我们可以看到跑马灯的效果。
4. 实验调试:在实验过程中,我们发现了一些问题,例如灯光闪烁过快或过慢、灯光移动的不连续等。
嵌入式操作系统跑马灯实验报告
嵌入式操作系统实验报告实验题目:实验一 CVT-PXA270的使用及跑马灯实验专业:计算机科学与技术班级:姓名:学号:1. 了解Linux下端口编程的方法;2. 掌握CVT-PXA270下的directio通用端口编程驱动程序的使用;3. 掌握CVT-PXA270下跑马灯的使用方法。
二、实验内容1.了解CVT-PXA270的外部结构,以及各端口的使用2.测试跑马灯状态,使跑马灯程序在Linux系统下运行3.修改跑马灯程序,使跑马灯呈现出不同的状态三、实验方案/* 当前跑马灯状态*/unsigned char led_status = 0x00;//******************************************************************** // Function name : delay// Description : delay for a while// Return type : void// Argument : int count********************************************************************* /void delay(int count){while(count --);}/* 主函数*/int Main(int argc, char* argv[]){while(1){*((unsigned char *) 0x04005000) = led_status;delay(0xffffff);led_status ++;}return 0;}四、试验结果实验箱上的四个跑马灯将不断闪烁,修改程序中delay函数调用的值将变它们显示的速度,值越大,显示越慢。
本次实验过程中,由于第一次实验,对实验器件,还有实验过程都不大了解,使得做实验过程中遇到很大的问题。
也花费了不少时间,不过在慢慢的摸索中,以及老师的指导和同学的帮助下,最终也了解了CVT-PXA270的外部结构,以及各个引脚的作用,还有各个串口和并口的具体使用,还观察了跑马灯在CVT-PXA270下的运行状态,以及它的运行程序,当程序中的delay函数改变时,其状态也随之改变。
跑马灯实验报告
一、实验目的1. 熟悉嵌入式系统硬件电路的搭建与调试;2. 掌握C语言编程,实现跑马灯功能;3. 理解并掌握GPIO口操作,学习定时器中断的使用。
二、实验环境1. 开发板:STM32F103C8T6开发板2. 编译器:Keil uVision53. 软件库:STM32标准外设库三、实验原理跑马灯实验是通过控制LED灯的亮灭,实现LED灯依次点亮的效果。
实验原理如下:1. GPIO口控制:将LED灯连接到开发板的GPIO口,通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;2. 定时器中断:定时器产生中断,实现LED灯点亮与熄灭的时间间隔;3. 循环控制:通过循环控制LED灯的点亮顺序,实现跑马灯效果。
四、实验步骤1. 硬件电路搭建(1)将LED灯的正极连接到开发板的GPIO口,负极接地;(2)将开发板的电源和地线连接到电源模块。
2. 软件编程(1)在Keil uVision5中创建项目,并导入STM32标准外设库;(2)编写程序,实现以下功能:a. 初始化GPIO口,将LED灯连接的GPIO口配置为输出模式;b. 初始化定时器,设置定时器中断周期,使LED灯点亮与熄灭的时间间隔为1ms;c. 编写定时器中断服务程序,控制LED灯的点亮与熄灭;d. 编写主函数,实现LED灯依次点亮的效果。
3. 编译与下载(1)编译程序,生成可执行文件;(2)将开发板连接到计算机,通过串口下载程序到开发板。
4. 实验调试(1)打开串口调试助手,观察LED灯的点亮与熄灭效果;(2)调整程序参数,优化跑马灯效果。
五、实验结果与分析1. 实验结果(1)LED灯依次点亮,实现跑马灯效果;(2)LED灯点亮与熄灭的时间间隔可调。
2. 实验分析(1)通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;(2)定时器中断实现LED灯点亮与熄灭的时间间隔控制;(3)循环控制实现LED灯依次点亮的效果。
六、实验总结本次实验成功实现了跑马灯功能,加深了对嵌入式系统硬件电路、C语言编程和GPIO口操作的理解。
嵌入式02STM32实验04跑马灯
嵌⼊式02STM32实验04跑马灯开学STM32跑马灯的实验主要就是了解GPIO⼝的配置及使⽤,我这⾥是使⽤库函数进⾏编程,主要需要设置以下两⽅⾯: 1、使能需要使⽤的IO⼝的时钟,⼀共有A、B、C、D、E、F、G七组IO⼝ 2、初始化IO⼝(设置IO⼝的端⼝号(有GPIO_Pin_0 ~ GPIO_Pin_15,共16个IO端⼝)、设置IO⼝的输出速度、设置IO⼝的⼯作模式)代码如下1//端⼝初始化2 #include "led.h"3 #include "stm32f10x.h"45void LED_Init(void)6 {7 GPIO_InitTypeDef GPIO_KST;8910 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能端⼝B和E1112 GPIO_KST.GPIO_Mode = GPIO_Mode_Out_PP; //设置端⼝模式为推挽输出13 GPIO_KST.GPIO_Pin = GPIO_Pin_5; //选择端⼝514 GPIO_KST.GPIO_Speed = GPIO_Speed_2MHz; //IO⼝的速度设置为2MHz15 GPIO_Init(GPIOB, &GPIO_KST); //初始化GPIOB.5161718 GPIO_KST.GPIO_Mode = GPIO_Mode_Out_PP; //设置端⼝模式为推挽输出19 GPIO_KST.GPIO_Pin = GPIO_Pin_5; //选择端⼝520 GPIO_KST.GPIO_Speed = GPIO_Speed_2MHz; //IO⼝的速度设置为2MHz21 GPIO_Init(GPIOE, &GPIO_KST); //初始化GPIOE.522 }主程序1//主程序2 #include "sys.h"3 #include "delay.h"4 #include "led.h"56int main(void)7 {8 delay_init(); //延时初始化9 LED_Init(); //LED初始化10while(1)11 {12 GPIO_ResetBits(GPIOE, GPIO_Pin_5); //关闭PE5端⼝的LED13 GPIO_SetBits(GPIOB, GPIO_Pin_5); //关闭PB5端⼝的LED14 delay_ms(500); //延时100ms15 GPIO_SetBits(GPIOE, GPIO_Pin_5);16 GPIO_ResetBits(GPIOB, GPIO_Pin_5); //打开PB5端⼝的LED17 delay_ms(500); //延时100ms18 }1920 }。
跑马灯实训报告
摘要:AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
关键字:AT89C51 兼容高效微控制器目录一、实训目的 (2)二、电路设计与生成 (2)1、设计跑马灯 (2)2、生成PCB板 (2)三、程序设计 (3)1、程序设计 (3)2、运行结果 (4)四、实训总结 (4)一、实训目的了解AT89C51管脚的基本功能,学会运用Protel 99 se设计电路,并生成PCB 板,印刷线路板。
使用KEIL C51设计单片机程序,生成HEX文件,将程序下载到单片机内并运行。
从而达到初步掌握简单单片机小程序的设计,制作,调试的目的。
二、电路设计与生成1、设计跑马灯利用单片机最小系统,使P1口八个发光二极管做跑马灯和流水灯显示。
设计的电路图如下:2、生成PCB板(1)保存电路图,单击菜单栏DESIGN项,选择其中的更新PCB;(2)在弹出的对话框中,单击preview change;(3)校对弹出界面中的相关元件的信息,再单击Execute,生成元器件;(4)最后对生成的元器件进行排版,生成如下图所示:三、程序设计1、程序设计#include"reg51.h"unsigned char tab[]={1,2,4,8,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,8,4,2,1};void delay(unsigned char n){ unsigned int d;unsigned char i;for(i=0;i<n;i++)for(d=0;d<30000;d++);}void main(){ unsigned char i,j;while(1){ for(j=0;j<5;j++){for(i=0;i<8;i++){P1=~tab[i];delay(10);}}for(j=0;j<5;j++){for(i=0;i<8;i++){ P1=~tab[8+i];delay(10);}}for(j=0;j<5;j++){for(i=0;i<8;i++){ P1=~tab[i];delay(20);P1=~tab[i+1];delay(20);P1=~tab[i+2];delay(20);}}for(j=0;j<3;j++){for(i=0;i<8;i++){ P1=~tab[i];delay(20);P1=~tab[i+2];delay(30);}}}}2、运行结果八个发光二级管顺时针依次发光,连续五次,再返向五次,完成基本的跑马灯显示,然后再依次亮三个,退一个再亮三个,逐个发光。
嵌入式系统实验报告
实验报告课程名称:嵌入式系统学院:信息工程专业:电子信息工程班级:学生姓名:学号:指导教师:开课时间:学年第一学期实验名称:IO接口(跑马灯)实验时间:11.16 实验成绩:一、实验目的1.掌握 STM32F4 基本IO口的使用。
2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。
3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。
二、实验原理本次实验的关键在于如何控制STM32F4的IO口输出。
IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。
所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。
三、实验资源实验器材:探索者STM32F4开发板硬件资源:1.DS0(连接在PF9)2.DS1(连接在PF10)四、实验内容及步骤1.硬件设计2.软件设计(1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。
然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。
(2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。
(3)采用 GPIO_Set 函数实现IO配置。
LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。
嵌入式系统原理实验三跑马灯
实验三跑马灯实验实验目的:通过一个经典的跑马灯程序,了解STM32F1 的IO 口作为输出使用的方法。
通过代码控制ALIENTEK 战舰STM32 开发板上的两个LED:DS0 和DS1 交替闪烁,实现类似跑马灯的效果内容要点:1.硬件设计本章用到的硬件只有LED(DS0 和DS1)。
其电路在ALIENTEK 战舰STM32F103开发板上默认是已经连接好了的。
DS0 接PB5,DS1 接PE5。
所以在硬件上不需要动任何东西。
其连接原理图如图:2.软件设计跑马灯实验我们主要用到的固件库文件是:stm32f10x_gpio.c /stm32f10x_gpio.hstm32f10x_rcc.c/stm32f10x_rcc.hmisc.c/ misc.hstm32f10x_usart /stm32f10x_usart.h其中stm32f10x_rcc.h 头文件在每个实验中都要引入,因为系统时钟配置函数以及相关的外设时钟使能函数都在这个其源文件stm32f10x_rcc.c 中。
stm32f10x_usart.h 和misc.h 头文件在我们SYSTEM 文件夹中都需要使用到,所以每个实验都会引用。
首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新建一个LED 文件夹,用来存放与LED 相关的代码。
新建led.h和led.c文件,一个外设对应一个.h和.c文件。
在Manage Components 管理里面新建一个HARDWARE 的组,并把led.c 加入到这个组里面,将led.h 头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。
一般的格式如下:#ifndef __LED_H#define __LED_H……#endif第一次调用时会将#define下面这一节全部定义,重复调用时,下面的东西就不会被引用。
单片机实训报告跑马灯
一、实训背景随着科技的发展,单片机作为一种重要的嵌入式系统控制单元,在工业控制、智能家居、物联网等领域得到了广泛的应用。
为了提高学生对单片机程序设计的理解和实践能力,本次实训选择了跑马灯程序设计作为实训项目。
二、实训目的1. 熟悉单片机的基本结构和编程方法。
2. 掌握Keil C51集成开发环境的使用。
3. 学习跑马灯程序的设计与实现。
4. 培养动手实践能力和团队协作精神。
三、实训内容本次实训主要分为以下几个部分:1. 电路设计:设计跑马灯的电路,包括单片机、LED灯、电阻、按键等元件。
2. 程序设计:编写跑马灯的程序,实现LED灯的正序、倒序、闪烁等功能。
3. 程序调试:在Keil C51集成开发环境中进行程序调试,确保程序正常运行。
4. 实验报告撰写:总结实训过程中的经验和收获,撰写实验报告。
四、电路设计跑马灯电路主要包括以下元件:1. 单片机:选用AT89C51单片机作为控制核心。
2. LED灯:使用8个LED灯作为显示元件。
3. 电阻:用于限流,防止LED灯烧毁。
4. 按键:用于控制跑马灯的运行模式。
电路连接方式如下:1. 将8个LED灯的正极依次连接到单片机的P1口。
2. 将8个LED灯的负极依次连接到地线。
3. 将按键的一端连接到单片机的P3.0口,另一端连接到地线。
五、程序设计跑马灯的程序采用C语言编写,主要功能包括:1. 正序跑马灯:LED灯依次点亮,从D1到D8。
2. 倒序跑马灯:LED灯依次点亮,从D8到D1。
3. 闪烁跑马灯:LED灯快速闪烁。
程序流程如下:1. 初始化单片机P1口为输出模式。
2. 根据按键输入选择跑马灯的运行模式。
3. 根据选择的模式,依次点亮LED灯。
4. 延时一段时间,然后继续点亮下一个LED灯。
5. 重复步骤3和4,直到所有LED灯点亮完毕。
程序代码如下:```c#include <reg51.h>#define LED P1void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}void main() {unsigned char i;LED = 0x01; // 正序跑马灯while (1) {for (i = 0; i < 8; i++) {delay(500); // 延时LED = (0x01 << i); // 点亮下一个LED灯}}}```六、程序调试在Keil C51集成开发环境中,将程序代码编译生成HEX文件,然后将HEX文件烧录到单片机中。
Blinky嵌入式系统实验报告
一、实验项目名称Blinky验证及修改二、实验目的和要求(1)实验目的1.会用《STM32固件库使用手册的中文翻译版》解决实验中出现的问题及修改的方法。
2.掌握Blinky程序的原理及修改跑马灯的基本方法和原理(2)实验要求修改LED灯的亮的位置以及改变流水灯的顺序三、实验环境(1)硬件配置器件数量英蓓特STM32V100开发板ULINK2仿真器1 1 1PCUSB数据线2(2)软件配置软件平台数量PC机操作系统PC机端串口通信程序Windows7超级终端Keil uVision 3.23嵌入式软件开发环境四、实验内容和原理(1)电路原理图图1 LED引脚连接电路图上图为LED引脚连接电路图。
本实验中, 修改相应的程序以改变LED灯亮灭的位置以及流水方向。
其中, 如图所示, 四个LED灯分别对应PC6—PC9四个端口。
(2)实验内容1.首先打开Blinky文件夹(里面有三个文件夹: uvision-存放工程文件和源文件, obj-存放编译文件, listing-存放链接及印像文件), 进入uvision文件夹中双击Blinky.Uv2工程文件, 则会打开工程文件。
2、工程文件中包含Start Up(启动代码存放区), Source Code(主要的源程序代码存放区), Library(源程序文件库), Document(程序的说明文档)文件夹。
3.连接好电源线和仿真器接线(外接仿真器连接线(JATG))4、选择仿真器, 在工程总目录(Target)上点击右键, 然后选择Option for Target ‘STM32 Trace A。
在Debug选项卡下, 选中UNINK Cortex Debugger。
分别如图2、图3所示。
图2 设置工程选项图3 设置Debug选项卡5.检查UNINK2是否正常连接上。
如果UNINK2通过USB线连接到开发板后, 上面的RUN和COM指示灯先变为蓝色后熄灭, 而USB指示灯一直为红色, 则说明ULINK没问题。
2023年嵌入式实验报告
目录试验一跑马灯试验 ............................................ 错误!未定义书签。
试验二按键输入试验 ........................................ 错误!未定义书签。
试验三串口试验................................................ 错误!未定义书签。
试验四外部中断试验 ........................................ 错误!未定义书签。
试验五独立看门狗试验..................................... 错误!未定义书签。
试验七定期器中断试验..................................... 错误!未定义书签。
试验十三 ADC试验 ............................................. 错误!未定义书签。
试验十五 DMA试验 ............................................. 错误!未定义书签。
试验十六 I2C试验 ............................................. 错误!未定义书签。
试验十七 SPI试验 ............................................. 错误!未定义书签。
试验二十一红外遥控试验 ................................. 错误!未定义书签。
试验二十二 DS18B20试验.................................. 错误!未定义书签。
试验一跑马灯试验一.试验简介我旳第一种试验,跑马灯试验。
二.试验目旳掌握STM32开发环境,掌握从无到有旳构建工程。
三.试验内容熟悉MDK KEIL开发环境,构建基于固件库旳工程,编写代码实现跑马灯工程。
嵌入式系统实验报告-跑马灯
嵌入式系统基础实灯
请简要描述你的实验主要步骤
1.打开源程序工程,编译链接生成二进制文件;
2.烧写二进制代码并运行开发板;
3.观察开发板上的按钮与LED灯;
4.恢复开发板为初始状态;
请说明实验中你遇到的问题及解决方法
实验源码方面没有什么问题,问题在于具体操作方面:
1.使用usb线连接开发板之后,需要将切换开关置于编程位置。而且再写入之前要按一下复位键。
实验关键部分相关源码
void marquee()
{
int i;
while(1) {
for(i = 0; i < 9; i++){
delay(10);
*led_array[i] = ON;
delay(10);
*led_array[i] = OFF;
stm32跑马灯实验报告
stm32跑马灯实验报告STM32跑马灯实验报告引言:STM32是一款广泛应用于嵌入式系统开发的微控制器,具有高性能、低功耗和丰富的外设接口。
跑马灯实验是入门级的STM32实验项目,通过控制LED灯的亮灭顺序实现跑马灯效果。
本实验报告将详细介绍实验的目的、原理、实施步骤以及实验结果。
一、实验目的跑马灯实验旨在通过STM32的GPIO控制LED灯的亮灭,实现灯光在多个LED之间依次点亮和熄灭的效果。
通过这个实验,我们可以了解STM32的GPIO口的操作方式,掌握基本的STM32编程技巧。
二、实验原理STM32的GPIO口可以设置为输出模式,通过控制GPIO口的电平(高电平或低电平)来控制LED灯的亮灭。
跑马灯实验中,我们将多个LED连接到STM32的不同GPIO口上,通过依次改变GPIO口的电平状态,实现灯光在不同LED之间依次传递的效果。
三、实施步骤1. 准备材料:STM32开发板、杜邦线、若干个LED灯。
2. 连接电路:将多个LED分别连接到STM32的不同GPIO口上,确保极性正确。
3. 创建工程:使用Keil等开发环境创建STM32工程,并配置好相应的引脚。
4. 编写代码:在main函数中编写代码,通过设置GPIO口的电平状态实现跑马灯效果。
5. 编译烧录:编译代码生成可执行文件,并将其烧录到STM32开发板上。
6. 运行实验:将STM32开发板上电,观察LED灯的亮灭顺序是否符合预期。
四、实验结果经过实验,我们成功实现了跑马灯效果。
LED灯在不同的GPIO口之间依次点亮和熄灭,形成了流动的灯光效果。
通过调整代码中GPIO口的顺序和时间延迟,我们还可以改变灯光的流动速度和方向。
实验结果与预期一致,验证了我们的设计和实施的正确性。
五、实验总结通过这个实验,我们对STM32的GPIO控制和编程有了更深入的了解。
我们学会了如何通过改变GPIO口的电平状态来控制外部设备,掌握了基本的STM32编程技巧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式操作系统实验报告
实验题目:实验一 CVT-PXA270的使用及跑马灯实验
专业:计算机科学与技术
班级:
姓名:
学号:
1. 了解Linux下端口编程的方法;
2. 掌握CVT-PXA270下的directio通用端口编程驱动程序的使用;
3. 掌握CVT-PXA270下跑马灯的使用方法。
二、实验内容
1.了解CVT-PXA270的外部结构,以及各端口的使用
2.测试跑马灯状态,使跑马灯程序在Linux系统下运行
3.修改跑马灯程序,使跑马灯呈现出不同的状态
三、实验方案
/* 当前跑马灯状态*/
unsigned char led_status = 0x00;
/
/******************************************************************** // Function name : delay
// Description : delay for a while
// Return type : void
// Argument : int count
********************************************************************* /
void delay(int count)
{
while(count --);
}
/* 主函数*/
int Main(int argc, char* argv[])
{
while(1)
{
*((unsigned char *) 0x04005000) = led_status;
delay(0xffffff);
led_status ++;
}
return 0;
}
四、试验结果
实验箱上的四个跑马灯将不断闪烁,修改程序中delay函数调用的值将变它们显示的速度,值越大,显示越慢。
本次实验过程中,由于第一次实验,对实验器件,还有实验过程都不大了解,使得做实验过程中遇到很大的问题。
也花费了不少时间,不过在慢慢的摸索中,以及老师的指导和同学的帮助下,最终也了解了CVT-PXA270的外部结构,以及各个引脚的作用,还有各个串口和并口的具体使用,还观察了跑马灯在CVT-PXA270下的运行状态,以及它的运行程序,当程序中的delay函数改变时,其状态也随之改变。
不仅如此还掌握了一些ARM软件的使用方法,了解到linux 的使用性。