单片机花样流水灯设计实验文档格式.docx
- 文档编号:3105275
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:10
- 大小:179.55KB
单片机花样流水灯设计实验文档格式.docx
《单片机花样流水灯设计实验文档格式.docx》由会员分享,可在线阅读,更多相关《单片机花样流水灯设计实验文档格式.docx(10页珍藏版)》请在冰点文库上搜索。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:
AT89C51单片机流水灯数码管
【概述】
1.单片机及其发展概况
单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2.Protues仿真软件简介
Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果,为电子工程设计节约研发时间,节省了工程设计费用。
利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及KeilC软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】
设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
【设计方案】
1.设计原理
AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。
它们通过地址总线、数据总线和控制总线连接起来。
要实现流水灯功能,只要将发光二极管Led1~Led8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯状,设计花样时可依此类推。
此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。
2.电路原理图
3.器件配置清单
元件
数量
电阻100Ω
15
二位七段数码管
1
电阻10KΩ
LED
8
瓷介电容30pF
2
AT89S51
电解电容100uF
CD4511
40脚接插件
晶振
10脚接插件
4.AT89C51简介
AT89C51单片机有多种封装形式,常见的有DIP封装、PLC封装、TQFP封装,为了使用的方便通常使用DIP封装形式的单片机。
外部共有40个引脚,图6为引脚的排列图。
40个引脚大致可分为4大类:
电源、时钟、控制和I/O引脚,
5.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
6.实验流程
【程序编写】
#include"
reg51.h"
typedefunsignedcharuint8;
typedefunsignedintuint16;
uint8table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
uint16count=0,t=0,i=1,m=0,j=0,r=0,t1=0,n=0;
bitldelay=0,dir=0,run=0,ldelay1=0;
sbitG1=P3^0;
sbitG2=P3^1;
sbitBI=P3^2;
uint8led0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uint8led1[]={0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x03,0x01};
uint8led2[]={0x18,0x24,0x42,0x81,0x42,0x24,0x18};
voidk()interrupt1
{
TH0=0xd8;
TL0=0xf0;
t++;
t1++;
switch(n){
case0:
BI=0;
G1=1;
G2=0;
BI=1;
P2=table[count%10];
n++;
break;
case1:
G1=0;
G2=1;
P2=table[count/10];
n=0;
}
if(t1==25){
ldelay1=1;
t1=0;
if(t==100){
ldelay=1;
t=0;
}
}
voidmain()
TMOD=0x01;
TH0=0xd8;
TL0=0xf0;
count=0;
P1=0x00;
P0=0x00;
TR0=1;
EA=1;
ET0=1;
while
(1)
{
if(count>
=0){
if(ldelay1){
if(i>
=0){
ldelay1=0;
if(i==1){
P1=led0[m];
m++;
if(m==8)
m=0;
}
if(i==2){
P1=led1[r];
r++;
if(r==9)
r=0;
if(i==3){
P1=led2[j];
j++;
if(j==7)
j=0;
if(ldelay==1){
count++;
ldelay=0;
}
if(count==20){
i++;
if(i==4){i=1;
count=0;
P0=0x00;
P1=0x00;
}
【仿真调试】
打开KeilC软件将上面程序输入,调试无误后编译输出"
.hex"
文件,打开Proteus软件,将之前编译好的"
文件加入到芯片中,开始运行仿真。
数码管计时,每隔20秒,Led灯显示变换一次流水花样。
【设计实物图】
实物正面图实物反面图
【实验小结】
验证过程中,遇到两个问题:
1.调试后期有1个Led灯无法。
2.数码管不能正确显示数字。
检查后排除电路接错误的可能。
出现第一个问题是由于那1个LED灯烧坏。
第二个问题是数码管管脚插槽接触不良,无法正常运作,外接电线后能正常用作。
结束语
此次实验缺点在于器件排版不够合理美观,焊接工艺不足及对一些工具的安全使用、细小器件的保护意识不足。
基于Protues和Keil的单片机仿真开发及其应用,使得缺乏实验条件或实际焊接/制板难度较大的学习内容能够很方便地仿真研究,或者清晰地观察到不便观察实验现象的学习内容,因而利用仿真能够更快捷地了解及实现电子设计的自动化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 花样 流水 设计 实验