基于单片机控制电梯灯毕业设计(编辑修改稿)内容摘要:
此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会 输出一个电流。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时, P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行 MOVX @Ri 指令)时, P2 口 线上的内容(也即特殊功能寄存器( SFR)区中 P2 寄存器的内容),在整个访问期间不改变。 Flash 编程或校验时, P2亦接收高位地址和其它控制信号。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/O口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉 电阻拉高并可作为输入端口。 作输入端时,被外部拉低的 P3口将用作上拉电阻输出电流。 P3口除了作为一般的 I/O口线外,更重要的用途是它的第二功能,如表 所示: 表 P3 端口引脚的第二功能 端口引脚 第二功能 RXD(串行输入口) TXD(串行输出口) /INT0(外中断 0) /INT1(外中断 1) T0 (定时/计数器 0) T1 (定时/计数器 1) /WR (外部数据存储器写选通 ) /RD(外部数据存储器读选通) RST:复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 DISRTO 位(地址 8EH)可打开或关闭该功能。 DISRTO 位缺省为RESET 输出高电平打开状态。 ALE/ ( /PROG):当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 即使不访问外部存储器, ALE 仍以时钟振荡频率的 1/6 输出固定的正脉冲信号,因此它可对外输出时钟 或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( /PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0位置位,可禁止 ALE操作。 该位置位后,只有一条 MOVX 深圳职业技术学院毕业 论文 /设计 用纸 第 12 页 共 36 页 和 MOVC 指令 ALE 才会被激活。 此外,该引脚会被拉高,单片机执行外部程序时,应设置 ALE无效。 /PSEN:程序存储允许( /PSEN)输出是外部程序存储器的读选通信号,当 AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即 输出两个脉冲。 当访问外部数据存储器,没有两次有效的 /PSEN 信号。 EA/VPP:外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为0000H— FFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1被编程,复位时内部会锁存 EA 端状态。 如 EA端为高电平(接Vcc 端), CPU则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚 加上 +12V的编程电压 Vpp。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 显示模块 显示电路采 用了 1 个 LED 数码管 ,单片机 I/O 的应用最典型的是通过 I/O 口与 7段 LED 数码管构成显示电路。 7段 LED 数码管,则在一定形状的绝缘材料上,利用单只 LED 组合排列成“ 8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出 09的数字。 LED 数码管根据 LED的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的。 因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。 将多只 LED 的阴极连在一起即为共阴式,而将多只 LED 的阳极连在一起即为共阳式。 以本设计共阴式为例,如把阴极接地, 在相应段的阳极接上正电源,该段即会发光。 当然, LED 的电流通常较小,一般均需在回路中接上限流电阻。 假如我们将 b和 c段接上正电源,其它端接地或悬空,那么 b和 c段发光,此时,数码管显示将显示数字“ 1”。 而将 a、 b、 d、 e和 g段都接上正电源,其它引脚悬空,此时数码管将显示“ 2”。 图 LED数码管 深圳职业技术学院毕业 论文 /设计 用纸 第 13 页 共 36 页 复位开关模块 MCS51 单片机的复位是靠外部电路实现的。 MCS51 单片机工作之后,只要在它的 RST 引线上加载 10ms 以上的高电平,单片机就能有效地复位。 MCS51 单片机通常采用上电自动复位和按键复位两种方式。 最简单的复位电路如下图: 图 复位开关 上电瞬间, RC 电路充电, RST 引线出现正脉冲,只要 RST 保持 10ms 以上的高电平,就能使单片机有效的复位。 在应用系统中,有些外围芯片也需要复位。 如果这些芯片复 位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。 振荡器电路模块 MCS51 单片机内部的振荡电路是一个增益反相放大器,引线 XTAL1 和 XTAL2 分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。 单片机内部虽然有振荡电路,但要形成时钟,外部还需要附加电路。 石英晶体振荡和陶瓷振荡均可采用。 输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 51 单片机 的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。 利用其内部的振荡电路 XTAL1 和 XTAL2 引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2 输出的时钟信号。 在 MCS51 单片机一般常用内部时钟方式,也就是在 XTAL1和 XTAL2之间连接晶体振荡器与电容构成稳定的自激振荡器,晶体和电容决定了单片机的工作时间精度为 1 微秒。 晶体可在 之间选择。 MCS51 单片机在通常应用情况下,使用振荡频率为 6MHZ 的石英晶体,而 12MHZ 频率的晶体主要是在高速串行通信情况下才 使用,在这里我用的是 12MHZ 石英晶体。 对电容无严格要求,但它 深圳职业技术学院毕业 论文 /设计 用纸 第 14 页 共 36 页 的取值对振荡频率输出的稳定性、大小及振荡电路起振荡速度有一点影响。 C1 和 C2 可在 20100PF 之间取值,一般情况取 30PF。 外部时钟方式是把外部振荡信号源直接接入 XTAL1 或 XTAL2。 由于 XTAL2 逻辑电平不是 TTL的,所以还要接一个上拉电阻。 程序下载模块 该模块完成的功能是把源程序代码下载到 AT89S51 芯片中,它需要和微机上的 ISP 下载器软件配合使用来完成这样的功能。 ISP 为在线编程接口, J2 为标准 10P JTAG 下载 接口。 ISP 在线编程接口为 89S51 单片机提供了方便的在线编程方法。 使用时将 ISP 下载线一端与 PC 并口相连接,一端与 ISP 接口相连,使用 ISP 下载软件即可实现 MCU在线编程。 下载线插接说明:两排十针下载口, 1号引脚的边上有一个小方框;下载线的凸口为正方向,凸口的右侧边的第一个插孔为 1 号引脚,这一点一定要切记,不然的话程序下载不进去。 设计电路及连线 图 电路连接图 深圳职业技术学院毕业 论文 /设计 用纸 第 15 页 共 36 页 第三章 软件设计 汇编语言简介 汇编语言是单片机程序设计语言的重要形式,也是当今单片机开发人员进行程序开发最常用的语言形式。 汇编语言是一种用来替代机器语言进行程序设计的语言。 汇编语言的特点是每一条指令都给出了助记符。 由于助记符用英文缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。 汇编语言源程序中的每条语句可以有多项构成,其格式如下: [标号 ]:操作码助记符 [第一操作数 ] [,第二操作数 ] [,第三操作数 ] [;注释 ] 其中,带方括号 [ ]的部分为可选项。 在单片机系统设计中,程序设计是重要的一环,它的质量直接影响到整个系统的功能,用汇编语言进行程序设计的过程大致可以分为以下几个步骤: ( 1) 明确课题对程序功能、运算精度、执行速度等方面的要求及硬件条件。 ( 2) 把复杂问题分解为若干个模块,确定各模块的处理方法,画出程序流程图。 对复杂问题可分别画出分模块流程图和总的流程图。 ( 3) 存储器资源分配,如各程序段的存放地址、数据区地址、工作单元分配等。 ( 4) 编制程序,根据程序流程图精心选择合适的指令和寻址方式来编制源程序。 ( 5) 对程序进行汇编、调试和修改。 将编制好的源程序进行汇编,并进行目标程序、检查修改程序中的错误,对程序运行结果进行分析,直到正确为止。 深圳职业技术学院毕业 论文 /设计 用纸 第 16 页 共 36 页 流程图设计 初始化 按键查询 1 层按键按下 2 层按键按下 5 层按键按下 6 层按键按下 3 层按键按下 7 层按键按下 4 层按键按下 8 层按键按下 对 应中断程序 深圳职业技术学院毕业 论文 /设计 用纸 第 17 页 共 36 页 图 主程序流程图 该图为电梯上升时的流程,任意按键按下时则进入相应的中断程序,否则一直进行 1 到 8 层按键的循环检测。 电梯下降时则进行 8 到 1 层按键的循环检测。 程序设计 此单片机模拟电梯 用绿色发光二极管组成的箭头来指示电梯当前是处于上升状 态还是下降状态 ,用数码管显示当前是处于哪一层 ,用红色发光二极管指示电梯走到哪一层会停 .电源接通后 ,若没有人按下停止按键 ,它就以每层 2秒的速度一直上下运行 ,若有人按下某一层的停止按键 ,它就会在相应的那一层停止 4秒钟 ,并伴有开门和关门的声音提示。 程序初始化 TCOUNT EQU 4CH CENG EQU 4DH ORG 0000H LJMP START ORG 000BH LJMP INT0X ORG 0030H。 初 始化。 START: MOV TMOD,01H MOV TH0,3CH MOV TL0,0B0H。 50MS MOV IE,82H SETB TR0 MOV TCOUNT,4 CLR F0 MOV 20H,0 MOV R0,30H MOV R1,30 QING: MOV @R0,00H INC R0 DJNZ R1,QING。 把 30H到 4DH这 30个单元清 0 深圳职业技术学院毕业 论文 /设计 用纸 第 18 页 共 36 页 MOV P0,06H MOV P3,0F8H 主程序调用 XUN: JB ,ONE LCALL YS10MS JB ,ONE。 判断一层的停止按键是否按下 CLR。 若按下则把对应的红色发光二极管点亮 ONE: JB ,TWO LCALL YS10MS JB ,TWO。 判断二层的停止按键是否按下 CLR。 若按下则把对应的红色发光二极管点亮 TWO: JB ,THR LCALL YS10MS JB ,THR CLR THR: JB ,FOU LCALL YS10MS JB ,FOU CLR FOU: JB ,FIV LCALL YS10MS JB ,F。基于单片机控制电梯灯毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。