- 19
- 0
- 约 6页
- 2016-09-17 发布于陕西
- 举报
单片机电子设计
——花样流水灯
摘要:
本系统采用单片机作为整个控制核心。控制系统的三个模块为:显示模块、存储模块、复位模块。通过单片机控制八个LED的不同点亮方式,实现了流水灯的花样演示。本文主要介绍了单片机花样流水灯设计及工作原理,系统工作原理本系统采用89C52单片机作为核心,实现了单片机控制的花样流水灯设计。
一、单片机的选择
ATMEL公司的89C52单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。89C52单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。89C52单片机工作电压为2.7~6.0V,可以实现耗电最优化。89C52的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。
二、系统设计
1.硬件框图
2.总设计图
3.选用AT89C51的引脚功能
XTAL1:单芯片系统时钟的反向放大器输入端。
XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。
RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。
4.LED显示部分
限流电阻为470欧姆,经过的电流大概为10mA。
5.PCB电路图
6.3D实物图
三、程序
#includereg52.h
#include reg52.h
unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0,0x55,0x55,0xaa,0xaa};
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
unsigned char i;
while(1)
{
P0=0xFE;
for(i=0;i8;i++)
{
delay(10000);
P0 =1;
}
P1=0x7F;
for(i=0;i8;i++)
{
delay(10000);
P0 =1;
}
P0=0xFE;
for(i=0;i8;i++)
{
delay(10000);
P0 =1;
P0 |=0x01;
}
P0=0x7F;
for(i=0;i8;i++)
{
delay(10000);
P0 =1;
P0 |=0x80;
}
for(i=0;i16;i++)
{
delay(20000);
P0=seg[i];
}
}
}
四、Proteus仿真
Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision3, 在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。
五、功能与指标
本设计实现了流水灯的花样演示,通过单片机的控制,使8个LED实现多种点亮方式,通过调用不同的指令,实现各种花样演示。
.
STC
89C51
复位电路
流水灯电路
震荡电路
原创力文档

文档评论(0)