单片机 课程设计霓虹灯控制器的设计汇总.docx

上传人:b****1 文档编号:13691112 上传时间:2023-06-16 格式:DOCX 页数:25 大小:192.87KB
下载 相关 举报
单片机 课程设计霓虹灯控制器的设计汇总.docx_第1页
第1页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第2页
第2页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第3页
第3页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第4页
第4页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第5页
第5页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第6页
第6页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第7页
第7页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第8页
第8页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第9页
第9页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第10页
第10页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第11页
第11页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第12页
第12页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第13页
第13页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第14页
第14页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第15页
第15页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第16页
第16页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第17页
第17页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第18页
第18页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第19页
第19页 / 共25页
单片机 课程设计霓虹灯控制器的设计汇总.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机 课程设计霓虹灯控制器的设计汇总.docx

《单片机 课程设计霓虹灯控制器的设计汇总.docx》由会员分享,可在线阅读,更多相关《单片机 课程设计霓虹灯控制器的设计汇总.docx(25页珍藏版)》请在冰点文库上搜索。

单片机 课程设计霓虹灯控制器的设计汇总.docx

单片机课程设计霓虹灯控制器的设计汇总

课程设计(论文)任务及评语

院(系):

电子与信息工程学院教研室:

通信工程教研室

学号

学生姓名

专业班级

课程设计(论文)题目

霓虹灯控制器的设计

课程设计(论文)任务

任务和要求:

1、以单片机为控制核心设计霓虹灯控制器。

2、可用按键设置显示方式。

3、霓虹灯采用无触点开关控制。

设计内容:

1、分析设计要求,明确性能指标;查阅资料、设计方案分析对比。

2、论证并确定合理的总体设计方案,绘制总体结构框图,分析工作原理。

3、完成各单元具体电路的设计:

单片机最小系统、显示等电路。

包括元器件选择、工作原理分析。

4、写出程序流程图及汇编源程序。

5、完成课程设计说明书。

该控制器可实现的硬件和软件设计。

实现技术指标包括:

指导教师评语及成绩

 

平时成绩(20%):

论文成绩(40%):

答辩成绩(40%):

总成绩:

指导教师签字:

学生签字:

 

年月日

 

 

摘要

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益地更新。

在实时检测和自动控制的应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

我们周围有许多广告牌、交通指示灯等都是通过单片机控制的。

霓虹灯模拟控制器正是利用美国ATMEL公司生产的AT89C51单片机作为核心控制芯片实现对霓虹灯的控制。

模拟控制器由单片机控制部分和显示部分组成,与按键、电阻等较少的辅助硬件电路相结合,通过汇编语言编程可以实现任意改变霓虹灯的变化花样和。

本系统具有体积小、硬件少、电路结构简单及容易操作等优点。

 

目录

第1章设计方案论证1

1.1设计意义1

1.2课题设计要求、系统方案介绍1

1.3单片机的选择1

第2章硬件电路设计2

2.1主控制器模块设计2

2.2本设计中用到的引脚功能说明2

2.3AT89C51时钟电路3

2.4AT89C51复位电路4

2.5主控模块电路设计4

第3章程序设计6

第4章设计总结11

参考文献12

附录1:

整体电路原路图13

附录2:

器件清单14

第1章设计方案论证

1.1设计意义

随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。

但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。

这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。

此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。

因此有必要对现有的彩灯控制器进行改进。

1.2课题设计要求、系统方案介绍

设计一个霓虹灯,采用LED模拟,要有多重花样。

用单片机的P0口控制8盏发光二级管,P2口控制8盏发光二级管,P3口控制一个共阳数码管。

P0,P2,P3口控制的24盏灯排成8×3矩阵,数码管显示灯的花样种类,方案中总共有12种花样,数码管显示数字为0,1,2,3,4,5,6,7,8,9。

在设计的过程中,P0口要加上上拉电阻,这是单片机系统内部决定的。

在方案中用到五个按键,按键S1是单片机复位键,按键S2--S5是选择灯的花样,按键每按下一次,切换花样一次。

1.3单片机的选择

AT89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器。

其芯片内部有ROM,且片内ROM全部采用FlashROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容。

所以选用AT89C51设计电路。

 

第2章硬件电路设计

2.1主控制器模块设计

本设计用AT89C51作主控制器,构成一个最小控制系统,这个包括:

单片机、晶振电路,复位电路。

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM)。

AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C51在引脚排列、硬件组成、工作特点和指令系统等方面兼容。

2.2本设计中用到的引脚功能说明

AT89C51的引脚图如图2-1所示。

图2-1AT89C51的引脚

Vcc:

第40脚,电源引脚,必须接+5V电源。

Vss:

第20脚,接地电位。

P1口:

第1~8脚。

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。

P3口:

第10~17脚。

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

第9脚。

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

/VPP:

第31脚。

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.3AT89C51时钟电路

时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。

常用的时钟电路有两种方式:

内部时钟方式和外部时钟方式。

内部时钟方式:

AT89C51芯片中的高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。

通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容C1和C2一般取30pF)。

石英晶体振荡器为一个感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需要的相移条件,从而构成一个稳定的自激振荡器。

AT89C51振荡电路如图2-2所示。

 

图2-2AT89C51振荡电路

外部时钟方式:

常用于多片MCS-51系列单片机同时工作。

如图2-3所示。

 

图2-3外部时钟电路

2.4AT89C51复位电路

AT89C51复位电路通常采用上电自动复位和按钮复位两种方式。

本设计采用AT89C51上电复位复位电路。

如图2-4所示。

 

图5-3复位电路

2.5主控模块电路设计

霓虹灯模拟控制器主控模块电路如附件录图所示。

单片AT89C51P1.0~P1.7做输出口,分别接八只发光二极管八只220欧电阻,LCD采用共阴极接法,用单片机AT89C51的P0.0—P0.4与5个按键开关相连,做为编码开关,且开关接地,按键按下时对应的口为低电平,显示一种亮灯效果。

和Vcc接至+5V电源,Vss接地。

 

第3章程序设计

3.1总流程图

霓虹灯总流程图如下图3-1所示。

 

图3-1总流程图

初始时霓虹灯为全灭状态。

当按键P1.0时,霓虹灯倒计时9—0;当按键P1.1时,为流水灯;当按键P1.2时,为闪烁灯;当按键P1.3时,位间隔闪烁灯。

在霓虹灯工作状态下按下复位键,霓虹灯恢复初始状态。

 

程序代码:

#include

#defineunitunsignedint

voiddelayms(unit);

voidmain()

{

while(P1==0xfe)

/*9-0倒计时*/

{P0=0xff;P3=0xff;P2=0xff;

delayms(1000);

//9

P0=0x17;P3=0x57;P2=0x07;delayms(125);

P0=0x8b;P3=0xab;P2=0x83;delayms(125);

P0=0xc5;P3=0xd5;P2=0xc1;delayms(125);

P0=0xe2;P3=0xeb;P2=0xe0;delayms(125);

P0=0xf1;P3=0xf5;P2=0xf0;delayms(125);

P0=0xf8;P3=0xfb;P2=0xf8;delayms(125);

P0=0xfc;P3=0xfd;P2=0xfc;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//8

P0=0x07;P3=0x57;P2=0x07;delayms(125);

P0=0x83;P3=0xab;P2=0x83;delayms(125);

P0=0xc1;P3=0xd5;P2=0xc1;delayms(125);

P0=0xe0;P3=0xea;P2=0xe0;delayms(125);

P0=0xf0;P3=0xf5;P2=0xf0;delayms(125);

P0=0xf8;P3=0xfa;P2=0xf8;delayms(125);

P0=0xfc;P3=0xfd;P2=0xfc;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//7

P0=0x7f;P3=0x7f;P2=0x07;delayms(125);

P0=0xbf;P3=0xbf;P2=0x83;delayms(125);

P0=0xdf;P3=0xdf;P2=0xc1;delayms(125);

P0=0xef;P3=0xef;P2=0xe0;delayms(125);

P0=0xf7;P3=0xf7;P2=0xf0;delayms(125);

P0=0xfb;P3=0xfb;P2=0xf8;delayms(125);

P0=0xfd;P3=0xfd;P2=0xfc;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//6

P0=0x07;P3=0x57;P2=0x47;delayms(125);

P0=0x83;P3=0xab;P2=0xa3;delayms(125);

P0=0xc1;P3=0xd5;P2=0xd1;delayms(125);

P0=0xe0;P3=0xea;P2=0xe8;delayms(125);

P0=0xf0;P3=0xf5;P2=0xf4;delayms(125);

P0=0xf8;P3=0xfa;P2=0xfa;delayms(125);

P0=0xfc;P3=0xfd;P2=0xfd;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//5

P0=0x17;P3=0x57;P2=0x47;delayms(125);

P0=0x8b;P3=0xab;P2=0xa3;delayms(125);

P0=0xc5;P3=0xd5;P2=0xd1;delayms(125);

P0=0xe2;P3=0xea;P2=0xe8;delayms(125);

P0=0xf1;P3=0xf5;P2=0xf4;delayms(125);

P0=0xf8;P3=0xfa;P2=0xfa;delayms(125);

P0=0xfc;P3=0xfd;P2=0xfd;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//4

P0=0x1f;P3=0xdf;P2=0x07;delayms(125);

P0=0x8f;P3=0xef;P2=0x83;delayms(125);

P0=0xc7;P3=0xf7;P2=0xc1;delayms(125);

P0=0xe3;P3=0xfb;P2=0xf0;delayms(125);

P0=0xf1;P3=0xfd;P2=0xf0;delayms(125);

P0=0xf8;P3=0xfe;P2=0xf8;delayms(125);

P0=0xfc;P3=0xff;P2=0xfc;delayms(125);

P0=0xfe;P3=0xff;P2=0xfe;delayms(125);

//3

P0=0x57;P3=0x57;P2=0x07;

delayms(125);

P0=0xab;P3=0xab;P2=0x83;delayms(125);

P0=0xd5;P3=0xd5;P2=0xc1;delayms(125);

P0=0xea;P3=0xea;P2=0xe0;delayms(125);

P0=0xf5;P3=0xf5;P2=0xf0;delayms(125);

P0=0xfa;P3=0xfa;P2=0xf8;delayms(125);

P0=0xfd;P3=0xfd;P2=0xfc;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//2

P0=0x47;P3=0x57;P2=0x17;delayms(125);

P0=0xa3;P3=0xab;P2=0x8b;delayms(125);

P0=0xd1;P3=0xd5;P2=0xd5;delayms(125);

P0=0xe8;P3=0xea;P2=0xe2;delayms(125);

P0=0xf4;P3=0xf5;P2=0xf1;

delayms(125);

P0=0xfa;P3=0xfa;P2=0xf8;delayms(125);

P0=0xfd;P3=0xfd;P2=0xfc;delayms(125);

P0=0xfe;P3=0xfe;P2=0xfe;delayms(125);

//1

P0=0xff;P3=0xff;P2=0x07;delayms(125);

P0=0xff;P3=0xff;P2=0x83;delayms(125);

P0=0xff;P3=0xff;2=0xa1;delayms(125);

P0=0xff;P3=0xff;P2=0xe0;delayms(125);

P0=0xff;P3=0xff;P2=0xf0;delayms(125);

P0=0xff;P3=0xff;P2=0xf8;delayms(125);

P0=0xff;P3=0xff;P2=0xfa;delayms(125);

P0=0xff;P3=0xff;P2=0xfe;delayms(125);

//0

P0=0x07;P3=0x77;P2=0x07;delayms(125);

P0=0x83;P3=0xbb;P2=0x83;delayms(125);

P0=0xc1;P3=0xdd;P2=0xc1;delayms(125);

P0=0xe0;P3=0xee;P2=0xe0;delayms(125);

P0=0xf0;P3=0xf7;2=0xf0;delayms(125);

P0=0xf8;P3=0xfb;2=0xf8;delayms(125);

P0=0xfc;P3=0xfd;P2=0xfc;delayms(125);P0=0xfe;3=0xfe;P2=0xfe;delayms(125);

P0=0xff;P3=0xff;P2=0xff;delayms(500);}

while(P1==0xfd)

/*流水灯*/

{P0=0xff;P3=0xff;

P2=0xff;elayms(500);

P0=0xfe;delayms(100);

P0=0xfc;delayms(100);

P0=0xf8;delayms(100);

P0=0xf0;delayms(100);

P0=0xe0;delayms(100);

P0=0xc0;delayms(100);

P0=0x80;delayms(100);

P0=0x00;delayms(100);P3=0xfe;delayms(100);

P3=0xfc;delayms(100);

P3=0xf8;delayms(100);

P3=0xf0;delayms(100);

P3=0xe0;delayms(100);

P3=0xc0;delayms(100);

P3=0x80;delayms(100);

P3=0x00;delayms(100);

P2=0xfe;delayms(100);P2=0xfc;delayms(100);P2=0xf8;delayms(100);

P2=0xf0;delayms(100);

P2=0xe0;delayms(100);

P2=0xc0;delayms(100);

P2=0x80;delayms(100);

P2=0x00;delayms(100);

P0=0x00;delayms(100);

P0=0x80;delayms(100);

P0=0xc0;delayms(100);

P0=0xe0;delayms(100);

P0=0xf0;delayms(100);

P0=0xf8;delayms(100);

P0=0xfc;delayms(100);

P0=0xfe;delayms(100);

P0=0xff;delayms(100);P3=0x00;delayms(100);

P3=0x80;delayms(100);

P3=0xc0;delayms(100);

P3=0xe0;delayms(100);

P3=0xf0;delayms(100);

P3=0xf8;delayms(100);

P3=0xfc;delayms(100);

P3=0xfe;delayms(100);

P3=0xff;delayms(100);

P2=0x00;delayms(100);

P2=0x80;delayms(100);P2=0x80;elayms(100);

P2=0xc0;delayms(100);

P2=0xe0;delayms(100);

P2=0xf0;delayms(100);

P2=0xf8;delayms(100);

P2=0xfc;delayms(100);

P2=0xfe;delayms(100);

P2=0xff;delayms(100);

P2=0xfe;delayms(100);

P2=0xfc;delayms(100);

P2=0xf8;delayms(100);

P2=0xf0;delayms(100);

P2=0xe0;delayms(100);

P2=0xc0;delayms(100);

P2=0x80;delayms(100);

P2=0x00;delayms(100);

P3=0xfe;delayms(100);

P3=0xfc;delayms(100);

P3=0xf8;delayms(100);

P3=0xf0;delayms(100);

P3=0xe0;delayms(100);

P3=0xc0;delayms(100);

P3=0x80;delayms(100);

P3=0x00;delayms(100);

P0=0xfe;delayms(100);P0=0xfc;delayms(100);

P0=0xf8;delayms(100);

P0=0xf0;delayms(100);

P0=0xe0;delayms(100);

P0=0xc0;delayms(100);

P0=0x80;delayms(100);

P0=0x00;delayms(100);

P2=0x00;delayms(100);

P2=0x80;delayms(100);

P2=0xc0;delayms(100);

P2=0xe0;delayms(100);

P2=0xf0;delayms(100);

P2=0xf8;delayms(100);

P2=0xfc;delayms(100);

P2=0xfe;delayms(100);

P2=0xff;delayms(100);

P3=0x00;delayms(100);

P3=0x80;delayms(100);

P3=0xc0;delayms(100);

P3=0xe0;delayms(100);

P3=0xf0;delayms(100);

P3=0xf8;delayms(100);

P3=0xfc;delayms(100);

P3=0xfe;delayms(100);

P3=0xff;delayms(100);

P0=0x00;delayms(100);

P0=0x80;delayms(100);

P0=0xc0;delayms(100);

P0=0xe0;delayms(100);

P0=0xf0;delayms(100);

P0=0xf8;delayms(100);

P0=0xfc;delayms(100);

P0=0xfe;delayms(100);

P0=0xff;delayms(100);

}while(P1==0xfb)

/*闪烁灯*/

{P0=0x00;delayms(400);P3=0x00;delayms(400);P2=0x00;delayms(400);

P0=0xff;delayms(400);

P3=0xff;delayms(400);

P2=0xff;delayms(400);

P0=0x00;delayms(400);

P3=0x00;delayms(400);

P2=0x00;delayms(400);

P0=0xff;delayms(400);

P3=0xff;de

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2