单机片毕业论文---基于at89c51单片机间的多机通信的设计与仿真内容摘要:

一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划 “ a、 b、 c、 d、 e、 f、 g、 dp” 的同名端连在一起,另外为每个数码管的公共极 COM增加位选通控制电路,位选通由各自独立的 I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通 的数码管就不会亮。 通过分时轮流控制各个数码管的的 COM端,就使各个数码管轮流受控显示,这就是动态驱动。 ( 3) AT89C51方框图 图 23 AT89C51方框图 7 (二) 单片机 AT89C51 芯片简介 AT89C51是一种带 4K字节 FLASH存储器( FPEROM— Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。 AT89C2051 是一种带 2K字节闪存可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器 可以反复擦除 1000 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 [8]。 其引脚结构如下图 图 24 AT89C51 引脚图 ( 1) 与 MCS51 兼容 ( 2) 4K字节可编程 FLASH存储器 ( 3) 寿命: 1000写 /擦循环 ( 4) 数据保留时间: 10年 ( 5) 全静态工作: 0Hz24MHz ( 6) 三级程序存储器锁定 ( 7) 1288 位内部 RAM ( 8) 32可编程 I/O线 8 ( 9) 两个 16位 定时器 /计数器 ( 10) 5个中断源 ( 11) 可编程串行通道 ( 12) 低功耗的闲置和掉电模式 ( 13) 片内振荡器和时钟电路 VCC:供电电压。 GND:接地。 P0口: P0口为一个 8 位漏级开路双向 I/O口,每脚可吸收 8TTL 门电流。 当 P1口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部 程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH进行校验时, P0输出原码,此时 P0 外部必须被拉高。 P1口: P1口是一个内部提供上拉电阻的 8位双向 I/O 口, P1口缓冲器能接收输出 4TTL门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1 口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收 ,输出 4 个TTL 门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2口输出地址的高八位。 在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2口输出其特殊功能寄存器的内容。 P2口在 FLASH编程和校验时接收高八位地址信号和控制信号。 P3口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电 流。 当 P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如 下 所示: P3口管脚 备选功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) 9 /RD(外部数据存储器读选通) RST: 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN有效。 但在访问外部数据存储器时,这两次有效的 /PSEN信号将不出现。 /EA/VPP:当 /EA保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1时, /EA将内部锁定为 RESET;当 /EA端保持高电平时,此间内部程序存储器。 在 FLASH编程期间,此引脚也用于施加 12V编程电源( VPP)[9]。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.振荡器特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用 [10]。 如采用外部时钟源驱动器件, XTAL2 应不接。 有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。 在芯片擦操作中,代码阵列全被写“ 1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外, AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。 在闲置模式下, CPU 停止工作。 但RAM,定时器,计数器,串口和中断系统仍在工作。 在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止 [11]。 10 三、系统硬件设计 (一)总硬件电 路图 采用 atmel 公司的 AT89C51 单片机,一个主机两个从机共三片。 每片单片机的外围电路都有按钮 输入电路和 7 段数码管显示电路。 其中主机的 按钮 实现发送数据、 汇总 数据和 加1 数据修改命令的输入,数码管用来显示发送的数据、接收的数据和寄存器当前数据的显示。 从机的单个按键只用于寄存器的数值修改,用数码管显示接收的数据和当前寄存器值。 图 31 多机通信 系统电路图 和复位电路 单片机要能工作,必须给单片机加上 晶振 和复位电路, 晶振 电路如图 32(a)所示 , 复位电路如图 32( b)所示。 (a) 晶振电路 图 11 ( b)复位电路 图 图 32 时钟和复位电路 图 ( 二 )单元电路的设计 下面我们将系统设计作以详细的介绍。 本 多机通信 仿真 设计包括主机控制 电路( AT89C51)、 从机控制 电路、数字显示电路等几部分。 电路 主机 AT89C51编程可实现循环访问个从机, 共含有 3个操作扭, 分别为发送数据 扭(将主机数据发给从机) , 汇总数据 钮(汇总两从机数据之和) 和加 1按钮 (增加数据) , 3个数码管,左边的单独显示主机操作模式,右边两个共同显示主机数据。 主机电路如图 33所示。 图 33 主机 电路 图 从机可以 接受主机发送的数据,有加 1操作扭,可以输入 数据。 从机电路图如图 34所示。 12 图图 34 从机 电路 图 13 四、系统软件设计 三个单片机之间“一主二从”多机通信,主机将其数码管显示的内容发送给从机,并可将从机回发的数据求和并显示,每个单片机的现实数字通过各自的按键修改,主机控制信号发送和从机数据的汇总。 具体实现:主、从机的串口通信方式都采用查询方式,波特率为 9600Hz,从机地址有其 p1口的输入状态确定。 (一) 软件 总程序设计 程序设计流程图 如图 41 所示。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。