基于单片机的音乐流水灯设计

基于单片机的音乐流水灯设计
基于单片机的音乐流水灯设计

单片机原理及系统课程设计

专业:电气工程及其自动化

班级:电气1003班

姓名:李鹏飞

学号:

指导教师:

兰州交通大学自动化与电气工程学院

2013 年 3 月 7 日

基于单片机的音乐流水灯设计

摘要

本设计是一种基于AT89C52单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。本方案以AT89C52单片机作为主控核心,通过三极管放大电流使蜂鸣器播放音乐,利用编程实现循环点亮24个太极图案的LED彩灯,根据用户需求可以编写若干种亮灯模式.,蜂鸣器可以根据用户需求改写编程播放各种音乐。本方案具有电路结构简单、体积小、元器件少、能耗低等优点。在美丽的都市夜晚音乐彩灯为我们的生活增添了无限光彩。音乐彩灯具有更广阔的发展天地。

关键字:AT89C51;LED彩灯;音乐

Abstract

The design is based on AT89C52 microcontroller music control lantern program microcontroller playing music, and note the frequency of different flashing light LED Lantern with. Program AT89C52 microcontroller as the master core through the transistor amplifier to the current buzzer play music programming cycle LED lantern lit 24 Taiji patterns can write certain kinds of lighting modes according to user needs, beep can rewrite the program play a variety of music based on user demand. The program has a simple circuit structure, small size, fewer components and lower energy consumption. Add unlimited glory for our lives in the beautiful city night music Lantern. Music lantern has a broader development world.

Keywords: AT89C51,LED Lantern,music

1引言

1.1设计目的:

设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。通过专业综合设计使学生获得以下几方面能力:

(1) 进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;

(2) 培养学生实践动手能力及独立分析和解决工程实际问题的能力;

(3) 培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

学习单片机的最有效方法就是理论与实践并重,现在我把基于单片机控制的音乐流水灯设计作为单片机课程设计的题目,通过查找资料和仿真实验的结合,在实践应用中得以更加深入的了解和掌握单片机技术。

1.2设计要求:

(1) 用24个发光二极管作为显示电路,能够循环的显示灯的亮灭;

(2)流水灯按照多种方式闪烁,同时播放<<仙剑奇侠传>>和<<笑傲江湖>>的音乐。

2 设计方案及原理

通过控制单片机的内部定时器的定时时间来产生不同的脉冲频率,以驱动蜂鸣器发出不同音节的声音,利用延时子程序来控制音调的节拍。为了编程方便,通常是将简单的音符和相应的节拍转换成为定时常数和延时常数,利用查表法得到定时常数,分别控制定时器产生相应的脉冲频率和脉冲频率的持续时间,当持续时间到时,程序自动查找下一个音符的定时常数和延时常数,这样就可以听到悦耳动听的歌声。音调是由不同的频率产生的,而每一个音调都是有一个音符和一个节拍组成,音符决定该音调的高低,节拍决定了该音调是多少拍。因此一个音调是由两个字节组成的。根据音符字节产生该大小次数的延时,声音输出口取反,就可以得到该音调的高低音。根据设置单位的延时长短,可以控制音乐演唱速度。因此算法很简单,定义单片机的一个I/O端脚为声音输出口,在规定的节拍

内,根据音符字节的大小产生延时,将声音输出口不断的置高置低(即取反),就可以得到该音调。只要选取合适的单位节拍延时,就可以输出动听的音乐。

3 硬件设计

3.1 硬件框图:

图1 硬件框图

3.2 彩灯电路:

彩灯电路由三组共24个LED发光二极管组成,红、黄、绿各一组,每组各8个LED灯,每个LED发光二极管串联一个200欧姆的限流电阻。三组彩灯电路各配一个74LS373控制各组彩灯的集体亮灭,从而使彩灯的控制更为灵活,为实现彩灯的多样闪烁模式创造了条件。彩灯整体造型为一个太极图案,三种颜色彩灯组合巧妙,搭配合理,闪烁非常漂亮,再配以音乐《仙剑奇侠传》和《笑傲江湖》别有一番江湖气氛。

图4 彩灯电路仿真图

3.3 音频放大电路

音频功放电路中喇叭由LM386功率放大芯片驱动,此电路喇叭的音质要比采用蜂鸣器发出的音质好很多,声音清晰洪亮,效果非常好。

图5 音频放大电路图

3.4 中断服务说明:

与每类I/O设备相关的进程都有一个靠近内存底部的地址,称作中断向量。它包括中断服务程序的入口地址。中断服务程序:处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

4 软件设计

软件是相对硬件而言的,它是指由计算机硬件执行,用来完成一定任务的所有程序及数据,即为运行、管理和维护计算机所编制的程序的总和。单片机的软件系统比较简单,它不需要复杂的操作系统来进行系统管理,只使用于管理单片机系统工作的管理程序(称为监控程序)和用于完成实际具体任务的应用程序。而对于简单的单片机应用系统,只要有为实现控制目的而直接行的应用程序就行了。本设计软件部分具体分为音乐程序和流水灯程序,音乐程序主要由二首歌曲

组成,流水灯程序主要由24盏LED灯组成,编程则通过C语言进行编写。

图5 程序设计流程图

5系统仿真与实际调试

将音乐流水灯电路在Proteus 7电路仿真软件上仿真效果非常好,经过数十次调试,音乐由最初的“跑调”变得优美动听,这主要在于调节每个音符的发音时长,还有音乐中段与段之间的停顿时长,只要配合歌曲原曲边听边反复修改,调整效果是非常显著的:还有一项巨大的工程是调节LED流水灯的闪烁规律,让灯亮起来并不难,但是让灯闪的漂亮并不是一件易事,这需要几十次的调节,如果有自己的创意就更好了,我设计的彩灯共有8种闪烁方式,每一种都包含了我的灵感和创意,都是经过数十次试验精选出来的。程序的调试是所有工作中的难点,同时也是最为繁琐的,经过一个星期的调试,整体效果有了质的提升,也终于满足了自己的要求。

图6 Proteus仿真图

6总结

在这次单片机课程设计中遇到了很到困难,尤其是程序调试。为了达到自己与预期的制作效果着实下了一番工夫,但最终还是圆满实现了设计任务。

从拿到设计课题到仿真出电路,再到基本程序框架的建立其实并没有花费太多时间,因为之前有过设计流水灯的经验,所以感觉还是比较轻松的。但是要想让流水灯闪的漂亮却并非易事,这要考虑循环方式,循环周期,更要考虑到LED 灯的排列图案。采用边看仿真效果边对症修改程序的方式,经过几十次的修改,精雕细琢力求完美,最终设计出数种非常好看的闪烁方式,个人非常满意。还有就是音乐谱曲,这个任务非常繁琐,也是采用边听边改程序的方式,为了让喇叭播放出完美的韵律,都不知道听了多少次《仙剑奇侠传》和《笑傲江湖》,听到难以忍受的地步,是真的听腻了,但为了让自己的作品能有更好的效果我还是坚持了下来,好几个晚上都熬到深夜一两点,但每看到闪烁的彩灯更加迷人,听到播放的乐曲愈来愈动听,自己还是感到很满足的。

经过这次课程设计,我可以更加熟练的运用单片机的知识,更为灵活的选择硬件设备,还使自己对单片机编程开发环境Keil软件和电路仿真软件Proteus有了

更深的了解,今后可以较为熟练的完成类似的电路仿真设计。

参考文献

[1] 王思明.单片机原理及应用系统设计.科学出版社,2012,(1)

[2] 冯博琴.微型计算机原理与接口技术.清华大学出版社,2007,(2).

[3] 谭浩强编著.C程序设计(第三版)[M].北京:清华大学出版社,2005 .

附录附录A:实物图

图1

图2

附录B:元件清单

附录C:程序

#include

#include

#define uchar unsigned char

#define uint unsigned intsbit

sbit K1=P1^0; //设定开关口

sbit d1=P3^0; //设定绿灯LM373控制口

sbit d0=P3^1;设定红灯LM373控制口

sbit d2=P3^2;设定黄灯LM373控制口

sbit BEEP=P3^6;喇叭输出端口

uchar th0_f;

uchar tl0_f;

void delay_1ms(unsigned int t)延时程序

{ unsigned char i,j;

for(t;t>0;t--)

{

for(i=34;i>0;i--)

for(j=13;j>0;j--);

}

}

//四阶35个音符对应的T0中断初值,及输出频率对照表

static code freq[37][2] = { 0xA9,0xEF, //00220HZ ,1 //0

0x93,0xF0, //00233HZ ,1# //1

0x73,0xF1, //00247HZ ,2 //2

0x49,0xF2, //00262HZ ,2# //3

0x07,0xF3, //00277HZ ,3 //4

0xC8,0xF3, //00294HZ ,4 //5

0x73,0xF4, //00311HZ ,4# //6

0x1E,0xF5, //00330HZ ,5 //7

0xB6,0xF5, //00349HZ ,5# //8

0x4C,0xF6, //00370HZ ,6 //9

0xD7,0xF6, //00392HZ ,6# //10

0x5A,0xF7, //00415HZ ,7 //11

0xD8,0xF7, //00440HZ 1 //12

0x4D,0xF8, //00466HZ 1# //13

0xBD,0xF8, //00494HZ 2 //14

0x24,0xF9, //00523HZ 2# //15

0x87,0xF9, //00554HZ 3 //16

0xE4,0xF9, //00587HZ 4 //17

0x3D,0xFA, //00622HZ 4# //18

0x90,0xFA, //00659HZ 5 //19

0xDE,0xFA, //00698HZ 5# //20

0x29,0xFB, //00740HZ 6 //21

0x6F,0xFB, //00784HZ 6# //22

0xB1,0xFB, //00831HZ 7 //23

0xEF,0xFB, //00880HZ `1 //24

0x2A,0xFC, //00932HZ `1# //25

0x62,0xFC, //00988HZ `2 //26

0x95,0xFC, //01046HZ `2# //27

0xC7,0xFC, //01109HZ `3 //28

0xF6,0xFC, //01175HZ `4 //29

0x22,0xFD, //01244HZ `4# //30

0x4B,0xFD, //01318HZ `5 //31

0x73,0xFD, //01397HZ `5# //32

0x98,0xFD, //01480HZ `6 //33

0xBB,0xFD, //01568HZ `6# //34

0xDC,0xFD, //01661HZ `7 //35

0x00,0x00,

};

static code music1[707] = { // 《仙剑奇侠传》

28,28,26,26,28,28,28,28,28,28,21,21,26,26,26,26,

24,24,23,23,21,21,21,23,21,21,19,19,28,28,28,28,

16,16,19,19,24,24,24,24,16,16,19,19,26,26,26,26,

24,24,23,23,21,21,21,21,21,21,21,21,28,28,26,26,

28,28,26,26,21,21,21,21,24,24,26,26,28,28,28,28,

28,28,28,28,28,28,31,31,28,28,24,24,26,26,26,26,

26,26,26,26,21,21,21,21,24,24,28,28,26,26,26,26,

24,24,24,24,21,21,21,21,21,21,21,21,21,21,21,21,

36,36,36, 28,28,28,28,26,26,28,28,28,28,28,28,21,21,

26,26,26,26,24,24,23,23,21,21,21,23,21,21,19,19,

16,16,16,16,16,16,19,19,24,24,24,24,16,16,19,19,

26,26,26,26,28,24,23,23,21,21,21,21,21,21,21,21,

21,21,21,21,23,23,23,23,23,23,23,23,23,23,23,23,

21,21,21,21,24,24,26,26,28,28,28,28,28,28,28,28,

31,33,31,31,28,28,24,24,26,26,26,26,26,26,26,26,

21,21,21,21,24,24,28,28,26,26,26,26,24,24,24,24,

21,21,21,21,21,21,21,21,21,21,21,21,36,36,36,36,

// 《笑傲江湖》

16,16,16,16,21,21,21,16,19,19,19,19,19,19,16,16,

14,14,16,16,19,19,21,21,16,16,16,16,16,16,16,16,

16,16,16,21,21,21,16,19,19,19,19,19,19,16,16,14,

14,16,16,19,19,21,19,16,16,16,16,16,16,14,12,12,

12,12,14,14,16,16,14,14,14,14,14,14,14,12,9,9,

9,12,14,14,16,16,19,19,19,21,19,19,16,14, 12,12,

12,14,14,14,16,16,14,14,14,14,14,12,12,12,9,9,

9,12,14,16,16,19,21,21,21,21,21,21,21, 36,36,

16,16,16,16,21,21,21,16,19,19,19,19,19,19,16,16,

14,14,16,16,19,19,21,19,16,16,16,16,16,16,16,16,

16,16,16,21,21,21,16,19,19,19,19,19,19,16,16,14,

14,14,16,19,19,21,19,16,16,16,16,16,16,14,12,12,

12,12,14,14,16,16,14,14,14,14,14,14,14,12,9,9,

9,12,14,14,16,16,19,19,19,21,19,19,16,14,12,12,

12,14,14,14,16,16,14,14,14,14,14,12,12,12,9,9,

9,12,14,16,16,19,21,21,21,21,21,21,21,14,14,14,

14,14,16,16,14,12,12,12,12,12,9,9,12,14,14,14,

14,14,16,16,14,12,12,9,9,12,9,12,

14,14,14,14,14,16,16,14,12,12,12,12,12,9,12,

14,14,14,14,14,19,19,16,16,16,16,16,16,16,16,

9,9,9,9,9,9,9,14,14,14,14,14,14,16,14,

12,12,12,12,12,12,14,9,9,9,9,9,9,7,7,9,9,9,9,

9,7,7,4,4,4,4,4,7,7, 2,2,2,2,2,2,2,4,4,4,4,4,4,4,

9,9,9,9,9,9,9,9,14,14,14,14,14,14,16,16,

12,12,12,12,12,12,14,14,9,9,9,9,12,9,

7,7,7,7,7,7,9,9,4,4,4,2,4,4,7,7,

9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, };

void PlayMusic(int k) // 音乐程序

{

unsigned int i;

TMOD =0x01; //定时器/计数器工作方式寄存器负值,设定定时器0工作方式1

TR0 = 1; //启动定时器0

ET0 = 1; //定时器0容许

EA = 1; //打开中断总控制

while(1)

{ for(i=0;i<707;i++)

{

if(music1[i] == 36) //停顿音处理

{

TR0=0;

delay_1ms(190);

}

else

{

TR0=1;

if(k==1) //判断开关是否处于开启位置(是则播放音乐,否则停止)

{

if(i<100)

{

P0=_crol_(P0,1);

P2=~P2;

}

if(i==100)

{

P0=0x22;

P2=0x18;

}

if(i>100&&i<200)

{

P0=_cror_(P0,1);

P2=~P2;

}

if(i==200)

{

P0=0x55;

P2=0x18;

d1=1;

}

if(i>200&&i<300)

{

d1=~d1;

d2=~d2;

}

if(i==300)

{

P0=0x36;

d1=d2=0;

}

if(i>300&&i<400)

{

P0=_cror_(P0,1);

}

if(i==400)

{

P0=0xaa;

}

if(i>400&&i<500)

{

P0=_cror_(P0,1);

}

if(i==500)

{

P0=0x01;

}

if(i>500&&i<600)

{

P0=_cror_(P0,1);

}

if(i==600)

{

P0=0xfe;

}

if(i>600)

{

P0=_cror_(P0,1);

}

tl0_f=freq[music1[i]][0]; //给定时器赋值

th0_f=freq[music1[i]][1];

delay_1ms(190);

}

}

}

if(K1==1) //判断K1开关是否处于开启的位置(实则重复音乐,否则停止){ EA=0;

P0=0xff;

P2=0xff;

break;

}

}

}

timer0() interrupt 1 //中断子程序

{

TL0=tl0_f;

TH0=th0_f;

BEEP=~BEEP;

}

void main() //主程序

{ uchar b,m;

while(1)

{

while(1)

{if(K1==1)

break;

if(K1==0)

{ P3=0x00;

delay_1ms(100);

P0=0xff;P2=0xff;

delay_1ms(1000);

for(m=0;m<2;m++)

{

P0=0x03;

P2=0x00;

delay_1ms(1000);

for(b=0;b<5;b++)

{

P0=_crol_(P0,1);

delay_1ms(500);

}

P0=0x00;

P2=0x81;

delay_1ms(300);

P2=0x42;

delay_1ms(300);

P2=0x24;

delay_1ms(300);

P2=0x18;

delay_1ms(300);

P2=0x00;

P0=0x80;

delay_1ms(1000);

P0=0x00;

P2=0x18;

delay_1ms(300);

P2=0x24;

delay_1ms(300);

P2=0x42;

delay_1ms(300);

P2=0x81;

delay_1ms(300);

P2=0x00;

P0=0x55;

delay_1ms(300);

for(b=0;b<8;b++)

{

P0=_cror_(P0,1);

delay_1ms(300);

}

}

P0=0x00;

delay_1ms(500);

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

{

P0=0xff;

P2=0xff;

delay_1ms(500);

P0=0x00;

P2=0x00;

delay_1ms(500);

}

if(K1==1)

{

P3=0x07;

break;

}

P0=0x03;

P2=0x00;

PlayMusic(1); //播放音乐}

}

}

}

双单片机控制流水灯(精)

案例8 双单片机通信控制流水灯 用串行工作方式进行单片机之间的通信,电路图如下图所示。两个89S51单片机通过串行口进行通信,设置U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,U1的RXD接U2的TXD,U1的TXD接U2的RXD,U2接8个发光二极管,要求由U1向U2发送数据,使8个发光二极管按从左到右逐一点亮的流水灯效果。 MCS-51单片机之间的串行异步通信 1.串行口的编程串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。 (2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。 (3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。 (4)设定SMOD的状态,以控制波特率是否加倍。 (5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。 2.案例分析由于串行口通信时传输的“0”或者“1”是通过相对于“地”的

电压区分的,因此使用串行口通信时,必须将双方的“地”线相连以使其具有相同的电压参考点。需要注意的是,异步通信时两个单片机的串行口波特率必须是一样的。由于U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,因此二者的串行口初始化程序不完全一样。假设使用240bit/s的波特率,使用串行工作方式1,Tl使用自动装载的方式2,则Ul的TH1应初始化为136,U2的TH1应初始化为16。 对应的程序完成如下功能:Ul和U2进行双工串行通信,Ul给U2循环发送流水灯控制字,U2收到控制字后送到P0口,点亮相应发光二极管,双方都用中断方式进行收发。 (1)单片机U1的源程序 #include unsigned char sdata=0xfe; void isr_uart(); void main() { TMOD=0X20; TH1=136; TL1=136; SCON=0x40; PCON=0; TR1=1; EA=1;ES=1; SBUF=sdata; while(1); } void isr_uart() interrupt 4 {

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

井冈山大学 机电工程学院 单片机 课程设计报告 课程名称:单片机 设计题目:心形流水灯 姓名:玉红 专业:生物医学工程 班级: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

单片机实现对音乐流水灯的控制

单片机实现对音乐流水灯的控制 摘要:自上世纪70年代以来,单片机作为一种集成电路芯片,其发展越来越完善,性能越来越优越,而且单片机的应用不断深入国民经济和人们生活的各个领域,给人们的生活带来了极大方便,满足了人们越来越高的生活需求。本文就是研究单片机在娱乐场所的应用,通过感应音乐声音的强度去控制流水灯流动的节奏。这一研究对改善娱乐场所的活跃气氛有较大的意义。该电路分3个部分,即数据采集部分,单片机处理部分,驱动电路部分。 关键词:数据采集;数据处理;流水灯;单片机;控制 The single a computer realizes to the control of the music flowing running water light Abstract:Since the 70's of last century, the single a machine is used as a kind of integrated circuit an each realm for, its development more and more perfectly, function more coming roughly superiorly, and single an application of machine continuously going deep into national economy with people living, the life for people brought biggest convenient, satisfied the more and more high life in people need. This text be strength that research that rhythm the single a machine is amusing the amenity applied, pass to respond the music voice to control the flowing water light flow. This a research to improve amusement amenity active atmosphere contain bigger meaning. That electric circuit divides 3 parts, namely the data collects part, the single a machine handles part, color light control part. Key word:data collecting system;data handle;flowing water light;single computer;control 1 引言 声音传感器输出的是声音模拟信号,信号电压的大小反映声音的强弱,整个设计的思想就是用这个信号去控制流水灯的闪烁。由于输入信号是模拟信号,而单片机所能处理的是只能是数字信号,所以这里要用到一个A/D转换器,去将模拟信号转换为数字信号,本文中采用的是8位高速A/D转换器TLC5510。8位数字信号输入单片机AT89C51后按大小被程序分为4组,分别控制输出4个不同的延时去控制流水的流动速度。 2 电路功能原理 图1 电路功能原理图 本文所要实现的是将娱乐场所的流水彩灯去适应音乐声强的大小,即根据声音的大小改变流水灯的流水快慢,节奏。要实现这一功能需要一些硬件。图1是其功能原理图。首先,要将声音信号转换成为电信号,这里需要一个声音传感器。从传感器出来是一个模拟信号,而信号最终要通过单片机系统去处理,一般单片机只能识别数字信号,所以信号处理前必须将模拟信号转换为数字信号。这里需要一个A/D转换器。数据经过单片机的处理,去控制16支灯,如果直接用引脚控制的话需要16根数据线,而输出数据是八位的数字信号,这里造成数据线的不足。为了解决这一问题,还引入了可编程并行接

(完整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

基于89c51单片机控制的LED音乐彩灯控制器的设计说明

基于89c51单片机控制的LED音乐彩灯控制器的设计 随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的 灯光色彩,便宜的造价以及简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建础物已经成为一种时尚。但目前市场上各种各样的LED彩灯控制器大多数用全硬件电路实现, 电路结构复杂、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性…… 本方案提出一种基于8951 单片机的彩灯控制方案,实现对LED 彩灯的控制。本方案以8951单片机作为主控核心,在主控模块上设有3个按键和8个LED显示灯,根据需要可以 编写若干种亮灯模式,利用其部定时器TO实现一个基本单位时间为1ms的定时中断,根据 各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。与普通LED彩灯相比,具有体积小、价格低、功耗低等优点。 2 系统功能 LED彩灯用软件控制硬件的方式来控制彩灯闪烁,即彩灯控制器和管LED模块。彩灯采 用8951提供+ 5V电压工作,经过电源变换,输出直流工作电压,一方面为管LED模块提供 + 5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5V工作电源。整个系统工 作由软件程序控制运行,根据需要用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。 上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。在设定模式状态下,可以根据个人爱好及不同场合的需要来指定调用哪种模式,并且可以改变每种模式的时间T1、频率F1参数,在工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为 一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。整个3 种亮灯模式时间可以看作一个大周期T, 对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,从右到左点亮LED,还有自己定义的LED点 亮方式。 因此在LED彩灯上电工作后,可以方便地通过主控模块上的显示器指定LED彩灯当前 工作模块,工作时间Ti ,频率Fi 等实时参数。若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti , 以便符合实际需要。此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式, 可以让程序 循环。 硬件设计 LED彩灯系统包括,即LED彩灯控制器(8951主控模块),LED彩灯在8951外部接一个震荡时钟频率。用8951的控制器,具有按键、显示等功能,并利用8951的P0 口的8个输 出端上面焊有8个LED彩灯,使用彩灯在软件的控制下工作。 主控模块电路设计 主控模块电路如图1所示。主控模块主要设计器件有89C51, 8个LED显示器,3个开 关按键,1个稳压器(5V电压),1个外部晶振振荡器信号输出驱动,4个电阻。通过软件设 计,使单片机P0 口作为三色LED驱动信号输出口及移位时钟CLOCK!号,8951的P0为LED 的输出口。 软件设计 LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主 程序和中断服务子程序。上电后在按键控制灯的闪烁方式, 通过软件来控制循环, 以一个单位实际1ms的TO定时为中断服务子程序。在这个1ms的TO定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯点亮和熄灭各种状态LED灯等。整个系统软 件由程序、各种模式子程序、1ms中断服务子程序、调用循环程序组成。利用TO定时器作

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

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

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

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

单片机音乐控制流水灯

摘要 本设计是一种基于AT89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。本方案以AT89C51单片机作为主控核心,利用三极管和蜂鸣器,通过三极管放大电流使用蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有8个LED彩灯,根据用户需求可以编写若干种亮灯模式.例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。本方案具有设计简单、体积小、元器件少、电路结构简单等优点。该设计方案设计及其简单,典型的89c51单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围,音乐彩灯具有更广阔的发展天地。 关键字:AT89C51 LED彩灯音乐 Abstract This design is a musical based on AT89C51 microcontroller control program Lantern,realize MCU playing music,And the LED lights on the frequency of different notes with the light flashing。The program for AT89C51 microcontroller as the control center, use of transistor and buzzer, the current through the transistor amplification using the buzzer to play music,Using programming lighting cycle mode, with 8 LED Lantern, according to user needs to write some kind of switch-mode. For example, flashing around, every few light off, the buzzer can be adapted according to user requirements play a variety of music programming . The program is simple in design, small size, less components, and simple circuit structure. The design and simple design, the typical 89c51 microcontroller, a switch-mode and more, playing all types of music, has a small size, low price and low power consumption and so on. In the beautiful city at night, lanterns light off cycle, play beautiful music, brings out the beautiful atmosphere,music Carnival with the development of a broader world.

单片机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) {

单片机课程设计报告旗舰版

单片机原理及系统课程设计 评语: 考勤(10)守纪(10)过程(40)设计报告(30)答辩(10)总成绩(100) 专业:电气工程及其自动化 班级:电气1001班 姓名:周兴 学号: 201009018 指导教师:李红 兰州交通大学自动化与电气工程学院 2013 年 3 月 7 日

基于单片机的LED流水灯系统设计 摘要 本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O 引脚。系统以采用MCS-51系列单片机89C51为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。 关键词:单片机;LED流水灯;MCS-51 Abstract This design mainly to analyze calculator software and in the process of developing the steps, and from the practical experience of the calculator design has made the detailed analysis and research. This system is to make full use of the 8051 chip I/O pins. System to the MCS - 51 series microconteroller as the center Intel8C51 device to design LED running lights system, realize the eight LED neon light left and right cyclic display, and realize the circulation speed adjustable. Keywords: single chip microcomputer, LED running lights,MCS-51

用单片机控制的LED流水灯

用单片机控制的LED流水灯 设计报告 专业: 电子信息工程(自动化方向)班级:09级 姓名: 1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有 4."25~ 5."50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。

图1流水灯硬件原理图 从原理图中可以看出,如果要让接在P 1."0口的LED1亮起来,那么只要把P 1."0口的电平变为低电平就可以了;相反,如果要接在P 1."0口的LED1熄灭,就要把P 1."0口的电平变为高电平;同理,接在P 1."1~P 1."7口的其他7个LED的点亮和熄灭的方法同LED 1。"因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下: ORG00H;单片机上电后从00H地址执行 AJMPSTART;跳转到主程序存放地址处

基于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

流水灯设计与总结报告

流水灯设计与总结报告 摘要:近年来,随着电子技术和微型计算机的发展呢,单片机的档次不断提高应用领域也不断扩大,已在工业控制、尖 端科学、智能仪器仪表、日用家电汽车电子系统、 办公自动化设备、个人信息终端及通信产品中得到广泛 的应用,成为现代电子系统中最重要的智能化的核心部件。关键字:单片机,流水灯 需求分析: 随着现代社会的发展,人们越来越追求审美和新颖,而流失灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态给人一种视觉冲动,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用子电路去设计,我们可以用控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面也不复杂,而且功能作用并不低于电子电路设计的。由于它的小巧方便,我们采用单片机来做流水灯。 设计系统

1.复位电路部分 为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。手动按钮不仅具有上电复位的功能,还可以通过按按键的方法实现复位,(如上图所示按S22)此时电源VCC经两个电阻分压,在RST端产生一个复位高电平。 2.时钟电路部分 时钟电路为单片机工作提供基本时钟,它是计算机工作的心脏,它控制着计算机的工作节奏。时钟电路一般由晶体震荡器和电容组成。

最新五种编程方式实现流水灯的单片机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() //主函数

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计

基于AT89C51单片机的带彩灯外观音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以AT89C51单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏音乐,功能多,外观效果多彩,配有彩灯,使用方便,本音乐盒有三个按键,key1控制彩灯,key2控制音乐,key3为总开关,可同时关闭音乐与彩灯。具有一定的商业价值。 关键字:AT89C51;音乐盒;按键;彩灯

Abstract Along with the development of human society, people of vision, hearing things put forward higher request. Small music box can bring good memories and improve people's spiritual culture. Traditional music box is heavy mechanical type, size, pronunciation and drab, cannot achieve batch production. Music box designed in this paper based on AT89C51 microcontroller as the core element of electronic music box, small size, light weight, can play music, multi-function, appearance and colorful, with a lantern,easy to use. The music box with three buttons , The key1 control Lantern, key2 control music, key3 total switch can turn off the music and lanterns. Have some commercial value. Keywords: AT89C51, music boxes, buttons, Lantern

单片机流水灯实验报告

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

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

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

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。因此,

基于单片机的流水灯课程设计

09机电一体化课程设计 学院:南昌航空大学高职学院 设计题目:基于单片机的流水灯系统设计 指导老师:杨蓓 姓名: 班级:099021 学号: 年月日

目录 一、摘要 (03) 二、前言 (03) 三、硬件组成 3.1流水灯硬件构成及原理 (04) 3.2流水灯硬件原理图 (04) 四、软件编程 4.1位控法 (06) 4.2循环位移法 (08) 4.3查表法 (10) 4.4遵循原则 (13) 五、结语 (17) 六、设计体会 (17) 七、参考文献 (18)

一、摘要 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。关键词:LED 单片机控制系统流水灯 二、前言 学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 三、硬件组成

3.1流水灯硬件构成及原理 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O 口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 3.2流水灯硬件原理图

相关文档
最新文档