目的:
近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1. 关键字:单片机、流水灯
2. 需求分析:
随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。
3. 系统设计
1.硬件框图
2.总设计图
3.选用AT89C51的引脚功能
XTAL1:单芯片系统时钟的反向放大器输入端。
XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。
RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。
P0:端口0是一个8位宽的开路汲汲双向输出入端口,共有8个位,P0.0表示0,P0.1表示1,以此类推。
P2:端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
4.说明
如图所示,S1为复位开关,S2、S3、S4分别为切换不同流水效果的开关,P2口控制LED灯D1~D7的显示,P0口作为LED的输出控制。当按下S2后能实现D1和D7同时亮其他不亮,然后D2和D6亮,依此类推。当按下复位S1,然后按下S2实现LED灯从D7到D1循环亮,按下S1然后按下S3实现LED从D1到D7的循环亮。
硬件详细设计
1.复位电路部分
如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。
2.晶振部分
产生时钟信号
3.开关部分
S2、S3、S4 分别控制3种LED显示效果,这里就不用详细说明了。
4.LED显示部分
限流电阻为470欧姆,经过的电流大概为10mA。
软件详细设计
1. 软件框图
2.详细程序清单
#include<reg51.h> // 头文件
sbit k1=P0^0; //定义按键k1
sbit k2=P0^1; //定义按键k2
sbit k3=P0^2; //定义按键k3
code unsigned char num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//左移
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右移
0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e};//两边到中间
unsigned char k; //数组的移动指针
void delay10ms(void) //延时10ms
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void delay02s(void)//延时0.2s
{
unsigned char i;
for(i=20;i>0;i--)
{delay10ms();
}
}
void KEY(void) //按键扫描程序
{
if(k1==0)
{
delay10ms();
if(k1==0)
{
k=0;
}
}
if(k2==0)
{
delay10ms();
if(k2==0)
{
k=8;
}
}
if(k3==0)
{
delay10ms();
if(k3==0)
{
k=16;
}
}
}
void main(void) //主程序
{
unsigned char i;
while(1)//死循环
{
if(P0!=0xff)//判断是否有按键按下
{
KEY();//执行按键扫描程序
for(i=0;i<8;i++)//循环8次的出8个亮的状态
{
P2=num[i+k];//根据按下的键得到亮的状态
delay02s();//延时0.2s
}
P2=0xff;//全灭
}
}
}
5.Protuce仿真
Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision3, 在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。
仿真结果如下:当S2关闭
当S3关闭
* * 大 学
物理学院
单片机花样流水灯设计实验
课 题: 花样流水灯设计 班 级: 物理 *** 姓 名: *** 学 号: ?????
【摘要】
当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C51 单片机 流水灯 数码管
2
【概述】
1. 单片机及其发展概况
单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2. Protues仿真软件简介
Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】
设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
3
【设计方案】 1.设计原理
AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。
要实现流水灯功能,只要将发光二极管Led1~Led8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯状,设计花样时可依此类推。此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。
2.电路原理图
3.器件配置清单
4
4.AT89C51简介
AT89C51单片机有多种封装形式,常见的有DIP封装、PLC封装、TQFP封装,为了使用的方便通常使用DIP封装形式的单片机。外部共有40个引脚,图6为引脚的排列图。40个引脚大致可分为4大类:电源、时钟、控制和I/O引脚,
5.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数
5
器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
6.实验流程
【程序编写】
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 7
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灯显示变换一次流水花样。
图一 图二
8
图三 图四
【设计实物图】
实物正面图 实物反面图
【实验小结】
验证过程中,遇到两个问题:
1.调试后期有1个Led灯无法。 2.数码管不能正确显示数字。 检查后排除电路接错误的可能。出现第一个问题是由于那1个LED灯烧坏。第二个问题是数码管管脚插槽接触不良,无法正常运作,外接电线后能正常用作。
结束语
此次实验缺点在于器件排版不够合理美观,焊接工艺不足及对一些工具的安全使用、细小器件的保护意识不足。
9
基于Protues和Keil的单片机仿真开发及其应用,使得缺乏实验条件或实际焊接/制板难度较大的学习内容能够很方便地仿真研究,或者清晰地观察到不便观察实验现象的学习内容,因而利用仿真能够更快捷地了解及实现电子设计的自动化。贴心服务,以下可添加备注哦:
10
11
12
13
井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100…
电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2流水灯实验时间:20xx-10-21班级:电信092姓名:蔡…
目录一前言111课题简介112设计目的1二总体设计221设计思路222原件清单2三硬件设计331AT89C51332系统框图533…
51单片机流水灯试验一实验目的1了解51单片机的引脚结构2根据所学汇编语言编写代码实现LED灯的流水功能3利用开发板下载hex文件…
第一部分实训准备1摘要近年来随着电子技术和微型计算机的发展单片机的档次不断提高起应用领域也在不断的扩大已在工业控制尖端科学智能仪器…
单片机流水灯实验一任务让8个LED灯轮流亮起来实现流水灯的功能二思路让接在P00口的LED灯亮起来那么只要把P00口的电平变为低电…
井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100…
电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2流水灯实验时间:20xx-10-21班级:电信092姓名:蔡…
实验报告课程名称单片机实习专业班级姓名戴秀锋学号1104451216电气与信息学院和谐勤奋求是创新1234实验教学考核和成绩评定办…
单片机流水灯实验报告一实验目的1熟练掌握AT89S52型开发板的使用方法和注意事项2了解简单单片机应用系统的设计方法3掌握应用KE…
目录一前言111课题简介112设计目的1二总体设计221设计思路222原件清单2三硬件设计331AT89C51332系统框图533…