1、1 题 目: 基于 AT89S52 单片机的模拟电梯设计 学院: 完成日期: 学生姓名: 班级: 专业: 电子信息科学与技术 电信 101 物理与电气学院 2 摘要: 单片机即单片微型计算机( Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。其中51单片机是各种单片机中最为典型和最有代表性的一种 ,广泛应用于各个领域 .电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电 设备,它是建筑中的永久垂直交通工具。 本论文选择 AT89S52 为核心控制元件, 使用宏晶公司的 ST
2、C89C51RC加外围器件作控制单元,用数码管显示, 使用单片机 C 语言进行编程制作 了一个八层 电梯模拟系统。其原理图可分为按键部分、显示部分、电机部分、最小系统部分。两个按键(一个电梯内,一个电梯外)对应一个楼层,另有开门、关门两个按键。芯片一旦检测到某楼层的按键被按下,就会在对应端口输出 5V 高电平驱动电机来到该楼层,程单序会延迟几分钟,等人进入电梯后,关门,去到要去的楼层。在整个过程中,数码管会显示楼层数。最小系统 为单片机提供时 钟信号和复位功能。 关键词: STC89C52 单片机 模拟电梯 四位一体数码管 3 目录 一、设计任务 . 错误 !未定义书签。 1.1 设计内容与要
3、求 . 错误 !未定义书签。 二、硬件系统实现 . 错误 !未定义书签。 2.1 AT89S52 芯片简介 . 错误 !未定义书签。 2.2 功能模块图 . 错误 !未定义书签。 2.3 显示模块 . 错误 !未定义书签。 2.4 复位开关模块 . 错误 !未定义书签。 2.5 振荡电路模块 . 错误 !未定义书签。 2.6 程序下载模块 . 错误 !未定义书签。 2.7 设计电路及连线 . 错误 !未定义书签。 三、 软件设计 . 错误 !未定义书签。 3.1 软件功能描述 . 错误 !未定义书签。 3.2 流程图设计 . 错误 !未定义书签。 3.3 单片机 C 语言程序 . 错误 !未定
4、义书签。 . 错误 !未定义书签。 . 错误 !未定义书签。 . 错误 !未定义书签。 . 错误 !未定义书签。 四、系统的调试 . 错误 !未定义书签。 4.1 硬件的调试 . 错误 !未定义书签。 4.2 软件的调试 . 错误 !未定义书签。 五、设计心得 . 错误 !未定义书签。 六、 参考文献 . 错误 !未定义书签。 4 一设计任务 1.1. 设计内容与要求 随着现代高科技的发展,住房 和办公用楼都已经逐渐向高层发展。电梯是高层宾馆、商店、住宅、多层仓库等高层建筑不可缺少的垂直方向的交通运输工具。 1889 年美国奥梯斯升降机公司推出的世界上第一部以电动机为动力的升降机,同年在纽约市
5、马累特大厦安装成功。随着建筑物规模越来越大,楼层也越来越高,对电梯的调速精度、调速范围等静态和动态特性都提出了更高的要求。由于传统的电梯运行逻辑控制系统采用的是继电器逻辑控制线路。采用这种控制线路 ,存在易出故障、维护不便、运行寿命较短、占用空间大等缺点。 电梯控制系统是比较复杂的一个大型系统,在计算机诞生的几十年 里,继电器控制系统为电梯控制的发展做了巨大的贡献,但在性能上和 PLC 还是有本质上的差距。在科技的不断发展下,单片机控制系统很快可以解决抗扰性,成为方便有效的电梯控制系统。 此单片机模拟电梯 用绿色发光二极管组成的箭头来指示电梯当前是处于上升状态还是下降状态 ,用数码管显示当前是
6、处于哪一层 ,用红色发光二极管指示电梯走到哪一层会停 .电源接通后 ,若没有人按下停止按键 ,它就以每层 2 秒的速度一直上下运行 ,若有人按下某一层的停止按键 ,它就会在相应的那一层停止 4 秒钟 ,并伴有开门和关门的声音提示。 二 硬件系统实现 2.1.AT89S52 芯片 5 AT89S52 低功耗高性能 CMOS 8 位单片机,片内 8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 FLASH 只读程序存储器,器件采用 ATMEL 公司 之 高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构 , 片
7、上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。单芯片上,拥有 8 位 CPU及在系统可编程 FLASH,使 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效之解决方案。 AT89S52 之 特点: 40 个引脚, 8k Bytes Flash 片内程序存储器,256 bytes 的随机存取数据存储器( RAM), 32 个外部双向输入 /输出( I/O)口, 5 个中断优先级 2 层中断嵌套中断, 2 个 16位可编程定时计数器 ,2 个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器 。 图 2.1 AT89S52 管脚图: AT89S52 功能: 8k 字
8、节 FLASH, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 /计数器,一 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。 AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 6 P0 口 8 位漏极开路之双向 I/O 口。作为输出口,每位能驱动8 个 TTL 逻辑电平。对 P0 端口写“ 1”时,引脚用作高阻抗输入。访问外部程序和数据存储器时, P0 口亦被作为低 8 位地址 /数据复用。在这种模式下, P0不具有
9、内部上拉电阻。在 FLASH 编程时, P0口亦用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需外部上拉电阻。 P1 口 有内部上拉电阻的 8 位双向 I/O 口, p1 输出缓 冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“ 1”时,内部上拉电阻把端口拉高,此时可作输入口用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。对 P1 端口写“ 1”时,内7 部上拉电阻把端口拉高,此时可作输入口用。作输入用时,被外部拉低的引脚因内部电阻,将输出电流( IIL)。此外, P1.0 及 P1.2 分别作定时器 /计数器 2 之 外部计数输入( P1.
10、0/T2)及时器 /计数器 2 之 触发输入( P1.1/T2EX),详见表 1 所示。在 flash 编程及校验时, P1口接收低 8 位地址字节。 表 2.1.1 引脚号 第二功能 P1.0 T2(定时器 /计数器 T2 的外部计数输入),时钟输出 P1.1 T2EX(定时器 /计数器 T2 的捕捉 /重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口 有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“ 1”时,内部上拉电阻把端口拉高,此时
11、可作输入口。作输入用时,被外部拉低的引脚因内部电阻,将输出电流( IIL)。 在访问外部程序存储器 或用 16 位地址读取外部数据存储器, P2 口送出高八位地址。在这种应用中, P2 口用很强的内部上拉发送 1。在用 8 位地址访问外部数据存储器时, P2 口输出 P2 锁存器之内容。在 FLASH 编程及校验时, P2 口亦接收高 8 位地址字节及一些控制信号。 P3 口 有内部上拉电阻的 8 位双向 I/O 口, p3 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“ 1”时,内部上拉电阻把端8 口拉高,此时可用作输入口。作输入用时,被外部拉低的引脚因内部电阻之原因,将输出
12、电流( IIL)。 P3 口亦作为 AT89S52 特殊功能(第二功能)用,如表 2 所示 。在 FLASH 编程及校验时, P3 口亦接收些控制信号。此外, P3 口亦接收些用于 FLASH 闪存编程及程序校验的控制信号。 表 2.1.2 RST 复位输入。振荡器工作时, RST 引脚有两个机 器周期以上高电平将是单片机复位。 端口引脚 第二功能 P3.0 RXD(串行输入口 ) P3.1 TXD(串行输出口 ) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时 /计数器 0) P3.5 T1(定时 /计数器 1) P3.6 WR(外部数据存储器写选通
13、 ) P3.7 RD(外部数据存储器读选通 ) 9 ALE/PROG 访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般, ALE 仍以时钟振荡频率的 1/6 输出固定之脉冲信号,故它可对外输出时钟或用于定时目的。需注意:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 FLASH 存储器编程期间,该引脚亦用于输入编程脉冲( PROG)。若必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 及 MOVC 指令方能将ALE 激活。此外,该 引脚会被微弱拉高,单片机
14、执行外部程序时,应设置 ALE 禁止位无效。 PSEN 程序储存允许( PSEN)输出是外部程序存储器之读选通信号, AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP 外部访问允许,要 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH), EA 端须保持低电平(接地)。需注意:若加密位LB1 被编程,复位时内部会锁存 EA 端状态。若 EA 端为高电平(接 Vcc端), CPU 则执 行内部程序存储器之指令。 FLASH 存储器编程时,该引脚加上 +12V
15、 的编程允许电源 Vpp,当然这须是该器件是使用 12V 编程电压 Vpp。 XTAL1 振荡器反相放大器及内部时钟发生电路之输入端。 XTAL2 振荡器反相放大器之输出端。 单片机最小系统 10 要使单片机工作起来,最基本的电路的构成为 1、 单片机电源: AT89S51 单片机的工作电压范围: 4.0V 5.5V, 所以通常给单片机外接 5V直流电源。连接方式为 VCC(40 脚):接电源 +5V 端 VSS(20 脚):接电源地端 2、时钟电路:单片机工作的时间 基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S51 单片机时钟频率范围: 0 33MHz。