单片机流水灯实验总结
- 格式:doc
- 大小:35.48 KB
- 文档页数:12
流水灯实习报告一、实验原理单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED 灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。
二、硬件原理图三、实验程序ORG 00HAJMP STARTORG 001BHAJMP INTORG 0100HSTART:MOV SP,#60HMOV TMOD,#10HMOV TL1,#00HMOV TH1,#4CHMOV R0,#00HMOV R1,#20SETB TR1SETB ET1SETB EAINT:PUSH ACCPUSH PSW PUSH DPLPUSH DPHCLR TR1MOV TL1,#B0H MOV TH1,#3CH SETB TR1DJNZ R1,EXIT MOV R1,#20 MOV DPTR,#DATA MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0ANL 00,#07H EXIT:POP DPHPOP PSWPOP ACCRETIDATA:DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0HEND四、实验功能以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去.五、实验总结通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。
而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。
尤其是观察、分析和解决问题的实际工作能力。
一、实验目的1. 掌握电子电路板的基本制作流程,包括电路设计、元件焊接、电路调试等。
2. 熟悉流水灯电路的工作原理,理解其电路设计及编程方法。
3. 提高动手能力和电子电路分析能力。
二、实验原理流水灯电路是一种常见的电子电路,通过单片机或其他控制器控制LED灯的依次点亮和熄灭,形成流水效果。
本实验采用51单片机作为控制器,通过编写程序控制LED灯的亮灭顺序,实现流水灯效果。
三、实验器材1. 51单片机实验板2. LED灯8个3. 电阻(220Ω)8个4. 接线端子5. 编程器6. 电源7. 焊接工具四、实验步骤1. 电路设计根据实验要求,设计流水灯电路原理图。
电路主要由51单片机的P0口输出,连接8个LED灯和8个220Ω电阻组成。
电阻起到限流作用,保护LED灯不被烧毁。
2. 元件焊接根据电路原理图,将元件焊接在实验板上。
注意焊接顺序和焊接质量,确保电路连接正确。
3. 编程使用编程器将编写好的程序烧录到51单片机中。
程序主要实现以下功能:- 初始化P0口为输出模式;- 设置延时函数,控制LED灯的点亮和熄灭时间;- 循环控制P0口的值,实现LED灯的流水效果。
4. 电路调试连接电源,观察LED灯的流水效果。
若流水效果不理想,检查电路连接是否正确,调整延时函数参数,直至达到预期效果。
五、实验结果与分析实验成功制作了一块流水灯电路板,实现了LED灯的流水效果。
实验过程中,遇到以下问题:1. 电阻值选择不当,导致LED灯亮度不稳定。
2. 焊接过程中,个别焊点虚焊,导致电路连接不良。
针对以上问题,采取以下措施:1. 调整电阻值,使LED灯亮度均匀。
2. 重新焊接虚焊点,确保电路连接良好。
六、实验总结通过本次电路板流水灯实训,掌握了以下知识和技能:1. 电子电路板的基本制作流程。
2. 流水灯电路的工作原理及编程方法。
3. 电子元件焊接技巧和电路调试方法。
本次实验提高了自己的动手能力和电子电路分析能力,为以后的学习和工作打下了基础。
流⽔灯实践学习⼼得体会doc流⽔灯实践学习⼼得体会篇⼀:对LED流⽔灯的学习总结单⽚机的学习总结第⼀个实验:⼀、从点亮⼀个发光⼆极管到实现流⽔灯的操作实验报告实验⽬的:(1)知道单⽚机最⼩系统和典型系统(2)知道如何建⽴⼀个⼯程,完成⼀个点亮发光⼆极管的编译和烧写实验器件以及基础知识描述:(1)LED发光⼆极管是⼀种半导体⼆极管,可以把电能转换成光能,有⼀个PN结构成。
(2)晶振:全称为晶体振荡器,其作⽤是产⽣原始的时钟频率,这个频率晶振经过频率发⽣器的放⼤或缩⼩后就成为了电脑中各种不同的总线频率。
(3)IO端⼝的驱动能⼒:每个I/O端⼝允许的做⼤20mA 的灌电流,可以直接驱动LED和继电器;⾼电平输出时⼀般对负载提供电流其提供的电流叫“拉电流”;低电平输出时⼀般是要吸收负载的电流,其吸收的电流叫“灌电流”。
(4)P1.0---P1.7:准双向接⼝(内置上拉电阻),端⼝P1的数据寄存器⽤P1表⽰,端⼝置⼀表⽰⾼电平,设置为0表⽰输出低电平。
(5)如何进⾏程序烧写:5.1、⽤传统的并⾏烧写器5.2采⽤⽬前流⾏的IAP在线下载程序,STC的单⽚机可以不要编程器,通过USB或串⼝下载程序(6)延时函数:每条指令都占有⼀定的时间,如果让机器什么都不⼲机器就会延时,外加循环此数⼀个完整的点亮LED源代码程序如下:#includeSbit LED=P1^0;void main(){LED=1;LED=0;While(1)}有这⼀个简单的程序实现使p1^0端⼝控制的LED灯点亮,如果要实现多个灯同时点亮呢?可以定义多个端⼝,使之输出低电平即可://实现第1、3、5、7个LED灯点亮#includesbit LED0=P1^0;sbit LED2=P1^2;sbit LED4=P1^4;sbit LED6=P1^6;main(void){LED0=0;LED2=0;LED4=0;LED6=0;while(1){}}实现了控制灯亮暗后,程序中添加⼀段延时程序即可实现灯的闪烁:延时函数分为有参延时和⽆参延时;//⼀个简单的有参延时函数:void delay(unsigned int t){While(--t);}//⽆参延时函数:void delay(){for(int i=1000;i>0;i++)for(int j=1000;j>0;j++);}或者: void delay(){Unsigned int i=300;While(--i);}通过进⼀步的分析可以进⾏流⽔灯的设计:设计⽬的:从实际⼯程出发,在理论和实践上掌握流⽔灯系统的基础组成,⼯作原理。
基于AT89C52单片机的流水灯设计实训报告学院:信息工程学院班级:12级电子信息工程本科班学号:姓名:指导教师:2014年 12月29日目录前言 (1)一、总体设计 (2)1.1 总体设计框图 (2)1.2 硬件具体原理图 (3)二、设计内容 (3)2.1 设计要求 (3)2.2 硬件设计 (3)2.3 软件设计 (5)2.3.1 Keil的使用步骤: (5)2.3.2 程序流程 (8)2.3.3 程序代码 (9)三、最小系统板的焊接及调试流程 (12)3.1 最小系统板电路焊接流程: (12)3.1.1焊前准备: (12)3.1.2焊接步骤: (12)3.2 调试及问题解决方法 (13)3.2.1仿真 (13)3.2.2下载 (14)3.2.3问题及解决方法 (14)四、总结体会 (15)前言随着社会的进步和发展和人们生活水平的不断提高单片机技术已经成为当今各种新技术的载体各个应用领域的工程技术人员都应掌握单片机应用术。
同时,它所给人带来的方便也是不可否定的。
其中,数码管就是一个典型的例子。
但人们对它的要求越来越高要为现代人工作、科研、生活、提供更好的方便的设施,就需要从单片机技术入手,一切向着数字化控制、智能化控制方向发展。
单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。
更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
单片微型计算机就是将CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
我们周围有许多广告牌。
青 岛 科 技 大 学微机原理与接口技术综合课程设计(报告)题 目 __________________________________指导教师__________________________ 学生姓名__________________________ 学生学号_________________________________________________________院(部)____________________________专业________________班______年 ___月 ___日直流电机控制综合实验 周艳平宋雪英 01 信息科学技术学院计算机科学与技术0961 2012 12 27摘要 (2)1、单片机概述 (2)2、仿真软件介绍 (2)3、需求分析 (3)一、课程设计目的 (3)二、课程设计要求 (4)三、实验内容 (4)1、设计任务与要求 (4)2、系统分析 (4)1).硬件电路设计(画出原理图、接线图) (5)2)软件框图 (7)3、用keil建项目流程 (8)4、程序清单 (9)4、系统调试 (11)四、设计总结(结论) (12)摘要近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。
而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。
能够通过按键控制8个LED小灯从左到右依次点亮。
关键字:单片机、LED流水灯1、单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
“流水灯”实验报告一、实验目的1.了解单片机I/O口的工作原理。
2.掌握51单片机的汇编指令。
3.熟悉汇编程序开发,调试以及仿真环境。
二、实验内容通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。
(即流水灯效果)三、实验原理通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。
具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→......可以使用一个循环,不断对数据进行移位运算实现。
这里的移位指令采用RL和RR,即不带进位的位移运算指令。
如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。
四、实验过程1.在仿真系统中绘制好单片机的电路图2.编写汇编程序,程序如下:ORG 0000H Delay: MOV R0, #0FFHSJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOPMOV P0, A DJNZ R1, Delay2CLR P2.7 DJNZ R0, Delay1CLR P3.7 RETMove: MOV R2, #7H ENDMOV R3, #7HRMove: RL AMOV P0, ACALL DelayDJNZ R2, RMoveLMove: RR AMOV P0, ACALL DelayDJNZ R3, LMoveSJMP Move五、实验结果为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。
在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:1.只有1号二极管点亮2.只有2号二极管点亮3.只有3号二极管点亮4.只有4号二极管点亮5.只有5号二极管点亮6.只有6号二极管点亮7.只有7号二极管点亮8.只有8号二极管点亮实验的结果:二极管的发光状态从1→2→3→4→5→6→7→8→7→…→1→2;如此往复循环。
单片机流水灯实验报告
单片机流水灯实验报告
本次实验是单片机灯光控制实验,主要目的是培养学生使用突变端口控制灯光的实操能力。
实验分为程序设计、硬件组装、调试调试几个部分。
程序设计:根据实验要求编写了一个流水灯程序,主要利用单片机控制实现开关控制和常开及常闭特性,以及设置灯的渐变和闪烁的速度。
硬件组装:在板子上安装单片机和电路原件,并连接灯光电路,可以把单片机连接到PC,以便烧录程序。
调试调试:将程序烧录到单片机上,使板子上的灯光依次亮起,调整每个灯光闪烁或连续亮起的间隔,使灯光更好地结合实验要求。
本次实验让我深刻体会到用单片机编码语言思考问题的重要性,以及如何解决具体的技术问题。
实验操作让我加深了对单片机现象和面向对象编程的理解,让我更加熟练灵活地运用单片机配合硬件的概念和编程技术,全面提高了自己的应用水平。
流水灯实验报告总结流水灯实验是一种常用的电子元件实践训练,通过使用电子器件和编程语言,实现LED灯的流水效果。
本次实验中,我们成功地搭建了一个简单的流水灯电路,并通过编程控制实现了流水灯的效果。
首先,我们搭建了一个基本的流水灯电路。
流水灯电路由多个LED灯组成,LED 灯按照一定的顺序依次点亮和熄灭。
我们使用了74HC595位移寄存器来控制LED灯的点亮和熄灭。
通过给74HC595寄存器输入正确的二进制数值,可以实现给指定的LED灯点亮或熄灭。
接下来,我们使用编程语言对流水灯进行了控制。
在本次实验中,我们使用了Arduino编程语言来控制流水灯。
通过编写Arduino程序,我们可以控制74HC595寄存器的输入,从而控制LED灯的点亮和熄灭。
在程序中,我们使用了for循环和延时函数来实现流水灯的效果。
通过改变循环的次数和延时的时间,我们可以调整流水灯的速度和亮度。
在实验过程中,我们遇到了一些问题和困难。
首先,我们需要仔细连接电路,确保LED灯和74HC595寄存器的引脚正确连接。
其次,我们需要正确设置Arduino的串口和端口,以便将程序烧录到Arduino板上。
最后,我们需要仔细调试程序,确保流水灯的效果符合预期。
通过本次实验,我们学到了很多知识和技能。
首先,我们了解了流水灯和74HC595寄存器的工作原理。
其次,我们掌握了Arduino编程语言的基本语法和用法。
最后,我们掌握了电路搭建和调试的技巧。
总的来说,本次流水灯实验是一次很有意义的实践训练。
通过实验,我们进一步加深了对电子元件和编程语言的理解,提高了我们解决问题和创新的能力。
同时,通过实验我们也加强了团队合作和沟通的能力。
在今后的学习和工作中,我们将继续运用实践训练所学的知识和技能,不断创新和进步。
竭诚为您提供优质文档/双击可除51单片机流水灯实验报告篇一:51单片机流水灯实验报告51单片机流水灯试验一、实验目的1.了解51单片机的引脚结构。
2.根据所学汇编语言编写代码实现LeD灯的流水功能。
3.利用开发板下载hex文件后验证功能。
二、实验器材个人电脑,80c51单片机,开发板三、实验原理单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LeD灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的p2端口,对8个LeD灯进行控制,要实现逐个亮灯即将p2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用rl或rra实现位的转换。
A寄存器的位经过rra之后转换如下所示:然后将A寄存器转换一次便送给p2即moVp2,A便将转换后的数送到了p2口,不断循环下去,便实现了逐位置一操作。
四、实验电路图五、通过仿真实验正确性代码如下:oRg0moVA,#00000001bLoop:moVp2,ARLAAcALLDeLAYsJmpLoopDeLAY:moVR1,#255DeL2:moVR2,#250DeL1:DJnZR2,DeL1DJnZR1,DeL2ReTend实验结果:六、实验总结这次试验我通过proteus仿真实现对流水灯功能的实现。
受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。
在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。
这些错误令我明白以后在试验中要步步细心,避免出错。
篇二:实验(:51单片机流水灯实验报告)一51单片机流水灯实验实验报告“流水灯”实验报告一、实验目的1.了解单片机I/o口的工作原理。
2.掌握51单片机的汇编指令。
3.熟悉汇编程序开发,调试以及仿真环境。
二、实验内容通过汇编指令对单片机I/o进行编程(本实验使用p0口),以控制八个发光二极管以一定顺序亮灭。
单片机流水灯实验报告:实验一:用C51实现流水灯实验实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。
实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用r1或rr a实现位的转换。
实验内容:通过仿真来实现实验电路图代码如下;for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;实验结果:实验程序:#include<REG51.H>void delay();//延时函数声明void main()//主函数{unsigned charx,num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;}}void delay()//延时函数,无符号字符型变量i为形式参数{unsigned int j,k;//定义无符号字符型变量j和kfor(k=0;k<500;k++)//双重for循环语句实现软件延时for(j=0;j<100;j++);}实验总结:这次试验通过仿真实验软件实现流水灯实验,充分学会了keil 软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。
也认识到仿真实用性。
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
单片机流水灯实验报告单片机流水灯实验报告一、实验目的本实验旨在通过单片机控制八个LED灯,实现流水灯效果。
通过本实验,我们希望达到以下目的:1.深入理解单片机的I/O端口的工作原理和使用方法。
2.掌握单片机定时器/计数器的工作原理和使用方法。
3.学会编写简单的单片机程序,实现特定的LED灯控制。
4.通过实践操作,提高单片机软硬件的综合应用能力。
二、实验设备1.单片机开发板2.电脑一台3.八个LED灯4.杜邦线若干5.电阻、电容等电子元件三、实验原理本实验采用AT89C51单片机作为主控芯片。
八个LED灯分别连接到P1端口的P1.0到P1.7。
通过编程控制P1端口的每一个引脚,实现对LED灯的亮灭控制。
使用定时器/计数器实现延时,达到流水灯效果。
四、实验步骤和内容1.搭建硬件电路将八个LED灯、一个上拉电阻以及相应的杜邦线连接至单片机开发板。
确保电源正确连接,并注意LED灯的长脚为正极,短脚为负极。
2.编写程序使用Keil C51编写程序,实现如下功能:点亮每个LED灯一定的时间,然后熄灭。
重复此过程,形成流水灯效果。
代码如下:#include <reg51.h> //包含51单片机的头文件#define LED P1 //定义LED为P1端口void delay(unsigned int time) //延时函数{unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);}void main() //主函数{while(1) //程序一直循环执行{unsigned char i=0; //定义一个变量i,用于循环控制LED灯while(i<8) //循环点亮每个LED灯{LED=~(0x01<<i); //点亮第i个LED灯delay(50000); //延时50ms(50*1275us)i++; //变量i加1,控制下一个LED灯}}}3.编译程序将程序编译为二进制文件,生成HEX文件。
单片机流水灯实验报告方法一:通过位定义实现流水灯这种方法是最简单的方法,直接通过位定义的方法对LED灯进行操作。
不过这种方法虽然简单,不过需要做大量的重复工作,耗费大量时间,代码利用率不高。
方法二:通过数组方式实现流水灯这种方法相对于方法一来说可以节省大量时间,而且代码利用率高。
首先定义一个流水灯数组。
通过下图可以看到,数组第一个数据是16进制的0xfe,相对应的二进制是11111110。
由流水灯的硬件电路可知,LED灯的阴极接在单片机的P2口,LED灯的阳极接VCC,所以当单片机的P2口输出低电平时,相应的LED灯就会亮。
所以流水灯数组的第一个数据0xfe就是将P2.0口的LED灯点亮,数组第二个数据0xfd相应的二进制是11111101,相应的P2.1口LED就会亮,而由于P2.0口此时输出为高电平,所以对应的P2.0口LED灭。
由于是8盏LED灯,所以在main函数中使用for循环,循环8次,根据上述的分析,每一次循环都只有一盏LED灯亮,所以就达到了流水的效果。
方法三:通过移位函数方式实现流水灯循环移位函数_crol_()和_cror_()是左移和右移函数,该函数作用是将移出的高位补到低位。
注意使用移位函数时必须包含头文件intrins.h。
即#include<intrins.h>。
在主函数中先定义一个变量temp,将0xfe 赋给变量temp。
在while循环中,先将temp的值送到P2口,第一盏LED亮,然后使用循环左移函数将temp的值左移移位,最初值是11111110,执行左移函数之后,temp的值变为11111101,所以第一盏LED灯灭,第二盏LED亮,如此循环即可实现流水效果。
流水灯实践学习心得体会-精品2020-12-12【关键字】方案、方法、进展、空间、领域、文件、运行、传统、问题、系统、有效、深入、继续、充分、平稳、快速、执行、统一、发展、加深、建立、提出、掌握、了解、研究、特点、突出、稳定、成果、基础、需要、环境、工程、资源、能力、方式、特色、作用、标准、规模、结构、任务、速度、设置、增强、分析、调控、形成、整合、管理、强化、支持、发挥、解决、优化、完善、取决于、方向、适应、实现、提高、改进、专业化、重要性篇一:对LED流水灯的学习总结单片机的学习总结第一个实验:一、从点亮一个发光二极管到实现流水灯的操作实验报告实验目的:(1)知道单片机最小系统和典型系统(2)知道如何建立一个工程,完成一个点亮发光二极管的编译和烧写实验器件以及基础知识描述:(1)LED发光二极管是一种半导体二极管,可以把电能转换成光能,有一个PN结构成。
(2)晶振:全称为晶体振荡器,其作用是产生原始的时钟频率,这个频率晶振经过频率发生器的放大或缩小后就成为了电脑中各种不同的总线频率。
(3)IO端口的驱动能力:每个I/O端口允许的做大20mA 的灌电流,可以直接驱动LED和继电器;高电平输出时一般对负载提供电流其提供的电流叫“拉电流”;低电平输出时一般是要吸收负载的电流,其吸收的电流叫“灌电流”。
(4)P1.0---P1.7:准双向接口(内置上拉电阻),端口P1的数据寄存器用P1表示,端口置一表示高电平,设置为0表示输出低电平。
(5)如何进行程序烧写:5.1、用传统的并行烧写器5.2采用目前流行的IAP在线下载程序,STC的单片机可以不要编程器,通过USB或串口下载程序(6)延时函数:每条指令都占有一定的时间,如果让机器什么都不干机器就会延时,外加循环此数一个完整的点亮LED源代码程序如下:#includeSbit LED=P1^0;void main(){LED=1;LED=0;While(1)}有这一个简单的程序实现使p1^0端口控制的LED灯点亮,如果要实现多个灯同时点亮呢?可以定义多个端口,使之输出低电平即可://实现第1、3、5、7个LED灯点亮#includesbit LED0=P1^0;sbit LED2=P1^2;sbit LED4=P1^4;sbit LED6=P1^6;main(void){LED0=0;LED2=0;LED4=0;LED6=0;while(1){}}实现了控制灯亮暗后,程序中添加一段延时程序即可实现灯的闪烁:延时函数分为有参延时和无参延时;//一个简单的有参延时函数:void delay(unsigned int t){While(--t);}//无参延时函数:void delay(){for(int i=1000;i>0;i++)for(int j=1000;j>0;j++);}或者: void delay(){Unsigned int i=300;While(--i);}通过进一步的分析可以进行流水灯的设计:设计目的:从实际工程出发,在理论和实践上掌握流水灯系统的基础组成,工作原理。
流水灯实验心得流水灯实验心得篇1流水灯实验是一次非常有意义的实验,它让我对电子硬件和编程有了更深入的了解。
通过这次实验,我不仅掌握了一些基本的电子知识和编程技巧,还学会了一种实用的硬件设计方法。
在实验中,我使用了一些基本的电子元件,如电阻、电容和LED灯等。
通过将这些元件连接起来,我创建了一个简单的电路,可以通过编程控制LED灯的亮灭和闪烁速度。
这个实验让我了解了电路的基本原理和LED灯的工作原理,并且让我亲身体验了电子硬件的魅力。
在实验过程中,我遇到了一些困难和挑战。
例如,我曾经在连接电路时出现了错误,导致电路不通。
但是,通过仔细检查和重新连接,我最终成功地解决了这个问题。
此外,我还尝试了不同的编程方法和电路设计,最终找到了一种最简单、最有效的实现方式。
这些经历让我深刻体会到实验过程中需要不断尝试、不断调整和不断总结。
通过这次实验,我不仅学到了电子硬件和编程的知识,还培养了一些重要的实验技能和态度。
例如,我学会了如何正确地连接电路,如何调试和解决问题,以及如何与他人合作和分享实验结果。
这些技能和态度将对我未来的学习和工作产生积极的影响。
总的来说,流水灯实验是一次非常有意义的实验,它让我受益匪浅。
我不仅学到了很多有用的知识和技能,还培养了一些重要的实验技能和态度。
我相信这些经验和收获将对我未来的学习和工作产生积极的影响。
流水灯实验心得篇2以下是一份流水灯实验的心得体会:流水灯实验是一项非常基础的电子实验,旨在通过控制LED灯的亮灭来了解基本的电路原理和电子元件的使用。
通过这次实验,我不仅掌握了一些基本的电路知识和电子元件的使用方法,更重要的是,我深刻地认识到了实践的重要性。
在实验中,我首先通过理论学习了解了电路的基本构成和LED灯的工作原理。
然后,我利用面包板和LED灯等简单的实验器材进行了实际操作。
实验中,我遇到了一些问题,比如电路连接不正确导致LED灯不亮,但通过查阅资料和反复尝试,我最终成功地完成了实验。
单片机流水灯实验程序实验报告实验题目:流水灯实验2(利用查表方式)一、实验目的:1、学习利用查表的方式,使发光二极管(L1—L8)做舞台灯光效果的变化。
2、学习实用程序的编程规则。
二、实验仪器设备计算机一台、单片机在线系统一套(AY—MPU89S51E)三、实验电路:同实验一电路。
四、实验内容:灯光效果按如下规律显示:00111100,10000001,11000011,11100111,11111111,11100111,11000011,10000001,00000000,00011000,00111100,01111110 11111111,00000000,10101010,10101010,11001100,10000000,11000000,11100000,11110000,11111000,11111100 11111110,11111111,11111110,11111100,11111000,11110000 11100000,11000000,10000000,00000000。
扩展:自行设计花色效果表。
五、实验步骤:1、画出程序流程图。
3、程序输入到编程软件Keilc51中。
3、编译下载程序到系统实验板上的单片机中。
4、分析调试记录的内容和结果,找出程序中可能出错的地方,然后修改程序,继续调试、记录、分析,直到调试成功。
实验电路:U11939XTAL1P0.0/AD038P0.1/AD137P0.2/AD21836XTAL2P0.3/AD335P0.4/AD434 P0.5/AD533P0.6/AD6932RSTP0.7/AD721P2.0/A822P2.1/A923P2.2/A102924PSENP2.3 /A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A15110P1.0/T2P3.0/RXD2 11P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5 P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C52程序流程图:开始(21H) 00HDPTR #TAB,(A) (21H)(A) @A+DPTR显示灯亮(A) (21H)+1N Y(A)=33?程序代码:ORG 0000HLJMP STARTORG 0100HSTART:MOV P1,#0FFHMOV 21H,#00HLOOP:MOV DPTR,#TABMOV A,21HMOVC A,@A+DPTRCPL AMOV P1,ALCALL DELAYINC 21HMOV A,21HCJNE A,#33,LOOPMOV 21H,#00HLJMP LOOPTAB: DB00111100,10000001,11000011,11100111,11111111,11100111,11000011,10000001 DB00000000,00011000,00111100,01111110,11111111,00000000,10101010,10101010 DB11001100,10000000,11000000,11100000,11110000,11111000,11111100,11111110 DB11111111,11111110,11111100,11111000,11110000,11100000,11000000,10000000, 00000000DELAY: MOV R5,#03HD0:MOV R6,#0FFHD1:MOV R7,#0FFHDJNZ R7,$DJNZ R6,D1DJNZ R5,D0RETEND程序运行正确,写入单片机后,二极管按照上述数值亮灭,展现灯光舞台效果。
流水灯实验实验内容实验说明:如上图所示,板载 8个 LED 的阳极经排阻 RP1 上拉至 VCC,阴极连接至端口 J9。
实验中,使用杜邦线将单片机的 P1 端口(端口地址:0x90)顺序连接至 J9 端口。
程序功能:先将 P1 端口全部置高(LED 均熄灭),延时 0.2s 左右后,P1.0 置低(LED1 点亮),再延时 0.2s 左右后,P1.0 置高(LED1 熄灭),同时 P1.1 置低(LED2 点亮),如此循环,实现流水灯功能。
实验步骤:1.打开 Keil,新建工程:Project/New Project,输入工程名,并保存;2.选项选择器件:Atmel 的 89C52;3.新建程序文本,并另存该文件为汇编文件格式: (1)“File/New”,(2) File/Save As/键入欲使用的文件名及后缀名,即“文件名.asm”。
再单击“保存”;4.添加该文件到工程:回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,单击“Add File to Group ‘Source Group 1’”,选择刚才新建的汇编文件。
5.在 keil 的汇编文件中输入程序代码,并编译,调试。
6.编译通过后,将生成的HEX文件下载到单片机实验板中,观察实验现象。
参考代码:(1)ORG 0000HLJMP STARTSTART:MOV A, #0FFHCLR CMOV R2, #8LOOP1:RRC AMOV P1,ALCALL DELAYDJNZ R2,LOOP1SJMP STARTDELAY: MOV R3,#7D1: MOV R4,#50D2: MOV R5,#250DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETEND(2)ORG 0000HLJMP START START:MOV A, #00H SETB CMOV R2, #8LOOP1: RRC A MOV P1,ALCALL DELAYDJNZ R2, LOOP1 SJMP START DELAY: MOV R3, #7 D1: MOV R4, #50 D2: MOV R5, #250 DJNZ R5, $DJNZ R4, D2DJNZ R3, D1RETEND(3)ORG 0000HLJMP START START: MOV A, #00H SETB CMOV R2, #8LOOP1: RRC AMOV P1,ALCALL DELAYDJNZ R2, LOOP1 MOV R2, #7LOOP2: RLC AMOV P1,ALCALL DELAYDJNZ R2,LOOP2 SJMP START DELAY: MOV R3, #7 D1: MOV R4, #50D2: MOV R5, #250 DJNZ R5, $DJNZ R4, D2DJNZ R3, D1RETEND实验结果。
篇一:单片机实验报告——流水灯 电子信息工程学系实验报告 课程名称: 单片机原理及接口 实验项目名称: 实验2 流水灯实验 时间: 2011-10-21 班级: 电信092 姓名: 蔡松亮 学号: 910706247
一、实 验 目 的: 进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机i/o口和led灯的电路结构,学会构建简单的流水灯电路。掌握c51中单片机i/o口的编程方法和使用i/o口进行输入输出的注意事项。 二、实验原理: mcs-51系列单片机有四组8位并行i/o口,记作p0、p1、p2和p3。每组i/o口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行i/o端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,i/o端口用作双向输入输出口;当系统作外部扩展时,使用p0、p2口作系统地址和数据总线、p3口有第二功能,与mcs-51的内部功能器件配合使用。 以p1口为例,内部结构如下图所示:
图 p1口的位结构 作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:p1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。 i/o口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和i/o接口,单片机的四个口均可作i/o口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;p0口作i/o口使
用时应外接10k的上拉电阻,其它口则可不必;p2可某几根线作地址使用时,剩下的线不能作i/o口线使用;p3口的某些口线作第二功能时,剩下的口线可以单独作i/o口线使用。 三、实 验 环 境: 硬件:pc机,基本配置cpu pii以上,内存2g 软件:keil 2, proteus 7.5 四、实 验 内 容 及 过 程: 1、用proteus画流水灯电路图流程: 1)、运行proteus仿真软件,单击pick from libraries,打开搜索元器件窗口,如图 1 所示:
图 1 打开搜索元器件窗口 2)、搜索添加元器件,如图2 所示:
图2 搜索添加元器件窗口 3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器件参数为c1=c2=20pf、c3=10uf;
r1=r2=r3=r4=r5=r6=r7=r8=470欧姆、r9=10k欧姆;晶振=12m;vcc=5v。总电路图如图 3 所示:
图 3 流水灯电路原理图 2、用keil建项目流程: 1)、运行keil 2软件,启动后,点击project菜单新建项目,新建项目后,选择为at89c51的仿真单片机的型号,单击file选择new新建程序文件,保存后,右击source group1添加入程序文件。 2)、编写程序,右击target 1打开设置输出hex窗口,如图 4 所示:
图 4 打开设置输出hex窗口
3)、设置输出hex文件,勾选上output下的create hex fi:,单击确定保存,运行程序得到hex文件,如图 5 所示:
图5 设置输出hex文件 3、实验内容: 1)、8个led灯从最高位依次点亮,每次只亮一盏灯,依此循环。 新建keil文件,编写程序,程序如下: #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char void defay(uint z) { uint x,y;
for(x=100;x>0;x--) for(y=z;y>0;y--); } uchar temp; void main() {
temp=0xfe; p2=temp; while(1) {
temp=_crol_(temp,1); defay(500); p2=temp; } } 2)、编写程序使8个led灯从两边向中间循环点亮。 编写程序,程序如下: uchar temp,m,n;
uint i; void main() { m=0xfe; n=0x7f; while(1) { p2=m&n; m=_crol_(m,1); n=_cror_(n,1); if(m==0xef) { m=0xfe; n=0x7f; } } 3)、编写程序使用一根或二根i/o线接一开关控制流水灯流向。 编写程序,程序如下: sbit p15=p1^5; void main() { temp=0xfe; p2=temp; while(1) defay(500); } { if (p15==1) { temp=_crol_(temp,1); defay(500); } if (p15==0) { temp=_cror_(temp,1); defay(500); } p2=temp; } } 五、实 验 心 得: 通过本次的实验,熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机i/o口和led灯 篇二:51单片机流水灯实验报告 51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现led灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使led灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的p2端口,对8个led灯进行控制,要实现逐个亮灯即将p2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 a寄存器的位经过rr a之后转换如下所示:
然后将a寄存器转换一次便送给p2即mov p2,a便将转换后的数送到了p2口,不断循环下去,便实现了逐位置一操作。 四、 实验电路图
五、 通过仿真实验正确性
代码如下:org 0 mov a,#00000001b loop:mov p2,a rl a acall delay sjmp loop
delay:mov r1,#255 del2:mov r2,#250 del1:djnz r2,del1 djnz r1,del2 ret end
实验结果:
六、 实验总结 这次试验我通过proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。
篇三:流水灯单片机课程设计报告 井冈山大学 机电工程学院
单片机 课程设计报告
课程名称:单片机 设计题目:流水灯 姓 名:覃家应 陈东阳 专 业:生物医学工程 班 级:10级医工本一班 学 号:100615062 指导教师:王佑湖
2012年11月10日
目录 1引言„„„„„„„„„„„„„„„„„„„„„„..2 1.1设计任务„„„„„„„„„„„„„„„.„„„.2 1.2设计要求„„„„„„„„„„„„„„„„„„ ..2 2 课题综述„„„„„„„„„„„„„„„„„„„„.2 2.1课题的来源„„„„„„„„„„„„„„„„„.. 2 2.2面对的问题„„„„„„„„„„„„„„„„„ 2 3 系统分析„„„„„„„„„„„„„„„„„„„„.2 3.1 89c52单片机引脚图及引脚功能介绍„„„„„„„2 4 系统设计„„„„„„„„„„„„„„„„„„„„.4 4.1硬件设计„„„„„„„„„„„„„„„„„„...4 4.1.1硬件框图„„„„„„„„„„„„„„„„..4 4.1.2硬件详细设计„„„„„„„„„„„„„„..5 4.2 软件设计„„„„„„„„„„„„„„„..............5 4.3 硬件原理图„„„„„„„„„„„„„„„„„..6 4.4 元件清单„„„„„„„„„„„„„„„„„„..6