邵帅单片机实训报告.docx
- 文档编号:7618444
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:16
- 大小:875.08KB
邵帅单片机实训报告.docx
《邵帅单片机实训报告.docx》由会员分享,可在线阅读,更多相关《邵帅单片机实训报告.docx(16页珍藏版)》请在冰豆网上搜索。
邵帅单片机实训报告
基于AT89S52单片机的流水灯
设计实训报告
学院:
信息工程学院
班级:
11级计算机科学与技术本科班
学号:
201101010023
姓名:
邵帅
指导教师:
王甲琛
2013年12月15日
目录
前言1
一、总体设计1
1、1原理图1
1、2硬件具体原理图1
二、设计内容2
2、1设计项目及要求2
2、2硬件电路设计2
1、电路图2
2、选取的原件3
2、3程序设计3
1、Keil的使用步骤4
2、程序流程6
3、程序代码8
三、印刷板的焊接及调试流程12
3、1电路焊接流程12
3、2遭遇的问题及解决方法13
3、3调试14
1、仿真14
2、下载14
3、遇到问题及解决办法15
四、总结体会15
前言
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机。
它的应用必定导致传统的控制技术从根本上发生变革。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
随着社会的发展进步,人们越来越追求审美和新颖,而流水灯就是其中的一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态给人一种视觉冲击,变幻多姿的花样为城市增加了一份奢华的色彩。
而这种流水灯我们可以用电子电路去设计,本论文设计一个基于单片机的简易LED灯,通过程序控制8个LED灯以不同的花样的闪烁。
一、总体设计
1、1原理图
简易流水灯是用AT89C52单片机为核心控制元件,通过脉冲触发产生出电子信号控制八个LED灯闪烁。
设计一个简易的流水灯控制电路.以AT89C52单片机作为主控核心,与外接LED灯等模块组成控制模块.通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的各种花样的闪烁功能。
其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用与参考价值。
1、2硬件具体原理图
通过AT89S52芯片的P1口来控制八个LED灯的点亮与熄灭。
要实现流水灯的各种花样闪烁功能,只要将发光二极管LED1~LED8按设计好的花样编写程序控制依次点亮、熄灭,8只LED灯便会按照设计好的花样闪烁。
二、设计内容
2、1设计项目及要求
项目名称:
基于AT89S52单片机的流水灯设计
项目特点:
设计思路简单、清晰,成本低。
实现功能要求:
通过编程控制8个LED灯,实现10个流水变换花样。
2、2硬件电路设计
1、电路图
2、选取的原件
名称
型号
数量
芯片
B11-691
1
电阻
10KΩ
2
电容
30pF
2
开关
1
复位开关
1
LED灯
9
电源插口
1
晶振
12MHz
1
排阻
A102J
1
插针
若干
导线
若干
2、3程序设计
1、Keil的使用步骤
(1)新建项目文件。
点击Project菜单,选择弹出的下拉式菜单中的NewProject。
在“文件名”中输入您的第一个C程序项目名称,“流水灯.uv2”。
“保存”后的文件扩展名为uv2。
(2)选择所要的单片机,常用Ateml公司的AT89S52。
(3)在项目中创建新的程序文件。
(4)点击保存新建的程序,流水灯.c,保存在项目所在的目录中。
(5)将程序文件加到项目中。
(6)设定创建HEX文件选项。
(7)编译运行。
(8)查错并直至无错误。
2、程序流程
程序框图如图所示:
3、程序代码
#include
#defineuintunsignedint
/****************************************
函数功能:
延时一段时间
*****************************************/
voiddelay(uintk)
{unsignedchara,b;
for(;k>0;k--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
/*******************************************************
函数功能:
主函数(C语言规定必须有也只能有1个主函数)
********************************************************/
voidmain(void)
{uinti,j,temp,k,a[15]={0x01,0x03,0x07,0x0f,0x1f,0x3f,
0x7f,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80},
b[8]={0x00,0x81,0xc3,0xe7,0xff,0xe7,0xc3,0x81},
c[8]={0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18},
d[8]={0x00,0x81,0x42,0x24,0x18,0x24,0x42,0x81};
while
(1)//无限循环
{
temp=0x01;//亮一个,从上到下
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
}
temp=0x80;//亮一个,从下到上
for(j=8;j>0;j--)
{
P1=temp;
delay(300);
temp=temp>>1;
}
temp=0x03;//亮两个,从上到下
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
}
temp=0xc0;//亮两个,从下到上
for(j=8;j>0;j--)
{
P1=temp;
delay(300);
temp=temp>>1;
}
temp=0x07;//亮三个,从上到下
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
}
temp=0xe0;//亮三个,从下到上
for(j=8;j>0;j--)
{
P1=temp;
delay(300);
temp=temp>>1;
}
for(k=0;k<=14;k++)//从上到下逐个亮,在从上到下逐个灭
{temp=a[k];
P1=temp;
delay(300);
}
for(k=0;k<=14;k++)//从下到上逐个亮,在从下到上逐个灭
{temp=a[14-k];
P1=temp;
delay(300);
}
temp=0x01;//亮一个,从上到下进两个退一个
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp>>1;
}
temp=0x03;//亮两个,从上到下进两个退一个
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp>>1;
}
temp=0x07;//亮三个,从上到下进两个退一个
for(i=8;i>0;i--)
{
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp<<1;
P1=temp;
delay(300);
temp=temp>>1;
}
for(k=0;k<=7;k++)//从两边向中间聚拢再向两边扩散(全灭到全亮再到全灭)
{temp=b[k];
P1=temp;
delay(300);
}
for(k=0;k<=7;k++)//从中间向两边扩散再向中间聚拢(全灭到全亮再到全灭)
{temp=c[k];
P1=temp;
delay(300);
}
for(k=0;k<=7;k++)//双道从两边到中间再到两边
{temp=d[k];
P1=temp;
delay(300);
}
for(k=0;k<=5;k++)//交叉间断亮
{
P1=0xaa;
delay(300);
P1=0x55;
delay(600);
}
}
}
三、印刷板的焊接及调试流程
3、1电路焊接流程
(1)首先根据焊接电路板的元器件清单,对各类元器件进行分类,确定不缺少器件,并且各个元器件完好。
接下来观察AT89S52电路板的整体结构,然后在自己的脑子里面形成初步的焊接框架,再动手进行焊接。
(2)先选取小型的元器件进行焊接、在选择那些较大型的元器件焊接,在焊接插针时,要注意插针的长短问题,长短不一的可以进行适当的调整一下。
(3)然后依次焊接两个10KΩ电阻、12MHz晶振、排阻、三个连接线、一个LED指示灯、两个30pF和一个20uF的电解电容、复位器和开关。
(4)在焊接连接线的时候,线路不宜过短,否则会影响插针的焊接。
(5)最后焊接插针,由于插针的数目较多,并且在定位的时候容易造成插针的长短不一,所以在焊接的时候要格外注意。
(6)焊接其余较大的元器件,并裁剪焊接元器件多余的引脚。
检查各个元器件是否正确焊接。
3、2遭遇的问题及解决方法
(1)焊接的时候要注意LED指示灯等器件的正负极,遵循长正短负的原则进行焊接。
(2)芯片焊接时,可先固定一个管脚,然后在固定对角线上的管脚,这样再焊接其他的管脚。
(3)焊接时不要把相邻的焊接点焊接到一起。
造成电路的混乱。
焊接时要把整个电路板斜放15度。
焊接时先要电烙铁把针弄热,在将锡放上,焊接点大小均匀。
(4)焊接完成后,检查是否有错误,如果发现错误进行修改。
3、3调试
1、仿真
对于设计好的程序要用AVR_fighter仿真软件进行调试。
方法为双击AT89S52芯片,出现对话框,单击文件夹图标,找到keilec中生成的.hex文件单击,然后点击‘OK’关闭对话框。
2、下载
通过prosign.exe软件下载程序到主板。
(1)点击调入flash按钮,选择已经编译好的liushuideng.hex文件。
(2)点击自动按钮。
(3)程序下载成功。
程序下载成功时,实验电路板外接的8个LED灯会根据程序编写好的花样闪烁。
3、遇到问题及解决办法
(1)在下载程序和调试的过程中,单片机不能下载程序,当时以为是电路焊接出现了错误,通过仔细观察发现电路没错,只是把单片机安装反了。
按正确以后就可以完成特定的功能了。
(2)把开关焊接反了,导致开关按下去是关,按上去是开,但是对单片机工作没有很大的影响,但是可以作为一次深刻的教训。
四、总结体会
通过这次课程设计实训,使我认识到了我们专业的真正应用价值,让我们真正感受到了设计的奇妙,不再觉得程序、电路是那么的遥不可及。
我们不仅对单片机课程所学的纯理论的知识进行了复习巩固,还亲自进行流水灯闪烁花样的设计。
初步学会了使用PROTEL99SE软件绘制电路图及PCB板图,用KeiluVision3编写程序并调试,用ISIS7Professional绘制电路图,并进行仿真练习。
先仿真通过之后再考虑实际焊接问题。
掌握焊接的基本知识,学会调试焊接的电路。
同时从虚焊,断路的中体会到了细心严谨的重要性,学会如何排除焊接带来的错误,提高自己的动手能力。
这次课程设计实训中,我们在指导老师耐心指导中,基本掌握了单片机应用设计的基本思路,从设计,到画图,到编程,到仿真,到焊接,再到调试成功,整个过程中我们对设计的电路图一步步理解,在实践过程中我们按照电路图一步步安装,做到步步到位都是自己动手,争取不遗留步骤。
希望在今后的学习中,通过开设多次的课程设计,能加强动手实践,自主创新,自主设计等能力的培养。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 邵帅 单片机实训报告 单片机 报告