跑马灯实验报告
跑马灯实验报告实验原理

跑马灯实验报告实验原理实验背景:跑马灯实验主要用于研究光的传播和反射原理。
通过实验可以观察到光在不同介质中的传播路径和光的反射规律。
本实验旨在通过搭建跑马灯实验装置,探究光在直线和曲线光路中的传播特点,并观察反射光线的方向。
实验原理:1. 光的传播特点光在真空中的传播速度为光速,约为3×10^8 m/s。
当光从真空射入介质时,光速会发生变化,根据折射定律可知,光从光疏介质射入光密介质时,会向法线方向弯曲,光从光密介质射入光疏介质时,会离开法线方向。
这种光线的弯曲现象称为折射。
2. 反射光线的方向当光线从一种介质射入另一种介质时,会发生折射,但同时也会发生反射。
根据反射定律可知,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角,反射光线与入射光线在入射面上的法线在同一平面内。
实验装置:1. 实验器材:跑马灯实验装置、直尺、激光笔、纸片、墨水笔等。
2. 实验步骤:a. 将跑马灯实验装置放置在平整的桌面上,调整好实验装置的角度,使得光线能够正常传播。
b. 使用激光笔在纸片上绘制直线和曲线光路图案,并进行标记。
c. 将纸片放置在实验装置上,将激光笔对准跑马灯实验装置的光源入口,发射激光光线。
d. 观察光线在直线和曲线光路中的传播路径,以及光线的反射方向。
e. 根据观察结果记录实验数据,并进行分析和总结。
实验结果:通过实验观察可以得出以下结论:1. 在直线光路中,光线沿直线传播,不会发生弯曲。
2. 在曲线光路中,光线在曲线上弯曲传播,沿着曲线的切线方向传播。
3. 光线在跑马灯实验装置中的反射方向符合反射定律,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角。
实验分析:根据实验结果可知,光在不同介质中的传播路径受到折射定律的影响,而光线在界面上的反射方向受到反射定律的影响。
这些定律的存在使得光在不同介质中的传播具有一定的规律性和可预测性。
实验应用:跑马灯实验的原理和结论在日常生活中有着广泛的应用。
单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。
实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。
2.编写程序:按照题目要求编写所需程序。
3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。
程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。
2. 在程序中,我们通过P2口控制LED灯的亮灭状态。
例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。
同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。
3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。
4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。
通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。
5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。
制作跑马灯的实训报告

一、实验背景随着科技的不断发展,电子技术在我们的日常生活中扮演着越来越重要的角色。
作为电子信息工程专业的学生,掌握电子电路的设计与制作技能是必不可少的。
本实训旨在通过制作跑马灯,让学生了解基本电子元件的原理和电路设计方法,提高学生的动手能力和创新思维。
二、实验目的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 灯的频繁闪烁,呈现出跑马灯的效果。
实验总结:
通过这个简单的跑马灯实验,我们了解了电子元件的基本原理和电路的工作方式。
同时,我们也体会到了实验中的观察和分析的重要性。
在今后的学习中,我们将进一步深入学习电子电路的知识,探索更多有趣的实验和应用。
以上就是本次跑马灯实验的实验报告,希望对大家有所帮助。
跑马灯实验报告

跑马灯实验报告跑马灯实验报告引言:跑马灯,又称为旋转灯,是一种常见的灯光装置,广泛应用于舞台、广告牌和娱乐场所等场合。
在这个实验报告中,我们将探讨跑马灯的原理、构造和应用,并通过实验验证其工作原理。
一、跑马灯的原理跑马灯的原理基于电机的旋转运动和灯泡的亮灭变化。
电机通过驱动轴带动跑马灯旋转,而灯泡则根据电路控制的信号进行亮灭操作。
通过电机的旋转和灯泡的变化,跑马灯能够呈现出循环闪烁的效果。
二、跑马灯的构造跑马灯一般由电机、驱动轴、灯泡和控制电路等组成。
电机是跑马灯的核心部件,通过驱动轴将旋转运动转化为灯泡的亮灭变化。
灯泡则通过控制电路接收信号,根据信号的变化来控制灯泡的亮灭。
整个跑马灯的构造简单而紧凑,能够实现稳定的循环闪烁效果。
三、跑马灯的应用跑马灯广泛应用于各个领域,其中最常见的是在舞台表演中的应用。
跑马灯通过循环闪烁的效果,能够为舞台表演增添动感和视觉冲击力。
此外,跑马灯还被广泛应用于广告牌、商场和娱乐场所等场合,通过灯光的变化吸引人们的注意力,起到宣传和促销的作用。
四、跑马灯实验为了验证跑马灯的工作原理,我们进行了一次简单的实验。
首先,我们准备了一个跑马灯实验装置,包括一个电机、驱动轴和三个灯泡。
然后,我们通过控制电路将电机和灯泡连接起来,确保信号的传输和控制正常。
接下来,我们启动电机,通过控制电路的信号变化,使灯泡循环闪烁。
实验结果表明,跑马灯能够按照预期的方式工作,实现循环闪烁的效果。
结论:通过本次实验,我们深入了解了跑马灯的原理、构造和应用。
跑马灯作为一种常见的灯光装置,在舞台表演、广告宣传和娱乐场所等场合起到了重要的作用。
通过实验验证,我们证实了跑马灯能够按照预期的方式工作,实现循环闪烁的效果。
跑马灯的应用前景广阔,未来有望在更多领域发挥其独特的作用。
总结:本次实验报告详细介绍了跑马灯的原理、构造和应用,并通过实验验证了其工作原理。
跑马灯作为一种常见的灯光装置,不仅能够为舞台表演增添动感和视觉冲击力,还能够在广告宣传和娱乐场所等场合起到重要的作用。
心形跑马灯实训报告

一、实训目的本次心形跑马灯实训旨在通过实际操作,让学生掌握心形跑马灯的设计原理、电路搭建、编程控制以及实际应用等方面的知识。
通过实训,提高学生的动手能力、创新能力和团队协作能力,同时加深对电子技术、嵌入式系统及编程的理解。
二、实训背景随着科技的发展,嵌入式系统在日常生活中得到了广泛应用。
心形跑马灯作为一种新颖的电子装饰品,具有较高的观赏性和实用性。
本实训项目以心形跑马灯为载体,让学生在实训过程中学习相关知识,培养创新意识。
三、实训内容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语言编写心形跑马灯的代码,实现心形图案的动态显示。
单片机跑马灯(流水灯)控制实验报告

单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。
每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。
2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。
三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子系统综合设计报告学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导教师刘怀强学院理学院走马灯实验论文--《嵌入式系统技术》1、实验目的1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用;2、理解和学会单片机并口的作为通用i/o的使用;3、理解和学会单片机外部中断的使用;4、了解单片机定时器/计数器的应用。
2、实验设备z pc 机、arm 仿真器、2440 实验箱、串口线。
3、实验内容z 熟悉 arm 开发环境的建立。
z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。
z 编写跑马灯程序。
5、实验原理走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。
然后连接仿真仪,下载监控程序,进行主机与实验箱联机仿真。
为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。
atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure callstandard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规则等。
下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书籍。
1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容:(1)各寄存器的使用规则及其相应的名称。
(2)数据栈的使用规则。
(3)参数传递的规则。
相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。
但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。
而派生的其他几种特定的 atpcs 就是在基本 atpcs 的基础上再添加其他的规则而形成的。
其目的就是提供上述的功能。
2.寄存器的使用规则寄存器的使用必须满足下面的规则:(1) 子程序间通过寄存器 r0~r3 来传递参数。
这时,寄存器 r0~r3 可以记作 a0~a3。
被调用的子程序在返回前无需恢复寄存器 r0~r3 的内容。
(2) 在子程序中,使用寄存器 r4~rll 来保存局部变量。
这时,寄存器 r4~r11 可以记作 v1~v8。
如果在子程序中使用到了寄存器 v1~v8 中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。
在 thumb 程序中,通常只能使用寄存器 r4~r7 来保存局部变量。
(3) 寄存器 r12 用作子程序间 scratch 寄存器,记作 ip。
在子程序间的连接代码段中常有这种使用规则。
(4) 寄存器 r13 用作数据栈指针,记作 sp。
在子程序中寄存器 r13 不能用作其他用途。
寄存器 sp 在进入子程序时的值和退出子程序时的值必须相等。
(5) 寄存器 r14 称为连接寄存器,记作 lr。
它用于保存子程序的返回地址。
如果在子程序中保存了返回地址,寄存器 r14 则可以用作其他用途。
(6) 寄存器 r15 是程序计数器,记作 pc。
它不能用作其他用途。
3.参数传递规则根据参数个数是否固定可以将子程序分为参数个数固定的(nonvariadic)子程序和参数个数可变的(variadic)子程序。
这两种子程序的参数传递规则是不同的。
(1)参数个数可变的子程序参数传递规则对于参数个数可变的子程序,当参数不超过 4 个时,可以使用寄存器 r0~r3 来传递参数;当参数超过 4 个时,还可以使用数据栈来传递参数。
在参数传递时,将所有参数看作是存放在连续的内存字单元中的字数据。
然后,依次将各字数据传送到寄存器 r0、r1、r2、r3 中,如果参数多于 4 个,将剩余的字数据传送到数据栈中,入栈的顺序与参数顺序相反,即最后一个字数据先入栈。
按照上面的规则,一个浮点数参数可以通过寄存器传递,也可以通过数据栈传递,也可能一半通过寄存器传递,另一半通过数据栈传递。
(2)参数个数固定的子程序参数传递规则对于参数个数固定的子程序,参数传递与参数个数可变的子程序参数传递规则不同。
如果系统包含浮点运算的硬件部件,浮点参数将按照下面的规则传递:·各个浮点参数按顺序处理。
·为每个浮点参数分配 fp 寄存器。
·分配的方法是,满足该浮点参数需要的且编号最小的一组连续的 fp 寄存器。
第一个整数参数,通过寄存器 r0~r3 来传递。
其他参数通过数据栈传递。
(3)子程序结果返回规则子程序中结果返回的规则如下:·结果为一个 32 位的整数时,可以通过寄存器 r0 返回。
·结果为一个 64 位整数时,可以通过寄存器 r0 和 rl 返回,依次类推。
·结果为一个浮点数时,可以通过浮点运算部件的寄存器 f0、d0 或者 s0 来返回。
·结果为复合型的浮点数(如复数)时,可以通过寄存器 f0~fn 或者 d0~dn 来返回。
·对于位数更多的结果,需要通过内存来传递。
4.c 语言函数和 arm 汇编语言函数间相互调用高级语言函数与汇编语言函数的混合调用也要遵循 atpcs 规则,保证程序调用时参数的正确传递。
在汇编程序中使用export 伪指令声明本子程序,使其它程序可以调用此子程序,而在 c 语言程序中使用ex tern 关键字声明外部函数(声明要调用的汇编子程序),即可调用此汇编子程序。
下面给出两个例子来介绍函数相互调用。
6、实验步骤1.编写一段程序,用p1口作为控制端口,使d1区的led 轮流点亮。
原理图如下图。
图3-1 走马灯实验原理图①仿照实验一的过程,编写程序、汇编、连接、软件仿真,基本达到功能要求。
org 0000h main:next:ljmp main org 0100h mov a,#0feh mov p1,a acall delay ;准备点亮第一只发光管; 准备点亮下一只发光管 rl a sjmp next ; 延时子程序delay: mov r2,#5delay2: mov r3,#100delay3: mov r4,#100 djnz djnz djnz ret end r4,$ r3,delay3 r2,delay2 调试成功以后,将程序中的org部分的偏移地址再加上8000h,重新编译。
②按照原理图,将a1区p1口的引线分别连接到d1区j52上。
③下载监控程序到实验仪上。
短接a1区的jp15,连接实验仪串口和主机的串口,将mod-sw1拨到load一边,flash-e和sram-e断开,运行主机上dpflash,下载mon51.hex到实验仪上。
④在keil系统上,完成程序的动态调试。
在主菜单debug下的options for target‘target 1’,点击debug,选择use keil monitor-51 driver,并且设置其他参数,将mod-sw1拨到run一边,按复位键,再按debug下的全速运行命令运行监控程序后,就可以进行动态调试了。
观察和记录各个寄存器内容的变化,端口p1的内容变化,以及对应的led的变化。
全速运行时,观察led的变化和闪烁速度。
7、实验相关寄存器gpbcon――端口配置寄存器gpbdat――端口数据寄存器 gpbup――端口上拉电阻使能寄存器8、实验电路图篇二:单片机跑马灯实验报告2010年中职骨干教师国家级培训单片机焊接与调试实验报告学员姓名:王军朝专业:电子电器应用与维修单位:山西省临猗县第一职业中学时间:2010年7月23日实验一熟悉最小单片机组装及keil的使用实验题目:用p1口的p1.0~p1.3作为输入,读取开关k0~k3上的数据,用p1.4~p1.7作为输出,控制发光二极管l0~l3。
设晶振频率fosc=12mhz,为更好的观察实验现象,要求程序在延时1s后再执行下一条。
实验目的:熟悉最小单片机组装及stc isp和keil软件的使用,并进行调试。
实验内容:最小单片机的组装与焊接,熟悉实验环境,掌握keil 的使用方法;建立工程,编程,调试并运行程序。
基本要求:能够在计算机上使用相应的软件建立一个工程,应用简单指令编写简单的程序进行编译,并在实验板上调试成功。
实验工具:1、单片机测试平台:pc机,串口线,并口线,单片机开发板。
2、软件:keil51测试软件,stc软件,串口调试软件,定时器/计数器初值测试软件。
3、万用表,尖嘴钳,斜口钳,镊子,剪刀,螺丝刀(十字/一字),电烙铁,烙铁架,松香,焊锡,清洁棉,工具箱。
电路原理:程序流程:实现小灯随开关闭合亮的程流程图实验步骤:1、应的元件组装最小单片电路成果图2、进行编程 org 0000h ljmp main org 0030h main:mov sp,#60h ;主程序开始,设置堆栈sp为60h mov a,#0fh mov p1,a ;数据送p1口,设置p1.0~p1.3为输入 next:mov a,p1 ;读k0~k3上的数据 swap a ;a的低4位与高4位交换 orl a,#0fh ;a的高4位不变,低4位为全1mov p1,a ;送数据到l0~l3,设置p1.0~p1.3为输入lcalldelay ;调用延时子程序 ljmp next ;循环delay:mov r5,#10; del0:mov r6,#200; del1:mov r7,# 0f8hnop; djnz r7,$; djnzr6,del1; djnz r5,del0; ret;end实验体会单片机是一门应用性和实践性非常强的学科,必须要多动手,多做实验。
在本次实验过程中,我们从元器件的焊接开始,逐步完成对单片机端口的输入、输出编程控制。
总体来说,如何进行正确的软件编程并完成仿真模拟运行是本次实验的重点也是难点,花费时间和精力也最多。
思考问题:1、想想为什么在更改程序前强调要先暂停程序?2、分析参考程序实现延时功能的原理。
3、如何用最少条数的指令实现闪灯程序?4、能不能让小灯有更多、更复杂的动作方式。
篇三:数字电路跑马灯实验报告实验名称:发光二极管走马灯电路设计与实现姓名:班级:班内序号:学院:日期:一、发光二极管走马灯电路设计与实现1.实验目的(1)进一步了解时序电路描述方法;(2)熟悉状态机的设计方法。
2.实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。