文档库 最新最全的文档下载
当前位置:文档库 › 循环流水灯

循环流水灯

循环流水灯
循环流水灯

概述

灯光的闪烁和流动可以用于各种各样的装饰,电子门标,广告装饰等等…流动的灯光总是特别吸引人们的眼球。在夜晚,城市街头,一旦广告牌上的灯光流动起来,那它马上变得生动起来。流水彩灯是大家比较感兴趣的话题,我今天说的这一个,电路还是蛮简单的,它就利用大学所学到的数电知识制成,只要了解几种集成电路便可轻松明白它的原理。做好的彩灯可以放在客厅,卧室等地方,你会感到温馨;或是歌舞厅等地方以增加氛围。

彩灯电路由2个集成块组成:一个是NE555,产生二进制变化、且频率可调的方波;另一个是CD4017,将二进制转换为十进制的数字译码器,按十进位的原则循环。该电路可以使10的倍数个光源按十进制的法则依次交替工作。下面是构成电路的几个部分及其原理。

电源电路

电源电路为普通直流9V电源,最好带有稳压电路,我就不再给大家复述了。

振荡电路

振荡电路由一块时基集成电路NE555和C2、C3、R1、R2等组成(其中C2为延时充电电容,C3为抗干扰隔离电容,R1、R2为延时充电电阻,而R2又为放电电阻)。通电后,因电容C2两端电压不能突变,2脚的电压为低电平,集成块NE555的内部触发器被置位,3脚输出高电平。同时,由于电源经电阻R1和R2向C2充电,使6脚和2脚的电压不断提高,当电位上升到VCC的2/3时,集成块NE555的内部触发器被复位,3脚的输出电压翻转为低电平。同时集成块NE555内部的放电管导通,即7脚通过内部的放电管和1脚相通,C2上储存的电荷就通过R2、7脚放电,使6脚和2脚的电压不断下降,当电位降低到VCC的1/3时,集成块NE555的内部触发器被置位。同时集成块NE555内部的放电管截止,7脚被悬空,电源又通过R1、R2向C2充电,使6脚和2脚的电压不断提高……如此,周而复始,形成振荡。输出端的高电平维持时间取决于电容C2的充电时间常数,输出端的低电平维持时间取决于电容C2的放电时间常数。由于R2≥R1,故可以认为f放≈f充,目的是减小彩灯熄亮交替的时间间隔的差异。如用作其他情况,课按需要调整R1、R2、C2的参数。综

上分析,3脚始终处于高电平和低电平的二进制变化状态,故此电路又称为无稳态电路。

图1 振荡电路与译码电路

译码电路

译码电路由一块CD4017集成块组成。该集成块有3个输入端(2个时钟输入端CP的14脚和EN的13脚与复位端Cr的15脚)。有10个输出端Q0~Q9(依次为3脚、2脚、4脚、7脚、10脚、1脚、5脚、6脚、9脚、11脚)。还有一个进位端CO,其功能是:当复位端Cr加上高电平和正脉冲时,输出端Q0为高电平,其余9个输出端Q0~Q9均为低电平。时钟输出端CP对输入时钟脉冲的上升沿计数,EN则对时钟脉冲的下降沿计数。Q0~Q9这10个输出端的输出状态分别与输入的时钟个数相对应。如从0开始计数,则输入到第1个时钟脉冲时,Q1就变成高电平,输入第2个时钟脉冲时,Q2变成高电平……直到输入第10个时钟脉冲,Q0变为高电平。同时,进位端C0就输出一个进位脉冲,作为下一级计数的时钟信号。Cr为复位端,也为清零端。当Cr输入高电平时,电路复位,即输出端Q0为高电平,Q1~Q9为低电平。如此反复,只要集成块NE555的3脚送来的二进制信号不消失,CD4017将二进制信号转换为十进制信号的计码工作就会反复进行下去。

光源电路

光源电路主要由高亮度发光二极管和限流电阻构成,如图:

图2 光源电路

上面这个图是一个经过简化的最基本的光源电路,在我下面那个作品中,CD4017的10个输出端Q0~Q9分别驱动并联的多个发光二极管,分别控制这10路灯光,因为高亮度发光二极管具有低功耗的特点,所以十几只并联起来用CD4017还是能够承受的。如果光源功率实在太大,你们可以试试每一路灯光用一只可控硅控制。至于光源怎么排列,那就看大家自己怎么设计了。注意每组光源并联多个发光二极管后,R3-R12的取值和功率都要所改变,那就要看具体情况了,可以通过计算与实验得出。

下面是我制成后的效果图,当然其中同时亮的发光二极管全部是并联的。发挥你的想象力,可以使光源流动得更加漂亮。

以下是DIY实物图,前面板外观(点击以下图片均可放大):

电路板:

面板显示部分:

电源及控制部分:

电源变压器:

四种模式循环显示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

C51单片机实行流水灯程序

#include #define LEDPort P1 unsigned char LED01_[9]= {0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,}; //方式0,方式1灯开关数组。unsigned char LED23_[5]= {0xFF,0x7E,0xBD,0xDB,0xE7}; // 方式2,方式3灯开关数组。 unsigned char LED4_[16]={0XFF,0X7F,0X3F,0X1F,0X0F,0X07,0X03,0X01,0X00,0X01,0X03,0X07,0X0f,0X1 f,0X3f,0X7f}; //方式4 unsigned char LED56_[8]={0XFF,0X3F,0X9F,0XCF,0XE7,0XF3,0XF9,0XFC}; unsigned char LED7_[]={0X0F,0XF0,0X33,0XCC,0X3C,0XC3,0XFF}; unsigned char TAB[9]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80};//定义断码表。 unsigned char i=0,j=9; //数据选择计数。 unsigned char Mode=0; //模式选择,默认为模式0。 unsigned char Count=1; //定时器中断计数。 unsigned char Delay=1; //延迟计数,通过改变改数值改变灯状态延迟时间。 //灯延迟时间=uc_Dalay*定时器溢出时间。 void main() { P2=0X3F; TMOD=0x01; //定时器0模式一。 TH0=0x3C; TL0=0xB0; //溢出时间:50ms。 TR0=1; //定时器0开启。 IT0=1; //外部中断0下降沿触发。 IT1=1; //外部中断1下降沿触发。

基于单片机的流水灯系统

目录 1.系统方案选 (x) 1.1 设计要求 (x) 1.2 方案选择 (x) 2 系统的硬件设计与实现 (x) 2.1芯片介绍 (x) 2.2 电源 (x) 2.3 时钟 (x) 2.4 I/O线 (x) 2.5 晶振电路 (x) 2.6 LED电路 (x) 2.7按键电路 (x) 3 系统的软件设计 (x) 3.1 程序流程图 (x) 3.2 程序设计 (x) 3.3 仿真电路图 (x) 3.3.1仿真电路初始化图 (x) 3.3.2 仿真结果(设计实现的功能) (x) 3.3.3 结论 (x) 4.设计心得与体会 (x) 5.参考文献 (x)

【摘要】:若干个灯泡有规律依次点亮或者依次熄灭叫流水灯,它用在夜间建筑 物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。一般情况下单片机的流水灯由若干个LED发光二极管组成,在单片机系统运行时,可以在不同的状态下让流水灯显示不同的组合,作为单片机运行正常的指示,当单片机系统出现故障时,可以利用流水灯显示当前的故障码,对故障做出诊断。 本设计采用一块单片机(AT89C52.BUS)作为流水灯系统的控制核心,通过编程来实现单片机I/O口对LED的控制,使流水灯显示上下流动、停止流动、闪灯等功能,并由按键控制流水灯的不同亮法,LED的工作方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接的LED的I/O口送出低电平来 实现LED的点亮。 【关键词】:流水灯按键控制单片机 1、方案: 1.1设计要求: 以单片机为核心,设计一个节日彩灯控制器: P1.2—开始,按此键则灯开始流动(由上而下)。 P1.3—停止,按此键则停止流动,所有灯为暗。 P1.4—上,按此键则灯由上向下流动。 P1.5—下,按此键则灯由下向上流动。 1.2方案选择: 根据题目的要求,控制模块需要选择单片机作为核心控件,可以选择的单片机有AT89C51、AT89C52还有各自的总线型号的,而对于按键,可以选择BUTTON,当然用SWITCH来代替也是可以实现的;显示模块的LED发光二极管也有很多颜色可以供选择如红色、蓝色、绿色等。 考虑到题目的要求与电路图布线的问题,经过仔细的分析和论证,最终的方案如下:单片机:AT89C52.BUS、按键:BUTTON 发光二极管:LED-RED。 系统的基本框图1.2.1所示,单片机主要用于对流水灯模块(发光二极管)的控制,实现流水灯从上往下流、停止、由下往上流、闪烁的功能,而按键模块控制单片机I/O口的输出电平,间接地控制流水灯模块。

数电实验——广告流水灯

第五次实验报告 第五次实验要求学生完成如下任务: 广告流水灯: 用时序期间、组合器件和门电路设计一个广告流水灯,该流水灯由8个LED组成,工作时始终为1暗7亮,且这一个暗灯循环右移, 1)写出设计过程,画出设计的逻辑电路图,按图搭接电路 2)验证实验电路的功能 3)将1秒连续脉冲信号加到系统时钟端,观察并记录时钟脉冲CP、触发器的输出端 Q2、Q1、Q0的波形 实验5.1 一、实验原理图 设ZZ0ZZ1ZZ2ZZ3ZZ4ZZ5ZZ6ZZ7分别为8个灯的输出段,由题意得卡诺图如下: 触发器输出端输出端 QQ2QQ1QQ0ZZ0ZZ1ZZ2ZZ3ZZ4ZZ5ZZ6ZZ7 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 通过74161对时钟脉冲进行计数输出,利用74138进行译码输出。

实验原理图: 二、实验目的 广告流水灯: 用时序期间、组合器件和门电路设计一个广告流水灯,该流水灯由8个LED组成,工作时始终为1暗7亮,且这一个暗灯循环右移, 1)写出设计过程,画出设计的逻辑电路图,按图搭接电路 2)验证实验电路的功能 将1秒连续脉冲信号加到系统时钟端,观察并记录时钟脉冲CP、触发器的输出端Q2、Q1、Q0的波形 三、实验器材 1.实验材料 74HC161、74HC138、面包板、发光二极管1KΩ电阻和导线 2.实验仪器 口袋实验室 四、实验步骤 1.按上图所示原理图在面包板上连接好实物图 2.连接pocketlab,引脚7接时钟,引脚0~2分别接触发器输出端QQ0QQ1QQ2,观察逻辑 分析仪波形及小灯泡的亮灭情况。

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

左右来回循环的流水灯 设计要求 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; }

(完整版)51单片机流水灯程序

1.第一个发光管以间隔200ms 闪烁。 2. 8 个发光管由上至下间隔1s 流动,其中每个管亮500ms, 灭500ms 。 3. 8 个发光管来回流动,第个管亮100ms 。 4. 用8 个发光管演示出8 位二进制数累加过程。 5. 8 个发光管间隔200ms 由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms 间隔全部闪烁 5 次。重复此过程。 6. 间隔300ms 第一次一个管亮流动一次,第二次两个管亮流动,依次到8 个管亮,然后重复整个过程。 7. 间隔300ms 先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8 个全部闪烁 3 次;关闭发光管,程序停止。 1 #include #define uint unsigned int sbit led 仁P"0; void delay(); void main() { while(1) { led1=0; delay(); led1=1; delay(); } } void delay() {

uint x,y; for(x=200;x>0;x--) for(y=100;y>0;y--); } #include #include #define uint unsigned int #define uchar unsigned char sbit p P1A0; uchar a; void delay(); void main() { a=0xfe; P1=a; while(1) { a=_crol_(a,1); delay(); P1=a; delay(); } } void delay() { uint b; for(b=55000;b>0;b--); } 3 #include #include #define uint unsigned int #define uchar unsigned char void delay() { uint x,y; for(x=100;x>0;x--) for(y=110;y>0;y--); } void main() { uchar a,i; while(1) a=0xfe; for(i=0;i<8;i++) { P1=a; delay(100); a=_crol_(a,1); } a=0x7f; for(i=0;i<8;i++) { P1=a; delay(100); a=_cror_(a,1);

用单片机控制的LED流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz 工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

流水灯电路

流水灯电路的制作与测试 【知识目标】 ●理解时序逻辑电路的基本概念及分类。 ●掌握同步和异步时序逻辑电路的分析方法。 ●理解计数器的逻辑功能及原理。 ●掌握寄存器电路的基本工作原理,理解移位寄存器的逻辑功能。 【技能目标】 ●能用触发器制作与调试各种同步计数器。 ●能用集成计数器制作任意进制的计数器。 ●熟悉集成移位寄存器逻辑功能和各控制端的作用,能构成实用电路。 ●多种方法实现流水灯电路,且进一步完善流水灯功能。 任务一用移位寄存器构成流水灯电路 一、分析任务 在一些数字系统中,有时需要系统按照事先规定的顺序进行一系列的操作。这就要求系统的控制部分能给出一组在时间上有一定先后顺序的脉冲,再用这组脉冲形成所需要的各种控制信号。 二、相关知识 在数字系统中,常常需要将一些数码、运算结果和指令等暂时存放起来,然后在需要的时候再取出来进行处理或运算。这种能够用于存储少量二进制代码或数据的时序逻辑电路,称为寄存器。 寄存器用于暂时存放二进制代码,它是数字系统中重要的部件之一。寄存器的主要组成部分是具有记忆功能的双稳态触发器。一个触发器可以存储一位二进制代码,所以要存放n位二进制代码,就需要n个触发器。 按照功能的不同,可将寄存器分为数码寄存器和移位寄存器两大类。 1. 数码寄存器 数码寄存器具有寄存数据和清除原有数据的功能。现以集成四位数据寄存器74LSl75来说明数据寄存器的电路结构和功能。74LSl75是用D触发器组成的四

位数据寄存器。它的逻辑图和管脚排列图如图7-11所示。 (a)逻辑图 (b)管脚排列图 图7-11 四位集成数码寄存器74LS175 74LS175的功能表见表7-11,CP 是时钟端,CR 是异步清零端,D 0~D 3是数据输入端,Q 0~Q 3是数据输出端。其功能如下。 表7-11 74LS175的功能表 ①异步清零。只要CR =0,就可使输出端清零,而与时钟无关。清零后,将 CR 接高电平,数据才能正常存人。 ②并行输入/输出。在CR =1的前提下,(将需要存人的四位二进制数据送到数据输入端D 0~D 3),在CP 脉冲上升沿的作用下,将D 0~D 3的数据并行存入Q 0~Q 3,同时也可取出存人的数码的反码。 ③记忆保持。当只CR =1且CP =0时,各触发器保持原状态不变,数据寄存器处于保持状态。 无论寄存器中原来的内容是什么,只要送数控制时钟脉冲CP 上升沿到来,加在并行数据输入端的数据D 0~D 3将立即被送入寄存器中,有 32103210Q Q Q Q D D D D

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

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________ 专业________________班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 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、了解单片机C语言程序的基本结构 2、了解单片机C语言程序的设计和调试方法 3、掌握顺序控制程序的简单编程 4、熟悉51单片机的端口使用 实验仪器 单片机开发试验仪、稳压电源、计算机 实验原理 1、硬件电路 如图1所示,流水灯硬件电路由发光二极管、单片机并口(P0)、限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,二极管公共端阳极就接成高电平,然后再按一定规则从P0口输出数据,发光二极管就会点亮。 图1 流水灯电路图 2、程序流程图如下。

实验内容:1、开发板接线图 延时 P0口初态循环右移1位 P0口状重新赋值0XFE 开始 P0口输出0XFE P0是否等于0X00 Y N

2、开发环境设置 打开keil软件,版本μ Vision2 ,μvision3,μvision4 都一样,在这里用μvision4版本演示,打开之后如下图,有的时候会默认打开上次使用的工程,单击Project 菜单,选择 Close Project 关闭了默认打开的工程,显示下图界面: 我们要建立新的工程,选择Project→ newμ vision projiect… 选择工程要保存的路径,输入工程文件名,如图

点击保存后会弹出一个对话框,要求用户选择单片机型号,可以根据用户使用的单片机来选择,我们使用的STC90单片机是兼容51内核的,Keil C51 几乎支持所有的51内核单片机,51内核具有通用型,如果程序用的资源不是太复杂,我们可以选择任意一款51单片机内核就行。例程以添加Atmel 的AT89C51来说明。如图,然后,单击确定(OK)。 功能描述 如果出现下面的界面:单击是就可以,意思是将单片机的启动代码添加到工程,我们不用修改。 到目前我们还没建立一个完整的工程,只是有工程的名字,框架,工程中还没有任何文件代码,(除了启动代码,有的keil 版本不显示启动代码),接下来我们添加文件及代码。 单击菜单File→New 选项,或者单击界面上的快捷图标,新建文件串口如下。

最经典的51单片机经典流水灯汇编程序

单片机流水灯汇编程序设计 开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。 程序A: ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮(以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 程序B: ;用移位方式实现流水灯

ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A赋值成11111110 loop: mov p1,a ;将A送到P1口,发光二极管低电平点亮 lcall delay ;调用延时子程序 rl a ;累加器A循环左移一位 ajmp loop ;重新送P1显示 delay: mov r3,#20 ;最外层循环二十次 d1: mov r4,#80 ;次外层循环八十次 d2: mov r5,#250 ;最内层循环250次 djnz r5,$ ;总共延时2us*250*80*20=0.8S djnz r4,d2 djnz r3,d1 ret end 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。 ORG 0 ;程序从0地址开始 START: MOV A,#0FEH ;让ACC的内容为11111110 LOOP: MOV P2,A ;让P2口输出ACC的内容 RR A ;让ACC的内容左移 CALL DELAY ;调用延时子程序 LJMP LOOP ;跳到LOOP处执行 ;0.1秒延时子程序(12MHz晶振)=================== DELAY: MOV R7,#200 ;R7寄存器加载200次数 D1: MOV R6,#250 ;R6寄存器加载250次数 DJNZ R6,$ ;本行执行R6次 DJNZ R7,D1 ;D1循环执行R7次 RET ;返回主程序

数字电路流水灯设计

数字电路流水灯设计 一:方案论证与比较 1:工作时钟源设计 (1)采用555定时器接成的多谐振荡器。 555定时器是多用途的数字—模拟混合集成电路,利用它能极方便的构成施密特触发器,单稳态触发器和多谐振荡器,使用灵活,方便。555定时器在波形产生和交换,测量与控制中应用广泛成熟准确。 (2)采用三极管多谐振荡器 三极管多谐振荡器是一种矩形脉冲产生电路,这种电路不需外加触发信号,便能产生一定频率和一定宽度的矩形脉冲,常用作脉冲信号源。由于矩形波中含有丰富的多次谐波,故称为多谐振荡器。多谐振荡器工作时,电路的输出在高、低电平间不停地翻转,没有稳定的状态,所以又称为无稳态触发器。 (3)方案比较 555定时器接成的多谐振荡器产生的时钟信号驱动能力较强,555通过改变R和C的参数就可以改变振荡频率,电路参数容易确定,使用简单,信号稳定,调试方便,而三极管多谐振荡器,不易调试,输出信号驱动能力不强且信号不够稳定,故选用555定时器接成的多谐振荡器作为系统的时钟源。

2流水灯驱动电路设计 本次项目中使用1片4位同步二进制计数器74LS161,其Q0,Q1,Q2脚输出三位二进制顺序脉冲000-001-010-011-100-101-110-111,时钟源为555定时器的输出方波。 与Q0,Q1,Q2相连接的是一片38译码器74LS138的A0,A1,A2引脚,Y0—Y7依次输出负脉冲。其是引脚输入脉冲为时钟源为555定时器的输出方波经一片74LS14反相器反相后的时钟脉冲,其74LS138真值表如下: 8个LED以共阳接法分别接于Y0—Y7,依次点亮,其亮灭频率由555定时器产生的时钟频率为准。 二参数计算 555定时器外接电阻计算

左右来回循环的流水灯

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

设计目的: 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;

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

哈工大数电自主实验 数字流水灯

Harbin Institute of Technology 数字电路自主设计实验 院系:航天学院 班级: 姓名: 学号: 指导教师: 哈尔滨工业大学

一、实验目的 1.进一步掌握数字电路课程所学的理论知识。 2.熟悉几种常用集成数字芯片的功能和应用,并掌握其工作原理,进一步学会使用其进行电路设计。 3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。 4.培养认真严谨的工作作风和实事求是的工作态度。 5.数电课程实验为我们提供了动手实践的机会,增强动手实践的能力。 二、实验要求 设计流水灯,即一排灯按一定的顺序逐次点亮,且可调频、暂停、步进。 三、实验步骤 1.设计电路实现题目要求,电路在功能相当的情况下设计越简单越好; 2. 画出电路原理图(或仿真电路图); 3.元器件及参数选择; 4.电路仿真与调试; 5.到实验时进行电路的连接与功能验证,注意布线,要直角连接,选最短路径,不要相互交叉,注意用电安全,所加电压不能太高,以免烧坏芯片; 6.找指导教师进行实验的检查与验收; 7.编写设计报告:写出设计与制作的全过程,附上有关资料和图纸,心得体会。 四、实验原理 设计流水灯的方法有很多种,我的设计思路是: 利用555定时器产生秒脉冲信号,74LS161组成8进制计数器,74LS138进行译码,点亮电平指示灯。并通过调节555的电阻,实现频率可调。通过两与非门,实现暂停、步进功能。

1.秒信号发生器 (1)555定时器结构(2)555定时器引脚图 (3)555定时器功能表 (4)555定时器仿真图

2. 74LS161实现8进制加计数 74LS161是常用的四位二进制可预置的同步加法计数器,它可以灵活地运用在各种数字电路,以及单片机系统中实现分频器等很多重要的功能。 (1)74LS161同步加法器引脚图 管脚图介绍: 始终CP和四个数据输入端 P0-P3 清零CLR 使能EP,ET 置数PE 数据输出端Q0-Q3 进位输出TC (2)74LS161功能表 (5)74LS161仿真图 对74LS161进行八进制计数改组,需要一个与非门,即芯片74LS00,也就是将74LS161的输出端通过与非门,当输出为8时将输出为高电平的端口与非后接到74LS161的清零段。即计数到8是异步清零,所以74LS161变为八进制计数。

基于51单片机的流水灯控制

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的

视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭

数电大作业流水灯

数电大作业流水灯-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

综合设计题 一.流水灯 1.总体思路 8位流水灯始终是一亮七暗的,根据这个特点可以考虑采用74LS138译码器的输出来实现流水灯的循环电路。同时,还可以用74LS161四位二进制计数器来控制74LS138的输入端,从而实现对灯亮灭的控制 2.使用元件 3—8译码器74LS138,四位二进制计数器74LS161,555定时器,七段数码管译码器驱动器4511芯片,数码管,电容,电阻,非门若干。 3.电路原理框图 4.元器件在本电路中的主要功能 ○1555定时器 555 定时器在本电路中的作用主要是产生占空比可调的矩形脉冲从而 可以改变灯亮时间,而且它的振荡周期为T=0.7 (+2)C。此处C=0.1uF.由电路参数可知,当 R1为10kΩ时,灯亮时间为0.0014s.它的功能主 要由两个比较器决定。两个比较器的输出电压控 制 RS 触发器和放电管的状态。在电源与地之间加 上电压,当 5 脚悬空时,则电压比较器 C1的同相 输入端的电压为 2VCC /3,C2的反相输入端的电压 为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2的输出为 0, 可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1的输出为 0,C2的输出为 1, 可将 RS 触发器置 0,使输出为 0 电平。电路图如下:

○2 74LS161计数器 74LS161计数器在本电路中的作用是产生000-111脉冲控制 74LS138的A 2A 1 A ,依次选通Y -Y 7 。产生脉冲序列也可以用74LS191是 四位二进制同步加/减计数器,与74LS161相比,它能够实现减计数,此处只需要求产生脉冲序列,而且74LS161是常用的计数器,所以选择74LS161产生脉冲序列。所以采用反馈置数法,产生000-111脉冲 序号,时钟脉冲外部接入,原理图如下图所示 ○374LS138译码器

基于51单片机的流水灯设计说明

基于51单片机的流水灯设计 一.基本功能 利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。 二.硬件设计 图1.总设计图

1.单片机最小系统 1.1选用AT89C51的引脚功能 图2. AT89C51 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得部特殊功能寄存器容均被设成已知状态。 P3:端口3是具有部提升电路的双向I/O端口,通过控制各个端口的高低电平了实现LED流水灯的控制。

1.2复位电路 如图所示,当按下按键时,就能完成整个系统的复位,使得程序从新运行。 图3.复位电路 1.3时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。 在AT89C51芯片部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。

图4.时钟电路 2.流水灯部分 图5.流水灯电路 三.软件设计 3.1编程语言及编程软件的选择 本设计选择C语言作为编程语言。C语言虽然执行效率没有汇编语言

流水灯电路图和程序

流水灯电路图和程序 #include #include #define uchar unsigned char #define uint unsigned int uchar code led[]={0xfe,0xfb,0xfd ,0xf7,0xef,0xbf,0xdf,0x7f}; delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } main( ) { uint i; while(1) { P2=led[]; delay(500); _crol_(led,1); } } 用arm7做一个流水灯的设计。 悬赏分:100 - 解决时间:2009-9-3 20:03 试设计一个闪烁流水灯控制器,该控制器可以控制8个灯顺序亮灭,当按钮K按下1次后,每次顺序点亮一个灯。而且每个点亮的灯在闪烁3次后,才能灭,周而复始,直到按钮K 二次按下。(用状态机设计)

要用PROTEL99画好电路图。还要写好程序。画图的也只能发到我的邮箱里面吧。邮箱:。谢谢各位。 提问者:woxinruozai - 五级 最佳答案 从原理图可以看出,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。 实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。 从上面中文表示看来实现单片机流水灯很简单,但是我们不能说P1.0你变低,它就变低了。因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。我们又怎样来使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。 实现8个LED流水灯汇编语言源程序liu01.asm ;----- 主程序开始----- START: CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭 CLR P1.1 ;P1.1输出低电平,使LED2点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED2熄灭 CLR P1.2 ;P1.2输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序 SETB P1.2 ;P1.2输出高电平,使LED3熄灭 CLR P1.3 ;P1.3输出低电平,使LED4点亮 ACALL DELAY ;调用延时子程序 SETB P1.3 ;P1.3输出高电平,使LED4熄灭 CLR P1.4 ;P1.4输出低电平,使LED5点亮 ACALL DELAY ;调用延时子程序

相关文档
相关文档 最新文档