左右来回循环的流水灯实验报告

左右来回循环的流水灯实验报告
左右来回循环的流水灯实验报告

青 岛 科 技 大 学

微机原理与接口技术综合课程设计(报告)

题 目 __________________________________

指导教师__________________________ 学生姓名__________________________ 学生学号__________________________

_______________________________

院(部)____________________________专业________________班

______年 ___月 ___日

直流电机控制综合实验 周艳平

宋雪英 0908610211 信息科学技术学院

计算机科学与技术0961

2012 12 27

摘要 (2)

1、单片机概述 (2)

2、仿真软件介绍 (2)

3、需求分析 (2)

一、课程设计目的 (3)

二、课程设计要求 (3)

三、实验内容 (3)

1、设计任务与要求 (3)

2、系统分析 (3)

1).硬件电路设计(画出原理图、接线图) (4)

2)软件框图 (5)

3、用keil建项目流程 (7)

4、程序清单 (7)

4、系统调试 (9)

四、设计总结(结论) (10)

摘要

近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。

关键字:单片机、LED流水灯

1、单片机概述

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微

型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处

理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,

便可成为一个单片机控制系统。

单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它

们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

2、仿真软件介绍

(1).Keil uv3

运行Keil uv3

新建工程:菜单“Preject->New Preject”,保存为*.uv2,选择芯片型号,copy否

新建文件:菜单“File->New”,保存为*.c,编写程序

将源文件添加到工程:在左侧project workspace的source group1点右键选择addfile加入*.c

设置工程:点菜单栏上的,选Target,设晶振值;选Output,点create Hex file以生成少些文件;选Debug,选择软件仿真(simulator)或硬件仿真(Keil Monitor)方式。

编译链接:点菜单栏上的进行编译,或点菜单栏上的进行编译链接,或点菜单栏上的进行重新编译链接,或点菜单栏上的停止编译。

编译链接后生成*.hex文件,可烧写到单片机。

(2).Proteus

使用Proteus仿真

点击单片机,在Program Files处选择*.hex文件,OK,进行仿真

RESPACK--8

排阻,就是好多电阻连载一起,有一个公共端,1端为公共端接VCC(上拉)或地(下拉)

一般接在51单片机P0口,因P0口内没有上拉电阻,不能输出高电平,所以要接上拉电阻。

3、需求分析

随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变

得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。

一、课程设计目的

微机原理和接口技术是一门实践性强的学科,相关知识仅靠学习教科书不能很好的掌握,必须通过实践才能比较直观和深刻的理解。

在综合课程设计过程中,学生结合所学知识,选择一个综合性的设计题目,根据设计要求确定实验方案,选择合适的器件,进行电路设计,实现电路连接,编写调试程序,完成设计任务。

通过课程设计课程,可检验学生在微机原理与接口综合应用方面分析问题与解决问题的能力,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。同时给学生提供更多、更好的训练机会,培养学生的创新能力。

二、课程设计要求

综合利用微机原理与接口课程所学的各种知识,设计一套具有一定功能、实用价值的应用系统,

(1)必须用和微机系统相关的知识设计题目;

(2)确定设计任务后,明确题目要求,查找资料提出设计方案;

(3)独立设计、编程、调试和验证所设计系统;

(4)系统必须能够演示、运行或得到仿真结果;

(5)完成设计任务后撰写课程设计报告;

三、实验内容

1、设计任务与要求

设计任务:在AT89S52-Ⅰ开发板上实现8个发光LED“流水”的现象即8只LED左右来回点亮,并通过编写程序控制流水现象。

要求:点亮第一个流水灯,然后熄灭,接着点亮第二个流水灯,熄灭;点亮第三个,到最后点亮第八个灯,熄灭;点亮第七个灯,依次到第一个灯,然后循环实现流水。程序利用循环移位函数_crol_和_cror_形成来回滚动的效果。

8只LED左右来回点亮:接在P0口的8个LED从左到右循环依次点亮,然后右到左循环依次点亮,产生左右循环走马灯效果

2、系统分析

MCS-51系列单片机有四组8位并行I/O P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O

I/O

P0、P2口作系统地址和数据总线、P3MCS-51的内部功能器件配合使用。以P1口为例:P1口的位结构作输出时输出0时将0输出到内部总线上在写锁存器信号控制下写入锁存器锁存器的反向输出端输出下面的场效应管导通输出引脚成低电平。输出1时下面的场效应管截止上面的上拉电阻使输出为1。作输入时端口引脚信号通过一个输入三态缓冲器接入内部总线再读引脚信号控制下引脚电平出现在内部总线上。

I/O口的注意事项如果单片机内部有程序存贮器不需要扩展外部存贮器和I/O接口单片机

的四个口均可作I/O口使用四个口在作输入口使用时均应先对其写以避免误读口作I/O口用时应外接10K的上拉电阻其它口则可不必可某几根线作地址使用时剩下的线不能作I/O口线使用口的某些口线作第二功能时剩下的口线可以单独作I/O口线使用。

1).硬件电路设计(画出原理图、接线图)

绘制流水灯原理图假设元器件参数为c1=c2=20pf、欧姆、R9=10k欧姆晶振=12M;VCC=5V。总电路图如图1所示

图1 流水灯原理图

绘制流水灯接线图:

图2绘制流水灯接线图

2).选用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的循环亮。

3)软件框图

下面是8只LED 左右来回点亮的流程图

开始 i=0,P2=_cror_(P2,1) 结束

P2的值向左循环移动

判断i 是

否小于7

判断i 是否小于7

While (1)

8只LED左右来回点亮的程序流程图

3、用keil建项目流程

1)、运行keil 2软件,启动后,点击Project菜单新建项目,新建项目后,选择为AT89C51的仿真单片机的型号,单击File选择New新建程序文件,保存后,右击Source Group1添加入程序文件。

2)、编写程序,右击Target 1打开设置输出HEX窗口,如图3所示:

图 3 打开设置输出HEX窗口

3)、设置输出HEX文件,勾选上Output下的Create HEX Fi:,单击确定保存,运行程序得到HEX文件,如图 4 所示:

图4 设置输出HEX文件

4、程序清单

#include

#include

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

uchar i;

P2=0x01;

while(1)

{

for(i=0;i<7;i++)

{

P2=_crol_(P2,1); //P2 的值向左循环移动

DelayMS(150);

}

for(i=0;i<7;i++)

{

P2=_cror_(P2,1); //P2 的值向右循环移动

DelayMS(150);

}

}

}

代码解释:

(1)#include

预处理命令,包含头文件,

通用格式#include

类似的头文件reg52.h/AT89X51.h/AT89X52.h,基本一样,只在使用时对位的定义不一样

at89x51.h文件中对P1.1的操作是写成P1_1;

reg51.h文件中的操作则写成P1^1。

at89x5*特指ATMEL公司的系列单片机

reg5*指所有52系列的单片机。

reg52是对reg 51的扩充,增加了T2和DPTR1,可认为reg 51是reg 52的子集。

sfr P0=0x80; //定义P0的I/O端口,其地址为80H。

在keil中,sfr与sfr16用于定义8051的特殊功能寄存器,其中sfr用来定义8为特殊功能寄存器,sfr16用来定义16位特殊功能寄存器

(2)#include

C51单片机头文件

包含以下函数:_crol_ 字符循环左移,_cror_ 字符循环右移,_irol_整数循环左移,_iror_ 整数循环右移,_lrol_ 长整数循环左移,_lror_ 长整数循环右移,

_nop_ 空操作8051 NOP 指令,_testbit_ 测试并清零位 8051 JBC 指令。

例:unsigned int y; y=0x00ff; y=_irol_(y,4); //无符号整型y循环左移4位。(3)void main(void)

主函数无返回值, void 是空的意思,main()是主函数,

也可以定义为int main(),表示有返回值,需在函数最后用return返回结果

(3)while()

while循环,当()中返回结果非0时循环,先判断是否符合循环条件在执行。

仅当括号中为0时(为真)退出循环

如while(P1_1)表示当P1_1=1时循环

如while(P1_1==0)表示当P1_1=0时结果为真,返回1时循环

如while(1)表示循环控制变量为常数1,一直循环,一般在循环体内放break跳出循环

while(1);一直循环;

while(a--);a减到0时退出循环;

while(a--) {} ; a减到0前一直执行{}内的循环。

4、系统调试

8只LED左右来回点亮的调试结果:点亮第一个流水灯,然后熄灭,接着点亮第二个流水灯,熄灭;点亮第三个,实现流水式的左右来回点亮。

四、设计总结(结论)

设计心得:通过本次的实验熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构学会构建简单的流水灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项

当上述程序编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用keil编程器将二进制代码烧写到单片机中,最后连接好电路通电,我们就看到从左到右的流水灯通过这次课程设计针对设计的内容和要求,我利用8086、8259、8253、8255、8282、8286以及38译码器和门电路设计了交通灯数字控制系统。通过利用单片机,编写了软件控制程序。同时查阅资料,用PROTEL软件设计出了硬件系统。在这次课程设计的过程中,我无论是在关于X86系列的相关知识或在接口芯片的初始化及应用方面还是在利用所学到知识全面设计系统方面收获都很大。刚拿到设计题目觉得无从下手,经过仔细分析问题之后找到了行之有效的解决问方法。虽然六盏灯一共有七种不同的亮灭状态,其实只需用8255的A口的低六位不同状态即可控制。针对不同的延时时间,采用8253的计数器0和计数器1的级联可以准确定时。考虑到绿灯闪烁频率为1HZ,故让8253的计数器0的输出OUT0为20HZ的方波作为计数器1的时钟频率。这样对8253计数器1的计数初值写不同的值即可实现不同的定时。本系统的核心计时方法是:8253计数器1的输出OUT1送给8255的C口的PC0,然后8086读8255的C口的值来判断是否改变灯的状态。8255的C口相当于控制系统

四种模式循环显示LED流水灯设计

多种模式的LED流水灯设计 1.实现的功能要求 包含四种模式,分别是①从左到右点亮,②从右到左点亮,③从两边到中间点亮,④从中间到两边点亮。要求四种模式依次切换,循环执行。 2.实现的HDL代码 module led_run(clk,led,rst); input clk; //clk with low frequency like 1Hz input rst; //system reset signal output [11:0] led; //denotes 12 leds, reg [11:0] led; reg [2:0] state; //state variable,internal signals reg [5:0] count; //control signals of the state diagram,internal signals always @(posedge clk or posedge rst) //the state diagram if (rst) begin state <= 3'b000; count <= 6'b000000; end else case(state) 3'b000: begin count[3:0]<= 4'b0; count[5:4]<= count[5:4]+1'b1; case(count[5:4]) 2'b00: state <= 3'b001; 2'b01: state <= 3'b010;

2'b10: state <= 3'b011; 2'b11: state <= 3'b100; endcase end 3'b001: begin count <= count + 1'b1; if(count[3:0] == 11) state <= 3'b000; end 3'b010: begin count <= count + 1'b1; if(count[3:0] == 11) state <= 3'b000; end 3'b011: begin count <= count + 1'b1; if(count[3:0] == 5) state <= 3'b000; end 3'b100: begin count <= count + 1'b1; if(count[3:0] == 5) state <= 3'b000; end default: begin

流水灯实验报告综合二

实验名称:流水灯的实验设计与制作班级100713 学号07 姓名张凯瑜指导教师庞涛 一、实验目的: 1.增进对单片机的感性认识,加深对单片机理论方面的理解。 2.掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。 3.了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。 二、实验原理:

原理图说明:该设计选用一块STC89C52型单片机,使用其P1口和P3口的部分。P1口作为发光二极管的控制信号输出端,P3.2作为按钮K1外部中断0的信号输入口,P3.3为按钮K2外部中断1的信息输入口,P3.4作为K3信息输入口。单片机晶振频率为11.0592MHz,方便在线下载程序调试。电源使用5v 直流电,其中R11、C6为K1键硬件消抖(但效果不太理想,所以在软件中也做了软件消抖)。 三、实验设备: 电烙铁、万用电表、斜口钳、剥线钳、镊子、电池座、导线若干,所需元件清单: 四、实验方法与步骤: (1)认识各种元件,了解各元件的功能和使用方法。 (2)根据实验原理设计实验电路图和焊接图,并多次进行修正。

(3)按照实验焊接图在洞洞板上进行焊接。 焊接时在覆铜一面进行焊接,没有覆铜的一面用来放置元件。焊接时先对MCU座定好位,焊好对角两个角,然后焊接电源电路,按键电路,再复位和晶振电路,最后焊接LED 部分。 (4)插上编写好程序的单片机,实现“流水灯”效果。 五、实验测量与记录: 功能说明:本设计一共可以显示5种花样 k1键:切换显示花样k2键:暂停显示k3键:继续显示 流水灯——正面无单片机时 流水灯——正面有单片机时

花样流水灯实验报告

黄淮学院信息工程学院 单片机原理及应用课程设计性实验报告

五、硬件电路设计 根据设计任务,首先进行系统硬件的设计。其硬件原理图由LED显示电路和单片机最小系统组成,如图所示,其中包括时钟电路采用部时钟方式,复位电路采用上电自动复位。由于单片机的I/O口的高电平驱动能力只有微安级,而灌电流可以达到3毫安以上,因此采用低电平驱动。P1、P2、P3分别控制8个led灯。 六、软件程序设计 1、软件设计思路 如果通过上图所示电路图完成实验要求,通过数组,分别同时控P0、P1、P2分别控制8个led灯,从而协调控制24个灯实现花样流水灯效果。 开始 编写数组 主循环 逐个点亮 24灯同时闪烁 逐个熄灭

P3=table1[i]; delayms(500); } shan();//全部闪烁 for(i=0;i<8;i++)//逐个熄灭{ P3=table2[i]; delayms(500); } for(i=0;i<8;i++) { P1=table3[i]; delayms(500); } for(i=0;i<8;i++) { P0=table2[i]; delayms(500); } } } void delayms (uintt) { uint x,y; for(x=t; x>0;x--) for(y=50;y>0;y--); } 七、软硬件仿真调试分析 1、仿真调试结果

图片 1 逐个点亮图片 2 24灯闪烁 图片 3 逐个熄灭 2、性能测试及结果分析 通过仿真结果发现通过上述系统可以实现实验要求,24个灯逐个点亮,24个灯全亮后,24个灯一起闪烁,闪烁5次后,然后24个灯逐个熄灭。由此证明系统满足实验要求。 八、项目总结 在本次花样流水灯试验中,使用循环程序、数组语句实现了实验要求,设计过程中遇到了很多的问题,但经过努力,最终设计出了合理的解决方案。通过此次实验,对多个led灯的控制能力进一步得到提升。 九、项目设计报告成绩 实验报告成绩: 指导教师签字: 年月日

单片机控制左右来回循环的流水灯

左右来回循环的流水灯 设计要求 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。 题37图节日彩灯的花样显示的规律 为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。 题37表P1口8个引脚的不同颜色的发光二极管 使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:

程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。 全部代码如下: #include #include unsigned char temp; //定义字符变量temp,temp左移或右移并给连接LED的P1口赋值 int a; //定义延迟函数delay() void delay(void); void main() { temp=0xfe; //给temp赋初值 P1=temp; //temp赋值给P1口,第一个LED(红色)点亮 while(1) //主程序,括号中的程序将一直循环 { for(a=0;a<7;a++) //左移部分,LED从左到右依次点亮 { temp=_crol_(temp,1); //_crol_语句控制变量temp左移 delay(); //每个灯点亮之后延迟一会在点下一个灯 P1=temp; }

单片机流水灯实验报告

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

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 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亮……一直循环下去. 五、实验总结 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。 尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.360docs.net/doc/909377944.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.360docs.net/doc/909377944.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

多功能流水灯实验报告

课程设计报告设计课题:多功能流水灯 专业班级: 学生姓名: 指导教师: 设计时间:

题目多功能流水灯 一、课程设计目的 1、掌握数字系统的设计方法和测试方法。 二、课程设计题目(问题)描述和要求 设计一个四模式三路彩灯(红、绿、黄三种颜色)显示系统。该系统的显示模式由外部输入Z、Y控制,要求开机自动置入初态后便按规定模式循环运行。设各路彩灯均为8个(红灯序号为r1-r8,绿灯序号为g1-g8,黄灯序号为y1-y8),各模式规定如下: XY=00时,系统的显示模式在以下六个节拍间循环: 第一节拍,依次点亮奇号红灯(r1亮→r1、r3亮→r1、r3、r5亮→r1、r3、r5、r7亮),其余灯均灭。 第二节拍,依次点亮偶号红灯,其余灯均灭。 第三节拍,依次点亮奇号绿灯,其余灯均灭。 第四节拍,依次点亮偶号绿灯,其余灯均灭。 第五节拍,依次点亮奇号黄灯,其余灯均灭。 第六节拍,依次点亮偶号黄灯,其余灯均灭。 XY=01时,系统的显示在第一、二节拍间循环。 XY=10时,系统的显示在第三、四节拍间循环。 XY=11时,系统的显示在第五、六节拍间循环。 三、系统分析与设计 根据课程设计题目问题描述和要求,完成:

主要器件: 绘制电路原理图:确定选用的元件及其封装形式,完善电路。 原理图设计过程:进行电子电路设计时,首先要有一个设计方案,而将电路设计方案表达出来的最好方法就是画出清晰、正确的电路原理图。根据设计需要选择出元器件,并把所选用的元器件和相互之间的连接关系明确地列出,直观地表达出设计概念。 电路原理图的基本组成是电子元器件符号和连接导线,电子元器件符号包含了该元器件的功能,连接导线则包含了元器件的电气连接信息,所以电路原理图设计的质量好坏直接影响到PCB印制电路板的设计质量。 绘制原理图的两大原则:首先应该保证整个电路原理图的连线正确,信号流向清晰,便于阅读分析和修改;其次应该做到元器件的整体布局合理、美观、实用。 在Protel中绘制电路原理图的步骤: 启动原理图编辑器,新建电路原理图文件。 设置原理图的相关参数,如图纸的大小、版面及环境参数等。 加载元件库,在图纸上放置需要的各种元器件。 编辑元器件的属性,并对元器件进行合理的布局调整。 使用导线或网络标签对所有的元器件进行电气意义上的连接。 对电路原理图进行整体的编辑、调整。 保存文档,打印输出。 绘制元件库:为绘制原理图做补充。有些元件在系统库文件里可能找不到,我们可以自己动手绘制一个能表示实际元件的图形,并将其添加到原理图中。建议大家从一开始就建立一个属于自己的元件库,以后每设计一次电路,当遇到没有的原件时,就往库里添加一个元件,日积月累,自己的元件库就会充实起来,以后绘制原理图时就会非常方便。 绘制PCB封装:也是为设计原理图做补充。原理图上的元件仅仅是一个元件代号,我们可以随意改变其模样,但是PCB封装绝对不能随意改动。所谓封装,就是元件在PCB上的实际焊接点,如果焊接点与元件对应不上,那么这块板子就

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________ 专业________________班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 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、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3

嵌入式系统流水灯,按键,定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。 由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度:

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。 初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

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

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

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

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

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文件。这些错误令我明白以后在试验中要步步细心,避免出错。

左右来回循环的流水灯

(大作业题目)报告 单片机控制左右循环的流水灯 学生学号: 学生姓名: 同组学号: 同组姓名: 指导老师:

设计目的: 1)学习P1口的使用方法; 2)学习延时子程序的编写 3)了解简单单片机应用系统的设计方法。 4)掌握应用编译源汇编程序的操作方法。 5)熟练掌握AT89c51型开发板的使用方法和注意事项。 设计要求: 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。 依次实现红蓝绿黄红蓝绿黄的循环亮灭。 设计步骤:1.按照电路图在proteus7.5的环境下进行仿真连接,在keilc3的环境下进行c环境的编译,然后下载到单片机内运行进行仿真,观察发光二极管的运行状态。要注意的的,实验中一定要再p1口接上拉电阻或是一个74HC245的芯片,以提高单片机的P口驱动,以使LED灯亮。如果使用74HC245,则引脚OE要接地,DIR要接高电平。 2.实现单片机工作的最小系统:电源电路﹑时钟电路﹑复位电路。 3.因为LED灯是共阳极接入,编程实现灯亮的时候,要使语句取反。 设计电路图: 左右来回的流水灯.PDF

源程序:左右来回的流水灯.C 流程图:开始 判断P口电平 高电平低电平 变向P口加1 延时 设计总结:1.实验中连接电路后运行发现等没有亮,检查程序,看接相应灯的P口输出语句是否取反了;如果没有循环,看控制方向的语句是否写对;检查上拉电阻的取值是否正确,一定要有上拉电阻。 2.通过本次设计试验,我了解了单片机是如何实现控制功能的,设计中会遇到错误的结果,要仔细分析错误,然后一一去改进,试验,直到没有错误为止。三、/* *左右来回的流水灯* */ #include typedef unsigned char uint8; typedef unsigned int uint16;

LED灯实验报告

mcs-51单片机接口技术实验 适用:电气类专业本科学生 实验报告 实验一熟悉proteus仿真模拟器,led花样表演 一、实验目的 掌握以下方法: 1.在proteus的环境下,设计硬件原理图; 2.在keilc集成环境下设计c51语言程序; 2.在proteus的环境下,将硬件原理图与软件联接仿真运行。 二、实验环境 1.个人微机,windows操作系统 2.proteus仿真模拟器 3.keilc编程 三、实验题目 基本题:使用8051的并口带动8个led发光二极管显示一种花样表演。提高题:使用一个键切换实现3种以上花样表演。 四、实验类型: 学习、模仿与简单设计型。 五、实验步骤: 0、进入isis,先选择需要的元件,然后设计电原理图,保存文件; 1、在keilc软件集成环境下编写源程序,编译工程文件; 2、将所设计的硬件原理图与目标代码程序相联接; 4、按play键,仿真运行程序。 附,可能用到的元件名称: cpu:at89c51或任一种mcs-51家族cpu; 晶振:crystal; 电容器:capacitors,选22pf 电解电容:cap-elec或genelect10u16v 复位电阻:minres10k 限流电阻:minres330r 按键:button led:led-blue/red/yellow或diode-led (一)接线图如下: (二).基础花样 (四)程序流程图 (五)c程序 #include <> #define uint unsigned int #define uchar unsigned char const tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, /*正向流水灯*/ 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,};/*反向流水灯*/ const tab2[]={0xff,0x00,0xff,0x00,0xff,0x00,}; void delay() { uint i,j; for(i=0;i<256;i++) for(j=0;j<256;j++)

单片机跑马灯(流水灯)控制实验报告

单片机实验报告 姓名: 学号: 一、 实验实现功能: 1:计数器功能 2:流水灯 二、 具体操作: 1、计数器功能 数码管的动态显示。每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。 2、流水灯 当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。 三、 程序流程图 开始 定时器T0 设置初值,启动定时器, 打开中断 复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开

四、程序 #include 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和K3 sbit 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; //定时器初值使每次循环为1ms TR0 = 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]; //千位

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

单片机流水灯实验报告

单片机流水灯实验报告 电子信息工程学系实验报告 课程名称:单片机原理及接口 实验项目名称:实验2 流水灯实验时间: xx-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口线使用。

单片机流水灯先下后上循环

今天刚买一个单片机,然后看着教程发现其实单片机很有意思,看完他的第一个例子,就是流水灯实验,我就想着让他先是从上往下,然后从下往上的循环,下面就是代码了: #include #include #define uint unsigned int #define uchar unsigned char void later(uint xms); uchar aa; uchar bb; uint x,y; void main() { aa=0xfe; while(1) { x=1;y=1;

while(x) { P1=aa; later(500); aa=_crol_(aa,1); bb=0xBF; if(P1==bb) { x=0; } } while(y) { P1=aa; later(500); aa=_cror_(aa,1); bb=0xFD; if(P1==bb) { y=0; }

} } } void later(uint xms) { int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 第一个出现的while是整个的循环,第二个while是看灯是否到达最后一个,如果是到达了,那就结束循环。第三个while是检测是否到达第一个,如果到达第一个那就结束循环,代码就是这样了,然后至于一些新手可能会问,怎么知道他显示亮的那个灯,很简单,如果第一个灯亮了那他的二进制就是:11111110,你自己转换到十六进制就知道了,然后第二个就是:11111101,以此内推下去

单片机流水彩灯课程设计

课程名称:单片机课程设计 设计题目:流水灯彩灯设计 学院:应用技术学院 专业:电子信息工程信息方向

目录 一、实训的目的 (3) 二、实训的基本要求 (3) 三、电路基本工作原理 (4) 四、组装过程及技巧 (5) 五、软件设计及程序清单 (5) 六、心得体会 (11) 一、实训的目的 通过具有一定功能和应用价值的一个具体产品的设计与制作,或

者一个实际项目的开发与应用,使学生受到工程设计、制造工艺、调试检测和撰写技术报告的系统训练,启迪我们的创新思维,培养我们分析问题和解决问题的综合能力。通过实训使我们巩固、加深和学习光电子技术的基础理论、基本知识和技能技能。使我们正确地选择和使用常用电工仪表、电子仪器及有关实验设计。使我们掌握基本电量及电子元件的测试技术、实验方法和数据的分析处理。使我们能应用已学的理论知识设计简单的应用电路,合理选择元器件构成实用的电子小系统。使我们受到基本的实验技能、系统的工程实践和撰写技术报告的初步训练。培养我们严肃认真、实事求是、独立思考、踏实细致的科学作风和创新的精神。 二、实训的基本要求 要求: 1. 该流水灯设置12个发光二极管,两个按键K1和K2。 2. 上电后,12个LED灯全亮 3. 两个按键一个用于流水灯的启动和停止,另一个用于选择流水灯的花样。 4.“流水”的花样不得少于两种,越多越好。 三、电路图及其基本工作原理 该电路由2个30PF的电容和一个晶震组成的,其中晶振接在18和19引脚。这个作用是为单片机提供一个正常的工作时钟频率

单片机40引脚接+5V的电源,20引脚接地。使用510Ω电阻和发光二极管组成12条支路,分别对应连接单片机的P1口12个。才用共阳极接法40段接上5V的外加电压,通过单片机的P1口控制输出高电平还是低电,当电压为低电平的时候,二极管发光。 电路图如下: 四、组装过程及焊接技巧 (1)材料:松香、焊锡。焊接时最常用的焊料是焊锡。松香焊剂是一种可靠的焊剂,它在电路维修和电子制作中应用广泛。将焊接的

多功能流水灯实验报告

多功能流水灯实验报告 作者:黄玉龙 2010年5月20日 一、设计任务及要求 1、 基本要求 (1) 设计一个彩灯控制电路,能使彩灯的流向可以变化。可以正向流水,也可以逆向 流水。灯流动的方向可以手控也可以自控,自控往返变换时间为5秒。 (2) 彩灯可以间歇流动,10秒间歇1次,间歇时间1秒。 2、 发挥部分 (1) 彩灯流速可以改变 (2) 设计显示图案循环的控制电路 二、方案设计 基本原理设计框图如下图(1)所示: 图(1)设计框图 1、给整个电路接个电源。 2、用NE555来产生脉冲送到后面的芯片中。这里用了三个555。第一个是产生一 般的秒冲,使得计数器计数;第二个是产生高低电平分别为5秒5秒的脉冲,使得191自动加减计数;第三个是用来产生10秒1秒的脉冲,使得可以产生工作10秒间歇1秒的功能。 3、可逆计数器,可用74HC191,也可用74LS190等,来实现加减计数,使得流 水灯可以正向流动,也可以反向流动。

4、译码器用74LS138。用译码器的八个输出端分别接8个LED灯,根据3-8译码 器的功能表就可知道每当加一次数,输出端就出现一个低电平,如此循环下来, 就可实现LED灯的顺序流动。 信号流程如下:电源——第一个555——计数器——译码器——LED灯 电源——第二个555——计数器 电源——第三个555——译码器 三、电路设计 基本原理设计电路图如图(2)所示: 图(2) 基本的电路原理分析见第二步的方案设计,为了实现流速可变,可在第一个555的电路中加个可变电阻,调节电阻阻值改变脉冲周期,即改变计数时间,从而实现流速可调。

相应的计算如下: 根据以下两个公式t1=0.7R2 C t2=0.7(R1+R2)C 可得如下数据: C1=10nF C2=1uF R1=200k R2=250k Rp=200k C3=10nF C4=100uF R3=500 R4=70k C5=10nF C=100uF R5=130k R6=14k 根据发光二极管的工作电流为10-16mA左右,可计算得所加的限流电阻为400-600右,试验中取RL=510 四、测试与结果分析 电路设计,安装元器件及连好导线后,进行实验结果测试。实验前首先完成以下步骤: 1.检查电路原理图及导线的连接。在电脑上仿真,能够得出正确的实验现象, 所以电路原理图正确。检查导线的连接是否与电路原理图上一致。 2.检查导线的连接。对照电路原理图,用数字万用表打到合适的档位,测试各对应的接点是否连接好并导通。 3.检查实验仪器和器材是否完好。电源5伏直流电压输出正常,CD4017芯片测试其功能均正常,用万用表检查开关,按下时导通均正常。 完成上述步骤后,接通5伏的直流电源,实验现象为: (注:因为我用的开关不是锁住开关,所以按开关时要长按住开关才能实现所要求的功能)开关S1为手控开关,一开始开关S1断开,灯为正向流动,长按开关S1时流水灯逆向流动;开关S2为自控开关,长按住开关S2,流水灯正向流完后会自动反向流动,如此一直往返;长按住开关S3,流水灯会出现亮10秒停1秒的间歇流动;调节Rp的阻值,流水灯的流速发生了改变。至此,多功能流水灯电路设计,调试与实验基本成功。 五、个人总结 做板的时候遇到了一些问题,如铜线太大,又如焊盘太小不好焊接的问题,经过几次的修改基本完成了本实验。在protel中弄原理图时,有个555芯片少接了个地,最后检查出来

相关文档
最新文档