* * 大 学
物理学院
单片机花样流水灯设计实验
课 题: 花样流水灯设计
班 级: 物理 ***
姓 名: ***
学 号: ……………
【摘要】
当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C51 单片机 流水灯 数码管
【概述】
1. 单片机及其发展概况
单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2. Protues仿真软件简介
Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】
设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
【设计方案】
1.设计原理
AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。
要实现流水灯功能,只要将发光二极管Led1~Led8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯状,设计花样时可依此类推。此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。
2.电路原理图
3.器件配置清单
4.AT89C51简介
AT89C51单片机有多种封装形式,常见的有DIP封装、PLC封装、TQFP封装,为了使用的方便通常使用DIP封装形式的单片机。外部共有40个引脚,图6为引脚的排列图。40个引脚大致可分为4大类:电源、时钟、控制和I/O引脚,
5.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
6.实验流程
【程序编写】
ORG 30H
START:MOV DPTR,#TABLE
LP1:MOV A,#00H
MOVC A,@A+DPTR
CJNE A,#1BH,LP2
JMP START
LP2:MOV P2,A
LCALL DELAY
INC DPTR
JMP LP1
DELAY:MOV R7,#10H
DE1:MOV R6,#200
DE2:MOV R5,#248
DJNZ R5,$
DJNZ R6,DE2
DJNZ R7,DE1
RET
TABLE:DB 0feH,0fdH,0fbH,0f7H
DB 0efH,0dfH,0bfH,07fH
DB 0bfH,0dfH,0efH,0f7H
DB 0fbH,0fdH,0feH,0ffH
DB 0aaH,55H,0aaH,55H
DB 0aah,55h,0ffH
DB 0f0H,0fH,0f0H,0fH,0ffH
DB 33H,0ccH,33H,0ccH
DB 33H,0ccH,0ffH
DB 1BH
END
【仿真调试】
打开Keil C软件将上面程序输入,调试无误后编译输出".hex"文件,打开Proteus软件,将之前编译好的".hex"文件加入到芯片中,开始运行仿真。数码管计时,每隔20秒,Led灯显示变换一次流水花样。
【设计实物图】
实物正面图 实物反面图
【实验小结】
验证过程中,遇到两个问题:
1.调试后期有1个Led灯无法。 2.数码管不能正确显示数字。
检查后排除电路接错误的可能。出现第一个问题是由于那1个LED灯烧坏。第二个问题是数码管管脚插槽接触不良,无法正常运作,外接电线后能正常用作。
结束语
此次实验缺点在于器件排版不够合理美观,焊接工艺不足及对一些工具的安全使用、细小器件的保护意识不足。
基于Protues和Keil的单片机仿真开发及其应用,使得缺乏实验条件或实际焊接/制板难度较大的学习内容能够很方便地仿真研究,或者清晰地观察到不便观察实验现象的学习内容,因而利用仿真能够更快捷地了解及实现电子设计的自动化。
第二篇:单片机流水灯设计
教学情境一:单片机流水灯设计
教学任务四:LED灯闪烁设计
课前准备
§1 准备好电烙铁及其他焊接工具
§2 打开电脑和软件MEDWIN(没有安装的要安装)
§3 检查单片机最小系统是否完好
§4 检查下载线是否完好
一、所学知识回顾
§1 学习了单片机的结构
§2 学习了单片机的存储系统
§3 学习了单片机的指令系统
§4 制作了单片机的最小系统
二、任务要求
1、学习使用汇编软件MEDWIN的使用
2、学习使用下载软件PROGISP168软件的使用
3、设计LED灯闪烁的硬件电路
4、设计LED灯闪烁的程序(演示)
三、资讯
1、MEDWIN软件的使用
打开软件---à新建文件LAMP.ASM---à编写程序à编译汇编-à生成HEX文件。
2、PROGISP168的使用
打开文件à单击“调入FLASH”-à在选择框中选择HEX文件à单击“自动”。
3、灯闪烁程序设计
(1) 硬件连接 :P1口接LED灯
(2) 软件程序设计
例子:让所有的LED灯闪烁
ORG 0000H
MOV P1,#0FFH
START: MOV A,P1;对P1口取反
CPL A
MOV P1,A
ACALL DELAY;延时
AJMP START
四、实施
1、基本要求:每四个LED灯为一组,让其交替闪烁。
2、提高部分:每两个LED灯为一组,循环闪烁或其它。
3、分组:没有焊接成功者继续焊接。
硬件调好的同学进行软硬件的联合调试。
4、要求掌握硬件故障检查的基本方法,如最小系统是否工作的检查方法等。
示例程序:单个灯移动程序
ORG 0000H
MOV P1,#01H
START: ACALL DEL20MS
MOV A,P1
RL A
MOV P1,A
AJMP START
DEL20MS: MOV R4,#10;延时程序
THREE: MOV R5,#60
TWE2: MOV R6,#200
ONE2: DJNZ R6,ONE2
DJNZ R5,TWE2
DJNZ R4,THREE
RET
END
五、检查
1、有什么问题可直接问老师或指导同学。
2、严格遵守操作规程,保证人身或设备安全。
3、电烙铁要保护好,以免发生烧伤或烧着导线造成事故。
六、评价
1、完成主体程序设计,3分
2、完成延时程序设计,3分
3、完成了正确显示任务,4分
4、完成其他灯闪烁任务,5分
七、总结
1、完成任务的学生数。
2、出色完成教学任务的学生数
3、因硬件故障或软件故障没有完成的学生数。
八、课后任务
1、设计能使灯明暗变化的彗星流水灯(提高学习兴趣)。
2、设计用单片机实现数字钟(为下一个任务做准备)。
3、没有完成任务的同学完成教学任务。