基于单片机的LED流水灯控制系统设计Word文档下载推荐.docx
- 文档编号:20902280
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:25
- 大小:489.26KB
基于单片机的LED流水灯控制系统设计Word文档下载推荐.docx
《基于单片机的LED流水灯控制系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的LED流水灯控制系统设计Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
1.1AT89S51单片机硬件组成2
1.2AT89S51管脚说明3
1.2.1电源及时钟引脚4
1.2.2控制引脚4
1.2.3并行I/O口引脚4
第二章硬件电路设计6
2.1时钟电路设计6
2.2复位电路设计7
2.3LED灯显示电路7
2.4LED流水灯总硬件图8
第三章软件设计9
3.1软件设计流程图9
3.2延时程序9
3.3主程序9
3.4LED流水灯总程序10
第四章Proteus虚拟设计与仿真11
4.1Proteus虚拟设计与仿真流程11
4.2ProteusISIS下电路设计11
4.3源程序设计与生成目标代码文件12
4.3.1源程序输入12
4.3.2源程序编译与调试14
4.4ProteusISIS与Keil
Vision2联调15
第五章电路板制作16
5.1元器件清单16
5.2元器件布局16
5.3元器件焊接17
5.4电路板验收17
总结18
参考文献19
摘要
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
学习单片机就免不了要编写程序,目前使用较为广泛的是C语言。
C语言是一门通用计算机编程语言,应用广泛。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
目前使用较多的单片机芯片为AT89S51.AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
关键词:
单片机C语言AT89S51
第一章AT89S51单片机硬件介绍
单片机应用的特点是编写程序来控制硬件,所以,首先熟知并掌握AT89S51单片机片内硬件的基本结构和特点。
1.1AT89S51单片机硬件组成
AT89S51单片机的片内硬件组成结构如图1-1所示,它把那些作为控制应用所必需的基本外围部件都集成在一个集成芯片上。
AT89S51具有如下外围部件:
图1-1AT89S51单片机片内结构
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、2个中断优先级、2层中断嵌套中断;
5、5个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz~33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
1.2AT89S51管脚说明
AT89S51单片机多采用40只引脚的塑料双列直插封装方式,如图1-2所示。
40只引脚按功能可以分为如下3类:
(1)电源及时钟引脚:
、
、XTAL1、XTAL2;
(2)控制引脚:
/
(3)I/O口引脚:
P0、P1、P2、P3
图1-2AT89S51双列直插封装方式的引脚
1.2.1电源及时钟引脚
VCC(40引脚):
电源电压输入端
GND(20引脚):
电源地
XTAL1(19引脚):
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2(18引脚):
片内振荡器反相放大器的输出端。
1.2.2控制引脚
(30引脚):
地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
:
外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
外部程序存储器访问允许。
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
1.2.3并行I/O口引脚
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,
P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
引脚
第二功能
说明
P3.0
RXD
串行数据输入口
P3.1
TXD
串行数据输出口
P3.2
外部中断0输入
P3.3
外部中断1输入
P3.4
T0
T0定时器的外部计数输入
P3.5
T1
T1定时器的外部计数输入
P3.6
外部数据存储器的写选通输出
P3.7
外部数据存储器的读选通输出
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
AT89S51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
第二章硬件电路设计
基于单片机的LED流水灯控制系统硬件包含时钟电路、复位电路和LED灯显示电路。
故本章主要就介绍这几种电路。
2.1时钟电路设计
AT89S51单片机各外围部件的运行都以时钟控制信号为基准,有条不紊、一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式,一种是内部时种方式,另一种是外部时钟方式。
本课设我选择内部时钟方式,所以下面内容是关于内部时钟电路的。
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-1所示为AT89S51单片机内部时钟方式的电路。
电路中的电容和的典型值通常选择为30pF,晶体振动频率通常选择6MHz、12MHz(可得到准确的定时)或11.0592MHz(可得到准确的串行通信波特率)的石英晶体。
本实验采用12MHz的石英晶体。
图2-1AT89S51内部时钟方式的电路
2.2复位电路设计
AT89S51单片机的复位是由外部电路实现的。
AT89S51典型的复位电路如图2-2所示。
上电时的自动复位是通过
(+5V)电源给电容C充电加给RST引脚一个短暂的高电平信号,此信号随着
对电容C的充电过程而逐渐回落,即RST引脚上高电平持续时间取决于电容C充电时间。
因此为保证系统能可靠的复位,RST引脚上的高电平必须大于复位所要求的的高电平的时间。
除了上电复位外,有时候还需要人工按键复位。
按键复位时通过RST端经两个电阻对电源
接通分压产生高电平来实现。
图2-2复位电路
2.3LED灯显示电路
由AT89S51单片机硬件组成(第一章)可知,AT89S51共有4个I/O口,其四个I/O口都可以作为通信端口,但P0口没有上拉电阻,做输出时需要上拉电阻,而P1、P2、P3不需要上拉电阻。
在做实物时由老师给的器材可知,没有上拉电阻,所以不能选P0口,可以选其他三个I/O口。
另外,8个LED灯有共阴和共阳两种连接方式,共阳极就是将阳极连接在一起,公共阳极接到+5V上;
共阴极就是将共阴极接在一起,通常此共阴极都是接地。
综合考虑,我选择的是P2口LED灯共阴连接,其显示电路如图2-3所示。
图2-3LED灯显示电路
2.4LED流水灯总硬件图
综上分析,可以得到LED流水灯总硬件图如图2-4所示。
图2-4LED流水灯总硬件图
第3章软件设计
3.1软件设计流程图
LED流水灯显示程序包含延时程序、主程序两部分,故在编写程序时可以分别编写,然后放在一起。
其软件设计流程图如图3-1所示。
延时程序
主程序
LED流水灯
控制总程序
图3-1软件设计流程图
3.2延时程序
voiddelay(unsignedinti)
{
unsignedchart;
while(i--)
for(t=0;
t<
120;
t++);
}
3.3主程序
voidmain()
P2=0xff;
While
(1)
P2=0x01;
Delay(500)
P2=_crol_(p2,1);
3.4LED流水灯总程序
#include<
reg51.h>
#include<
intrins.h>
P2=_crol_(p2,1);
第4章Proteus虚拟设计与仿真
Proteus电路
设计
生成目标
代码文件
源程序设计
Proteus仿真
加载目标代码、设置时钟频率
新建设计文件
电气检测
元器件
属性设置
电路连线
放置元器件、
电源和地
选取元器件
4.1Proteus虚拟设计与仿真流程
图4-1Proteus虚拟设计与仿真流程
4.2ProteusISIS下电路设计
首先在ProteusISIS环境下完成LED流水灯电路原理图的设计,包括选择各种元器件、外围接口芯片等,电路连接以及电气检测等。
LED流水灯电路原理图如图4-2所示。
图4-2LED流水灯电路原理图
4.3源程序设计与生成目标代码文件
在Keil
Vision2平台上进行源程序的输入、编译与调试,并生成目标代码文件(*.hex文件)。
4.3.1源程序输入
编写一个新的应用程序前,首先要创建工程。
Keil
Vision2把用户的每一个应用程序都当做一个工程,用工程管理的方法把一个程序中所需要用到的、互相关联的程序链接在同一个工程中。
因此,在使用Keil
Vision2对程序进行编辑、调试与编译之前,需要首先创建一个新的工程。
其步骤大致如下:
1)创建一个工程打开软件Keil
Vision2,单击菜单栏中的【project】,再点击下拉菜单选项“NewProject...”,在弹出的CreateNewProject窗口输入文件名“LED流水灯.UV2”,单击保存即可。
如图4-3所示。
图4-3CreateNewProject窗口
2)器件选择单击保存后,在弹出的SelectDeviceforTarget窗口中,选择“Atmel”目录下的“AT89C51”,点击“确定”后,在弹出的对话框中选择“否”就行了。
如图4-4所示。
图4-4SelectDeviceforTarget窗口
3)添加用户源程序文件单击菜单栏中【File】→“New”选项,在弹出的对话框中输入自己的程序。
如图4-5所示。
图4-5建立新文件
4)保存文件单击菜单栏中【File】→“Save”选项,保存文件。
在弹出的窗口文件名栏输入“LED流水灯.C”。
如图4-6所示。
图4-6SaveAs对话框
4.3.2源程序编译与调试
单击快捷按钮中的
,对当前文件进行编译,在输出窗口会提示信息,如图4-7所示。
从输出窗口中的提示信息可以看到,程序中有一个警告不要紧,可以不修改。
图4-7文件编译信息
程序编译没有错误后,就可以进行调试与仿真。
在主菜单面点击【Debug】菜单中“Start/StopDebugSession”选项,进入程序调试状态,如图4-8所示。
图4-8程序调试界面
Vision2联调
电路绘制完成后,把Keil
Vision2下生成的.hex文件加载到电路图中的单片机内就可以仿真了。
其结果如图4-9所示。
图4-9联调结果图
第5章电路板制作
5.1元器件清单
根据硬件电路原理图分析可知,该电路板制作需要LED灯、电阻、电容和AT89S51单片机等元器件。
其详细元器件清单如表5-1所示。
表5-1元器件清单
发光管LED灯(绿)
8
AT89S51
1
电容
30PF
2
电解电容
10UF
晶振
12MHZ
电阻
10K
1K
按钮
IC插座
DIP40
电木万能板
开关
USB转串口、下载线
锡条、导线
5.2元器件布局
根据LED流水灯硬件原理图将元器件在电木万能板合理布局,使电路板看起来既美观,又方便各个元器件之间连线,这样可以节约用线。
其布局图如图5-1所示。
图5-1元器件布局图
5.3元器件焊接
在元器件布好局后就可以焊接。
在焊接的过程中,要十分小心,一方面防止被烫伤,另一方面防止将相邻额锡点焊接在一起,造成短路,电路板焊接不成功。
在焊接时可以边焊边连接线路,也可以全焊好后再连接线路。
我在焊接时选择得后者,这样方便快捷。
焊接完成如图5-2所示。
图5-2焊接完成图
5.4电路板验收
电路板焊接完成后,自己对照着LED流水灯硬件电路原理图检查一遍,看看实物电路中元器件之间连线是否有错,确定无误后,就可以找老师下载程序到单片机里,通电看看实验结果是否符合实验要求。
符合,你这次电路板焊接就结束了;
不符合,要重新回去检查,找出电路板焊接不正确的地方进行修改。
当时我们组找老师验收时一次就成功了,没有错误,是班里第一组找老师验收成功的,感到非常开心!
总结
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。
第二,是在学习态度上,这次课设是对我的学习态度的一次检验。
对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。
我们这次实习所遇到的多半问题多数都是由于我们不够严谨。
第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。
还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。
课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。
参考文献
[1]肖洪兵.
跟我学用单片机.北京:
北京航空航天大学出版社,2002.8
[2]何立民.
单片机高级教程.第1版.北京:
北京航空航天大学出版社,2001
[3]赵晓安.
MCS-51单片机原理及应用.
天津:
天津大学出版社,2001.3
[4]李广第.
单片机基础.
第1版.北京:
北京航空航天大学出版社,1999
[5]徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:
北京邮电大学出版社,1996
[6]何立民.从Cygnal
80C51F看8位单片机发展之路.
[7]单片机与嵌入式系统应用,2002年,第5期:
P5~8
[8]夏继强.
单片机实验与实践教程.
北京:
北京航空航天大学出版社,
2001
[9]张毅刚.单片机原理及应用.北京:
高等教育出版社2012
[10]周鸣争.C语言程序设计教程.成都:
电子科技大学出版社2015.8
《单片机应用技术》课程设计考查评分表
姓名
班级
13电气2班
题目
考
查
项
目
平时表现
(20%)
工作态度认真,能否按时完成设计任务,是否独立完成。
设计方案
(30%)
方案选择合理,设计正确,原理清晰,程序正确,能仿真出正确的结果。
电路板制作
元器件布局合理,焊接方法正确,能实现功能要求。
功能调试
(15%)
过程清晰,调试方案设计合理,调试步骤清楚,能达到预期效果。
设计报告
报告内容完整,论述层次清晰,重点突出,完全符合格式要求。
总评成绩
指导老师:
陆媛宋鸿儒2016年6月9日
过程清晰,调试方案设计合理,调试步骤清楚,能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 LED 流水 控制系统 设计