单片机花样流水灯设计实验报告

**大学

物理学院

单片机花样流水灯设计实验

课题:花样流水灯设计

班级: 物理 ***

姓名: ***

学号: ……………

当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。

制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。

本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

关键字:AT89C51 单片机流水灯数码管

1. 单片机及其发展概况

单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。

2. Protues仿真软件简介

Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。

【实验设计目标】

设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED 灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

【设计方案】

1.设计原理

AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。

要实现流水灯功能,只要将发光二极管Led1~Led8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯状,设计花样时可依此类推。此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。

2.电路原理图

3.器件配置清单

简介

AT89C51单片机有多种封装形式,常见的有DIP封装、PLC封装、TQFP 封装,为了使用的方便通常使用DIP封装形式的单片机。外部共有40个引脚,图6为引脚的排列图。40个引脚大致可分为4大类:电源、时钟、控制和I/O引脚,

5.芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数

器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

6.实验流程

【程序编写】

ORG 30H

START:MOV DPTR,#TABLE

LP1:MOV A,#00H

MOVC A,@A+DPTR

CJNE A,#1BH,LP2

JMP START

LP2:MOV P2,A

LCALL DELAY

INC DPTR

JMP LP1

DELAY:MOV R7,#10H

DE1:MOV R6,#200

DE2:MOV R5,#248

DJNZ R5,$

DJNZ R6,DE2

DJNZ R7,DE1

RET

TABLE:DB 0feH,0fdH,0fbH,0f7H DB 0efH,0dfH,0bfH,07fH DB 0bfH,0dfH,0efH,0f7H

DB 0fbH,0fdH,0feH,0ffH

DB 0aaH,55H,0aaH,55H

DB 0aah,55h,0ffH

DB 0f0H,0fH,0f0H,0fH,0ffH

DB 33H,0ccH,33H,0ccH

DB 33H,0ccH,0ffH

DB 1BH

END

【仿真调试】

打开Keil C软件将上面程序输入,调试无误后编译输出".hex"文件,打开Proteus软件,将之前编译好的".hex"文件加入到芯片中,开始运行仿真。数码管计时,每隔20秒,Led灯显示变换一次流水花样。

图图

图图

【设计实物图】

实物正面图实物反面图

【实验小结】

验证过程中,遇到两个问题:

1.调试后期有1个Led灯无法。

2.数码管不能正确显示数字。

检查后排除电路接错误的可能。出现第一个问题是由于那1个LED灯烧坏。第二个问题是数码管管脚插槽接触不良,无法正常运作,外接电线后能正常用作。

结束语

此次实验缺点在于器件排版不够合理美观,焊接工艺不足及对一些工具的安全使用、细小器件的保护意识不足。

基于Protues和Keil的单片机仿真开发及其应用,使得缺乏实验条件或实际焊接/制板难度较大的学习内容能够很方便地仿真研究,或者清晰地观察到不便观察实验现象的学习内容,因而利用仿真能够更快捷地了解及实现电子设计的自动化。

单片机流水灯实验报告

单片机流水灯实验报告: 实验一:用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 void delay();//延时函数声明 void main()//主函数 {unsigned char x,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和k for(k=0;k<500;k++)//双重for循环语句实现软件延时 for(j=0;j<100;j++); } 实验总结: 这次试验通过仿真实验软件实现流水灯实验,充分学会了keil 软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。也认识到仿真实用性。 单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机流水灯实验报告

单片机流水灯实验报告 一、实验目的 1、熟练掌握AT89S52-?型开发板的使用方法和注意事项。 2、了解简单单片机应用系统的设计方法。 3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。 4、掌握应用USBISP烧录软件的操作方法。 5、帮助学生养成良好实验习惯。 二、实验内容 在AT89S52-?开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。三、实验说明 当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出0111 1111时D1就会点亮。若再把0111 1111向右循环一位,利用PA口输出,就会点亮D2。在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水” 的现象。 五、实验原理图

六、实验参考程序 #include #define uchar unsigned char ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's #define uint unsigned int

单片机流水灯实验报告

单片机流水灯实验报告 姓名: 学号: 班级: 一、项目背景 当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计为一种简单实用的单片机花样流水灯设计与制作方案。 二、项目整体方案设计 根据时钟信号的脉冲输入,我们以改变每个LED点亮状态的保持的时间来改变LED的变换间隔时间,根据LED的循环点亮和时间间隔的改变设计成为一个直观的LED花样流水灯自动循环系统,由此思路我们就可以很容易的着手流水灯控制程序的设计。 三、硬件设计

四、软件设计 include #define uint unsigned int #define uchar unsigned char const tab[]={Oxfe,Oxfd,Oxfb,Oxef,Oxdf,Oxbf,Ox7f,Oxbf, Oxdf,Oxef,Oxf7,Oxfb,Oxfd,Oxfe,Oxff,Oxaa,0x55,0xaa,0x55,0xaa ,Ox5 5, Oxff,Oxf0,OxOf,Oxf0,OxOf,Oxff,Ox33,Oxcc,0x33,Oxcc,Ox33,Oxcc ,Oxff} void Delay1ms(unsigned int count) unsigned int ij; for(i=O;i

for(j=O;j120;j++); main (void) uchar i; while(1) for(i=O;i<35;i++) P1=tab[i]; Delay1ms(500); } 五、实验结果 六、项目总结 通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。

单片机流水灯实验报告

一、实验目的 初步认识单片机实验如何进行操作,明确单片机和计算机的关系 学习利用C语言进行编程,在流水灯基础上进一步进行改进设计出独立按键。 二、实验原理 使用C语言写出流水灯独立按键的代码并将其转换成单片机可执行和二进制代码即机器语言,将单片机各部分连接好,并将其连接到计算机主机上,通过STC-ISP软件使单片机执行转化好的二进制代码,进而设计出独立按键。 实验原理图: 三、实验要求 用按键控制流水灯的流动方向、流速、闪烁方式等 四、实验内容及步骤 1.连接试验相关模块连线。 1.#include 2.sbit k1=P1^0; 3.sbit k2=P1^1;

4.sbit k3=P1^2; 5.unsigned char direction=0x00; 6.unsigned char speed=0x00; 7.int speedvalue=10000; 8.unsigned char led=0x01; 9.void delay(int t) 10.{ 11.while(t) 12.t--; 13.} 14.void main() 15.{ 16.while(1) 17.{ 18.if(k1==0) 19.{ 20.direction=~direction; 21.} 22.if(k2==0) 23.{ 24.delay(1000); 25.speedvalue+=5000;

26.if(speedvalue==60000) 27.{ 28.speedvalue=10000; 29.} 30.while (!k2); 31.} 32.if(k3==0) 33.{ 34.delay(1000); 35.speedvalue-=5000; 36.if(speedvalue==0) 37.{ 38.speedvalue=30000; 39.} 40.while(!k3); 41.} 42.if(direction==0x00) 43.{ 44.led=led<<1; 45.if(led==0x00) 46.{ 47.led=0x01;

单片机流水灯实验报告

单片机流水灯实验报告 引言: 在现代科技的急剧发展下,单片机作为一种重要的控制元件,广泛应用于各个领域。流水灯作为单片机的一个经典实验,旨在让学生接触并掌握单片机的基本原理和操作方法。本次实验将介绍单片机流水灯的实验过程以及结果分析。 实验目的: 通过单片机流水灯实验,我们的目标是: 1. 熟悉并掌握单片机流水灯的基础原理; 2. 学习单片机编程的基本方法; 3. 培养实验设计和数据分析的能力。 实验原理: 单片机流水灯实验基于LED灯的控制,通过改变LED的亮灭状态实现流水灯效果。具体原理如下: 1. 单片机通过IO口控制LED灯的亮度,通过改变IO的输出电平来控制LED的亮灭状态。

2. 流水灯效果通过轮流改变LED灯的亮灭状态实现,即依次控制相邻LED的亮度和灭度。 实验步骤: 1. 准备实验材料:单片机开发板、LED灯、面包板、跳线等。 2. 按照电路图连接实验电路:将LED灯依次连接到单片机的IO口上。 3. 首先需要完成单片机的初始化工作,包括设置IO口的方向和初始状态。 4. 设计并编写流水灯的控制程序,包括控制LED灯的亮灭状态和延时时间。 5. 将编写好的程序烧录到单片机中。 6. 运行程序,观察LED灯的亮灭状态是否符合预期效果。 实验结果与分析: 根据实验步骤,我们成功地完成了单片机流水灯的实验。LED 灯按照预期的顺序轮流点亮和熄灭,呈现出流水般的效果。通过调整延时时间,我们可以改变流水灯的速度,使其呈现出不同的闪烁效果。

在实验过程中,我们也发现了一些问题。首先,有时LED灯的亮灭状态会出现错误,可能与电路连接有关,需要仔细检查电路连接的正确性。其次,流水灯的速度调节范围有限,可能需要通过引入外部元件来扩大调节范围。 结论: 通过单片机流水灯的实验,我们深入了解了单片机的基本原理和操作方法。通过编程实现流水灯效果,我们培养了实验设计和数据分析的能力。同时,在实验过程中发现的问题也为后续实验和学习提供了一定的启示,我们将进一步完善和改进实验方案,以提高实验效果。 总结: 单片机流水灯实验作为一种常见且经典的实验,在学习单片机相关知识时起到了重要的作用。通过亲自动手操作和实践,我们对单片机的原理有了更深入的了解,并通过调试和改进解决了实验中出现的问题。在今后的学习和工作中,我们将继续探索单片机的应用领域,并不断提高自己的实验设计和数据分析能力。

单片机流水灯实验报告

单片机流水灯实验报告单片机流水灯实验报告 一、实验目的 本实验旨在通过单片机控制八个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 //包含51单片机的头文件 #define LED P1 //定义LED为P1端口 void delay(unsigned int time) //延时函数 { unsigned int i,j; for(i=0;i

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。 二、硬件原理图 三、实验程序 ORG 0000H AJMP START ORG 001BH

AJMP INT ORG 0100H START:MOV SP,#60H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA SJMP $ INT:PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#B0H MOV TH1,#3CH SETB TR1 DJNZ R1,EXIT MOV R1,#20

MOV DPTR,#DATA MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0 ANL 00,#07H EXIT:POP DPH POP DPL POP PSW POP ACC RETI DATA:DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END 四、实验功能 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去. 五、实验总结 在做本次实验时,首先要注意实验要求是用74LS273做输出口,

单片机流水灯实验报告

单片机流水灯实验报告 引言 单片机是一种集成电路,可以通过编程来控制不同的功能。其中,流水灯是一个最简单的单片机实验项目,也是学习单片机的第一步。本篇实验报告将详细介绍如何通过使用 AVR 单片机来实现一个流水灯的控制器。 实验原理 流水灯的原理很简单,就是通过一个方向控制信号,以及一定的时间延时控制来逐步点亮和熄灭多个 LED 灯。在本次实验中,我们将使用 AVR ATmega328P 单片机,它可以通过编程来实现流水灯的控制功能。 实验步骤 1. 硬件准备

将 ATmega328P 单片机插入到开发板中,并使用杜邦线将单片 机的引脚连接到各个 LED 灯。我们需要将一个引脚连接到方向控 制信号,用于控制灯的点亮方向。同时,我们还需要连接一个电 位器,用于调节流水灯的速度。 2. 程序设计 使用 Arduino 开发环境来编写 AVR 单片机的程序。首先需要 包含头文件 avr/io.h 和 util/delay.h,并定义输入输出引脚。然后, 我们需要定义一个名为“led” 的一个数组,来存储各个 LED 灯的 输出状态。同时,还需要定义一个变量“dir”,来表示流水灯的方向。 在程序主循环中,我们使用 for 循环来遍历各个 LED 灯。同时,根据“dir”变量的不同,我们可以实现流水灯的正向和反向控制。 另外,我们还需要使用“_delay_ms()”函数来延时一定的时间,实 现流水灯的闪烁效果。 3. 程序烧录

使用 AVR ISP 编程器将编写好的程序烧录到单片机中。在烧录过程中需要设置正确的程序和芯片类型,并选择正确的口线连接方式。 实验结果 经过实际测试,我们成功地实现了一个流水灯控制器。在调节电位器之后,灯的闪烁速度可以得到不同的调整。同时,也可以通过改变方向控制信号来改变流水灯的运动方向。 结论 通过本次实验可以学习到如何使用 AVR 单片机来实现一个简单的流水灯控制器。通过编写程序、烧录编译等过程,可以加深对单片机的基础知识和理解。在实际应用中,也可以用学习到的技术来实现更复杂的单片机控制系统。

单片机实验报告---流水灯实验

流水灯实验 实验内容 实验说明: 如上图所示,板载 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 0000H LJMP START START: MOV A, #0FFH CLR C MOV R2, #8 LOOP1: RRC A MOV P1,A LCALL DELAY DJNZ R2,LOOP1 SJMP START DELAY: MOV R3,#7 D1: MOV R4,#50 D2: MOV R5,#250 DJNZ R5,$ DJNZ R4,D2

单片机实训报告——花样流水灯的制作

单片机实训报告——花样流水灯的制作 班级:电气一班 学号:110101127 姓名:李亚龙

一、花样流水灯的设计方案 流水灯实际上就是一个带有八个发光二级管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 如果要让P0.0口的LED2亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.0~P0.7口的其他7个LED的电亮和熄灭的方法同LED2。因此,要实现流水灯功能我们只要将发光二极管LED2~LED9依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。 对8段LED数码管显示器的控制,包括“显示段”和“公共端”两个地方的控制。其中显示段用来控制字符的形状,公共端用来控制若干个LED中的那一只被选中,前者称为“段选”,后者称为”位选”。只有二者结合起来,才能在指定的LED上显示指定的字形。显然,要显示某种字形就应该使此字形的相应字段点亮,按照dp、g、e、f、e、d、c、b、a的顺序,dp为最高位,a为最低位,引脚输入不同的8位二进制编码,可显示不同的数字或字符。 二、花样流水灯的硬件电路设计 时钟电路是计算机的心脏,它控制着计算机的工作节奏,CPU 就是通过复杂的时序电路完成不同的指令功能的,89C52的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。

单片机有多种复位电路,本系统采用电平式复位与上电复位方式,如下图所示当上电时C1相当于短路时,使单片机复位,在正常工作时,按下复位键是单片机复位。 显示部分主要是由八个LED和四个七段数码管组成,八个LED 由限流电阻限流后接入89C52的P0口。

51单片机流水灯实验报告

竭诚为您提供优质文档/双击可除51单片机流水灯实验报告 篇一:51单片机流水灯实验报告 51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LeD灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个 上电,使LeD灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的p2端口,对8个LeD 灯进行控制,要实现逐个亮灯即将p2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rra实现位

的转换。A寄存器的位经过rra之后转换如下所示:然后将A寄存器转换一次便送给p2即moVp2,A便将转 换后的数送到了p2口,不断循环下去,便实现了逐位置一 操作。 四、实验电路图 五、通过仿真实验正确性 代码如下:oRg0 moVA,#00000001b Loop:moVp2,A RLA AcALLDeLAY sJmpLoop DeLAY:moVR1,#255 DeL2:moVR2,#250 DeL1:DJnZR2,DeL1 DJnZR1,DeL2 ReT end 实验结果: 六、实验总结 这次试验我通过proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深

刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。 篇二:实验(:51单片机流水灯实验报告)一51单片机流水灯实验实验报告 “流水灯”实验报告 一、实验目的 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→......

单片机流水灯实验报告

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 实验结果: 六、实验参考程序 #include #define uchar unsigned char #define uint unsigned int uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0; sbit P01=P0^1; void delay(uchar t) { uchar i,j; for(i=0;i

单片机花样流水灯设计实验报告

**大学 物理学院 单片机花样流水灯设计实验 课题:花样流水灯设计 班级: 物理*** 姓名: ***

学号: …………… 【摘要】 当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

关键字:AT89C51 单片机流水灯数码管 【概述】 1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED

单片机流水灯设计报告

第一部分:实训准备 1.摘要: 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.关键字:单片机、流水灯 1.需求分析: 随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。 3.系统设计 1.硬件框图

2.总设计图 STC 89C51 复位电路键盘 震荡电路流水灯电路

3.选用AT89C51的引脚功能 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得部特殊功能寄存器容均被设成已知状态。 P0:端口0是一个8位宽的开路汲汲双向输出入端口,共有8个位,P0.0表示0,P0.1表示1,以此类推。 P2:端口2是具有部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。 4.说明 如图所示,S1为复位开关,S2、S3、S4分别为切换不同流水效果的开关,P2口控制LED灯D1~D7的显示,P0口作为LED的输出控制。当按下S2后能实现D1和D7同时亮其他不亮,然后D2和D6亮,依此类推。当按下复位S1,然后按下S2实现LED灯从D7到D1循环亮,按下S1然后按下S3实现LED从D1到D7的循环亮。 硬件详细设计

单片机流水灯实验总结

篇一:单片机实验报告——流水灯 电子信息工程学系实验报告 课程名称:单片机原理及接口 实验项目名称:实验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

相关主题
相关文档
最新文档