实验二 GPIO跑马灯实验

合集下载

跑马灯实验报告.

跑马灯实验报告.

跑马灯实验报告姓名:班级:跑马灯实验报告试验目的1.学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编程方法。

3.学习端口的输入输出操作。

实验原理1、软件流程图:2.程序设计内容我们可以运用输出端口指令MOV P1,A 或MOV P1,#DATA ,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

3、硬件连接图:4.软件清单ADR EQU 8000HORG 0000HLJMP STARTORG 001BHLJMP OT1ORG 00F0HSTART:MOV TMOD,#10HMOV TL1,#0B0HMOV TH1,#3CHSETB EASETB ET1MOV R2,#14HMOV R3,#00HSETB TR1SJMP $OT1:CLR TR1CLR EAMOV TH1,#3CHMOV TL1,#0B0HDJNZ R2,BACKNEXT:MOV R2,#14HMOV DPTR,#0200hMOV A,R3MOVC A,@A+DPTRMOV DPTR,#ADRMOVX @DPTR,AINC R3CJNE R3,#08H,BACKSJMP ROUNDBACK:SETB EASETB TR1RETIROUND:MOV R3,#00HSJMP BACKORG 0200HDB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,00H END5.C语言源程序#include <AT89X51.H>unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}void main(void){while(1){temp=0xfe;P1=temp;delay();for(i=1;i<8;i++){a=temp<<i;b=temp>>(8-i);P1=a|b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P1=a|b;delay();}}}功能说明由8031内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

跑马灯实验报告实验原理

跑马灯实验报告实验原理

跑马灯实验报告实验原理实验背景:跑马灯实验主要用于研究光的传播和反射原理。

通过实验可以观察到光在不同介质中的传播路径和光的反射规律。

本实验旨在通过搭建跑马灯实验装置,探究光在直线和曲线光路中的传播特点,并观察反射光线的方向。

实验原理:1. 光的传播特点光在真空中的传播速度为光速,约为3×10^8 m/s。

当光从真空射入介质时,光速会发生变化,根据折射定律可知,光从光疏介质射入光密介质时,会向法线方向弯曲,光从光密介质射入光疏介质时,会离开法线方向。

这种光线的弯曲现象称为折射。

2. 反射光线的方向当光线从一种介质射入另一种介质时,会发生折射,但同时也会发生反射。

根据反射定律可知,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角,反射光线与入射光线在入射面上的法线在同一平面内。

实验装置:1. 实验器材:跑马灯实验装置、直尺、激光笔、纸片、墨水笔等。

2. 实验步骤:a. 将跑马灯实验装置放置在平整的桌面上,调整好实验装置的角度,使得光线能够正常传播。

b. 使用激光笔在纸片上绘制直线和曲线光路图案,并进行标记。

c. 将纸片放置在实验装置上,将激光笔对准跑马灯实验装置的光源入口,发射激光光线。

d. 观察光线在直线和曲线光路中的传播路径,以及光线的反射方向。

e. 根据观察结果记录实验数据,并进行分析和总结。

实验结果:通过实验观察可以得出以下结论:1. 在直线光路中,光线沿直线传播,不会发生弯曲。

2. 在曲线光路中,光线在曲线上弯曲传播,沿着曲线的切线方向传播。

3. 光线在跑马灯实验装置中的反射方向符合反射定律,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角。

实验分析:根据实验结果可知,光在不同介质中的传播路径受到折射定律的影响,而光线在界面上的反射方向受到反射定律的影响。

这些定律的存在使得光在不同介质中的传播具有一定的规律性和可预测性。

实验应用:跑马灯实验的原理和结论在日常生活中有着广泛的应用。

实验2-最简单的八路跑马灯-实验说明

实验2-最简单的八路跑马灯-实验说明

实验2: 最简单的八路跑马灯1.0连接说明1.1用跳线帽将SP0排针连接;1.2依据ISP在线编程步骤将程序写到入芯片中;1.3打开电源程序即可运行。

1.4注意该实验结束后可将SP0上的跳线帽去掉,以减少开发板的功耗。

2.0相应原理图如下:3.0实验说明:本实验用到L1-8灯。

本例实验主要用到了延时子程序,clr,lcall,ajmp 指令,通过轮流点亮p1.0 …..P1.7 实现效果。

用户可以通过此程序的学习,初步掌握单片机的IO 端口操作。

练习1:怎样把延时的时间改为更短,或者更长?练习2:怎样用P0,P2,P3端口来操作?练习3:怎样实现不同的跑马花样?4.0程序范例:;//P1口控制跑马灯程序//ORG 0000HAJMP MAINORG 0030HMAIN:MOV P1,#0FFH;ACALL DELCLR P1.0 ;将P1.0送0指令ACALL DEL ;延时SETB P1.0CLR P1.1 ;将P1.1送0指令ACALL DEL ;延时SETB P1.1CLR P1.2 ;将P1.2送0指令ACALL DEL ;延时SETB P1.2CLR P1.3 ;将P1.3送0指令ACALL DEL ;延时SETB P1.3CLR P1.4 ;将P1.4送0指令ACALL DEL ;延时SETB P1.4CLR P1.5 ;将P1.5送0指令ACALL DEL ;延时SETB P1.5CLR P1.6;将P1.6送0指令ACALL DEL ;延时SETB P1.6CLR P1.7 ;将P1.7送0指令ACALL DEL ;延时SETB P1.7ACALL DELMOV P1,#00H;ACALL DELAJMP MAIN ;循环RET;//**************************//;//******延时子程序**********//;//**************************//ORG 0080HDEL: MOV R2,#255 ;想想为什么要这样?D1: MOV R3,#255D2: NOP ;延时2us秒,去掉几个NOP看结果怎样?NOPNOPNOPNOPDJNZ R3,D2DJNZ R2,D1RET。

制作跑马灯的实训报告

制作跑马灯的实训报告

一、实验背景随着科技的不断发展,电子技术在我们的日常生活中扮演着越来越重要的角色。

作为电子信息工程专业的学生,掌握电子电路的设计与制作技能是必不可少的。

本实训旨在通过制作跑马灯,让学生了解基本电子元件的原理和电路设计方法,提高学生的动手能力和创新思维。

二、实验目的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 灯的频繁闪烁,呈现出跑马灯的效果。

实验总结:
通过这个简单的跑马灯实验,我们了解了电子元件的基本原理和电路的工作方式。

同时,我们也体会到了实验中的观察和分析的重要性。

在今后的学习中,我们将进一步深入学习电子电路的知识,探索更多有趣的实验和应用。

以上就是本次跑马灯实验的实验报告,希望对大家有所帮助。

山交院实验二GPIO实验

山交院实验二GPIO实验

实验二GPIO实验一、实验目的与要求1、熟悉Keil uVision5(MDK-ARM)软件2、熟悉GPIO的使用方法,熟悉HAL固件库中GPIO库函数的使用方法3、熟悉使用STM32CubeMX创建新项目二、实验设备SUN ESMC01实验仪(含STM32F103模块)一套、ARM仿真器一套、PC机一台三、实验内容1、熟悉Keil uVision5集成环境软件的使用方法。

2、熟悉使用STM32CubeMX创建新项目。

3、编写程序:控制实验箱F6区的指示灯DS1闪亮。

4、编写程序:控制实验箱F6区的8个指示灯DS1~DS8,循环点亮,瞬间只有一个灯亮。

5、观察实验结果,验证程序是否正确。

四、实验原理(一) LED原理图JP28:绿色发光管控制接口,0-灯亮,1-灯灭JP29:红色发光管控制接口,0-灯亮,1-灯灭(二) 实验箱跳线准备1、JP85:选择CPU2:2、JP6:选择E5V,使用实验仪给核心板供电STM32F103核心板供电方式有三种,由JP6选择:JP6选择U5V,使用USB MINI接口(CN4)供电;JP6选择C5V,使用B型USB接口(CN3)供电;JP6选择E5V,使用实验仪供电。

3、将STAR ARM_U仿真器的JTAG插头插入STM32F103核心板上的JTAG插座。

使用USB线将仿真器与微机相连。

4、打开实验仪电源。

五、使用STM32CubeMX请参阅实验箱随机“使用手册”3.5节使用STM32CubeMX六、实验说明1、源文件组成stm32f1xx_hal_conf.h 库配置文件、HSE值定义stm32f1xx_it.c 中断处理文件stm32f1xx_it.h 中断处理头文件gpio.c、gpio.h GPIO初始化(GPIOA(PA13:SWDIO、PA14:SWCLK))stm32f1xx_hal_msp.c提供MSP初始化、中断初始化函数system_stm32f1xx.c HAL库提供,一般不作改动。

1-GPIO跑马灯的单片机程序说明书

1-GPIO跑马灯的单片机程序说明书

delay(25);
}
}
// USER CODE END
注:添加用户代码时,请添加到 “ // USER CODE BEGIN” 和 “// USER CODE END”之间。
4)Keil 下编译、下载、调试(相关信息,可参见 Step6 内的 Keil 使用视频教程)
当完成前一步的添加代码工作后,则可以点击 按钮进行编译,直到提示 0 Error(s)
@
网址:

北京乾勤科技发展有限公司 (版权所有,2013 年 3 月)
--------------------------------------------------------------------------
--------------------------------------------------------------------------
电话:
010-82642324/82641640
传真:
010-82641640
地址:
北京市中关村北二街四号 水清木华园 5#212
邮编:
100190
信箱:
2) DAvE 生成代码
图 1-5 Port 口配置
保存配置好的文件,点击 择的函数。
,DAvE 自动生成代码,生成的代码即包括前面所选
图 1-6 DAvE 自动产生代码
图 1-7 DAvE 生成代码文件 3) 修改用户代码
进入上一步 DAvE 保存的位置,用 Keil 打开生成的.dpt 文件。然后在 Keil 环境下 找到 main 文件。
在 main.C 中添加下列代码:
// USER CODE BEGIN (Main,1)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 I/O接口实验
[实验目的]
1.熟悉ARM芯片I/O口配置方法
2.通过实验掌握ARM芯片I/O控制LED显示的方法
[实验仪器]
1.Proteus仿真的LPC2000系列的ARM处理器
2.软件:PC机操作系统Win98、Win2000或WinXP,Keil for ARM(MDK)集成开发环境
[实验原理]
根据LPC2000系列ARM芯片的特点,可以将P0口的功能设置为GPIO,用来驱动LED等设备或者接受矩阵键盘的输入等。

[实验内容]
设计一个ARM驱动LED的电路,使用LPC2000的GPIO功能,编写一个LED跑马灯程序,并且在Proteus上仿真运行。

[预备知识]
LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。

通过引脚连接模块PINSELx控制引脚功能
[实验步骤]
一、参考实验一建立ARM的GPIO电路,图中使用P0口的低八位驱动八个发光二极管,元件参
元件元件参数
Res1~8 51欧
Cap1~4 22P(仿真时候没有影响)
晶振1,2 11.0592MHz和32768(仿真时候没有影响)
LED 红绿黄蓝颜色的各两个
二、使用Keil MDK软件和C语言编写LED的驱动程序:
按照实验一创建一个Keil项目,项目名称叫GPIO,不过在提示下图时候选择是,而不是否。

此处使用Keil提供的汇编启动文件来启动arm处理器,不再使用自己编写的汇编语言了。

创建项目后界面如下:
在项目配置的界面下,linker页按如下设置,不按照实验一的设置进行。

其余的设置按照实验一设定。

双击打开 Startup.s文件,见下图
这个文件有两种编辑方式,一种是使用文本方式,就是上图中的TextEditor。

另一种是菜单界面的配置方式Configuration Wizard,用来配置ARM处理器的运行时候的设置。

点击Configuration Wizard(上图的编辑区的下方)如下图
按照图上设置,取消锁相环的设置。

(同样的方式也可以设置其它选项,大家做实验的时候可以分别展开各个选项查看并熟悉一下,以后实验备用)。

新建一个文本文件,保存并且命名为gpio.c,并添加到该项目中。

按照如下操作进行:
弹出如下窗口
像该文本中添加代码
在文本编辑区中右击一下,选择Insert ‘#include <LPC2103.H>’然后添加C语言函数的框架,见下图
点击保存为gpio.c
然后将该文件添加到项目中,按下图顺序操作
点击Add按钮,点击Close按钮即可。

最后工程的界面如下:
如果和上图不一样,检查一下操作步骤。

接下来向main函数中添加代码,实现跑马灯功能。

/*主程序main.c*/
#define LEDCON 0x000000ff // P0.0~7引脚控制LED
/**************************************************************************** * 名称:DelayNS()
* 功能:长软件延时。

* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/ void DelayNS(int dly)
{
int i;
for(; dly>0; dly--)
{
for(i=0; i<5000; i++);
}
}
int main()
{
int i;
PINSEL0 = 0x00000000; // 设置管脚连接GPIO
IODIR = LEDCON; // 设置I/O为输出
while(1) //此处设置跑马灯的各种闪烁动作,同学们可以自由修改
{
for(i=0;i<16;i++){
IOSET = LEDCON;
DelayNS(100);
IOCLR = LEDCON;
DelayNS(100);
}
for(i=0;i<256;i++){
IOCLR = ~i;
IOSET = i;
DelayNS(30);
}
for(i=0;i<10;i++){
IOCLR = ~(i|(i<<4));
IOSET = i|(i<<4);
DelayNS(100);
}
}
return 0;
}
将生成的Hex文件加载到Proteus中的ARM处理器中,运行。

观察LED的闪烁情况,找出与代码中对应的部分。

对LED的闪烁情况做记录。

[思考与分析]
1.将跑马灯的闪烁变成左右来回移动的方式,每次只有一个led亮。

试着修改代码完成对此功能。

2.查找上课笔记,采用数组的方式实现led的闪烁,闪烁规律自定义。

3.在P0.8引脚上添加一个琴键开关,并将P0.8设置为输入。

当琴键开关按下的时候,出现一种跑马灯的闪烁规律,当琴键开关没按下(抬起)的时候,跑马灯以另外一种形式在闪烁。

见下图。

相关文档
最新文档