基于51单片机的8位流水灯控制系统毕业论文设计.doc
- 文档编号:1909753
- 上传时间:2023-05-02
- 格式:DOC
- 页数:21
- 大小:191.51KB
基于51单片机的8位流水灯控制系统毕业论文设计.doc
《基于51单片机的8位流水灯控制系统毕业论文设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的8位流水灯控制系统毕业论文设计.doc(21页珍藏版)》请在冰点文库上搜索。
基于51单片机的8位流水灯控制系统
摘要
社会上普遍存在的LED流水灯,俨然已成为众多商户对外宣传的重要方式;LED流水灯其实是有一个小芯片控制运营的,这就是理论中阐述的单片机。
它是体型较小的集成电路芯片,能够把非常大规模的集成电路技术和拥有数据处理能力的CPU、RAM、ROM、多种I/O口和断连系统、具备定时功能的器件/等功能集中生产到一块非常小的硅片上,构成一个体型小且比较完善的微型计算机系统,单片机理论称之为单片微控制器,它不仅仅是完成任何一个具备逻辑功能的芯片,而是把一个计算机的系统集成到一个非常小的芯片上。
相当于一个微小型的计算机,与市面的同类计算机相比,单片机缺少了I/O设备。
总而言之:
芯片是计算机中最为重要的部分。
它的特点是:
体积较小、质量也比较轻、价格低廉、给学习、应用和开发提供了非常便利的条件。
单片微控制器(芯片)的使用安慰非常广泛,例如:
实施监控器、通讯仪器、电视、车载无线设备等。
任何产品只要装载了最新款的单片机,他就能够促进加快产品升级换代的速度,任何一种普通家电只要加载单片机均被冠以类似于:
智能数字电视、智能无人驾驶等。
科学技术更新的速度越来越快,在电子这个领域中自动化、智能化的控制系统以凭借其体积小、成本低、功能强、应用广泛等优势已成为电子领域的主流。
本文主要是通过基于51单片机最为经典的8位流水灯控制系统的设计(控制)原理、设计思路、系统工作原理等几个方面展开介绍、分析、探讨。
关键词:
单片机流水灯控制系统
ABSTRACT
LEDlightwaterexistsinthesociety,hasbecomeanimportantwayformanybusinessespropaganda;LEDwaterlampisactuallyasmallchipcontroloperation,itisexpoundedintheory.Itisasinglechipintegratedcircuitchipsmaller,toverylargescaleintegratedcircuittechnologyandownsthedatatheprocessingcapabilityoftheCPU,RAM,ROM,avarietyofI/Oportanddisconnectsystem,withtimingfunctiondevices/functionsconcentratedproductiontoaverysmallpieceofsilicon,asmallsizeandrelativelyperfectmicrocomputersystemtheorycalledmonolithicsingle-chipmicrocontroller,itisnotonlyCompleteanylogicalfunctionofthechip,butacomputersystemintegratedintoaverysmallchip.Theequivalentofamicrocomputer,comparedwiththemarketsimilarcomputerchip,thelackofI/Odevices.Inshort:
thechipisthemostimportantpartofthecomputer.Itfeaturesisasmallvolume,thequalityisrelativelylight,thepriceislow,tolearn,toprovideaveryconvenientconditionfortheapplicationanddevelopmentofsingle-chipmicrocontroller(chip).Theuseofcomfortisveryextensive,suchas:
theimplementationofmonitor,communicationequipment,TV,wirelessequipment.AnyproductaslongasthelatestmonolithicloadingMachine,hewillbeabletoacceleratethepaceofproductupgrades,anykindofordinaryhouseholdappliancesaslongastheloadissimilartothesinglechipiscalled:
intelligentdigitalTV,intelligentunmannedandsoon
Scienceandtechnologyupdatesfasterandfaster,inthefieldofelectronicautomation,intelligentcontrolsystembyvirtueofitssmallvolume,lowcost,strongfunction,wideapplicationandotheradvantageshasbecomethemainstreamofelectronicfield.Thispaperismainlythroughthedesignofthe8lightwaterclassiccontrolsystembasedon51MCU(thecontrolprinciple,designidea,several)theworkingprincipleofthesystemandotheraspectsoftheanalysis,toexplore.
Keyword:
OwnershipStructureFinancialSystemReferenceInspiration
.
21
目录
1引言
UDC I
一引言 7
1.1设计的背景 7
1.1设计的目的 7
二系统板总体设计 8
2.1硬件的组成 8
2.2AT89C51引脚功能 8
2.3晶振 10
2.4复位状态 11
2.5流水灯硬件原理图 13
2.6MCS-51系列单片机内部采用模块式结构 14
2.7元件清单 14
三统板相应程序设计 16
3.1位控法 16
3.2C语言编程 17
3.2.1C语言程序 17
3.2.2编程注意事项 18
3.3测试及结果 21
实验总结 22
致谢 23
参考文献 24
基于51单片机的8位流水灯控制系统
一引言
1.1设计的背景
社会上普遍存在的LED流水灯,俨然已成为众多商户对外宣传的重要方式;LED流水灯其实是有一个小芯片控制运营的,这就是理论中阐述的单片机。
它是体型较小的集成电路芯片,能够把非常大规模的集成电路技术和拥有数据处理能力的CPU、RAM、ROM、多种I/O口和断连系统、具备定时功能的器件/等功能集中生产到一块非常小的硅片上,构成一个体型小且比较完善的微型计算机系统,单片机理论称之为单片微控制器,它不仅仅是完成任何一个具备逻辑功能的芯片,而是把一个计算机的系统集成到一个非常小的芯片上。
相当于一个微小型的计算机,与市面的同类计算机相比,单片机缺少了I/O设备。
总而言之:
芯片是计算机中最为重要的部分。
它的特点是:
体积较小、质量也比较轻、价格低廉、给学习、应用和开发提供了非常便利的条件。
单片微控制器(芯片)的使用安慰非常广泛,例如:
实施监控器、通讯仪器、电视、车载无线设备等。
任何产品只要装载了最新款的单片机,他就能够促进加快产品升级换代的速度,任何一种普通家电只要加载单片机均被冠以类似于:
智能数字电视、智能无人驾驶等。
科学技术更新的速度越来越快,在电子这个领域中自动化、智能化的控制系统以凭借其体积小、成本低、功能强、应用广泛等优势已成为电子领域的主流。
本文主要是通过基于51单片机最为经典的8位流水灯控制系统的设计(控制)原理、设计思路、系统工作原理等几个方面展开介绍、分析、探讨。
不言而喻51系列的单片机可以说是目前应用领域最为广泛的一种8位单片机之一,它凭借着体积小﹑功能强﹑成本低﹑应用面广这些优势。
经历了数十年革新、发展,51系列的单片机到目前为止已经具备了规模庞大,功能齐全,资源丰富等这些独特且实用的特点。
现如今技术日新月异、层出不穷,以电子领域和自动化智能控制领域来说,以前的分立元件或具备数字逻辑电路的任何控制系统,潜移默化之中正一步步被单片机智能控制系统逐步取代了。
这篇论文用单片机结合LED制作了一种新型的8位LED流水灯控制系统的设计,AT89C51作为主控核心来说,凭借着软件逐步实现对LED流水灯进行各种方式的控制。
这个系统他的特点是体积较小、硬件也少、电路的结构简单和易于操作等这些优点。
1.1设计的目的
我们日常生活当中随处可见的LED彩灯,他具有美学效果,同时还为周边人群提供欣赏的独特“景观”;这边论文主要围绕用51集成块编程实现控制电路的原理,实现单片机流水灯控制的功能。
而且同时在文中也详细的介绍说明了硬件电路和相应的程序,通过这次撰写毕业论文熟悉且熟练地掌握单片机的工作原理,进而实现理论知识和实践应用完美结合的最终目的。
二系统板总体设计
2.1硬件的组成
参照单片机系统扩展与系统配置的情况,单片机应用系统简单的划分为“最小系统”、“最小功耗系统”和典型系统等。
AT89C51单片机是国外通信供应商ATMEL研制的电压低、性能搞的CMOS8位单片机,内在资源极为丰富:
具备4kB闪存的优势、搭载着128BRAM和三十二根I/O口线、配备了2个16位定时/计数器和诸多个向量两级断开结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。
所以,我设计的这个流水灯可以说是一个具有8个发光二极管的单片机“最小系统”,这就是由发光二极管、晶振、复位····等电路和必备的软件系统组成的单个单片机“最小系统”。
2.2AT89C51引脚功能
图1AT89C51引脚图
VCC:
供电电压。
PO口:
PO口是一个八位漏级开路、双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚首次被写入1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行矫验的时候,PO输出原码,这个时候P0外部就必然要接上拉电阻。
P1口:
简单的说P1口就是一个自身内部提供上拉电阻的八位双向I/O口,P1口缓冲器可以接收输出4TTL门电流。
P1口管脚再被读入1后,被内部上拉为高,可以用作输入,P1口被外部下拉为低电平时,这时输出电流,原因是内部上拉的缘由。
在FLASH编程和校验时,P1口就是作为低八位的地址接受。
P2口:
可以说P2口就是一个内部上拉电阻的8位双向I/O口,P2口缓冲器如同P1口均可以接收,输出的也是4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,因此作为输入。
P2口在被作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用作外部程序存储器或十六位地址外部数据存储器进行程序、数据存取的时候,P2口输出地址高八位。
在给出地址“1”时,它凭借内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其独特功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚和P2\P1物理属性功能基本差不多,8个带内部上拉电阻的双向I/O口,也被称之为写入口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口也是可以输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口还可以给闪烁编程和编程校验接收一些控制信号信息。
RST:
简而言之就是“复位输入”。
如果振荡器复位器件时,必然要保证RST脚两个机器周期的高电平时间。
ALE/PROG:
当芯片访问外部存储器的时候,地址锁存允许的可以输出电平用作锁存地址的地位字节。
/PSEN:
理论上称之为“外部程序存储器的选通信号”。
在由外部程序存储器取指期间,所有机器周期两次/PSEN有效。
但是如果访问外部的数据存储器时,这两次有效的/PSEN信号将不会出现。
/EA:
当/EA保持低电平时,则在这个期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,这个区间内部程序存储器。
XTAL1:
简单说这是反向振荡放大器的输入和内部时钟工作电路的输入。
XTAL2:
(作为输出口)来自反向振荡器的输出。
2.3晶振
晶振,构成原理是:
是从石英晶体上被按必然方位角切割下来的薄片(就是所谓的晶片也就是石英晶体谐振器,别称也叫做石英晶体或者直接叫晶体、晶振等;在封装的自身内部添加IC然后组成振荡电路的晶体元件称之为晶体振荡器。
晶体振荡器是其中最主要控制CPU的时钟频率,也就是产生高低电平的“周期”(备注:
产生一个高电平,和一个低电平叫做一个周期,)简而叙述:
来次频率越高,电脑在单位时间里处理的速度就越快,晶振自己不会产生振荡,但它基本上是以一个固定的频率与外电路发生谐振,他有一个前提条件是外部电路的振荡频率必然与晶振的自身固有振荡频率是相同的,最起码也是要极其接近,要不然电路就会停振。
这次8位流水灯控制系统设计,基本上采用1MHZ晶振和30PF的电容器,共同组成一个基本上非常稳定的自身振荡器。
电容器的大小有时候会有三个影响:
第一:
震荡频率的高低;第二:
振荡器的稳定性;第三起振的快速性。
这三点影响正是为单片机提供标准时钟。
图2时钟电路
2.4复位状态
复位是单片机最原始的状态,也称为“单片机初始化操作”,它的主要功能是将程序计数器PC可以初始化为0000H(也就是原始状态),它能够让单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当程序运行中出现错误或操作不当出现错误使系统处于死锁状态时,这时候复位的方式只有一种:
那就是重新启动单片机,这种情况在现实中是最普遍存在的。
当单片机重新启动正常复位以后,除P1.0~P1.7的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF没有确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。
这个时候单片机内部的RAM不会受到复位的直接影响,档案偏激上电后RAM中的大多数内容是随机的。
在此次论文设计中熟悉这些独特功能寄存器的复位状态,对于熟练操作单片机,简短应用程序中的初始化部分是是特别重要的。
单片机复位:
第一种上电自动复位,第二种手动按键复位两种方式是单片机的复位操作的两种方式。
上电自动复位操作前提条件是接通电源后自动实现复位操作。
如《图3复位电路图》所示。
上电的一瞬间由于电容C上无储能,其端电压几乎是零,RST得到高电平,电容器C随着逐渐的的充电,RST引脚上的高电平也会慢慢的下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。
只要高电平能保持复位所需要的时间(大约两个机器周期),单片机基本上就会实现复位。
图3复位电路2.5流水灯硬件原理图
流水灯具体硬件构成如图所示:
图4流水灯硬件原理图
从以上流水灯原理图中可以很明显看出来,如若要让接在P1.0口的LED1指示信号亮起来,那就只有把P1.0口的电平变为低电平(比较稳妥的方式);反向思考,如果要接在P1.0口的LED1信号指示灯熄灭,只有把P1.0口的电平变为高电平;参照这种方式,其实接在P1.1~P1.7口的另外7个LED信号指示灯的点亮和熄灭的方法就是和LED1的方式是一样的。
因此,我们要想成功的实现8位流水灯功能,第一,在操作上是不能出错的,要心思缜密;第二,程序运行也是不能出错的,具体规范操作流程简单来说就是将发光二极管LED1~LED8规范的准确的依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
在这里我们需要注意一点,很多问题由于我们人眼的视觉暂留效应和单片机执行每条指令的时间很短,在操作控制二极管信号指示灯点亮或者熄灭的时候应该适当的延长一会时间,要不然我们很难看到“流水灯的流水效果了”。
2.6MCS-51系列单片机内部采用模块式结构
结构框架图
图5MCS-51系列单片机组成框图
从图中可以看出来,MCS-51系列的单片机微控系统主要由以下部件通过片内总线连接而成:
第一是中央处理器(CPU)、第二是数据存储器(RAM)、第三是程序存储器(ROM)、并行输入/输出口(P0口~P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。
2.7元件清单
元件
规格
数量
电容
30pf/1nf
2/1
电阻
8220Ω/10KΩ
16/1
发光二极管
2v10mA
16
单片机芯片
AT89C51
1
晶振
1MHz
1
图6元件清单表2.8程序流程图
在运行的程序中LIGHT7是很多种多种亮灯方式结合循环延时子程序DELAY为100毫秒延时,在这个当中延时子程序DELAY1为100毫秒延时端口P1.0~P1.07控制的16个发光二极管亮灯方式程序中有标注。
开始
跳至主程序,设置外部中断0有效,电平触发
主程序等待中断
中断到来?
继续等待中断
P1.0=0?
P1.1=0?
P1.2=0?
P1.3=0?
P1.4=0?
P1.5=0?
P1.6=0?
中断?
继续循环
D1
D2
D3
D4
D5
D6
D7
相应亮灯方式
图7程序流程图
三统板相应程序设计
单片机当中硬件组成部分和软件组成部分是单片机应用系统中最为重要的两大模块,本文中所述的硬件结构原理图组建和搭建完成上电之后,这个时候一般我们还是看不到流水灯循环往复的亮灭现象,这就需要我们来下指令告诉单片机怎么正确的进行工作,方法一:
通过编写程序控制单片机管脚电平的高低变化,来实现发光二极管(信号指示灯)的一会变亮,一会熄灭。
单片机应用系统中软件编程是唯一一个极其重要的组成部分也是微一部分,同时更是单片机理论学习的特别重点和难点。
下面我们以最简单的流水灯控制功能即实现8个或16个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。
3.1位控法
位控法是最传统而且又比较简单容易理解的方法,位控法也是市面上面使用最为广泛的一种方法,他的采用顺序程序结构,用位指令进行控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。
程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH ;初值11111110送入A
MOV 30H,#7 ;30单元作计数器,初始为左移次数
LEFT:
MOV P1,A ;A送入P1口(初始点亮P1.0)
LCALL DELAY ;延时
RL A ;循环左移
DJNZ 30H,LEFT ;未够7次继续左移
MOV 30H,#7 ;重置计数器,为右移次数
RIGHT:
MOV P1,A ;A送入P1口
LCALL DELAY ;延时
RR A ;循环右移
DJNZ 30H,RIGHT ;未够7次继续右移
AJMP MAIN
DELAY:
MOV R5,#195 ;延时
C1:
MOV R6,#255
DJNZ R6,$
DJNZ R5,C1
RET
END
3.2C语言编程
3.2.1C语言程序
在3.1章节当中所述的程序设计是逐个进行控制P1.0至P1.7端口的每个来操作实现的,接下来我将会使用C语言程序运用程序来控制各个端口赋值来实现P1.0至P1.7的发光二极管的亮灯与灭灯的,在这里我可以把初始值11111110赋值给led,并将led赋值给P1.0端口,操做完之后每隔100毫秒左右的时间led左移一位改变P1.1端口,实现P1.0端口的灭灯和P1.1端口的亮灯,那么我们可以按照这个方法对其他几个端口依次进行操作执行,最终就可以实现每个端口按照顺序依次亮灯与灭灯,按照这样的操作方式,当P1.7端口灭灯时,led就会又变回11111110,这样一来就完成流水灯的循环工作,这样就可以实现我们想看到的流水灯效果了。
#include
#include
#defineucharunsignedchar
voiddelay_ms(ucharms); //延时毫秒@12M,ms最大值255
voidmain()
{
ucharled; //为P1口赋值的变量
uchari; //循环控制变量
while
(1)
{
led=0xfe; //初值为11111110
for(i=0;i<7;i++)
{
P1=led; //led值送入P1口
delay_ms(100); //延时100ms
led=_crol_(led,1); //led值循环左移1位
}
for(i=0;i<7;i++)
{
P1=led; //led值送入P1口
delay_ms(100); //延时100ms
led=_cror_(led,1); //led值循环左移1位
}
}
}
voi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 流水 控制系统 毕业论文 设计