霓虹灯设计报告.docx
- 文档编号:29212627
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:14
- 大小:78.15KB
霓虹灯设计报告.docx
《霓虹灯设计报告.docx》由会员分享,可在线阅读,更多相关《霓虹灯设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
霓虹灯设计报告
霓虹灯设计报告
制作人:
B11020226
B11020228
一、大致介绍
单片机是在一块硅片上集成了微处理器,存储器及各种输入/输出接口的芯片,这样一块芯片就具有了计算机的属性,因而被称为单片微型计算机,简称单片机。
本设计中使用的单片机是STC89C52RC,使用KeiluVision3编程,并通过STC_ISP_V3.1下载到单片机里面,控制其相关引脚在各个特定时间输出高电平或低电平,从而达到控制电路,使16个LED灯(2*8排列模式)呈现霓虹灯闪烁的目的。
本设计使用的元器件有:
STC89C52RC一块、10uF电解电容一个、11.0592MHZ晶振一个、22pF瓷片电容两个、1K排阻两个、自锁开关一个、复位开关一个、1K电阻一个、10K电阻一个、方孔电源插头一个、LED灯17个、底座一个、万用板一块。
本设计实现的功能是:
2*8排列的小灯按时间顺序全闪全灭两次(时间间隔500ms)、顺时针旋转三圈(时间间隔100ms)、逆时针旋转三圈(时间间隔100ms)、单行亮灯上下移动三次(时间间隔100ms)、单行亮灯下落三次(时间间隔100ms)、全闪全灭两次(时间间隔100ms)、单行暗灯下落三次(时间间隔100ms)、左右闪两次(时间间隔500ms)、左右闪两次(时间间隔400ms)、左右闪两次(时间间隔300ms)、左右闪四次(时间间隔200ms)、左右闪四次(时间间隔100ms)、两排灯间隔交叉亮(时间间隔700ms)、交叉亮的灯流水灭(时间间隔700ms)、两排灯对称闪后四颗灯从两边合拢(时间间隔700ms)、对称的三灯先走后对称一灯跟上(时间间隔700ms)、一灯窜跑(时间间隔700ms)、对称图案(时间间隔700ms)、两灯窜跑(时间间隔700ms)、两灯的其中一灯窜跑(时间间隔700ms)、两灯汇合(时间间隔700ms)、四灯走一圈全灭(时间间隔700ms)。
二、主要模块
1、电源电路
电源电路由一个方孔电源插头、一个1K电阻、一个自锁开关、一颗LED灯组成。
方孔电源插头可以接上外接电源,为整个电路提供5V的电压;1K电阻起到保护电路的作用,防止烧坏电路中如单片机,电容,LED灯等元器件;自锁开关控制整个电路的连通与断开;LED灯检测主干电路是否有电流通过。
其分部电路图如下图所示:
2、复位电路
复位电路由一个自锁开关、一个10uF电容、一个10K电阻组成。
自锁开关起到控制复位电路工作的目的;10uF电容和10K电阻一起组成了复位电路,在需要的时候使单片机复位,重新从程序的第一条语句开始运行。
其分部电路图如下图所示:
3、时钟电路
时钟电路由一个11.0592MHZ的晶振、两个22pF的瓷片电容组成。
时钟电路的作用是给出一个时间周期,使单片机可以正常工作,给予单片机以“动力”,可以称为是电路中但单片机的“心脏”。
其分部电路图如下图所示:
4、控制电路
控制电路由两个1K的排阻与16个LED灯组成。
由于单片机引脚电压过低,无法使LED灯正常发光,故考虑在每个引脚的支路上添加1K的上拉电阻,以使LED灯可以正常发光;而16个LED灯排列成为2*8的格式,通过引脚的控制显示霓虹灯的效果。
其分部电路图如下图所示:
5、单片机模块电路
单片机模块电路由单片机组成。
本设计中使用了P1口(1-8号引脚)、P2口(21-28号引脚)的16个引脚来连接控制电路,使16个LED灯完成相应的操作;使用了18、19号引脚连接时钟电路;使用了9号引脚连接复位电路;20号引脚连接电源电路负极;31、40号引脚连接电源电路正极。
其分部电路图如下图所示:
三、整体电路图
四、程序代码
#include
#defineunitunsignedint
voiddelayms(unit);
voidmain()
{
while
(1)
{
uniti;
for(i=0;i<2;i++)
{
P1=0xff;P2=0xff;delayms(500);
P1=0x00;P2=0x00;delayms(500);//全闪两次(延时500ms)
}
for(i=0;i<3;i++)
{
P1=0x01;P2=0x00;delayms(100);
P1=0x02;delayms(100);
P1=0x04;delayms(100);
P1=0x08;delayms(100);
P1=0x10;delayms(100);
P1=0x20;delayms(100);
P1=0x40;delayms(100);
P1=0x80;delayms(100);
P1=0x00;P2=0x01;delayms(100);
P2=0x02;delayms(100);
P2=0x04;delayms(100);
P2=0x08;delayms(100);
P2=0x10;delayms(100);
P2=0x20;delayms(100);
P2=0x40;delayms(100);
P2=0x80;delayms(100);//顺时针闪三次(延时100ms)
}
for(i=0;i<3;i++)
{
P1=0x01;P2=0x80;delayms(100);
P1=0x02;P2=0x40;delayms(100);
P1=0x04;P2=0x20;delayms(100);
P1=0x08;P2=0x10;delayms(100);
P1=0x10;P2=0x08;delayms(100);
P1=0x20;P2=0x04;delayms(100);
P1=0x40;P2=0x02;delayms(100);
P1=0x80;P2=0x01;delayms(100);
P1=0x80;P2=0x01;delayms(100);
P1=0x40;P2=0x02;delayms(100);
P1=0x20;P2=0x04;delayms(100);
P1=0x10;P2=0x08;delayms(100);
P1=0x08;P2=0x10;delayms(100);
P1=0x04;P2=0x20;delayms(100);
P1=0x02;P2=0x40;delayms(100);
P1=0x01;P2=0x80;delayms(100);//上下单行移动三次(延时100ms)
}
for(i=0;i<3;i++)
{
P1=0x01;P2=0x80;delayms(100);
P1=0x02;P2=0x40;delayms(100);
P1=0x04;P2=0x20;delayms(100);
P1=0x08;P2=0x10;delayms(100);
P1=0x10;P2=0x08;delayms(100);
P1=0x20;P2=0x04;delayms(100);
P1=0x40;P2=0x02;delayms(100);
P1=0x80;P2=0x01;delayms(100);//下落一行(延时100ms)
P1=0x81;P2=0x81;delayms(100);
P1=0x82;P2=0x41;delayms(100);
P1=0x84;P2=0x21;delayms(100);
P1=0x88;P2=0x11;delayms(100);
P1=0x90;P2=0x09;delayms(100);
P1=0xa0;P2=0x05;delayms(100);
P1=0xc0;P2=0x03;delayms(100);//下落两行(延时100ms)
P1=0xc1;P2=0x83;delayms(100);
P1=0xc2;P2=0x43;delayms(100);
P1=0xc4;P2=0x23;delayms(100);
P1=0xc8;P2=0x13;delayms(100);
P1=0xd0;P2=0x0b;delayms(100);
P1=0xe0;P2=0x07;delayms(100);//下落三行(延时100ms)
P1=0xe1;P2=0x87;delayms(100);
P1=0xe2;P2=0x47;delayms(100);
P1=0xe4;P2=0x27;delayms(100);
P1=0xe8;P2=0x17;delayms(100);
P1=0xf0;P2=0x0f;delayms(100);//下落四行(延时100ms)
P1=0xf1;P2=0x8f;delayms(100);
P1=0xf2;P2=0x4f;delayms(100);
P1=0xf4;P2=0x2f;delayms(100);
P1=0xf8;P2=0x1f;delayms(100);//下落五行(延时100ms)
P1=0xf9;P2=0x9f;delayms(100);
P1=0xfa;P2=0x5f;delayms(100);
P1=0xfc;P2=0x3f;delayms(100);//下落六行(延时100ms)
P1=0xfd;P2=0xbf;delayms(100);
P1=0xfe;P2=0x7f;delayms(100);//下落七行(延时100ms)
P1=0xff;P2=0xff;delayms(100);//下落八行(延时100ms)
}//行下落运行三次
for(i=0;i<2;i++)
{
P1=0xff;P2=0x00;delayms(500);
P1=0x00;P2=0xff;delayms(500);//左右闪两次(延时500ms)
}
for(i=0;i<2;i++)
{
P1=0xff;P2=0x00;delayms(400);
P1=0x00;P2=0xff;delayms(400);//左右闪两次(延时400ms)
}
for(i=0;i<2;i++)
{
P1=0xff;P2=0x00;delayms(300);
P1=0x00;P2=0xff;delayms(300);//左右闪两次(延时300ms)
}
for(i=0;i<4;i++)
{
P1=0xff;P2=0x00;delayms(200);
P1=0x00;P2=0xff;delayms(200);//左右闪四次(延时200ms)
}
for(i=0;i<4;i++)
{
P1=0xff;P2=0x00;delayms(100);
P1=0x00;P2=0xff;delayms(100);//左右闪四次(延时100ms)
}
P1=0xaa;P2=0xaa;delayms(700);
P1=0x55;P2=0x55;delayms(700);//交叉亮(延时700ms)
P1=0x54;P2=0x55;delayms(700);
P1=0x54;P2=0x15;delayms(700);
P1=0x50;P2=0x15;delayms(700);
P1=0x50;P2=0x05;delayms(700);
P1=0x40;P2=0x05;delayms(700);
P1=0x40;P2=0x01;delayms(300);
P1=0x00;P2=0x01;delayms(300);//流水灭(延时700ms)
P1=0xf9;P2=0xf9;delayms(700);
P1=0xf1;P2=0xf1;delayms(300);
P1=0x71;P2=0x71;delayms(300);
P1=0x0f;P2=0x0f;delayms(700);
P1=0x1d;P2=0x1d;delayms(700);
P1=0x3c;P2=0x3c;delayms(700);//对称闪,合拢(延时700ms)
P1=0x81;P2=0x81;delayms(700);
P1=0x81;P2=0x42;delayms(700);
P1=0xa5;P2=0x00;delayms(700);
P1=0x24;P2=0x42;delayms(700);
P1=0x00;P2=0x5a;delayms(700);
P1=0x24;P2=0x18;delayms(700);//跟着走(延时700ms)
P1=0x24;P2=0x19;delayms(700);
P1=0x24;P2=0x1a;delayms(700);
P1=0x24;P2=0x1c;delayms(700);
P1=0x34;P2=0x18;delayms(700);
P1=0x2c;P2=0x18;delayms(700);
P1=0x24;P2=0x38;delayms(700);
P1=0x24;P2=0x58;delayms(700);
P1=0x24;P2=0x98;delayms(700);//窜跑(延时700ms)
P1=0x78;P2=P1;delayms(700);
P1=0x56;P2=P1;delayms(700);
P1=0xbc;P2=P1;delayms(700);
P1=0x01;P2=P1;delayms(700);
P1=0xbd;P2=P1;delayms(700);
P1=0x23;P2=P1;delayms(700);
P1=0x4d;P2=P1;delayms(700);
P1=0x34;P2=P1;delayms(700);
P1=0x35;P2=P1;delayms(700);
P1=0x67;P2=P1;delayms(700);
P1=0x2a;P2=P1;delayms(700);
P1=0x98;P2=P1;delayms(700);
P1=0xea;P2=P1;delayms(700);
P1=0xb5;P2=P1;delayms(700);
P1=0xfa;P2=P1;delayms(700);
P1=0x0c;P2=P1;delayms(700);
P1=0x54;P2=P1;delayms(700);//对称图案(延时700ms)P1=0xcc;P2=0xcc;delayms(700);
P1=0xcc;P2=0xcf;delayms(700);
P1=0xfc;P2=0xcc;delayms(700);
P1=0xcc;P2=0xfc;delayms(700);
P1=0xcf;P2=0xcc;delayms(700);
P1=0xcc;P2=0xfc;delayms(700);
P1=0xfc;P2=0xcc;delayms(700);
P1=0xcc;P2=0xcf;delayms(700);
P1=0xec;P2=0xcd;delayms(700);
P1=0xdc;P2=0xcd;delayms(700);
P1=0xcc;P2=0xdd;delayms(700);
P1=0xcc;P2=0xed;delayms(700);
P1=0xce;P2=0xcd;delayms(700);
P1=0xcd;P2=0xcd;delayms(700);
P1=0xce;P2=0xce;delayms(700);
P1=0xec;P2=0xec;delayms(700);
P1=0xdc;P2=0xdc;delayms(700);//两灯窜跑(延时700ms)
P1=0xce;P2=0xce;delayms(700);
P1=0xea;P2=0xea;delayms(700);
P1=0x4f;P2=0x4f;delayms(700);
P1=0x4d;P2=0x4d;delayms(700);
P1=0xcc;P2=0xcc;delayms(700);
P1=0x3c;P2=0x3c;delayms(700);
P1=0x28;P2=0x14;delayms(700);
P1=0x3c;P2=0x00;delayms(700);
P1=0x1c;P2=0x00;delayms(700);
P1=0x18;P2=0x00;delayms(700);
P1=0x08;P2=0x00;delayms(700);
P1=0x00;P2=0x00;delayms(700);//两灯的其中一灯窜跑(延时700ms)
P1=0x00;P2=0x0f;delayms(700);
P1=0x00;P2=0x1e;delayms(700);
P1=0x00;P2=0x3c;delayms(700);
P1=0x00;P2=0x78;delayms(700);
P1=0x00;P2=0xf0;delayms(700);
P1=0x01;P2=0xe0;delayms(700);
P1=0x03;P2=0xc0;delayms(700);
P1=0x07;P2=0x80;delayms(700);
P1=0x0f;P2=0x00;delayms(700);
P1=0x1e;P2=0x00;delayms(700);
P1=0x3c;P2=0x00;delayms(700);
P1=0x78;P2=0x00;delayms(700);
P1=0xf0;P2=0x00;delayms(700);
P1=0x00;P2=0x00;delayms(700);//四灯走一圈全灭(延时700ms)
}
}
voiddelayms(unitxms)
{
uniti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 霓虹灯 设计 报告