单片机霓虹灯设计Word文档下载推荐.docx
《单片机霓虹灯设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机霓虹灯设计Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
![单片机霓虹灯设计Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/11/bf8a26eb-f16f-4b68-b67b-13324b821b71/bf8a26eb-f16f-4b68-b67b-13324b821b711.gif)
近年来随着科技的飞速发展,单片机(SingleChipMicrocomputer)的应用正在不断地走向深入,同时带动传统控制检测日新月益地更新。
在实时检测和自动控制的应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
我们周围有许多广告牌、交通指示灯等都是通过单片机控制的。
霓虹灯模拟控制器正是利用美国ATMEL公司生产的AT89C52单片机作为核心控制芯片实现对霓虹灯的控制。
模拟控制器由单片机控制部分和显示部分组成,与按键、电阻等较少的辅助硬件电路相结合,通过汇编语言编程可以实现任意改变霓虹灯的变化花样和。
本系统具有体积小、硬件少、电路结构简单及容易操作等优点。
关键词霓虹灯AT89C51汇编语言
1引言
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,彩灯来装饰街道和城市建筑物已经成为一种时尚。
霓虹灯在实际应用中非常的广泛,其控制器属于定制产品,市场迫切需要低成本高性能的霓虹灯控制器技术。
AT89C51单片机时可多次改写的可编程芯片,内部有4KFLASHRAM,含有4个8位双向或准双向的并行I/O接口P0~P3,性价比相当的高,适合成为霓虹灯程序控制器的核心部件。
控制器的花样变化及速度调节能用软件方法实现,这样机进一步提高了性价比。
本文提出了一种基于AT89C51单片机的霓虹灯模拟控制方案,实现对LED彩灯的控制。
本方案以AT89C51单片机作为主控核心,与按键、显示、等模块组成核心主控制模块。
在主控模块上设有5个按键和8个发光二极管,根据用户需要可以编写若干种亮灯模式,利用其延时控制程序实现延时,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动LED灯的灯亮或灭。
2关键器件和设备
单片机芯片AT89C51;
按扭开关:
5只;
电容:
电解质电容器10μF1只、陶瓷电容器30pF2只;
电阻:
5.1kΩ5只,1kΩ1只,220Ω8只;
开关:
5个;
发光二极管:
8个
晶振:
12MHz;
万用电路板:
1块。
3设计内容
用单片机的P1.0—P1.7做输出口,接八只发光二极管,用单片机的P3.0—P3.4做为编码开关。
编写程序,读编码开关状态,使发光二极管有四种不同显示效果和一种总的显示效果,模拟霓虹灯出现的效果。
编写程序,调试运行,拨动不同的开关,模拟霓虹灯出现的效果。
第一个拨码开关合上以后,达到一种流水灯、霹雳灯、广告灯和闪烁灯的组合效果,每种亮灯效果不断循环。
第二个拨码开关合上以后,达到流水灯的亮灯效果:
八个发光二极管从上到下、从下到上、从量变到中间以及从中间到两边循环亮灯。
第三个拨码开关合上以后,达到霹雳灯的亮灯效果:
八个发光二极管全亮和全熄的循环亮灯。
第四个拨码开关合上以后,达到广告灯的亮灯效果:
八个发光二极管以间距变化的若干个发光二极管循环亮灯。
第五个拨码开关合上以后,达到闪烁灯的亮灯效果:
八个发光二极管从两边到中间以及从中间到两边亮灯数量不断减少的循环亮灯。
4硬件设计
4.1主控制器模块设计
本设计用AT89C51作主控制器,构成一个最小控制系统,这个包括:
单片机、晶振电路,复位电路。
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM)。
AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C51在引脚排列、硬件组成、工作特点和指令系统等方面兼容。
4.2本设计中用到的引脚功能说明
AT89C51的引脚图如图4-1所示。
图4-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:
振荡器反相放大器的输出端。
4.3AT89C51时钟电路
时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。
常用的时钟电路有两种方式:
内部时钟方式和外部时钟方式。
内部时钟方式:
AT89C51芯片中的高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容C1和C2一般取30pF)。
石英晶体振荡器为一个感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需要的相移条件,从而构成一个稳定的自激振荡器。
AT89C51振荡电路如图5-1所示。
图5-1AT89C51振荡电路
外部时钟方式:
常用于多片MCS-51系列单片机同时工作。
如图所示。
图5-2外部时钟电路
4.4AT89C51复位电路
AT89C51复位电路通常采用上电自动复位和按钮复位两种方式。
本设计采用AT89C51上电复位复位电路。
如图5-3所示。
图5-3复位电路
4.5主控模块电路设计
霓虹灯模拟控制器主控模块电路如附件录图所示。
单片AT89C51P1.0~P1.7做输出口,分别接八只发光二极管八只220欧电阻,LCD采用共阴极接法,用单片机AT89C51的P0.0—P0.4与5个按键开关相连,做为编码开关,且开关接地,按键按下时对应的口为低电平,显示一种亮灯效果。
和Vcc接至+5V电源,Vss接地。
5软件设计
5.1程序流程图设计
霓虹灯模拟控制器电路中有5个按键开关,分别对应5种不同的亮灯效果:
组合灯、流水灯、霹雳灯、广告灯和闪烁灯。
因为本设计采用查表法来控制发光二极管的亮法,因此对于程序流程图,只有数据表的内容有所区别,所以接下来只介绍流水灯的流程图,组合灯、霹雳灯、广告灯和闪烁灯的流程图与之类似,这里不再赘述。
(其中组合灯效果为流水灯、霹雳灯、广告灯和闪烁灯的效果的组合)
5.1.1主程序控制流程图
主程序控制流程图如图6-1所示。
图6-1主程序控制流程图
5.1.2流水灯制流程图
流水灯制流程图如图6-1所示。
图6-2流水灯控制流程图
6总结
这次课程设计题目难度一般,硬件和软件设计部分不是很难。
我们学习的是80C51单片机。
在霓虹灯模拟控制器的设计方面,特别是是对LED控制的汇编语言程序部分,我并没有用AT89C51的中断和定时功能,只是采用了顺序程序设计结构,采用查表法,用一些简单跳转指令如JMP和CJNZ去实现程序的循环功能,五种效果可以在任意时刻加以改变,由于发光二极管的个数比较少以及汇编语言应用能力有限,所以每种效果的亮灯花样也较为单一,这是一个缺陷。
7参考文献
[1]蔡朝洋.单片机控制实习与专题制作.北京:
北京航空航天大学出版社,2006
[2]李广弟,朱月秀,冷祖祁.单片机基础.第3版.北京:
北京航空航天大学社,2007
[3]冯育长.单片机系统设计与实例分析.西安:
西安电子科技大学出版社,2007
[4]蔡明文,冯先成.单片机课程设计.武汉:
华中科技大学出版社,2007
8附录
8.1电路图:
8.2程序运行代码
ORG0
START:
JNBP3.0,L
JNBP3.1,L1
JNBP3.2,L2
JNBP3.3,L3
JNBP3.4,L4
L:
MOVDPTR,#TABLE
CLRA
LOOP:
movr1,a
MOVCA,@A+DPTR
CJNEA,#02H,LOOP0
clra
lJMPSTART
LOOP0:
JBP3.0,S
MOVP1,A
MOVR3,#200
LCALLDELAY
mova,r1
INCa
JMPLOOP
L1:
MOVDPTR,#TABLE1
CLRA
LOOP1:
CJNEA,#02H,LOOP11
JMPSTART
LOOP11JBP3.1,S
JMPLOOP1
L2:
MOVDPTR,#TABLE2
LOOP2:
CJNEA,#02H,LOOP22
LOOP22:
JBP3.2,S
JMPLOOP2
L3:
MOVDPTR,#TABLE3
LOOP3:
CJNEA,#02H,LOOP33
LOOP33:
JBP3.3,S
MOVP1,A
JMPLOOP3
L4:
MOVDPTR,#TABLE4
LOOP4:
movr1,a
CJNEA,#02H,LOOP44
LOOP44:
JBP3.4,S
MOVR3,#100
JMPLOOP4
S:
MOVP1,#0FFH
LJMPSTART
DELAY:
MOVR4,#10
D1:
MOVR5,#100
DJNZR5,$
DJNZR4,D1
DJNZR3,DELAY
RET
TABLE:
DB00H