基于8051单片机的流水灯设计.docx
《基于8051单片机的流水灯设计.docx》由会员分享,可在线阅读,更多相关《基于8051单片机的流水灯设计.docx(32页珍藏版)》请在冰点文库上搜索。
![基于8051单片机的流水灯设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/42083dd3-595b-4c66-a07a-77e9dda75247/42083dd3-595b-4c66-a07a-77e9dda752471.gif)
基于8051单片机的流水灯设计
摘要1
ABSTRACT2
前言3
第1章系统方案设计4
系统整体设计方案4
大体功能简介4
系统程序4
第2章8051单片机原理分析及硬件电路6
8051单片机简述6
8051单片机的大体组成6
8051的信号引脚8
晶体振荡电路10
上电复位电路11
8051单片机的并行I/O口12
8051单片机的中断系统12
8051单片机的按时/计数器13
按时/计数器的按时功能13
用于按时/计数器操纵的寄放器14
第3章8051单片机与8155的接口设计15
并行I/O接口815515
8155内部功能结构及引脚15
作片外RAM利用16
作扩展I/O口利用16
I/O口的工作方式18
按时/计数器利用18
8051单片机并行I/O扩展19
8051并行扩展总线19
8051单片机与8155的接口19
第4章单片机与8155的接口设计的应用21
LED显示21
按键扫描22
第5章结论24
参考文献26
毕业设计小结27
附录28
摘要
二十世纪跨越了三个“电”的时期,即电气时期、电子时期和现已进入的电脑时期。
只是,这种电脑,一般是指个人运算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类运算机,大多数人却不怎么熟悉。
这种运算机确实是把智能给予各类机械的单片机(亦称微操纵器)。
顾名思义,这种运算机的最小系统只用了一片集成电路,即可进行简单运算和操纵。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
此刻,这种单片机的利用领域已十分普遍,如智能仪表、实时工控、通信设备、导航系统、家用电器等。
各类产品一旦用上了单片机,就能够起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
学习单片机的最有效方式确实是理论与实践并重,本文将用单片机8051和外围接口815五、发光二极管、晶振、复位、电源等电路和必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作。
关键词:
单片机8051,外围接口8155,流水灯。
ABSTRACT
Acrossthetwentiethcentury,thethree"power"ofthetimes,thatis,theelectricalera,theelectronicageandthecomputeragewhichhasenterednow.However,suchacomputer,usuallyreferstoapersonalcomputer,orPC.Itconsistsofthehost,keyboards,monitors,etc.Thereisalsoatypeofcomputerwhichisnotfamiliarwithbypeople.Thecomputerissmarttogiveavarietyofmechanicalsingle-chip(alsoknownasmicro-controller).Asthenamesuggests,thesecomputersystemsuseonlytheminimumofanintegratedcircuittomakeasimplecalculationandcontrol.Becauseofitssmallsize,areusuallychargedwithpossessionofmachineinthe"belly"in.Itinthedevice,likethehumanmindplaysarole,itiswrong,theentiredeviceontheparalysisofthe.Now,thissinglechiphasaverywidefieldofuse,suchassmartmeters,real-timeindustrialcontrol,communicationsequipment,navigationsystems,andhouseholdappliances.Onceavarietyofproductswiththeuseofthesingle-chip,willbeabletoplaysothattheeffectivenessofproductupgrading,productnamesoftenadjectivebeforetheword-"intelligent,"suchaswashingmachinesandsointelligent.Single-chiplearningisthemosteffectivewayofboththeoryandpractice,thisarticlewillbeusedtosingle-chip8051andperipheralinterfaces8155,light-emittingdiode,oscillator,reset,powercircuit,aswellasthecompositionofthenecessarysoftwareto8051asthecore,Dessimpleequipmentandthenecessarycircuitry,designedasimplewaterlights,andthepreparationofasimpleproceduretoenableittoautomaticallywork.
Keywords:
single-chip8051,peripheralinterface8155,waterlights.
前言
随着电子技术的日趋进步,微型运算机的进展突飞猛进。
其进展之一确实是将微处置器及其外围芯片,如程序存储器、并行、串行I/O口、按时器/计数器、中断操纵器及其它操纵部件集成在一个芯片当中,制成单片机。
而最近几年来推出的一些高级单片机还包括有许多特殊功能单元。
因此,只要外加一些扩展电路及必要的通道接口就能够够组成各类运算机应用系统,并具有集成度高、靠得住性高、性能价钱比高、适应温度范围宽、抗干扰能力强、小巧灵活、易于实现机电一体化等优势,已普遍应用于智能化仪器仪表的检测、操纵和生产设备自动化、家用电器等领域。
学习单片机,接触到的第一个例子几乎都是流水灯。
我想不单单是因为那个例子比较典型吧。
其利用意义也大可见到。
都市的夜色中闪烁着各式各样的霓虹灯,其顶用得最多的可能要算流水灯,它的行云流水般的成效为宁静的夜晚带来生机,大街上形形色色的广告牌也离不开它。
而且流水灯向多方面进展,可加工成艺术品供欣赏,可接在刹车电路,大灯电路,电源电路,产生绚丽灿烂的流水成效。
相信不久的以后它会进展到更宽的领域去。
学习单片机的最有效方式确实是理论与实践并重,本文将用单片机8051和外围接口815五、发光二极管、晶振、复位、电源等电路和必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作。
第1章系统方案设计
1.1系统整体设计方案:
在做此设计时,应先确信其系统框架,以下即是此设计的系统框图。
图系统框图
1.2大体功能简介
本文将用单片机8051和外围接口815五、发光二极管、晶振、复位、电源等电路和必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作
1.3系统程序
本设计的系统程序流程图如以下图所示
图系统设计流程图
第2章8051单片机原理分析及硬件电路
2.18051单片机原理简述
MCS-51单片机的典型芯片是8031、8051、8751。
8051内部有4KBROM,8751内部有4KBEPROM,8031内部无ROM;除此之外,三者的内部结构及引脚完全相同。
本设计利用的是8051。
下面咱们就对本系列单片机的内部组成及信号引脚进行说明。
8051单片机的大体组成
1)中央处置器(CPU)
中央处置器是单片机的核心,完成运算和操纵功能。
有运算电路和操纵电路,其中操纵电路是单片机的指挥操纵部件,保证单片机各部份能自动而和谐的工作。
例如按时操纵电路和振荡电路均属于操纵电路。
单片机执行程序确实是在操纵电路的操纵下进行的。
第一从程序存储器读出指令,送指令寄放器保留;然后送指令译码器进行译码,译码结果送按时操纵电路,有按时操纵逻辑产生各类按时信号和操纵信号;再送到系统的各个部件去操纵相应的操作。
这确实是执行一条指令的全进程,而执行程序确实是不断地重复这一进程。
2)内部数据存储器(内部RAM)
8051芯片中共有256个RAM单元,通常把这256个单元按其功能划分为两部份:
低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。
内部RAM的高128单元是供给专用寄放器利用的,其单元地址为80H~FFH。
因这些寄放器的功能已作专门规定,故称之为专用寄放器(SpecialFunctionRegister),也可称为特殊功能寄放器SFR区。
但高128单元被专用寄放器占用,能作为寄放器供用户利用的只是低128单元,用于寄存可读写的数据。
因此通常所说的内部数据存储器确实是指前128单元,简称内部RAM。
片内低128字节RAM是用户真正能够存取随机数据的数据存储器,其地址为00H-7FH。
3)内部程序存储器(内部ROM)
8051共有4KB掩膜ROM,用于寄存程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。
它的片内ROM地址为0000H~0FFFH(4KB),它的片外ROM最大容量可为0000H~FFFFH。
片内与片外ROM在低4KB地址显现重叠,这种重叠的区分由8051的管脚
进行操纵。
还有一组特殊单元是0003H~002AH,共40个单元。
这40个单元被均匀地分为5段,作为5个中断源的中断地址区。
中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应寄存中断效劳程序。
但通常情形下,8个单元难以存下一个完整的中断效劳程序,因此通常也是从中断地址区首地址开始寄存一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断效劳程序的实际入口地址。
4)按时/计数器
8051共有两个16位的按时/计数器,以实现按时或计数功能,并以其按时或计数结果对运算机进行操纵。
5)并行I/O口
8051共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。
每一个口都包括一个锁存器、一个输出驱动器和输入缓冲器。
事实上,它们已被归入专用寄放器之列,而且具有字节寻址和位寻址功能。
在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。
在无片外扩展存储器的系统中,这4个口的每一名都可作为双向的I/O端口利用。
6)串行口
MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器利用,也可作为同步移位器利用。
7)中断操纵系统
MCS-51单片机的中断功能较强,以知足操纵应用的需要。
8051共有5个中断源,即外中断两个,按时/计数中断两个,串行中断一个。
全数中断分为高级和低级共两个优先级别。
8)时钟电路
MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。
时钟电路为单片机产生时钟脉冲序列。
系统许诺的晶振频率一样为6MHz和12MHz。
从上述内容能够看出,MCS-51尽管是一个单片机芯片,但作为运算机应该具有的大体部件它都包括,因此,事实上它已是一个简单的微型运算机系统了。
2.1.2 8051的信号引脚
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图。
图MCS-51引脚图、逻辑符号图
下面按其引脚功能分为四部份表达这40条引脚的功能。
(1)主电源引脚VCC和VSS:
VCC——(40脚)接+5V电压;VSS——(20脚)接地。
(2)外接晶体引脚XTAL1和XTAL2:
XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,那个放大器组成了片内振荡器。
当采纳外部振荡器时,此引脚应接地;XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采纳外部振荡器时,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端。
(3)操纵或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9脚)当振荡器运行时,在此脚上显现两个机械周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证靠得住地复位。
VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):
在系统扩展时,ALE用于操纵把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
③PSEN(29脚):
此脚的输出是外部程序存储器的读选通信号。
④EA/VPP(引脚):
当EA端维持高电平常,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时,将自动转向执行外部程序存储器内的程序。
当EA维持低电平常,那么只访问外部程序存储器,不管是不是有内部程序存储器。
(4)输入/输出(I/O)引脚P0、P一、P二、P3(共32根)
①P0口(39脚至32脚):
是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用。
②P1口(1脚至8脚):
是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
③P2口(21脚至28脚):
是准双向8位I/O口。
在访问外部存储器时,它能够作为扩展电路高8位地址总线送出高8位地址。
④P3口(10脚至17脚):
是准双向8位I/O口,作为第二功能利历时,各引脚的概念如表所示。
值得强调的是,P3口的每一条引脚都可独立概念为第一功能的输入输出或第二功能。
口线
引脚
第二功能
10
RXD(串行输入口)
11
TXD(串行输出口)
12
INT0(外部中断0)
13
INT1(外部中断1)
14
T0(定时器0外部输入)
15
T1(定时器1外部输入)
16
WR(外部数据存储器写脉冲)
17
RD(外部数据存储器读脉冲)
表P3各口线的第二功能概念
晶体振荡电路
1.时钟信号的产生
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而组成一个稳固的自激振荡器,这确实是单片机的时钟电路,如下图。
时钟电路产生的振荡脉冲通过触发器进行二分频以后,才成为单片机的时钟脉冲信号。
一样地,电容C1和C2取30pF左右,晶体的振荡频率范围是~12MHz。
晶体振荡频率高,那么系统的时钟频率也高,单片机运行速度也就快。
MCS-51在通常应用情形下,利用振荡频率为6MHz或12MHz。
图时钟振荡电路
2.时序
时序是用按时单位来讲明的。
MCS-51的时序按时单位共有4个,从小到大依次是:
节拍、状态、机械周期和指令周期。
下面别离加以说明。
1)节拍与状态
把振荡脉冲的周期概念为节拍(用P表示)。
振荡脉冲通过二分频后,确实是单片机的时钟信号的周期,其概念为状态(用S表示)。
如此,一个状态就包括两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。
2)机械周期
MCS-51采纳按时操纵方式,因此它有固定的机械周期。
规定一个机械周期的宽度为6个状态,并依次表示为S1~S6。
由于一个状态又包括两个节拍,因此,一个机械周期总共有12个节拍,别离记作S1P1、S1P2、…、S6P2。
由于一个机械周期共有12个振荡脉冲周期,因此机械周期确实是振荡脉冲的十二分频。
当振荡脉冲频率为12MHz时,一个机械周期为1μs;当振荡脉冲频率为6MHz时,一个机械周期为2μs。
本设计采纳的晶振频率为12MHz。
3)指令周期
指令周期是最大的时序按时单位,执行一条指令所需要的时刻称为指令周期。
它一样由假设干个机械周期组成。
不同的指令,所需要的机械周期数也不相同。
通常,包括一个机械周期的指令称为单周期指令,包括两个机械周期的指令称为双周期指令,等等指令的运算速度与指令所包括的机械周期有关,机械周期数越少的指令执行速度越快。
单片机执行任何一条指令时都能够分为取指令时期和执行指令时期。
ALE引脚上显现的信号是周期性的,在每一个机械周期内显现两次高电平。
第一次出此刻S1P2和S2P1期间,第二次出此刻S4P2和S5P1期间。
ALE信号每显现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机械周期数不同,因此取指令操作也随指令不同而有小的不同。
2.2上电复位电路
复位是单片机的初始化操作,其要紧红能是把程序计数器PC内容初始化为0000H,也确实是使单片机从0000H单元开始执行程序,同时使CPU和系统中的其他功能部件都处在一个确信的初始状态,并从那个状态开始工作。
8051单片机采纳两种复位方式:
一种是加电自动复位,另一种为开关复位。
单片机复位的条件是:
必需使RST/VPD或RST引(9)加上持续两个机械周期(即24个振荡周期)的高电平。
2μs以上时刻的高电平,在RST引脚显现高电平后的第二个机械周期执行复位。
单片机常见的复位电路如图(a),(b)所示。
图(a)为上电复位电路,它是通过外部复位电路的电容充电来实现的。
在电源Vcc的上升时刻不超过1ms就能够够实现自动上电复位,即接通电源就完成了系统的复位初始化。
在接电刹时,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位慢慢下降。
只要保证RESET为高电平的时刻大于两个机械周期,便能正常复位。
(a)上电复位电路,(b)按键复位电路
图单片机常见的复位电路;
8051单片机的并行I/O口
1.P0口8位双向口线,其第一功能是作为通用的I/O口,CPU在传送输入/输出数据时。
输出数据能够锁存,输入数据能够缓存;第二功能是当CPU访问外部存储器时,分时提供低8位地址和8位数据的复用总线。
电路中包括有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出操纵电路。
当对P0口进行写操作时,由锁存器和驱动电路组成数据输出通路。
由于通路中已有输出锁存器,因此数据输出时能够与外设直接连接,而不需再加数据锁存电路。
2.P2口8位双向口线。
其第一功能是当不带片外存储器时,作为通用I/O口;第二功能是8051带片外存储器时,与P0口配合,传送片外存储器的高8位。
8051单片机的中断系统
1.中断源
8051单片机中断系总共有6个中断源,即2个外部中断,2个按时器中断和2个串行中断。
本文采纳的是按时器中断。
按时器中断是为知足按时或计数的需要而设置的。
在单片机芯片内部有2个按时器T0和T1,因此按时器中断也有2个:
按时器1中断和按时器0中断。
当计数器溢出时,说明定不时刻到计数值满,这时内部电路就产生中断请求。
2.中断操纵
中断操纵是指提供给用户利用的中断操纵手腕。
具体到8051,中断操纵的内容共有四项:
中断许诺操纵、中断请求操纵、中断优先操纵和外中断触发方式操纵。
这些操纵内容散布在4个操纵寄放器中:
中断许诺寄放器、按时器操纵寄放器、串行操纵寄放器和中断优先级寄放器。
中断操纵是通过硬件实现的,但须进行软件设置。
1)中断许诺操纵寄放器IE
该寄放器用于操纵是不是许诺利用中断。
本设计所利用的标志位如下:
EA:
中断许诺总操纵位。
EA=0,中断总禁止,禁止所有中断。
EA=1,中断总许诺,其后中断的禁止或许诺由各类中断自行设置。
ET1:
按时器中断许诺操纵位。
ET1=0,禁止按时器中断。
ET1=1,许诺按时器中断。
可见,8051通过中断许诺操纵寄放器对中断许诺实行两级操纵:
中断系统总操纵和各类中断单独操纵。
本设计中,只有当EA=1时,开放中断系统,这时才能由按时器中断操纵位操纵按时器中断的许诺与禁止。
2)按时器操纵寄放器TCON
寄放器地址为88H,位地址为8FH-88H。
尽管该寄放器名称为按时器操纵寄放器,但多数位都是为中断操纵而设置的。
本设计所采纳的标志位如下:
TF1:
按时器T1计数溢出标志位。
当计数器产生计数溢出时,相应的溢出标志位由硬件置1,并自动产生按时中断请求。
另外,也能够作为状态位供查询利用。
2.68051单片机的按时/计数器
在单片机操纵应用中,按时和计数的需求很多,为此在单片机中都有按时器/计数器,8051中有两个16位按时器/计数器,本设计利用的是按时器T1。
2.6.1按时/计数器的按时功能
按时器的按时功能是通过计数器的计数来实现的,现在的计数脉冲来自单片机芯片内部,每一个机械周期有一个计数脉冲,即每一个机械周期计数器加1.由于一个机械周期等于12个振荡脉冲周期,因此,计数频率为振荡频率的1/12。
此单片机采纳12MHz晶振,那么计数频率为1MHz,即每微秒计数器加1。
如此,在利用按时器时既能够依照计数值计算出定不时刻,也能够通过定不时刻的要求算出计数器的预置值。
2.6.2用于按时/计数器操纵的寄放器
在8051单片机中,与按时器有关的操纵寄放器共有3个,别离是按时器操纵寄放器、工作方式操纵寄放器和中断许诺操纵寄放器。
中断许诺操纵寄放器已在前面的中断一节中讲过,那个地址再也不赘述。
咱们来了解前两个寄放器。
1.按时器操纵寄放器(TCON)
TCON寄放器地址为88H,位地址为8FH-88H。
按时器操纵寄放器中,本设计与按时器有关的操纵位有1位,即TR1----运行操纵位。
TR1=0,停止按时器工作;TR1=1,启动按时器工作。
操纵计数启停只需用软件方式使其置1或清0即可。
2.按时器方式选择寄放器(TMOD)
TMOD寄放器用于设定按时器的工作方式。
寄放器地址为89H,但它没有位地址,不能进行寻址,只能用字节传送指令设置其内容。
第三章8051单片机与8155的接口设计
并行I/O接口8155
8155内部功能结构及引脚
在实训电路中采纳一种可编程的接口芯片8155,Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还