实验四 LED跑马灯
- 格式:doc
- 大小:86.50 KB
- 文档页数:5
实验四一、实验目的: 实验目的:LED 跑 马 灯 实 验1、掌握 S3C2410 处理器与 LED 指示灯的电路原理。
2、掌握 linux 驱动对 S3C2410 GPIO 的控制原理及使用方法。
二、实验设备: 实验设备:FS2410 开发板、学生自带笔记本、USB 转串口线、电源、网线。
三、 实验地点及时间 实验地点及时间 地点:A2-303a 地点: 时间:教学周第八周 时间:教学周第八 四、实验内容: 实验内容:1、在 ARM 开发板上面,在驱动程序中利用 linux 定义的 GPIO F 口编写对应管脚电平 控制程序,并进行测试验证所学内容。
2、在 ARM 开发板上面,在上面程序的基础上采用动态 IO 映射的方法,编写程序,并 进行测试验证所学内容。
3、在 ARM 开发板上面,在驱动程序中利用内核定时器,编写程序,并进行测试验证 insmod module 后 LED 跑 2 圈的结果。
4、在 ARM 开发板上面,利用 2 的驱动程序,编写应用程序测试验证 LED 跑马灯的结 果。
五、实验原理: 实验原理:1、GPIO 端口原理 端口原理S3C2410X 有 117 个输入/输出端口,这些端口都具有多功能,通过引脚配置寄存器, 可以将其设置为所需要的功能,如:I/O 功能、中断功能等等。
大多数采用 S3C2410 的典型 LED 指示灯电路设计基本都使用 F 口(GPF 共 8 个输入/输出口)作为其控制端口。
端口寄存器及引脚配置 每一个端口都有 4 个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存 器等。
Register GPXCON GPXDAT GPXUP RESERVEDAddress 0x560000x0 0x560000x4 0x560000x8 0x560000xCR/W R/W R/W R/W R/WDescription 端口 X 配置寄存器 端口 X 数据寄存器 端口 X 上拉寄存器 端口 X 保留寄存器Reset Value X X X -端口 F 引脚配置寄存器 GPFCON 0x56000050 位 位号 位 名 00 15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0 GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0 输入 输入 输入 输入 输入 输入 输入 输入 01 输出 输出 输出 输出 输出 输出 输出 输出 10 EINT7 EINT6 EINT5 EINT4 EINT3 EINT2 EINT1 EINT0 11 保留 保留 保留 保留 保留 保留 保留 保留 值端口 F 数据寄存器 GPFDAT 0x56000054 为准备输出或输入的数据,其值为 8 位[7:0]。
一、实验背景随着科技的不断发展,电子技术在我们的日常生活中扮演着越来越重要的角色。
作为电子信息工程专业的学生,掌握电子电路的设计与制作技能是必不可少的。
本实训旨在通过制作跑马灯,让学生了解基本电子元件的原理和电路设计方法,提高学生的动手能力和创新思维。
二、实验目的1. 熟悉电子元件的使用方法和电路原理。
2. 掌握电路图的绘制和实际电路的制作。
3. 理解跑马灯的工作原理,并能够进行简单的故障排除。
4. 培养学生的团队协作能力和实践创新能力。
三、实验内容1. 基本跑马灯电路制作(1)材料准备:8个发光二极管(LED)、1个按键(K1)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:根据图1电路图,将LED按照顺序连接到面包板上,确保每个LED的正负极正确连接。
将按键K1连接到电路中,并设置合适的电阻以限制电流。
(3)程序编写:使用C语言或汇编语言编写程序,实现LED的顺序点亮和熄灭,模拟跑马灯效果。
2. 键控跑马灯电路制作(1)材料准备:8个发光二极管(LED)、2个按键(K1、K2)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在基本跑马灯电路的基础上,增加按键K2。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序的功能。
3. 多功能跑马灯电路制作(1)材料准备:8个发光二极管(LED)、3个按键(K1、K2、K3)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在键控跑马灯电路的基础上,增加按键K3。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮;按下K3时,LED全部熄灭。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序和熄灭的功能。
四、实验结果与分析1. 成功制作出基本跑马灯电路,实现了LED的顺序点亮和熄灭。
2. 成功制作出键控跑马灯电路,实现了按键控制LED点亮顺序的功能。
跑马灯实验报告引言跑马灯是一种常见的公共场所宣传和广告工具。
它通过不断闪烁的灯光来吸引人们的注意,向他们传达信息和内容。
在这个报告中,我们将通过一系列实验来研究跑马灯的工作原理、效果和可能的应用领域。
实验一:跑马灯的基本构造实验目的通过拆解和分析跑马灯的结构,理解其基本构造和工作原理。
实验步骤1.拆解一台跑马灯,将其分解为基本组成部分,如灯管、控制电路和外壳等。
2.分析每个组成部分的作用和功能。
实验结果根据我们的拆解和分析,我们得出了以下结论:•灯管:灯管是跑马灯的核心部件,它通过发光来吸引人们的注意。
•控制电路:控制电路负责控制灯管的闪烁频率和模式。
•外壳:外壳起到保护和美化跑马灯的作用。
实验二:跑马灯的效果分析实验目的评估不同频率和模式的跑马灯对人眼的刺激程度和注意力吸引效果。
实验步骤1.准备三台不同频率的跑马灯(低频、中频和高频)。
2.让一组实验参与者观察每种频率的灯光,并记录他们的感受和注意力集中程度。
3.对比不同频率下的实验结果,并做出分析和总结。
实验结果我们的实验结果表明:•高频率的跑马灯更容易引起人们的注意,但也会让他们感到疲劳或不适。
•低频率的跑马灯对人眼的刺激相对较轻,但可能不足以引起足够的关注。
•中频率的跑马灯在刺激度和注意力吸引效果之间取得了一个平衡,被认为是比较理想的选择。
实验三:跑马灯的应用展望实验目的探索跑马灯在不同场景和领域的应用潜力,并分析其优势和限制。
实验步骤1.分析跑马灯目前的主要应用领域,如商业广告、警示通知和信息发布等。
2.探寻跑马灯在其他领域中的潜在应用,如教育、娱乐和医疗等。
3.分析跑马灯在不同应用领域中的优势和限制。
实验结果我们的分析结果表明:•跑马灯在商业广告和公共通知中具有广泛应用的潜力,因为它能够吸引人们的注意并传达信息。
•跑马灯在教育领域中可以用于展示学生作品、提醒学生重要事项等,但需注意不要过度刺激学生眼睛。
•跑马灯在医疗领域中可以用于显示患者信息、提醒医生注意事项等,但需确保灯光不会对患者或医生造成不适。
跑马灯实验报告
实验目的,通过搭建一个简单的跑马灯电路,了解电子元件的基本原理和电路的工作方式。
实验器材,LED灯、电阻、导线、电池、开关、面包板。
实验步骤:
1. 将LED灯的正极与电池的正极通过导线连接起来,负极与电阻连接,然后再将电阻的另一端与电池的负极连接。
2. 将开关连接到电路中,使得可以通过开关控制电路的通断。
3. 将整个电路搭建在面包板上,确保连接牢固。
4. 打开开关,观察LED灯的亮灭情况。
实验结果:
经过搭建和观察,我们发现当开关闭合时,LED灯会亮起;当开关断开时,LED灯会熄灭。
通过不断地开合开关,我们可以看到LED灯会不断地亮灭,就像跑马灯一样在不同的位置闪烁。
实验分析:
跑马灯实验的原理是利用开关控制电路的通断,从而控制LED灯的亮灭。
当开关闭合时,电路闭合,电流可以流通,LED灯就会亮起;当开关断开时,电路断开,电流无法流通,LED灯就会熄灭。
通过不断地开合开关,就可以实现LED 灯的频繁闪烁,呈现出跑马灯的效果。
实验总结:
通过这个简单的跑马灯实验,我们了解了电子元件的基本原理和电路的工作方式。
同时,我们也体会到了实验中的观察和分析的重要性。
在今后的学习中,我们将进一步深入学习电子电路的知识,探索更多有趣的实验和应用。
以上就是本次跑马灯实验的实验报告,希望对大家有所帮助。
跑马灯实验报告跑马灯实验报告引言:跑马灯,又称为旋转灯,是一种常见的灯光装置,广泛应用于舞台、广告牌和娱乐场所等场合。
在这个实验报告中,我们将探讨跑马灯的原理、构造和应用,并通过实验验证其工作原理。
一、跑马灯的原理跑马灯的原理基于电机的旋转运动和灯泡的亮灭变化。
电机通过驱动轴带动跑马灯旋转,而灯泡则根据电路控制的信号进行亮灭操作。
通过电机的旋转和灯泡的变化,跑马灯能够呈现出循环闪烁的效果。
二、跑马灯的构造跑马灯一般由电机、驱动轴、灯泡和控制电路等组成。
电机是跑马灯的核心部件,通过驱动轴将旋转运动转化为灯泡的亮灭变化。
灯泡则通过控制电路接收信号,根据信号的变化来控制灯泡的亮灭。
整个跑马灯的构造简单而紧凑,能够实现稳定的循环闪烁效果。
三、跑马灯的应用跑马灯广泛应用于各个领域,其中最常见的是在舞台表演中的应用。
跑马灯通过循环闪烁的效果,能够为舞台表演增添动感和视觉冲击力。
此外,跑马灯还被广泛应用于广告牌、商场和娱乐场所等场合,通过灯光的变化吸引人们的注意力,起到宣传和促销的作用。
四、跑马灯实验为了验证跑马灯的工作原理,我们进行了一次简单的实验。
首先,我们准备了一个跑马灯实验装置,包括一个电机、驱动轴和三个灯泡。
然后,我们通过控制电路将电机和灯泡连接起来,确保信号的传输和控制正常。
接下来,我们启动电机,通过控制电路的信号变化,使灯泡循环闪烁。
实验结果表明,跑马灯能够按照预期的方式工作,实现循环闪烁的效果。
结论:通过本次实验,我们深入了解了跑马灯的原理、构造和应用。
跑马灯作为一种常见的灯光装置,在舞台表演、广告宣传和娱乐场所等场合起到了重要的作用。
通过实验验证,我们证实了跑马灯能够按照预期的方式工作,实现循环闪烁的效果。
跑马灯的应用前景广阔,未来有望在更多领域发挥其独特的作用。
总结:本次实验报告详细介绍了跑马灯的原理、构造和应用,并通过实验验证了其工作原理。
跑马灯作为一种常见的灯光装置,不仅能够为舞台表演增添动感和视觉冲击力,还能够在广告宣传和娱乐场所等场合起到重要的作用。
实验题目:跑马灯设计一、设计任务:设计8个LED进行花式显示,设计4种显示模式:1、从左到右逐个点亮LED;2、从右到左逐个点亮LED;3、从两边到中间逐个点亮LED;4、从中间到两边逐个点亮LED。
使得四种模式循环切换,由复位键rst控制系统的运行与停止。
二、实验过程⒈设计思路:分析该题目出现的所有状态,用“00000000”表示s0,“10000000”表示s1,“01000000”表示s2,“00100000”表示s3,“00010000”表示s4,“00001000”表示s5,“00000100”表示s6,“00000010”表示s7,“00000001”表示s8,“10000001”表示s9,“01000010”表示s10,“00100100”表示s11,“00011000”表示s12,另外定义了一个中间变量pp,用来表示该种状态的下一个状态为何,用来满足四种状态模式的连接操作。
在程序的结构体中编写两种进程,时序进程和组合进程,它们分别用来控制时钟、复位等时序信息和具体的状态转换关系。
根据状态转换图,对每一种状态编写下一项的确定状态,用pp来引导。
同时在适当的位置,进行pp值的定义变化,分别是“00000000”、“10000000”、“00000001”、“00011000”、“10000001”。
⒉设计方案:将列写出的状态转换图用VHDL语言表达出来,设计好相应的输入输出端口及功能过程,进行设计处理,编译文件,修改其中的错误,再用波形图进行编辑仿真描述,以便检查其功能是否正确,最后下载链接到硬件设备上检查其功能。
⒊设计步骤:(1)用VHDL语言设计实现计数器:运行QuartusII软件,选择菜单File/New Project Wizard...,新建一个项目,选择cyclone系列的芯片;在此项目下新建VHDL文件,编写计数器代码:library ieee;use ieee.std_logic_1164.all;entity test3 isport(clk, reset,stop : in std_logic;qout : buffer std_logic_vector(7 downto 0));end test3;architecture be of test3 istype fsm_st is(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12);signal current_state, next_state : fsm_st;signal pp : std_logic_vector(1 downto 0);beginreg : process(reset, clk)beginif reset = '1' then current_state <= s0;elsif rising_edge(clk) thencurrent_state <= next_state;end if;end process;com : process(current_state, reset)begincase current_state iswhen s0 => qout <= "00000000";if( reset ='0' and stop='0') then next_state <= s1; pp <= "00"; end if;when s1 => qout <= "10000000";if (pp = "00" and stop='0') then next_state <= s2;elsif (pp = "01" and stop='0')then next_state <= s9; pp <= "10"; end if;when s2 => qout <= "01000000";if (pp = "00" and stop='0')then next_state <= s3;elsif (pp = "01" and stop='0')then next_state <= s1;end if;when s3 => qout <= "00100000";if (pp = "00" and stop='0') then next_state <= s4;elsif (pp = "01" and stop='0')then next_state <= s2;end if;when s4 => qout <= "00010000";if (pp = "00" and stop='0')then next_state <= s5;elsif( pp = "01" and stop='0')then next_state <= s3;end if;when s5 => qout <= "00001000";if( pp = "00" and stop='0')then next_state <= s6;elsif (pp = "01" and stop='0')then next_state <= s4;end if;when s6 => qout <= "00000100";if (pp = "00" and stop='0')then next_state <= s7;elsif( pp = "01" and stop='0')then next_state <= s5;end if;when s7 => qout <= "00000010";if (pp = "00" and stop='0')then next_state <= s8;elsif (pp = "01" and stop='0')then next_state <= s6;end if;when s8 => qout <= "00000001";if (pp = "00" and stop='0')then next_state <= s7; pp <= "01"; end if;when s9 => qout <= "10000001";if (pp = "10" and stop='0')then next_state <= s10;elsif (pp = "11" and stop='0')then next_state <= s1; pp <= "00"; end if;when s10 => qout <= "01000010";if (pp = "10" and stop='0')then next_state <= s11;elsif (pp = "11" and stop='0')then next_state <= s9;end if;when s11 => qout <= "00100100";if (pp = "10" and stop='0')then next_state <= s12;elsif (pp = "11" and stop='0')then next_state <= s10;end if;when s12 => qout <= "00011000";if (pp = "10" and stop='0') then next_state <= s11; pp <= "11"; end if;when others => null;end case;end process;end be;(2)将此文件进行编译.(3)新建一个vector waveform form波形图文件,设置为波形仿真。
科学走马灯实验方法引言走马灯是一种常见的展示信息的装置,它通过快速旋转的灯泡或LED灯带,在连续变化的光线下展示文字或图像。
科学走马灯实验是为了研究光的特性和人眼对光的感知而进行的一项实验。
本文将介绍科学走马灯实验的方法。
实验材料和设备进行科学走马灯实验所需的材料和设备如下:1. 一个转盘:用于固定灯泡或LED灯带。
2. 灯泡或LED灯带:用于产生光线。
3. 电源:用于给灯泡或LED灯带供电。
4. 控制器:用于控制灯泡或LED灯带的亮度和频率。
5. 计时器:用于测量灯泡或LED灯带的亮度和频率的变化。
实验步骤1. 准备实验装置:将转盘固定在平台上,并将灯泡或LED灯带安装在转盘上。
连接电源和控制器,并将计时器放置在适当位置。
2. 控制亮度:通过控制器调节灯泡或LED灯带的亮度,分别记录不同亮度下的实验数据。
3. 测量频率:通过控制器调节灯泡或LED灯带的频率,分别记录不同频率下的实验数据。
4. 分析数据:根据记录的实验数据,绘制亮度和频率的变化曲线,并进行数据分析和解读。
5. 结果验证:根据实验数据和分析结果,验证走马灯的亮度和频率与人眼对光的感知之间的关系。
实验注意事项1. 实验过程中要注意安全,避免触电或其他意外事故的发生。
2. 在进行实验之前,要对实验装置进行检查,确保灯泡或LED灯带、电源和控制器的正常工作。
3. 实验数据的记录要准确,尽量使用科学仪器进行测量。
4. 实验过程中要注意环境的控制,避免干扰因素对实验结果的影响。
实验结果与讨论通过科学走马灯实验,我们可以得到灯泡或LED灯带的亮度和频率与人眼对光的感知之间的关系。
根据实验数据和分析结果,我们可以得出以下结论:1. 随着灯泡或LED灯带的亮度增加,人眼对光的感知也随之增强。
2. 随着灯泡或LED灯带的频率增加,人眼对光的感知也随之增强。
3. 在一定范围内,亮度和频率对人眼的感知有一定的线性关系。
4. 人眼对光的感知受到个体差异和环境因素的影响,不同人对光的感知可能存在差异。
实验报告跑马灯实验报告:跑马灯引言:跑马灯作为一种常见的室内装饰和广告展示工具,广泛应用于商场、剧院、车站等公共场所。
本实验旨在探究跑马灯的工作原理和设计过程,并通过实际搭建跑马灯模型进行验证。
一、跑马灯的工作原理跑马灯是通过一组灯泡或LED灯组成的,它们按照一定的顺序依次亮灭,从而形成连续的动态效果。
跑马灯的工作原理主要包括电路控制和程序设计两个方面。
1. 电路控制:跑马灯的电路控制是通过继电器或集成电路实现的。
继电器是一种电磁开关,通过控制电磁铁的通断来控制灯泡的亮灭。
而集成电路则是通过逻辑门和计时器等元件实现灯泡的顺序控制。
2. 程序设计:跑马灯的程序设计是通过编写一段简单的代码来实现的。
在代码中,通过控制灯泡或LED灯的亮灭时间和顺序来实现跑马灯效果。
常见的程序设计语言如C、Python等都可以用来编写跑马灯的代码。
二、跑马灯的设计过程跑马灯的设计过程包括灯泡或LED灯的选型、电路设计、程序编写和外壳制作等步骤。
1. 灯泡或LED灯的选型:在跑马灯的设计中,选择合适的灯泡或LED灯是非常重要的。
灯泡的亮度、寿命和能耗等指标需要进行综合考虑。
而LED灯则具有节能、寿命长和颜色丰富等优点,因此在现代跑马灯设计中更加常见。
2. 电路设计:电路设计是跑马灯设计中的关键环节。
在电路设计中,需要考虑灯泡或LED灯的亮灭顺序、时间间隔和电源供应等因素。
通过合理的电路设计,可以实现跑马灯的稳定运行和灯泡的长寿命。
3. 程序编写:程序编写是跑马灯设计中的另一个重要环节。
通过编写一段简单的代码,可以控制灯泡或LED灯的亮灭顺序和时间间隔。
程序编写需要考虑灯泡或LED灯的数量和控制方式等因素,以实现预期的跑马灯效果。
4. 外壳制作:外壳制作是跑马灯设计中的最后一步。
通过设计和制作合适的外壳,可以保护电路和灯泡或LED灯,同时也可以增加跑马灯的美观性。
外壳的材料可以选择塑料、金属或木材等,根据实际需要进行选择。
一、实验目的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口操作的理解。
跑马灯实验报告
实验题目:跑马灯实验
实验目的:通过搭建跑马灯电路,了解并掌握LED的使用方法。
实验器材:
1. Arduino UNO开发板
2. 面包板
3. 跑马灯电路板(包括LED灯和电阻)
4. 杜邦线若干
实验原理:
跑马灯实验是利用Arduino开发板来控制LED灯的亮灭,从而实现类似跑马灯效果。
Arduino将在不同的引脚上输出高电平或低电平的信号,通过连接到对应的LED灯,使其亮灭,从而实现不同的灯光变化。
实验步骤:
1. 将Arduino UNO开发板插入面包板中心位置,确保与面包板上电源和地线相连。
2. 在面包板上将跑马灯电路板与Arduino开发板连接起来。
跑马灯电路板上有多个LED灯和电阻,每个LED灯和电阻组合连接到一个引脚上。
3. 使用杜邦线将跑马灯电路板与Arduino开发板连接起来。
确保正极连接到正极,负极连接到负极。
4. 在Arduino开发板上打开Arduino IDE软件,编写控制LED灯亮灭的程序。
5. 将程序上传到Arduino开发板中,程序运行后,跑马灯电路板上的LED灯将会按照程序的设定亮灭。
实验结果:
根据实验所编写的程序,跑马灯电路板上的LED灯将会依次亮起,然后逐渐熄灭,再重复以上过程,实现类似跑马灯效果。
实验总结:
通过本次跑马灯实验,我了解并掌握了LED的使用方法和原理,掌握了Arduino开发板的基本使用方法和程序编写方法。
这对于我进一步学习和应用其他电子电路和Arduino的实验具有重要的基础作用。
同时,本次实验也增强了我的动手实践能力和对电路原理的理解能力。
LED跑马灯实验初学者可先动手做下面的实验:发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦 D2D7D4D3D1D6D5D8R7R2R3R4R5R6R1R812345678STC89C51RC VCC +5V 下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最笨、最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。
ORG 0000H START:MOV P1,#01111111B;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B;最下面第三个的LED点亮 (以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒 AJMP START;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 如何精确计算延时子程序的执行时间? 汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要! ;延时子程序,12M晶振延时约253毫秒 DELAY: MOV R4,#2------执行1个机器周期,耗时1微秒 L3: MOV R2 ,#250---执行1个机器周期,耗时1微秒 L1: MOV R3 ,#251---执行1个机器周期,耗时1微秒 L2: DJNZ R3 ,L2---执行2个机器周期,反复执行251次(2x251)=502微秒) DJNZ R2 ,L1-----执行2个机器周期,反复执行250次(1+502+2)*250=126250微秒) DJNZ R4 ,L3-----执行2个机器周期,反复执行2次 (1+1+502+126250+2)*2=253512微秒) RET delay 加上第一条总共延时1+253512=253513微秒 。
《DSP技术与实验》实验报告姓名:学号:学期:实验名:LED跑马灯一、实验目的1.熟悉CCS4集成开发环境2.掌握CCS4下TMS320VC5509A的编程方法3.熟悉CSL库的使用二、实验设备1.一台装有CCS4软件的计算机2.HX5509开发板3.XDS100-USB V1仿真器三、实验原理LED实验是一个基础,主要为了熟悉开发环境和5509芯片基本编程方式。
要实现LED跑马灯就首先要对芯片GPIO进行控制,GPIO 为General Purpose Input Output 的缩写,即通用输入输出接口。
每个GPIO都可以配置为输入或输出。
HX5509开发板的LED硬件电路如图一所示。
对GPIO控制寄存器IODIP写1就可以设定GPIO为输出,然后对数据寄存器IODATA写1或0就可以控制LED状态。
GPIO 寄存器表如图二所示。
在TI的5509编程过程中,我们不需要直接对寄存器地址操作,而是可以使用TI官方提供的CSL函数库,即Chip Support Library(片级支持库)。
有了它,可以简单方便的完成对DSP器件片上外设配置和控制的编程工作,从而简化了DSP片上外设开发工作,缩短开发周期,并且可以达成标准化控制的编程工作。
通过查阅TMS320C55x Chip Support Library API Reference Guide (Rev.G).pdf可知,GPIO操作函数原型为:而且官方手册中提示REG include the registers IODIR,IODATA,GPIODIR,GPIODATA,GPIOEN,AGPIODIR,AGPIODATA, and AGPIOEN。
想了解更多信息请查阅DSP5509开发板\应用资料\官方手册\TMS320C55x Chip Support Library API Reference Guide (Rev.G).pdf。
四、实验步骤1.打开CCS4 ,将开发板上电,链接好仿真器;2打开本实验工程,编译工程;3.点击Target---->Launch TI Debugger;4.点击Target---->Connect Target 或者点击工具栏图标连接开发板,当出现如图所示,则说明连接成功。
实验四交通灯、跑马灯轮换实验一、实验要求1.以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。
(以AT89C51芯片作为输出口,控制4个trafficlights及4个LED灯,模拟交通灯管理)2.以K1为切换输入口,控制双色LED灯在交通灯、跑马灯两种状态切换。
(button键为切换输入口,控制交通灯、跑马灯两种状态切换)二、实验目的3.学习使用定时计数器进行定时中断控制的方法。
4.学习使用外部中断控制数据输出的设计方法。
5.进一步巩固中断程序的设计技巧。
6.掌握数据表的设计方法。
三、实验电路及连线接结说明:7.本实验涉及到交通灯控制和跑马灯控制两种状态。
交通灯的变化规律可以参考实验四之描述。
跑马灯规律如下:四个双色LED灯在任意一时刻,只有两个灯亮,颜色自定。
在跑马灯的运行中,按照顺时针的方向依次点亮相邻的两个双色LED灯,经过四次变化,跑马灯跑完一圈。
8.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
9.实验进行时,首先是跑马灯状态,在任意时刻,拨动一次KEY1键(自定中断触发方式),由跑马灯状态切换为交通灯状态;任意时刻拨动一次KEY1键,又由交通灯状态切换为跑马灯状态。
如此循环。
10.实验要求:程序必须用到定时计数器中断和外部中断。
五、实验总框图六、实验代码本实验由4个模块来实现:通过定时器T0来定时以及外部中断0来控制交通灯和跑马灯的轮换。
第一个模块:设计定时器T0和外部中断0 (设计50ms 溢出) 设置外中断0代码如下:START1: SETB IT0 SETB EX0MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H ORL IP,#01H SETB ET0 SETB TR0 SETB EA第二个模块:用R7做判断位,通过对R7赋不同的值来切换交通灯和跑马灯的状态,R7为0时交通灯正常运行,为1时跑马灯正常运行。
《单片机原理及实验报告》
学院专业:物电学院电信2010级指导老师:刘万松
学号:100802010015
姓名:辜德珍
实验四基于proteus的跑马灯电路
一、实验目的
1、掌握proteus系统的使用,能够建立、保存、打开和
修改文件。
2、掌握使用各种元器件绘制电路原理图的方法,实现
电路的仿真。
一、实验内容
跑马灯电路,即完成PI口上的八个发光二极管循环闪亮。
二、实验步骤
1、进入keil C51软件的操作环境,编辑源程序并对源
文件进行编译,在keil中编辑汇编语言程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P0,0FFH
MOV DPTR,#7FFFH
MOVX A,@DPTR
CPL A
MOV P1,A
LJMP MAIN
END
END
(1)单击菜单栏“Project”→“New uVision Project”或快捷键“Ctrl+F7
(2)单击菜单栏“Project”→“Build target”或快捷键“F7”
(3)单击菜单栏“Project”→“Rebuld all target files”
(4)编译结束后,生成HEX文件
单击确定后再编译
2、进入proteus系统,画出实验电路图
3、进入proteus 系统和keil C51系统进行联机设置。
4、在keil C51系统中运行、调试程序,在proteus 系
统中检查输出结果。
跑马灯实验报告实验目的,通过搭建一个简易的跑马灯电路,了解电路的基本原理和运作方式,加深对电子电路的理解。
实验器材,LED灯、电阻、导线、电池、开关、面包板。
实验步骤:1. 将面包板上的LED灯、电阻、开关、电池依次连接起来,注意连接的顺序和方向。
2. 确保连接无误后,打开开关,观察LED灯的亮灭情况。
3. 如果LED灯正常亮起,可以尝试将多个LED灯连接在一起,形成跑马灯效果。
4. 通过调整电阻的阻值,观察LED灯的亮度变化,体会电阻在电路中的作用。
实验结果:经过实验,我们成功搭建了一个简易的跑马灯电路。
当打开开关时,LED灯依次亮起,形成了跑马灯效果。
通过调整电阻的阻值,我们发现LED灯的亮度会有所变化,这说明电阻在电路中起到了调节电流的作用。
实验结果符合我们的预期,并且加深了我们对电子电路原理的理解。
实验分析:跑马灯电路是一种简单的序列灯光控制电路,通过合理连接LED灯和电阻,可以实现灯光的顺序亮起和熄灭。
在实验过程中,我们需要注意LED灯的正负极连接方向,以及电阻的阻值选择,这些都会影响到电路的正常运作。
同时,电池的电压也会对LED灯的亮度产生影响,需要合理选择电池的电压等级。
实验总结:通过本次实验,我们对跑马灯电路有了更深入的了解,同时也加深了对电子电路原理的理解。
在今后的学习和实践中,我们将更加注重电路的搭建和调试,不断提高自己的实验操作能力和电子电路设计水平。
希望通过不断的实践和学习,我们能够掌握更多的电子电路知识,为将来的创新和发明打下坚实的基础。
实验感想:本次实验让我更加深入地了解了电子电路的原理和运作方式,也增强了我对电子学科的兴趣。
通过动手搭建电路,我不仅学到了知识,还培养了实践能力和动手能力。
希望在今后的学习中,能够继续保持对电子学科的热爱,不断提高自己的技能和能力。
led跑马灯实验报告
LED跑马灯实验报告
引言
LED跑马灯是一种常见的电子产品,它能够以特定的频率闪烁,产生视觉上的连续移动效果。
在本次实验中,我们将利用LED灯和一些基本的电子元件,设计并搭建一个LED跑马灯,并通过实验验证其工作原理和效果。
实验目的
1.了解LED跑马灯的工作原理
2.掌握LED跑马灯的搭建方法
3.观察LED跑马灯的闪烁效果
实验材料
1. LED灯
2. 电阻
3. 电容
4. 电路连接线
5. 电源
实验步骤
1. 按照电路图连接LED灯、电阻和电容
2. 将电路连接至电源
3. 观察LED跑马灯的闪烁效果
实验结果
通过实验我们成功搭建了一个LED跑马灯,并观察到了其连续移动的效果。
LED灯以一定的频率闪烁,产生了视觉上的连续移动效果,符合LED跑马灯的工作原理。
实验结论
LED跑马灯是一种基于LED灯的电子产品,通过LED灯的频繁闪烁,产生了视觉上的连续移动效果。
通过本次实验,我们了解了LED跑马灯的工作原理,掌握了LED跑马灯的搭建方法,并观察到了LED跑马灯的闪烁效果。
这些都为我们进一步了解和应用LED跑马灯提供了基础。
总结
LED跑马灯作为一种常见的电子产品,在日常生活中有着广泛的应用。
通过本次实验,我们对LED跑马灯有了更深入的了解,也为我们今后的学习和实践提供了基础。
希望通过今后的学习和实践,我们能够更好地掌握LED跑马灯的原理和应用,为我们的日常生活和工作带来更多的便利。
一、实训目的1. 熟悉单片机的硬件结构和基本工作原理;2. 掌握单片机编程方法,实现跑马灯功能;3. 提高实际操作能力和问题解决能力。
二、实训内容1. 跑马灯电路设计;2. 单片机编程实现跑马灯功能;3. 跑马灯功能测试与调试。
三、实训原理跑马灯是一种常见的电子玩具,主要由单片机、LED灯、按键等组成。
通过单片机控制LED灯的亮灭,实现跑马灯效果。
本实训采用AT89C51单片机作为核心控制单元,通过编程实现跑马灯功能。
四、实训步骤1. 跑马灯电路设计(1)硬件选型:选用AT89C51单片机作为核心控制单元,8个LED灯作为显示单元,2个按键作为控制单元。
(2)电路连接:将AT89C51单片机的P1口与LED灯的正极相连,LED灯的负极通过限流电阻连接到地。
将两个按键分别连接到单片机的P3.0和P3.1口。
2. 单片机编程实现跑马灯功能(1)初始化:设置P1口为输出端口,P3.0和P3.1口为输入端口。
(2)跑马灯程序编写:```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 < 1275; j++); }void main() {unsigned char i = 0;while (1) {LED = 0x01; // 点亮LED1delay(500);LED = 0x02; // 点亮LED2delay(500);LED = 0x04; // 点亮LED3delay(500);LED = 0x08; // 点亮LED4delay(500);LED = 0x10; // 点亮LED5delay(500);LED = 0x20; // 点亮LED6delay(500);LED = 0x40; // 点亮LED7delay(500);LED = 0x80; // 点亮LED8delay(500);for (i = 0; i < 8; i++) {LED = ~(0x01 << i); // 倒序点亮LEDdelay(500);}}}```3. 跑马灯功能测试与调试(1)测试:将编写好的程序烧录到AT89C51单片机中,观察LED灯的跑马灯效果。
实验四LED跑马灯实验
一、实验目的:
1、掌握EXYNOS 4412处理器与LED指示灯的电路原理。
2、掌握linux驱动对EXYNOS 4412 GPIO的控制原理及使用方法。
二、实验设备:
TINY4412开发板、学生自带笔记本、USB转串口线、电源、网线。
三、实验地点及时间
地点:A2-303a
时间:教学周第八周
四、实验内容:
1、在ARM开发板上面,在驱动程序中利用linux定义的GPIO M4口编写对应管脚电
平控制程序,并进行测试验证所学内容。
2、在ARM开发板上面,在上面程序的基础上采用动态IO映射的方法,编写程序,并
进行测试验证所学内容。
3、在ARM开发板上面,在驱动程序中利用内核定时器,编写程序,并进行测试验证
insmod module后LED跑2圈的结果。
4、在ARM开发板上面,利用2的驱动程序,编写应用程序测试验证LED跑马灯的结
果。
五、实验原理:
1、GPIO端口原理
EXYNOS 4412有300多个输入/输出端口,这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:I/O功能、中断功能等等。
大多数采用EXYNOS 4412的典型LED指示灯电路设计基本都使用M4口(GPM4 共8个输入/输出口)作为其控制端口。
端口寄存器及引脚配置
每一个端口都有6个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。
端口M4引脚配置寄存器GPM4CON 0x110002E0
Base Address: 0x1100_0000
Address = Base Address + 0x02E0, Reset Value = 0x0000_0000
端口M4数据寄存器GPM4DAT 0x110002E4
为准备输出或输入的数据,其值为8位[7:0]。
2、LED指示灯电路原理图
从上述原理图可以清楚地看出,通过控制GPM4-0—GPM4-3管脚的电平就可以点亮或熄灭对应发光二极管。
3、linux驱动GPIO原理
动态映射(map_desc)方式
对I/O内存的操作需按如下步骤完成:
i. 申请
struct resource *request_mem_region(unsigned long start, unsigned long len, char *name)
ii. 映射
void *ioremap(unsigned long phys_addr, unsigned long size)
iii. 访问
unsigned ioread8(void *addr)
void iowrite8(u8 value, void *addr)
iv. 释放
void iounmap(void * addr)
example:
定义
#define S3C2410_PA_IIS (0x55000000)
映射
our_card->regs = ioremap(S3C2410_PA_IIS, 0x100);
访问
readl(our_card->regs )
writel(value, our_card->regs)
静态映射(map_desc)方式—linux内核已经定义好了(讲解的例子就是采用这种方式)
通过map_desc结构体静态创建I/O资源映射表
内核或驱动中访问该I/O资源时则无需再进行ioreamp动态映射,可以直接通过映射后的I/O虚拟地址去访问.
/* include/asm-arm/mach/map.h */
struct map_desc {
unsigned long virtual; /* 映射后的虚拟地址*/
unsigned long pfn; /* I/O资源物理地址所在的页帧号*/
unsigned long length; /* I/O资源长度*/
unsigned int type; /* I/O资源类型*/
};
static struct map_desc s3c2410_iodesc[] __initdata ={
{
.virtual=(unsigned long)S3C24XX_VA_ LCD),
.pfn = __phys_to_pfn(S3C24XX_PA_ LCD),
.length = S3C24XX_SZ_ LCD,
.type = MT_DEVICE
},
……
};
在这里map_desc 结构体的virtual成员被初始化为S3C24XX_VA_ LCD,pfn成员值通过
__phys_to_pfn内核函数计算,只需要传递给它该I/O资源的物理地址就行。
Length为映射资源的大小。
MT_DEVICE为I/O类型,通常定义为MT_DEVICE。
这里最重要的即virtual 成员的值S3C24XX_VA_ LCD,这个值即该I/O资源映射后的内核虚拟地址,创建映射表成功后,便可以在内核或驱动中直接通过该虚拟地址访问这个I/O资源
六、实验步骤
✧编写功能模块驱动及相应makefile文件,下载到开发板运行。
七、实验结果
✧将实验代码及过程中结果写到实验报告上面《详见实验报告模板》。