当前位置:
文档之家› AT89C51单片机综合设计
AT89C51单片机综合设计
机通信,主机可以将其数码管显示的内容发送给
每个从机,也可以采集每个从机数码管显示的数
值并求和后显示出来,每个单片机的数码管显示
值可以通过外接的按键进行设置。
训练目的:掌握MCS-51单片机间进行多机通信
的实现方法。
1.1 Proteus电路设计
1. 元件清单列表 打开Proteus ISIS编辑环境,按表1-1所列的清单添加元件。
通过此次设计将单片机软硬件结合起来对程序进行编辑、 校验,锻炼实践能力和理论联系实际的能力。 3. 设计任务 设计系统硬件; 设计系统软件; 编写设计说明书。
5.2 设计背景简介
LED点阵块具有亮度高、发光均匀、可靠性好、拼装方
便等优点,能构成各种尺寸的显示屏。目前,LED显示
3.3 电路设计
3.4 系统硬件实现 3.5 系统软件设计
2.1 Proteus电路设计 2.2 Proteus调试与仿真 2.3 用I2C调试器监视I2C总线 2.4 总结与提示
3.6 系统仿真
Proteus是目前最好的模拟单片机外围器件的工具,
与其他单片机仿真软件不同的是,它不仅能仿真单
片机CPU的工作情况,也能仿真单片机外围电路或
2. 电路原理图
元件全部添加后,在Proteus ISIS的编辑区域中 按图1-1和图1-2所示的主、从机电路原理图(晶振 和复位电路略)连接硬件电路。
图1-1 主机部分电路原理图
图1-2 从机部分电路原理图
1.2 Proteus调试与仿真
参照1.3.3节建立程序文件,加载目标代码文件, 在Proteus ISIS界面中,单击按钮 启动仿真。 主机操作如下: (1) 每按下“加1”键,数码管显示值加1,对应左边 的数码管显示“7”; (2) 每按下“汇总数据”键,主机数码管显示值变 为从机1的显示值+从机2的显示值之和,对应左边 的数码管显示“5”; (3) 每按下“发送数据”键,各从机的数码管显示 值均变为主机数码管所显示的数值,对应左边的数 码管显示“3”。
组成行数据传输端,如图3-5所示。通过数据端和时钟 端把数据传送到移位寄存器。
Q1 Q2 Q3 Q4
Q5 Q6 Q7 GND
8 7 6 5 4 3 2 1
595
10
11
12
13
14
15
16
9
Vcc Q0 DS OE
图3-5 74HC595管脚图
SH_CP DDS ST_CP MR OE
ST_CP SH_CP MR Q7'
屏必须采用超高亮度LED,而且为了进一步提高
亮度和增加可视距离,在一个像素内往往要封装 多只超高亮度LED。
5.3 电路设计
在电路设计中要考虑硬件的选型,硬件的选型应根据设计要 求和应用场合的限制选用。在此,选用行列控制器件是很关 键的,如果选用的器件达不到要求可能就会出现驱动能力不 足造成亮度不够,传送数据出错等一些问题,本LED显示系 统主要由AT89C51作为主控单元,列控制选用74HC138芯 片,行数据传输选用串入并出器件,74164和74595功能相 仿,都是8位串行输入转并行输出移位寄存器。74164的驱 动电流(25mA)比74595(35mA)的要小,14脚封装,体积也 小一些,而且74595的主要优点是具有数据存储寄存器,在 移位的过程中,输出端的数据可以保持不变,数码管没有闪 烁感。与164只有数据清零端相比,595还多有输出端时能/ 禁止控制端,可以使输出为高阻态。
图1-3 仿真运行片段1
图1-4 仿真运行片段2
1.3 总结与提示
在仿真刚开始的几秒钟,仿真系统还未完全就位,仿 真结果可能会不正常,稍停一会儿便可正常运行; 可将从机的串口工作方式改为采用中断方式进行编程 和仿真实验。
2. I2C总线应用技术
内容
I2C总线是一种用于IC器件之间的二线制总线。它通过 SDA(串行数据线)及SCL(串行时钟线)两根线在连到总 线上的器件之间传送消息,并根据地址识别每个器件。 本例使用串口通信I2C存储器24C01扩展AT89C51单片 机的数据存储器,完成读写操作。
U6
11 14 12 SH_CP DS ST_CP 10 13 MR OE 74HC595
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
ROW16 ROW17 ROW18 ROW19 ROW20 ROW21 ROW22 ROW23
U2
11 14 12 SH_CP DS ST_CP ROW8 ROW9 ROW10 ROW11 ROW12 ROW13 ROW14 ROW15 10 13 MR OE 74HC595 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7' 15 1 2 3 4 5 6 7 9
没有单片机参与的其他电路的工作情况。因此在仿 真和调试程序时,关心的不再是某些语句执行时单 片机寄存器和存储器内容的改变,而是从工程的角 度直接看程序运行和电路工作的过程和结果。对于
这样的仿真实验,从某种意义上讲,解决了实验和
工程应用间脱节的矛盾。
1. 单片机间的多机通信
内容:三个AT89C51单片机间进行“1主2从”多
1. 在电路中添加I2C调试器
在工具栏单击按钮,再在对象选择器中选择“I2C DEBUGGER”。将其中两引脚与单片机连接,其中 SCL接P3.0,SDA接P3.1。 2. 仿真监视
从图2-2中的I2C调试器窗口可以看到I2C总线在循 环读/写,窗口的左上角区域,记录了总线上的所有 活动,其中向左的蓝箭头表示I2C调试器作为从器 件监视总线上的活动。单击“+”,可显示详细的数 据,以字节,甚至以位的形式显示。其中:
2.4 总结与提示
本例中,如果将AT89C51单片机的时钟频率设置为 12MHz,则应将24C01属性中的{TD_WRITE=1m} 项改为{TD_WRITE=0.5m}。具体步骤为:双击
24C01元件,打开其属性编辑框,选中“Edit all
properties as text”项,然后进行修改。
2. 复位电路
单片机有多种复位电路,本系统采用电平式开关复
位与上电复位方式,电路如图3-4所示。当上电时,
C1相当于短路,使单片机复位,在正常工作时,按 下复位键时单片机复位。在有时碰到干扰时会造成 错误复位,但在大多数条件下,不会出现单片机错 误复位,而可能会引起内部某些寄存器错误复位,
如果在复位端加一个去耦电容,则会得到很好的效
果。
图3-3 时钟电路图
图3-4 复位电路图
3. 行数据传输电路 根据如图3-6所示的74HC595管脚图对控制端的说明为: MR(10脚)指低点平时将移位寄存器数据清零; SH_CP(11脚)指上升沿时数据寄存器的数据移位;Q1、 Q2、Q3、...、Q7指下降沿移位寄存器数据不变(脉冲宽 度:5V时,大于几十纳秒就行了,通常都选微秒级); ST_CP(12脚)指上升沿时移位寄存器的数据进入数据存 储寄存器,下降沿时存储寄存器数据不变。
菜单中调出“8051 CPU Internal (IDATA)
Memory”窗口和“I2C Memory Internal MemoryU2”窗口,观察单片机内部数据存储器和24C01存 储器相关单元的状态变化,如图2-2所示。
图2-2 仿真暂停时程序运行的中间结果
2.3 用I2C调试器监视I2C总线
从机操作如下: (1) 每按下“加1”键,数码管显示值加1;
(2) 运行中的数码管显示值随主机的操作而发生改变。
仿真运行片段如图1-3和图1-4所示。仿真过程中可
单击
按钮暂停仿真,从“Debug”菜单中调出
各个单片机的“8051 CPU Registers”窗口来观察各 单片机运行中相关寄存器的工作状态,如图1-4所示。
通常将RCK置为低电平,当移位结束后,在RCK端产生
一个正脉冲(5V时,大于几十纳秒就行了,通常都选微 秒级),更新显示数据;/G(13脚)指高电平时禁止输出 (高阻态)。如果单片机的引脚不紧张,用一个引脚控制 它,可以方便地产生闪烁和熄灭效果,这样比通过数据
端移位控制要省时省力。然后用三片74HC595串联起来
3. 24×24点阵LED汉字显示
3.1 设计任务及要求
1. 设计题目 基于单片机的24×24点阵LED汉字显示。 2. 设计要求与目的 实现LED点阵屏核心功能即汉字、数字、字母的多样化显示; 通过本次设计加深对单片机课程和仿真软件的认识和掌握以 及对仿真软件Proteus的应用进一步的了解; 掌握SPI串口进行数据传输的应用,并学会使用外部芯片辅 助项目设计;
2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图2-1 所示的原理图(晶振和复位电路略)连接硬件电路。
图2-1 电路原理图
2.2 Proteus调试与仿真
加载目标代码文件,执行以下操作: (1) 在Proteus ISIS界面中,单击按钮启动仿真;
(2) 仿真过程中单击按钮暂停仿真,从“Debug”
屏已被广泛应用于商场、车站等公共场合的文字图形显 示,并取得了很好的效果。
LED显示屏的种类较多,大致有以下四种分类法:一是 按室内室外分类,二是按工作方式分类,三是按颜色的
数量分类,四是按LED管的单位密度大小分类。
不同类型的显示屏用途不同,各有优缺点,室内 LED显示屏与户外LED显示屏差别很大,可根据 需要侧重选择。首先是亮度不同,室内屏的发光 亮度要比户外屏低出几倍到几十倍,因此,户外