心形流水灯 STC89C52电子制作焊接套件单片机程序设计0(DOC)

心形流水灯 STC89C52电子制作焊接套件单片机程序设计0(DOC)
心形流水灯 STC89C52电子制作焊接套件单片机程序设计0(DOC)

51单片机心形流水灯电路图

说明:

电路分两个部分:51单片机最小系统,31只LED 发光二极管和限流电阻。

U1采用目前学习单片机最常用的STC89C52RC。P1是USB B型座,主要是使用USB数据线方便的为电路提供+5V 电源。S1 是具有自锁功能的6脚的8X8 大小的开关,用来控制电源的通断。C1、R9 构成单片机的自动上电复位。C2、C3、Y1 是单片机的振荡电路外接的起振电容和石英晶体。C4 电源退藕电容。S2 是轻触按钮开关,连接在P3.2 / INT0 ,通过编程,可以调整设置切换心形流水灯的各种模式。

P2 是4 Pin 插针,连接电源和P3.0、P3.1 ,可以用下载线方便下载更新程序,可以不安装。D1——D31 ,是31个3mm 红色发光二极管,在线路板上排列成心形,可以将发光颜色更换为其他颜色。R1——R8、R10 ——R32 为限流电阻,控制通过二极管的电流,避免过大电流烧毁发光二极管。

元件参数:

D1——D31 3mm 红色发光二极管

R1——R8、R10 ——R32 八分之一瓦电阻,680欧姆

U1 DIP40封装的STC89C52RC 单片机

C1、C4 10uF/50V 电解电容

C2、C3 30pF 瓷片电容

Y1 11.0592MHz 晶振

R9 4.7K 欧姆电阻

元件放置分布图

说明:

在安装元件时,可以最先安装 LED 发光二极管,注意二极管的极性方向。新的二极管长引脚的电极是阳极,如果剪过引脚,要是用万用表判断出来阴极和阳极。在Altium Designer 的 PCB 图中,整个圆形中有切掉部分圆弧的一侧是阴极。如上图所示。

底层布线连接图(底视)

底层布线连接图(顶视)

说明:

焊接上元件后,先不要盲目的慌着剪去多余的过长引脚,可以考虑将长出的引脚折弯与其他含盘点相连。绕行元的,有交叉的可以考虑使用带绝缘的单芯镀锡线进行连接。

具有5种模式轮流显示的心形流水灯单片机C51 源程序。

#include sbit x1=P0^7;

sbit x2=P0^6;

sbit x3=P0^5;

sbit x4=P0^4;

sbit x5=P0^3;

sbit x6=P0^2;

sbit x7=P0^1;

sbit x8=P0^0;

sbit x9=P1^0;

sbit x10=P1^1; sbit x11=P1^2; sbit x12=P1^3; sbit x13=P1^4; sbit x14=P1^5; sbit x15=P1^6; sbit x16=P1^7; sbit x17=P3^0; sbit x18=P3^1; sbit x19=P3^3; sbit x20=P3^4; sbit x21=P3^5; sbit x22=P3^6; sbit x23=P3^7; sbit x24=P2^0; sbit x25=P2^1; sbit x26=P2^2; sbit x27=P2^3; sbit x28=P2^4; sbit x29=P2^5; sbit x30=P2^6; sbit x31=P2^7;

void delay2ms() {

unsigned int i;

i=12000;

while(i--);

}

void Mode_1() {

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x1 =0; delay2ms(); x2 =0; delay2ms(); x3 =0; delay2ms(); x4 =0; delay2ms(); x5 =0; delay2ms(); x6 =0; delay2ms(); x7 =0; delay2ms(); x8 =0; delay2ms(); x9 =0; delay2ms(); x10 =0; delay2ms(); x11 =0; delay2ms(); x12 =0; delay2ms(); x13 =0; delay2ms(); x14 =0; delay2ms(); x15 =0; delay2ms(); x16 =0; delay2ms(); x31 =0; delay2ms(); x30 =0; delay2ms(); x29 =0; delay2ms(); x28 =0; delay2ms(); x27 =0; delay2ms();

x25 =0; delay2ms(); x24 =0; delay2ms(); x23 =0; delay2ms(); x22 =0; delay2ms(); x21 =0; delay2ms(); x20 =0; delay2ms(); x19 =0; delay2ms(); x18 =0; delay2ms(); x17 =0; delay2ms(); x16 =0; delay2ms(); }

void Mode_2()

{

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x16 =0;

x17 =0; delay2ms(); x15 =0;

x18 =0; delay2ms(); x14 =0;

x13 =0;

x20 =0; delay2ms(); x21 =0;

x12 =0; delay2ms(); x11 =0;

x22 =0; delay2ms(); x23 =0;

x10 =0; delay2ms(); x9 =0;

x24 =0; delay2ms(); x8 =0;

x25 =0; delay2ms(); x26 =0;

x7 =0; delay2ms();

x27 =0;

x6 =0; delay2ms();

x5 =0;

x28 =0; delay2ms(); x29 =0;

x4 =0; delay2ms();

x3 =0;

x30 =0; delay2ms(); x31 =0;

x2 =0; delay2ms();

x1 =0; delay2ms();

}

void Mode_3()

{

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x1 =0; delay2ms(); x2 =0; delay2ms(); x3 =0; delay2ms(); x4 =0; delay2ms(); x5 =0; delay2ms(); x6 =0; delay2ms(); x7 =0; delay2ms(); x8 =0; delay2ms(); x9 =0; delay2ms(); x10 =0; delay2ms(); x11 =0; delay2ms(); x12 =0; delay2ms(); x13 =0; delay2ms(); x14 =0; delay2ms(); x15 =0; delay2ms(); x16 =0; delay2ms(); x16 =0; delay2ms(); x17 =0; delay2ms(); x18 =0; delay2ms(); x19 =0; delay2ms(); x20 =0; delay2ms(); x21 =0; delay2ms(); x22 =0; delay2ms(); x23 =0; delay2ms(); x24 =0; delay2ms(); x25 =0; delay2ms(); x26 =0; delay2ms(); x27 =0; delay2ms(); x28 =0; delay2ms(); x29 =0; delay2ms(); x30 =0; delay2ms(); x31 =0; delay2ms(); x1 =1; delay2ms();

x2 =1; delay2ms(); x3 =1; delay2ms(); x4 =1; delay2ms(); x5 =1; delay2ms(); x6 =1; delay2ms(); x7 =1; delay2ms(); x8 =1; delay2ms(); x9 =1; delay2ms(); x10 =1; delay2ms(); x11 =1; delay2ms(); x12 =1; delay2ms(); x13 =1; delay2ms(); x14 =1; delay2ms(); x15 =1; delay2ms(); x16 =1; delay2ms(); x16 =1; delay2ms(); x17 =1; delay2ms(); x18 =1; delay2ms(); x19 =1; delay2ms(); x20 =1; delay2ms(); x21 =1; delay2ms(); x22 =1; delay2ms(); x23 =1; delay2ms(); x24 =1; delay2ms(); x25 =1; delay2ms(); x26 =1; delay2ms(); x27 =1; delay2ms(); x28 =1; delay2ms(); x29 =1; delay2ms(); x30 =1; delay2ms(); x31 =1; delay2ms(); }

void Mode_4() {

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x1 =0; delay2ms();

x2 =0; x31 =0; delay2ms(); x3 =0; x30 =0; delay2ms();

x4 =0; x29 =0; delay2ms();

x5 =0; x28 =0; delay2ms();

x6 =0; x27 =0; delay2ms();

x7 =0; x26 =0; delay2ms();

x8 =0; x25 =0; delay2ms();

x9 =0; x24 =0; delay2ms();

x10 =0; x23 =0; delay2ms();

x11 =0; x22 =0; delay2ms();

x12 =0; x21 =0; delay2ms();

x13 =0; x20 =0; delay2ms(); x14 =0; x19 =0; delay2ms(); x15 =0; x18 =0; delay2ms(); x16 =0; x17 =0; delay2ms();

}

void Mode_5()

{

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x1 =0; delay2ms();

x2 =0; delay2ms();

x3 =0; delay2ms();

x4 =0; delay2ms();

x1 =1;x5 =0; delay2ms(); x2 =1;x6 =0; delay2ms(); x3 =1;x7 =0; delay2ms(); x4 =1;x8 =0; delay2ms(); x5 =1;x9 =0; delay2ms(); x6 =1;x10 =0; delay2ms(); x7 =1;x11 =0; delay2ms(); x8 =1;x12 =0; delay2ms(); x9 =1;x13 =0; delay2ms(); x10 =1;x14 =0; delay2ms(); x11 =1;x15 =0; delay2ms(); x12 =1;x16 =0; delay2ms(); x13 =1;x17 =0; delay2ms(); x14 =1;x18 =0; delay2ms(); x15 =1;x19 =0; delay2ms(); x16 =1;x20 =0; delay2ms(); x17 =1; x21 =0; delay2ms(); x18 =1; x22 =0; delay2ms(); x19 =1; x23 =0; delay2ms(); x20 =1;x24 =0; delay2ms(); x21 =1;x25 =0; delay2ms(); x22 =1;x26 =0; delay2ms(); x23 =1; x27 =0; delay2ms(); x24 =1;x28 =0; delay2ms();

x25 =1; x29 =0; delay2ms();

x26 =1; x30 =0; delay2ms();

x27 =1; x31 =0; delay2ms();

x28 =1; x1 =0; delay2ms();

x29 =1; x2 =0; delay2ms();

x3 =0; delay2ms();

}

void Mode_6()

{

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

P0=0;

P1=0;

P2=0;

P3=0;

delay2ms();

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay2ms();

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1; x4 =0;x29 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x6 =0;x27 =0; delay2ms(); x27 =1; x6 =1;x7 =0;x26 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms(); x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); x9 =1; x24 =1;x10 =0;x23 =0; delay2ms();

x11 =1; x22 =1; x12 =0;x21 =0; delay2ms();

x21 =1; x12 =1;x13 =0; x20 =0; delay2ms(); x13 =1; x20 =1; x14 =0; x19 =0; delay2ms(); x14 =1; x19 =1; x15 =0; x18 =0; delay2ms(); x15 =1; x18 =1;x16 =0; x17 =0; delay2ms(); //2

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms();

x3 =1; x30 =1;x29 =0; x4 =0; delay2ms();

x29 =1; x4 =1; x5 =0; x28 =0; delay2ms();

x5 =1; x28 =1;x27 =0; x6 =0; delay2ms();

x27 =1; x6 =1;x26 =0; x7 =0; delay2ms();

x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms();

x9 =1; x24 =1;x23 =0; x10 =0; delay2ms();

x23 =1; x10 =1;x11 =0; x22 =0; delay2ms();

x11 =1; x22 =1;x21 =0; x12 =0; delay2ms();

x21 =1; x12 =1;x13 =0; x20 =0; delay2ms(); x13 =1; x20 =1; x14 =0; x19 =0; delay2ms(); x14 =1; x19 =1; x15 =0; x18 =0; delay2ms(); //3

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms();

x3 =1; x30 =1;x29 =0; x4 =0; delay2ms();

x29 =1; x4 =1; x5 =0; x28 =0; delay2ms();

x5 =1; x28 =1;x27 =0; x6 =0; delay2ms();

x27 =1; x6 =1;x26 =0; x7 =0; delay2ms();

x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms();

x9 =1; x24 =1;x23 =0; x10 =0; delay2ms();

x23 =1; x10 =1;x11 =0; x22 =0; delay2ms();

x11 =1; x22 =1;x21 =0; x12 =0; delay2ms();

x21 =1; x12 =1;x13 =0; x20 =0; delay2ms(); x13 =1; x20 =1; x14 =0; x19 =0; delay2ms(); //4

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms();

x3 =1; x30 =1;x29 =0; x4 =0; delay2ms();

x29 =1; x4 =1; x5 =0; x28 =0; delay2ms();

x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); x9 =1; x24 =1;x23 =0; x10 =0; delay2ms(); x23 =1; x10 =1;x11 =0; x22 =0; delay2ms(); x11 =1; x22 =1;x21 =0; x12 =0; delay2ms(); x21 =1; x12 =1;x13 =0; x20 =0; delay2ms(); //5

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); x9 =1; x24 =1;x23 =0; x10 =0; delay2ms(); x23 =1; x10 =1;x11 =0; x22 =0; delay2ms(); x11 =1; x22 =1;x21 =0; x12 =0; delay2ms(); //6

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); x9 =1; x24 =1;x23 =0; x10 =0; delay2ms(); x23 =1; x10 =1;x11 =0; x22 =0; delay2ms(); //7

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms();

x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); x9 =1; x24 =1;x23 =0; x10 =0; delay2ms();

//8

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms(); x8 =1; x25 =1;x9 =0; x24 =0; delay2ms(); //9

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); x26 =1; x7 =1;x8 =0; x25 =0; delay2ms(); //10

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); x27 =1; x6 =1;x26 =0; x7 =0; delay2ms(); //11

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); x5 =1; x28 =1;x27 =0; x6 =0; delay2ms(); //12

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms(); x3 =1; x30 =1;x29 =0; x4 =0; delay2ms(); x29 =1; x4 =1; x5 =0; x28 =0; delay2ms(); //13

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms();

x3 =1; x30 =1;x29 =0; x4 =0; delay2ms();

//14

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

x31 =1; x2 =1; x3 =0; x30 =0; delay2ms();

//15

x1 =0; delay2ms();

x1 =1; x31 =0; x2 =0; delay2ms();

//16

x1 =0; delay2ms();

}

void main()

{

while(1)

{

Mode_1();

Mode_2();

Mode_3();

Mode_4();

Mode_5();

Mode_6();

}

}

博客中有大量单片机学习文章,有很多乐趣,也是对我的很好的支持。欢迎转发!!

51单片机32位流水灯

51单片机32位流水灯 摘要:随着电子工业的发展,电子元器件急剧增加,C51单片机应用非常广泛。本文介绍了一种简易的单片机应用的设计思路及硬件结构。首先研究了51单片机流水灯的基本原理,画出整机框图,接着提出系统的性能指标,计算确定电路形式和元器件参数,然后根据原理图通过Simulink软件进行建模仿真,验证系统的可行性。 关键字:C51;LED;S imulink软件;Protel99SE; 1引言 1.1设计背景及意义 目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用围也逐渐广泛起来,在我们的生活当中有许多地方要应用中到灯光,因此,设计全自动,可靠,安全,便捷的灯光效益具有极大的现实必要性。 2.系统概述 该系统主要有C51单片机,LED灯,晶振等。 2.1 设计目的 (1)掌握简易流水灯的工作原理,以及程序的编写等等。 (2)进一步熟悉和掌握常用数字电路元器件的应用; (3)学习数字电路仿真、调试、测试、故障查找和排除的方法、技巧; (4)培养实践技能,提高分析和解决实际问题的能力。 2.2设计容及要求 1、51单片机x1、40Pin 座x1 2、LED x32(建议用5mm 七彩的) 3、电阻470Ωx33 4、晶振12MHz x1 5、10uf 电解电容x1、谐振瓷片电容30pf x2 6·其他的可以看自己的爱好去加 7、其实也可以不用那么多的电阻,用几个排阻就OK了。

2.2电路原理图

2.2重要元器件介绍

(1)C51单片机 (2)12MHZ晶振分为两种封装形式: SMD3225产品详细参数: 频率围:12 ~ 54 MHz 频率公差(25℃)± 10ppm± 30 ppm, or specify 在工作温度围的频率稳定度:± 10ppm± 30 ppm, or specify 工作温度围:- 20 ~ +70 oC, or specify 并联电容(C0):7 pF Max. 驱动级:1~200μW(100μW typical) 负载电容:Series, 8 pF, 12 pF, 15 pF, 20pF, or specify 老化(25℃):± 3 ppm / year Max. 储存温度围:- 40 ~ + 85 oC SMD5032产品详细参数: 频率围:12 ~ 54 MHz 频率公差(25℃)± 10ppm± 30 ppm, or specify 在工作温度围的频率稳定度:± 10ppm± 30 ppm, or specify 工作温度围:- 20 ~ +70 oC, or specify 并联电容(C0):7 pF Max. 驱动级:1~200μW(100μW typical) 负载电容:Series, 8 pF, 12 pF, 15 pF, 20pF, or specify 老化(25℃):± 3 ppm / year Max. 储存温度围:- 40 ~ + 85 oC 3实物

单片机课程设计报告--心形流水灯

井冈山大学 机电工程学院 单片机 课程设计报告 课程名称:单片机 设计题目:心形流水灯 姓名:玉红 专业:生物医学工程 班级:11级医工本一班 学号:110615017 指导教师:王佑湖 2013年11月27日

目录 1引言 (2) 1.1设计任务 (2) 1.2设计要求……………………………………………… ..2 2 课题综述 (2) 2.1课题的来源 (2) 2.2面对的问题 (2) 3 系统分析 (2) 3.1 STC89C52单片机引脚图及引脚功能介绍 (2) 4 系统设计 (4) 4.1硬件设计 (4) 4.1.1硬件框图 (4) 4.1.2硬件详细设计 (5) 4.2 软件设计 (5) 4.3 硬件原理图 (6) 4.4 元件清单 (6) 4.5 硬件焊接

图 (6) 4.6 代码编写 (7) 5心得体会 (7) 6致 (8) 参考文献 (8) 1 引言 单片机课程设计主要是为了让我们增进对STC89C51单片机电路 的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目 的。 1.1设计任务 设计一个单片机控制的流水灯系统 1.2设计要求 (1)32个LED灯; (2)可实现多种的亮灯(如左循环,右循环,间隔闪,90度交叉闪等)。 2 课题综述

2.1 课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2 面对的问题 这次课程设计是通过STC89C52位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。 3 系统分析 3.1 STC 89C52单片机引脚图及引脚功能介绍 本次设计的目的在于加深STC89C52单片机的理解,首先来简单认识一下,它的引脚如图3-1所示: 图3.1 STC89C52

流水灯实验报告综合二

实验名称:流水灯的实验设计与制作班级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键:继续显示 流水灯——正面无单片机时 流水灯——正面有单片机时

51单片机流水灯C语言源代码

#include #include #define uint unsigned int #define uchar unsigned char uchar z=50,e=0x00,f=0xff; uchar code table1[]={ 0x80,0xc0,0xe0,0xf0, 0xf8,0xfc,0xfe,0xff}; uchar code table2[]={ 0x7f,0x3f,0x1f,0x0f, 0x07,0x03,0x01,0x00}; uchar code table3[]={ 0x01,0x03,0x07,0x0f, 0x1f,0x3f,0x7f,0xff}; uchar code table4[]={ 0xe7,0xdb,0xbd,0x7e, 0xbd,0xdb,0xe7,0xff}; uchar code table5[]={ 0xe7,0xc3,0x81,0x00, 0x81,0xc3,0xe7,0xff}; uchar code table6[]={ 0x7e,0x3c,0x18,0x00, 0x18,0x3c,0x7e,0xff}; void delay(uchar); void lsd1(); void lsd2(); void lsd3(); void lsd4(); void lsd5(); void lsd6(); void lsd7(); void lsd8(); void lsd9(); void lsd10(); void lsd11(); void lsd12(); main() { while(1) { lsd1(); lsd2(); lsd3(); lsd4();

基于单片机的心形流水灯毕业设计论文

课程设计(论文)说明书 题目:心形流水灯 院(系):信息与通信学院 专业:通信工程 学生姓名: 学号: 指导教师: 职称:讲师 2012年12 月1日

摘要 本论文基于单片机技术与单片机芯片AT89S51芯片功能和C语言程序,实现心形流水灯的多种亮与灭的循环。首先,我们了解单片机的一些技术,了解了单片机芯片AT89S51的一些功能;然后结合C语言编程;最后将它们运用到实际的电路,使心形LED灯实现多种亮灭方法。本论文介绍关于流水灯的运用和单片机技术;然后介绍芯片AT89S51;最后介绍运用到的相关软件.矚慫润厲钐瘗睞枥庑赖。 关键词:单片机;流水灯;C语言;

Abstract This paper Based on the single chip microcomputer and single chip microcomputer chip AT89S51 chip function and C language program,Realization of flowing water light heart a variety of light and the cycle of destruction。primarily,We know some of the single chip microcomputer technology,Understanding of the single chip microcomputer chip AT89S51 of some functions, Then based on the C language programming; Finally they are applied to the practical circuit, Make heart LED lamp achieve a variety of light out method. This paper introduces about the use of flowing water light and single chip microcomputer; and then introduced chip AT89S51; At the end of this paper applied to software.聞創沟燴鐺險爱氇谴净。Key words:micro-computer;light water ;C programming language残骛楼諍锩瀨濟溆塹籟。

单片机实验报告

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/f64055704.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.360docs.net/doc/f64055704.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

(完整版)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显示电路和单片机最小系统组成,如图所示,其中包括时钟电路采用部时钟方式,复位电路采用上电自动复位。由于单片机的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灯的控制能力进一步得到提升。 九、项目设计报告成绩 实验报告成绩: 指导教师签字: 年月日

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

51单片机的流水灯控制 班级:100712 姓名:全建冲 学号:10071047

一、设计要求 用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。 二、电路原理图 原理图分析: 本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uint i=0; uchar a=0xfe; void main() { TMOD=0x01;//设置工作方式为定时器0,16位手动重装初值 TH0=(65536-46080)/256;//50毫秒定时赋初值 TL0=(65536-46080)%256; TR0=1;//启动定时器0 while(1) { If(TF==1)//读溢出标志位 { TH0=(65536-46080)/256;//重新赋初值 TL0=(65536-46080)%256;

i++; if(i==10)//500毫秒定时 { i=0; P1=a;//P1端口赋值 a=_crol_(a,1);//循环左移 } TF=0;//清除定时器溢出标志 } } } 程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否则定时器无法再次溢出,利用标志i读取10次即可达到500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。 2.中断定时器控制 #include

基于51单片机心形流水灯C语言源程序

基于51单片机心形流水灯C语言源程序

#include unsigned int x,y; void delayms(unsigned int z) //延时 { unsigned int i,j; for(i=z;i>0;i--) for(j=150;j>0;j--); } void On_all() //开启所有灯 { P0=0x00; P1=0x00; P2=0x00; P3=0x00; } void Off_all()//关闭所有灯 { P0=0xff; P1=0xff; P2=0xff; P3=0xff; } void ls()//正向流水灯 { P0=0x00; delayms(400); P2=0x00; delayms(400); P3=0x00; delayms(400); P1=0x00; delayms(400); P0=0x01; delayms(50);

P0=0x04; delayms(50); P0=0x08; delayms(50); P0=0x10; delayms(50); P0=0x20; delayms(50); P0=0x40; delayms(50); P0=0x80; delayms(50); P0=0x00; P2=0x01; delayms(50); P2=0x02; delayms(50); P2=0x04; delayms(50); P2=0x08; delayms(50); P2=0x10; delayms(50); P2=0x20; delayms(50); P2=0x40; delayms(50); P2=0x80; delayms(50); P2=0x00; P3=0x80; delayms(50); P3=0x40; delayms(50); P3=0x20; delayms(50); P3=0x10; delayms(50); P3=0x08; delayms(50); P3=0x04; delayms(50);

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

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

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

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

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++)

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级: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单片机P0口实现8个LED(发光二极管)的流水灯控制。可以使用Proteus软件进行仿真调试。 1 硬件设计 利用单片机的PO口控制8个LED,其电路如下图所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LSD.DSN”。在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示 都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 流水灯又称为跑马灯,在函数中可以将P0口的八种不同状态做成一维数组,循环执行即可,如下所示。当然也可以采用其它函授来实现,如左移一位<<1(或右移一位>>1),循环左移函授_crol_(或循环右移函授_cror_)等。 /****************************************************************** 流水灯

*******************************************************************/ #include "reg51.h" const tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delayms(unsigned int x) //延时 { unsigned int j; unsigned char k; for(j=0;j

LED点阵心形流水灯单片机设计

河南理工大学 开放实验室单片机设计报 LED点阵心形流水灯礼品 目录 0 前言 (1) 1系统组成与功能 (1) 1.1 系统组成 (1) 1.1.1 AT89C51单片机 (1) 1.1.2 16乘16点阵 (2) 1.2 系统功能 (3) 2系统原理 (3) 2.1系统仿真图 (3) 2.2 实物照片 (4) 3程序流程图 (6) 4程序代码 (7) 5结论 (14) 参考文献 (14)

1 基于单片机控制心形流水灯跟点阵 0 前言 随着社会的发展,单片机得到了广泛的应用,人们越来越重视单片机的应用。比如温度是和每个人息息相关的,并且在有的生产车间里还要进行温度时时测量,甚至是对温度的进一步调控等,这些都是单片机的应用之例。本设计是用单片机和点阵加一个小的流水灯电路,作为玩具挺有趣的。 这次的作品,初衷是希望通过单片机学习,做个生日礼物送给朋友。由于时间紧迫,做的有些仓促,望原谅。 1系统组成与功能 1.1 系统组成 本系统主要有AT89C51单片机、18b20、1602、蜂鸣器、四位一体七段数码管等元件组成。 1.1.1 AT89C51单片机 AT89S51具有如下特点:40个引脚,8k Bytes Flash 片内程序存储器,256 bytes 的随机存取数据存储器(RAM ),32个外部双向输入/输出(I/O )口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT ) 电路,片内时钟振荡器。 此外,AT89S52设计和配置了振荡频率可 为0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而RAM 定时计数器,串行口,外中断 系统可继续工作,掉电模式冻结振荡器而保存RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。 引脚图如图1-1所示。 管脚说明 图1-1 A T89C51引脚图

51单片机实训报告

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

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

用单片机控制的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。因此,要

基于单片机的心形流水灯毕业设计论文

基于单片机的心形流水灯毕业设计论文 此文档为WORD版可编辑修改

课程设计(论文)说明书 题目:心形流水灯 院(系):信息与通信学院 专业:通信工程 学生姓名: 学号: 指导教师: 职称: X年X月X日

摘要 本论文基于单片机技术与单片机芯片AT89S51芯片功能和C语言程序,实现心形流水灯的多种亮与灭的循环。首先,我们了解单片机的一些技术,了解了单片机芯片AT89S51的一些功能;然后结合C语言编程;最后将它们运用到实际的电路,使心形LED灯实现多种亮灭方法。本论文介绍关于流水灯的运用和单片机技术;然后介绍芯片AT89S51;最后介绍运用到的相关软件. 关键词:单片机;流水灯;C语言;

Abstract This paper Based on the single chip microcomputer and single chip microcomputer chip AT89S51 chip function and C language program,Realization of flowing water light heart a variety of light and the cycle of destruction。primarily,We know some of the single chip microcomputer technology,Understanding of the single chip microcomputer chip AT89S51 of some functions, Then based on the C language programming; Finally they are applied to the practical circuit, Make heart LED lamp achieve a variety of light out method. This paper introduces about the use of flowing water light and single chip microcomputer; and then introduced chip AT89S51; At the end of this paper applied to software. Key words:micro-computer;light water ;C programming language

单片机流水彩灯课程设计

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

目录 一、实训的目的 (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)材料:松香、焊锡。焊接时最常用的焊料是焊锡。松香焊剂是一种可靠的焊剂,它在电路维修和电子制作中应用广泛。将焊接的

相关文档
最新文档