基于8051单片机的流水灯设计.doc
《基于8051单片机的流水灯设计.doc》由会员分享,可在线阅读,更多相关《基于8051单片机的流水灯设计.doc(36页珍藏版)》请在咨信网上搜索。
目 录 摘 要 1 ABSTRACT 2 前 言 3 第1章 系统方案设计 4 1.1 系统总体设计方案 4 1.2 基本功能简介 4 1.3 系统程序 4 第2章 8051单片机原理分析及硬件电路 6 2.1 8051单片机简述 6 2.1.1 8051单片机的基本组成 6 2.1.2 8051的信号引脚 8 2.2 晶体振荡电路 10 2.3 上电复位电路 11 2.4 8051单片机的并行I/O口 12 2.5 8051单片机的中断系统 12 2.6 8051单片机的定时/计数器 13 2.6.1 定时/计数器的定时功能 13 2.6.2 用于定时/计数器控制的寄存器 14 第3章 8051单片机与8155的接口设计 15 3.1 并行I/O接口8155 15 3.1.1 8155内部功能结构及引脚 15 3.1.2 作片外RAM使用 16 3.1.3 作扩展I/O口使用 16 3.1.4 I/O口的工作方式 18 3.1.5 定时/计数器使用 18 3.2 8051单片机并行I/O扩展 19 3.2.1 8051并行扩展总线 19 3.2.2 8051单片机与8155的接口 19 第4章 单片机与8155的接口设计的应用 21 4.1 LED显示 21 4.2 按键扫描 22 第5章 结论 24 参考文献 26 毕业设计小结 27 附录 28 34 摘 要 二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。学习单片机的最有效方法就是理论与实践并重,本文将用单片机8051和外围接口8155、发光二极管、晶振、复位、电源等电路以及必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作。 关键词:单片机8051,外围接口8155,流水灯。 前 言 随着电子技术的日益进步,微型计算机的发展突飞猛进。其发展之一就是将微处理器及其外围芯片,如程序存储器、并行、串行I/O口、定时器/计数器、中断控制器及其它控制部件集成在一个芯片之中,制成单片机。而近年来推出的一些高档单片机还包含有许多特殊功能单元。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,并具有集成度高、可靠性高、性能价格比高、适应温度范围宽、抗干扰能力强、小巧灵活、易于实现机电一体化等优点,已广泛应用于智能化仪器仪表的检测、控制以及生产设备自动化、家用电器等领域。 学习单片机,接触到的第一个例子几乎都是流水灯。我想不仅仅是因为这个例子比较典型吧。其使用意义也大可见到。都市的夜色中闪烁着各式各样的霓虹灯,其中用得最多的大概要算流水灯,它的行云流水般的效果为宁静的夜晚带来生机 ,大街上形形色色的广告牌也离不开它。而且流水灯向多方面发展,可加工成艺术品供欣赏,可接在刹车电路,大灯电路,电源电路,产生绚丽灿烂的流水效果。相信不久的将来它会发展到更宽的领域去。学习单片机的最有效方法就是理论与实践并重,本文将用单片机8051和外围接口8155、发光二极管、晶振、复位、电源等电路以及必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作。 第1章 系统方案设计 1.1 系统总体设计方案: 在做此设计时,应先确定其系统框架,以下便是此设计的系统框图。 图2.1 系统框图 1.2 基本功能简介 本文将用单片机8051和外围接口8155、发光二极管、晶振、复位、电源等电路以及必要的软件组成的以8051为核心,辅以简单的设备和必要的电路,设计了一款简易的流水灯,并编写简单的程序,使其能够自动工作 1.3 系统程序 本设计的系统程序流程图如下图所示 图2.2 系统设计流程图 第2章 8051单片机原理分析及硬件电路 2.1 8051单片机原理简述 MCS-51单片机的典型芯片是8031、8051、8751。8051内部有4 KB ROM,8751内部有4KB EPROM,8031内部无ROM;除此之外,三者的内部结构及引脚完全相同。本设计使用的是8051。下面我们就对本系列单片机的内部组成及信号引脚进行说明。 2.1.1 8051单片机的基本组成 1) 中央处理器(CPU) 中央处理器是单片机的核心,完成运算和控制功能。有运算电路和控制电路,其中控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调的工作。例如定时控制电路和振荡电路均属于控制电路。单片机执行程序就是在控制电路的控制下进行的。首先从程序存储器读出指令,送指令寄存器保存;然后送指令译码器进行译码,译码结果送定时控制电路,有定时控制逻辑产生各种定时信号和控制信号;再送到系统的各个部件去控制相应的操作。这就是执行一条指令的全过程,而执行程序就是不断地重复这一过程。 2) 内部数据存储器(内部RAM) 8051芯片中共有256个RAM单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器SFR区。但高128单元被专用寄存器占用,能作为寄存器供用户使用的只是低128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。片内低128字节RAM是用户真正可以存取随机数据的数据存储器,其地址为00H-7FH。 3) 内部程序存储器(内部ROM) 8051共有4 KB掩膜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芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。 从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。 2.1.2 8051的信号引脚 MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图2.1。 图2.1 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引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。 VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。 ②ALE/PROG(30脚):在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来 ,以实现低位地址和数据的分时传送。 ③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。 ④EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。 (4) 输入/输出(I/O)引脚P0、P1、P2、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口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 口线 引脚 第二功能 P3.0 10 RXD(串行输入口) P3.1 11 TXD(串行输出口) P3.2 12 INT0(外部中断0) P3.3 13 INT1(外部中断1) P3.4 14 T0(定时器0外部输入) P3.5 15 T1(定时器1外部输入) P3.6 16 WR(外部数据存储器写脉冲) P3.7 17 RD(外部数据存储器读脉冲) 表 P3各口线的第二功能定义 2.2 晶体振荡电路 1. 时钟信号的产生 在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图2.1所示。 时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。一般地,电容C1和C2取30 pF左右,晶体的振荡频率范围是1.2~12 MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。MCS-51在通常应用情况下,使用振荡频率为6 MHz或12 MHz。 图3.3 时钟振荡电路 2. 时序 时序是用定时单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。 1) 节拍与状态 把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。 这样,一个状态就包含两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。 2) 机器周期 MCS-51采用定时控制方式, 因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1~S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、…、S6P2。由于一个机器周期共有12个振荡脉冲周期, 因此机器周期就是振荡脉冲的十二分频。 当振荡脉冲频率为12 MHz时,一个机器周期为1μs;当振荡脉冲频率为6 MHz时,一个机器周期为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引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图3.4(a),(b)所示。图3.4(a)为上电复位电路,它是通过外部复位电路的电容充电来实现的。在电源Vcc的上升时间不超过1ms就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。 (a) 上电复位电路,(b) 按键复位电路 图3.4 单片机常见的复位电路; 2.4 8051单片机的并行I/O口 1. P0口8位双向口线,其第一功能是作为通用的I/O口,CPU在传送输入/输出数据时。输出数据可以锁存,输入数据可以缓存;第二功能是当CPU访问外部存储器时,分时提供低8位地址和8位数据的复用总线。 电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。 2. P2口8位双向口线。其第一功能是当不带片外存储器时,作为通用I/O口;第二功能是8051带片外存储器时,与P0口配合,传送片外存储器的高8位。 2.5 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.6 8051单片机的定时/计数器 在单片机控制应用中,定时和计数的需求很多,为此在单片机中都有定时器/计数器,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的接口设计 3.1 并行I/O接口8155 3.1.1 8155内部功能结构及引脚 在实训电路中采用一种可编程的接口芯片8155,Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256 B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。 8155有40个引脚,采用双列直插封装,其引脚图和组成框图如下图所示。 C B A AD0 12 PA0 21 AD1 13 PA1 22 AD2 14 PA2 23 AD3 15 PA3 24 AD4 16 PA4 25 AD5 17 PA5 26 AD6 18 PA6 27 AD7 19 PA7 28 PB0 29 CE 8 PB1 30 RD 9 PB2 31 WR 10 PB3 32 IO/M 7 PB4 33 ALE 11 PB5 34 PB6 35 PB7 36 TIMEROUT 6 PC0 37 PC1 38 TIMERIN 3 PC2 39 PC3 1 PC4 2 RESET 4 PC5 5 8155 256 字节 静态 RAM 14 位 定时 计数器 TIMER IN TIMER OUT VCC(£«5 V) VSS(GND) PA0¡«PA7 IO/M CE ALE RD WR RESET AD0¡«AD7 PB0¡«PB7 PC0¡«PC7 图3.1 8155的引脚图和结构框图 下面我们对8155的引脚分类说明如下: (1) 地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。 (2) I/O口总线(22条):PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。 (3) 控制总线(8条): Ø RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。 Ø WR, RD:读/写线,控制8155的读、写操作。 Ø ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。 Ø CS:片选线,低电平有效。 Ø IO/M:RAM或I/O口的选择线。当=0时,选中8155的256 B RAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。 Ø TIMERIN、TIMEROUT:定时/计数器的脉冲输入、输出线 3.1.2 作片外RAM使用 当CE=0,IO/M=0时,8155只能做片外RAM使用,共256 B。其寻址范围由以及AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256 B RAM的操作使用片外RAM的读/写指令“MOVX”。 3.1.3 作扩展I/O口使用 当 CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分。 1) 命令/状态寄存器 Ø 和接口芯片8255一样,芯片8155 I/O口的工作方式的确定也是通过对8155的命令寄存器写入控制字来实现的。8155控制字的格式如下图所示。 Ø 命令寄存器只能写入不能读出,也就是说,控制字只能通过指令MOVX @DPTR, A或MOVX @Ri, A写入命令寄存器。 Ø 状态寄存器中存放有状态字,状态字反映了8155的工作情况。状态字的各位定义如下图所示。 Ø 状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令MOVX A ,@DPTR或MOVX A,@Ri来读出,以此来了解8155的工作状态。 2) 定时器高、低8位寄存器:关于定时/计数器高、低8位寄存器的使用,我们将在后面讲到定时器使用时再作介绍。 3.1.4 I/O口的工作方式 当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。 方式1、2时,A、B、C口都工作于基本I/O方式,可以直接和外设相连,采用“MOVX”类的指令进行输入/输出操作。方式3时,A口为选通I/O方式,由C口的低三位作联络线,其余位作I/O线;B口为基本I/O方式。方式4时,A、B口均为选通I/O方式,C口作为A、B口的联络线。 本设计的A,B,C三个I/O口都是作为基本输入输出I/O用的。A,B口为输出驱动16个LED,C口为输入完成按键扫描功能。 3.1.5 定时/计数器使用 8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由TIMEROUT输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率! 定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。 1) 定时/计数器的输出方式 2) 定时/计数器的工作 8155对内部定时器的控制是由8155控制字的D7、D6位决定的,现总结如下表所示。 3.2 8051单片机并行I/O扩展 使用单片机本身的I/O口,可以实现一些简单的数据输入/输出传送,但是对于复杂的I/O操作,必须有接口电路的协调与控制才能进行。 3.2.1 8051并行扩展总线 虽然系统扩展需要地址总线和数据总线,但在单片机芯片上并没有为此提供专用的地址引脚和数据引脚,实际扩展时都是由I/O口线来充当地址线和数据线。 1. 以P0口的8位口线充当低位地址线/数据线 由于P0口一线两用,既传送地址又传送数据,所以采用分时技术对它上面的地址和数据进行分离。使用分时技术被分离出的是低8位。 2. 以P2口的口线作高位地址线。P2口只作为高位地址线使用 3.2.2 8051单片机与8155的接口 8051和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。 8051与8155地址、数据线连接方法是,8051 P0口与8155的AD总线直接连接,既作为低8位地址总线,又作为数据总线。8051的地址锁存信号ALE与8155的ALE直接连接。如图所示 图3.2 8051与8155的连接 8155的CE接P2.7,IO/M端与P2.0相连。当P2.7为低电平时,若P2.0=1,访问8155的I/O口;若P2.0=0,则访问8155的RAM单元。由此得到图中8155的地址编码如下: 命令/状态口 7F00H A口 7F01H B口 7F02H C口 7F03H 定时器低字节 7F04H 定时器高字节 7F0。 第四章 单片机与8155的接口设计的应用 4.1 LED显示 发光二极管就是LED(Light Emitting Diode),是一种由磷化镓(GaP)等半导体材料制成的、能直接将电能转变成光能的发光显示器件。当其内部有一定电流通过时,它就会发光。发光二极管(LED)具有功耗低、体积小、可靠性高、寿命长和相应快等优点,早己广泛应用于仪器仪表、计算机、汽车、电子玩具、通讯、自动控制、军事等领域。 在这个设计里面我用的是16只灯,如图4.1所示。8155的A,B两个口加起来刚好就是16个I/O,我们只需要将一个16位二进制数(程序中一般习惯用十六进制表示如0x7FFF)送到8155的A,B口,由于我们的发光二极管(LED)是共阳极的接法,当8155的I/O口输出为低电平时对应的LED就点亮。我们只需要将初值(0x7FFF)不断地循环右移或左移那么就会看到LED轮流被点亮,也就实现了流水灯功能。在实际的操作中,我设计了几个流水模式,分别是一只灯亮,间隔两只灯亮,连续四只灯亮,间隔两组四只灯亮,连续八只灯亮和连续十二只灯亮。流水灯的几个模式实现方法都是一样的。只是初值不同而已。几种模式对应的寄存器初值如下:0x7FFF;0x7F7F; 0x0FFF; 0x0F0F; 0x00FF; 0x000F。如果我们把初值设定为0x0FFF那么同一时间内就会有4只LED点亮,最终的效果就是四只LED在跑。 为了控制流动速度,我使用了一个定时器来设定两次移位的间隔时间。此外我还设置了正转和反转,正转和反转其实就是循环左移和循环右移的区别。 图4.1 LED显示与按键扫描电路 4.2 按键扫描 本设计采用独立式按键接口设计。独立式按键是每个按键占用一根I/O端线。适用于按键数量较少的场合。特点:①各按键相互独立,电路配置灵活;②按键数量较多时,I/O端线耗费较多,电路结构繁杂;③软件结构简单。 1、按键开关去抖动问题 键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。消除抖动不良后果的方法: 软件去抖动:检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。 2. 按键扫描 设置8155的C口为输入模式,在没有按键按下的时候,8155接按键的几个I/O都被相应的上拉电阻拉为高电平,那么MCU读到的都是高电平;当有按键按下时,对应的I/O被接地,输入低电平,此时MCU从8155C口读到对应位为0,这些都是在按键扫描程序里面完成的,主函数中根据按键值可以设定一些控制操作。合理配合按键与状态变量还可以实现一个按键多种功能。在程序中,定义了一个16位的整型变量lamp,用来存储16个LED的数据。设初值为0x7FFF,启动50MS定时器,当按下开始键后置位开始标志,每隔50MS进行循环移一位,第一次移位后 为0xBFFF,第二次移位后为0xDFFF…… 图4.2 按键扫描流程图 第五章 结 论 单片机将不断的引导电子产品的创新,所以学好单片机的相关知识是十分必要的,例如单片机的组成及结构知识,单片机的指令系统,程序设计,还有相关的扩展应用知识,本设计就是一个很典型的也很简单的单片机扩展应用,此外还有接口技术等等。 本文的重要研究工作及结论如下: 1. 介绍了很经典的常用的MCS-51系列单片机,介绍了8051的引脚功能、存储器配置、并行输入输出电路、定时计数器等。 2. 介绍了并行扩展芯片8155,介绍了8155的命令状态寄存器,I/O口的工作方式,以及计数/定时器的使用。还有8051与8155的接口。 3. 介绍了单片机8051与并行接口芯片8155的接口设计的应用——流水灯(或叫跑马灯)。并设置了几个流水模式,让设计更显丰富。 这是一个非常简单的设计,通过本设计,本人对单片机与并行接口芯片的接口设计做了一些研究工作,并作出了实物,积累了一定的经验,为以后的科研和工作打下了坚实的基础 参考文献 1. 南建辉,熊鸣,王军茹 MCS-51单片机原理及应用实例 清华大学出版社 2004年3月 2. 何立民 单片机原理及系统设计(系统配置与接口技术) 北京航空航天大学出版社 1994年 3. 张迎新 单片微型计算机原理、应用及接口技术 国防工业出版社 1993年 4. 陈粤初 单片机应用系统设计与实践 北京航空航天大学出版社 1993年 5. 孙涵芳,徐爱卿 MCS-51/96系列单片机原理及应用(修订版) 北京航空航天大学出版社 2000年 6. 李广弟,朱月秀,冷祖祈 单片机基础(第三版) 北京航空航天大学出版社 2007年 毕业设计小结 2009年3月,我开始了我的毕业论文工作,时至今日,论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。 下面来对毕设总结一下: 1. 选定方案。拿到毕设题目要尽快选定系统方案,不能走一步看一步,必须把整体把握好。而我的这次毕设,反复更换了好几个方案才最终定下来做流水灯应用,这样大大浪费了时间。 2. 与老师和同学交流讨论。在做设计时一定会遇到很多问题,除了要独立思考外,还应多与老师及同学交流讨论,这样不仅能加深对知识的理解而且还能拓展知识。 3. 电路设计。在设计电路初期,由于没有设计经验,觉得无从下手,空有很多设计思想,却不知道应该选哪个,经过导师的指导,我的设计渐渐有了头绪,通过查阅资料,逐渐确立系统方案。 4. 软件的学习。由于需要做出实物,所以一定要学习相关的作图软件。在学习软件时一定要边做边学软件,下载一些软件教程的视频来看,然后边看边自己操作,千万不能拿着软件教程书从第一页开始看,这样效率太低。 5. 制作实物。作工科类毕业设计最好是能做出实物,如果条件允许的话。这样可以巩固理论知识,又可以提高动手能力,正所谓实践是检验真理的唯一标准。 附 录 //filename:mcu_8155.c //功能:流水灯 #include <reg51.H> #include <stdlib.h> #include <intrins.h> #define uchar unsigned char //定义uchar 为无符号字符型 8位 #define uint unsigned int //定义uint为无符号整型 16位 #define count_T1_L 0xB0 //T1定时器初值 50MS定时 #define count_T1_H 0x3C char xdata PortA _at_ 0x7F01; //A口地址 char xdata PortB _at_ 0x7F02; //B口地址 char xdata PortC _at_ 0x7F03; //C口地址 char xdata PortComd _at_ 0x7F00;//命令口地址 uchar count_Y=0; uchar count_N=0; uint lamp=0x7FFF; bit Flag_TM=0; //T1溢出中断标志 bit Flag_K=0; bit Flag_INV=0; /******************************************************/ void t1_int(void) interrupt 3 //T1溢出中断 { TL1=count_T1_L; //定时器初值 TH1=count_T1_H; Flag_T- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8051 单片机 流水 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文