51单片机总线设计全攻略

合集下载

51单片机I2C总线

51单片机I2C总线

51单⽚机I2C总线I2C总线是飞利浦公司推出的⼀种串⾏总线,所有器件共⽤两根信号线,实现数据的传输。

总线接⼝接了上拉电阻,默认为⾼电平,所以就可以⽤“当低电平出现”来标记出⼀种起始信号。

我个⼈把它想象成:许多⼈在⼀条⾛廊上的不同房间(器件)⾥,⼤家都把门打开,连出两根长长的听筒(⼩时候玩的那种),每个⼈都从两根⼤主线上各接⼀根到⾃⼰房间⾥。

两根听筒平时都是安静的(1)。

如果有某房间的⼈叫了⼀声(0),那剩下的⼈就知道,我们准备开始通话了。

为了保证秩序,⼤家选出⼀个⼈当领队,由他来主导通话的过程。

这就是总线的主机,其他⼈就是从机。

从机有多个,主机只有⼀个。

两根信号线,⼀根叫数据线SDA,⼀根叫时钟线SCL。

顾名思义,数据线⽤来传输数据,时钟线⽤来管理顺序。

怎么样表⽰开始,怎么样表⽰结束,⽤下⾯的图表⽰。

注意有严格的时间规定。

⾸先,我们知道怎么样算是通话的开始和结束(起始信号和终⽌信号)。

然后,规定怎样算是回答“可以”,怎么算是回答“不可以”(应答和⾮应答)。

接着,我们要知道谁向谁喊话,所以要给每个房间的⼈都赋予⼀个名字,也就是地址。

再⽤⼀个0或1表⽰⽅向,从谁到谁。

因此,数据传输的过程,⼤体就是如此:领队喊出“开始”,说出⼀个房间名,同时,所有房间的⼈确认是不是⾃⼰的。

领队表明⽬的,说出是向他传数据,还是从他那读数据;然后,确认是⾃⼰房间的队员给出应答,可以就开始传输数据。

完成后,主机/从机给出应答,表明收到了没有。

下⾯就是SDA上传送的数据格式。

(a)主机向从机发送数据S表⽰起始信号。

阴影表⽰主机发送。

A表⽰应答,上加划线表⽰⾮应答。

P表⽰停⽌。

(b)主机发送数据后,从从机读数据(c)传输过程中,想改变⽅向⽅法是,重复⼀次起始信号和从机地址,加⼀个⽅向位来改变⽅向。

SCL是⽤来管秩序的。

只要SCL保持⾼电平状态,SDA正在传的数据就不能乱动,只有把它拉低以后,SDA才能变化。

这样确保数据传输不会乱套,所以在实际的传输过程中,SCL会不断地翻转。

MCS51单片机总线系统与IO口扩展

MCS51单片机总线系统与IO口扩展

6.2.2 单片机总线扩展的编址技术
OE
LE
Dn
Qn
L
H
H
H
L
H
L
L
L
L
L
Qn-1
L
L
H
Qn-1
H
×
×
Z
地址锁存器74LS373
CLR D0-D7Q0-Q7 4 6 2 6 74LS24474LS273 E 0123456789E GG 12Q0-Q7CLKD0-D7AAAAAAAAAAA10A11A12I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OWCE1CE2 56? UUU P0.0-P0.7P0.0-P0.7 +5V 11 01234567 E >> QQQQQQQQ O 01234567 E DDDDDDDDL 2 U74LS373 012 YYY ABC 3 U74LS138 R AD E R P20P07P21P06P22P05P23P04P24P03P25P02P26P01P27P00 W ALE 89C51 1 U
MOV
DPTR,#0FEFFH ;确定扩展芯片地址
MOVX
A,@DPTR
;将扩展输入口内容读入累加器A
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线 输入为0。
6.2.1 单片机I/O口扩展
输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端 有效,选通74LS273, P0上的数据锁存到74LS273的输出端,控制发光二极管 LED , 芯 片 地 址 与 74LS244 的 选 通 地 址 相 同 ( 都 是 ×××× ×××0 ×××× ××××B,通常取为FEFFH)。当某线输出为0时,相应的LED发 光。

MCS-51 单片机总线及接口技术分析

MCS-51 单片机总线及接口技术分析

MCS-51单片机总线及接口技术分析曾绮摘要:本文开始总体上描述了总线与接口的作用及它们之间的关系,然后以MCS-51单片机为例介绍了单片机的三种总线:数据总线、地址总线、控制总线。

并依据典型的开发板原理图,介绍了51单片机与矩阵键盘,LCD液晶屏等的借口电路。

对51单片机的引脚功能和读写时序进行了具体介绍。

关键字:MCS-51 总线接口键盘LCD1.总线与接口综述计算机中多个功能部件共享的一组信息传输线称为总线,而接口则是两个系统或子程序交接并通过它彼此作用的部分。

计算机总线按照其所处的层次分类可分为片内总线、内部总线、系统总线和外部总线。

接口按照其传输数据的方式分类课分为串行接口和并行接口。

其实总线与接口是密不可分的,它们一起构成了计算机或嵌入式系统各功能模块之间的信息传输通道。

MCS-51 单片机主要应用于嵌入式应用中,即单片机并不作为独立的设备,而是作为其他设备的智能核心,在设备中起到检测、处理和控制等作用。

在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。

这些引脚构成MCS-51单片机片外三总线结构,即:①地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K 字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。

②数据总线(DB):数据总线宽度为8位,由P0提供。

③控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。

其中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(外部数据存储器读脉冲)2 STC开发板应用举例下面以STC开发板的原理图为例介绍其外部接口:2.1芯片引脚图:以上是双列直插的51单片机的外部引脚图,图中显示出了第9、18、19脚的使用方法。

51 系列单片机总线时序分析与编址技术

51 系列单片机总线时序分析与编址技术

址线, 很容易扩展到8 只LED 数码管,WR 信号分别与A8~A15 按或关系连接, 每位地址线均为低电平有效, 即可实现8 个有效地址。

该方案电路简单, 但有效地址数太少, 不适用于复杂系统设计。

2.低8 位地址锁存通常的设计电路是使用8D 锁存器74LS373实现地址锁存, 74HC573 与之逻辑功能相同, 只是引脚布局不一样, 使用74573 布线更容易。

74LS373 真值表如图4所示: 在输出允许OE 为L、控制使能LE 为H 时, 输出为跟随状态;OE 为L、LE 为L 时, 输出为保持状态。

地址锁存电路如图5 所示。

OE 接地, LE 接单片机的ALE脚将产生满足时序的低8 位地址信号。

执行以下三条指令会得到如图6所示的时序图:MOV DPTR, # 0FF55H;低8 位地址为55HMOV A, # 0AAH; 待发送数据0AAH→A( 55H 取反)MOVX, @DPTR, A;A 中的0AAH送地址为0FF55H 的对象中会。

从图6 中可以看出, P0 口先送55H, 在ALE 下降沿实现地址锁存, 随后送出数据0AAH, 在WR 有效( 低电平) 期间锁存器输出低8 位地址55H,P0 口送出数据0AAH。

3.带译码器的复杂地址接口电路理论上高8 位地址线可以产生256 个有效地址, 如何实现地址“扩展”呢? 地址扩展准确描述是地址译码, 例如3 根地址线可以译码成8 个地址, 4根译码成16 个有效地址。

这里选择3- 8 译码器实现地址译码, 电路图以及对应的编址如表1 所示。

Y7, 这样LCD 的四个驱动地址( 数据读写和命令读写) 为0CFFFH 到0FFFFH ( 无关位为1) 或者8700H 到0B700H( 无关位为0) 。

有些时候单片机引脚不够用, 还要进行扩展, 输入口扩展电路如图10 所示, 利用74HC573( 74LS373) 的高阻态功能,将其输出Q0~Q7 接P0 口, 在满足总线地址读操作中, 可以把输入InPORT的数据读入单片机的累加器, 地址为0F8FFH 或8000H。

单片机总线设计方法

单片机总线设计方法

单片机总线设计法全攻略1、目前广大工程师在设计单片机系统时的两种方案之我见针对51单片机,工程师们在设计系统时,从宏观上讲无非就是两种方案:总线式设计方案和非总线式设计方案。

所谓总线式设计方案就是利用51单片机的读写外部RAM功能,将要设计的外部设备(比如说键盘、液晶等)统统挂到单片机总线上,使其统一按类似读写外部RAM功能的指令方法进行操作;而所谓非总线式设计方案,则是不利用单片机的读写外部RAM功能,而直接利用I/O 口读写方式进行外部设备的读写,比如说LED灯、液晶等,因为液晶有两种读写方式,总线方式和模拟I/O方式(贵刊也有文章介绍过),而这里读写液晶的模拟I/O方式就是这里我要说的非总线式设计方案。

那么这两种方案到底哪一种好呢?说这句话可能有点外行,我自己也这样认为,但是为了更好的让初学者了解其中的道理,我还是班门弄斧简单阐述一下:首先要说明,我的这种阐述是建立在有读写外部RAM功能的单片机的基础之上的。

我个人认为,两种方案各有利弊:对于总线式设计方案来说,优点就是能够充分发挥单片机的总线读写功能,系统一旦设计完成,易于日后的升级和扩展。

缺点是灵活性差,硬件连接比较固定;同时由于单片机读写总线时必定要产生一定的总线时间延迟,这样对于低速的单片机来说,如果设计的系统非常庞大的话,那就需要设计人员考虑一下实时性要求了,但是根据我个人多年来的开发经验来说,只要设计得当,一般问题不大,但还是将此问题摆出来,让大家商榷。

对于非总线式设计方案来说,最大的优点就是灵活性强,这种方案可以根据设计者的爱好自由选择单片机端口进行外围设备的设计(当然是要在符合设计原则的前提下),缺点是升级需要重新设计电路图。

2、总线法设计单片机系统的原理和方法2.1 总线法设计原理简介总线式设计方案对于很多的初学者来说是比较困难的,因为对于这种方法来说,牵扯到单片机和外围设备时序逻辑的分配、地址空间的分配、总线驱动能力等等的问题,一旦设计不好,系统便无法启动,或者说部分模块无法工作。

51单片机综合学习系统之 IIC总线学习篇.

51单片机综合学习系统之 IIC总线学习篇.

大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了使用无线遥控模块的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习IIC总线的基本原理与应用实例。

先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC 总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。

上图是我们将要使用的51单片机综合学习系统硬件平台,如图1所示,本期实验我们用到了综合系统主机、板载的AT24C02芯片,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。

在很多电子设备中都有要随时存取数据作为历史记录或标志位。

目前常用的存储器有24CXX系列和93CXX系列,前者是I2C总线结构,后者是SPI总线结构,本小节先介绍I2C结构的EEPROM(24CXX)作用方法,在后面小节中再介绍SPI结构的EEPROM(93CXX)使用方法。

I2C总线基本概念I2C总线,是INTERINTEGRATEDCIRCUITBUS的缩写,即“内部集成电路总线”。

I2C总线是Philips公司推出的一种双向二线制总线。

目前Philips公司和其它集成电路制造商推出了很多基于I2C总线的外围器件。

I2C总线包括一条数据线(SDA)和一条时钟线(SCL)。

协议允许总线接入多个器件,并支持多主工作。

总线中的器件既可以作为主控器也可以作为被控器,既可以是发送器也可以是接收器。

总线按照一定的通信协议进行数据交换。

在每次数据交换开始,作为主控器的器件需要通过总线竞争获得主控权,并启动一次数据交换。

系统中各个器件都具有唯一的地址,各器件之间通过寻址确定数据接收方。

I2C总线的系统结构一个典型的I2C总线标准的IC器件,其内部不仅有I2C接口电路,还可将内部各单元电路划分成若干相对独立的模块,它只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。

基于51单片机的CAN总线系统设计

基于51单片机的CAN总线系统设计

基于51单片机的CAN总线系统设计0 引言随着20世纪80年代初期德国Bosch公司提出CAN(Controller Area Network)总线,即控制器局域网方案以解决汽车控制装置问的通信问题。

经过20多年的发展,CAN总线现在广泛的应用在汽车领域,在汽车控制系统中应用CAN总线可以使硬件方案的软件化实现,大大地简化了设计,减小了硬件成本和设计生产成本,数据共享减少了数据的重复处理,节省了成本,可以将信号线减到最少,减少布线,使成本进一步降低等优点。

由于CAN总线通信的高性能、高可靠性、及独特的设计和适宜的价格可以广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,所以被公认为是几种最有前途的现场总线之一。

1 系统总体设计CAN总线系统总体结构如图1所示,主要包括上位机控制软件、USB-CAN转换模块、CAN节点、CAN总线介质(本处采用双绞线)组成。

其中一个CAN节点通过USB接口与PC 机相连,上位机控制软件能实时显示各CAN节点的数据且能通过上位机软件向各个CAN 节点发送数据以控制各节点的8个发光二极管的亮或灭。

2 系统硬件电路本系统由单片机外围电路、CAN总线硬件电路和USB-CAN转换电路组成。

单片机外围电路包括电源电路模块、复位电路模块、串口通信模块。

CAN总线硬件电路包括电气隔离模块、光耦隔离模块、CAN驱动器电路。

USB-CAN转换电路包括CH375与单片机接口电路模块和USB接口电路模块。

C8051F040单片机内部的控制器局域网(CAN)控制器是一个协议控制器,不提供物理层驱动器(即收发器),需要外部重新接入物理层驱动器。

本处采用TJ1050,TJA1050是控制器区域网络(CAN)协议控制器和物理总线之间的接口,是一种标准的高速CAN收发器。

TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能。

TJA1050是PCA82C250和PCA82C251高速CAN收发器的后继产品。

51单片机三线串行总线的虚拟接口设计

51单片机三线串行总线的虚拟接口设计
矗乱
的时序 和运行状 态 ,在单片机 上构建 模拟 的 串行 口,亦 即严 格遵循 数据传输 时序设 计数据 传输子 程序 ,设计 时常用 到软
件延时方法 ,一 定要精确设计延 时时间 [ 2 1 。三线串行总线器件

般使 用时钟信 号线 、数据 I / O线 和片选/ 复位线 进行 半双工
是 常用的三线 串行总线器件 ,它们 都使 用时钟信 号线、数据 I / O线和片选/ 复位线进行半双工 同步 串行数据传输 ,但
数 据 传 输 时 序 各 不 相 同 ,在 单 片机 上 它 们 的 虚 拟 串行 接 口需 分 别 独 立 设 计 ,设 计 时要 严 格 遵 循 器 件 的 数 据 传 输 时 序。
用于单片机 的 C N和 U B标准 串行 总线 l A S l l ,另外 还 出现了一 些专用非标 准的三线 串行总线 。5 1系列单片 机的 串行 系统扩 展通常采用串行 同步传输方式 ,用几个 并行 I / O口虚拟 串行 口
() X1 2 3 、X :振 荡 源 ,外 接 3 . 8 Hz 2并行 扩展 和 串行 扩展 ,串行扩 展 占用 I 口少 、电路简单 ,从而能有效缩小硬件体 积 、降低功 / 0 耗 ,近 年来 得到 了广泛 应用 。除 了早 期传 统 的 U R A T串行 口 以外 ,后 来陆续出现了 IC、S I - R 2 P 、1WI E等标 准串行总线和
关键词 : 单片机 ;串行 总线 ; 拟接 口 ; S 3 2; L 5 1C T C 4 C 虚 D 1 0 T C 6 5 P; L 5 9 P
Vit a n e f c sg fTh e - i e S ra si M ir c n r l rUn t r u l t r a e De i n o r e W r e i l I Bu n 5 c o o t o l i 1 e

51单片机与RS485应用电路图

51单片机与RS485应用电路图

1 问题的提出在应用系统中,RS-485半双工异步通信总线是被各个研发机构广泛使用的数据通信总线,它往往应用在集中控制枢纽与分散控制单元之间。

系统简图如图1所示。

图1. RS-485系统示意图由于实际应用系统中,往往分散控制单元数量较多,分布较远,现场存在各种干扰,所以通信的可靠性不高,再加上软硬件设计的不完善,使得实际工程应用中如何保障RS-485总线的通信的可靠性成为各研发机构的一块心病。

在使用RS-485总线时,如果简单地按常规方式设计电路,在实际工程中可能有以下两个问题出现。

一是通信数据收发的可靠性问题;二是在多机通信方式下,一个节点的故障(如死机),往往会使得整个系统的通信框架崩溃,而且给故障的排查带来困难。

针对上述问题,我们对485总线的软硬件采取了具体的改进措施2 硬件电路的设计现以8031单片机自带的异步通信口,外接75176芯片转换成485总线为例。

其中为了实现总线与单片机系统的隔离,在8031的异步通信口与75176之间采用光耦隔离。

电路原理图如图2所示。

图2 改进后的485通信口原理图充分考虑现场的复杂环境,在电路设计中注意了以下三个问题。

2.1 SN75176 485芯片DE控制端的设计由于应用系统中,主机与分机相隔较远,通信线路的总长度往往超过400米,而分机系统上电或复位又常常不在同一个时刻完成。

如果在此时某个75176的DE端电位为“1”,那么它的485总线输出将会处于发送状态,也就是占用了通信总线,这样其它的分机就无法与主机进行通信。

这种情况尤其表现在某个分机出现异常情况下(死机),会使整个系统通信崩溃。

因此在电路设计时,应保证系统上电复位时75176的DE端电位为“0”。

由于8031在复位期间,I/O口输出高电平,故图2电路的接法有效地解决复位期间分机“咬”总线的问题。

2.2 隔离光耦电路的参数选取在应用系统中,由于要对现场情况进行实时监控及响应,通信数据的波特率往往做得较高(通常都在4800波特以上)。

51单片机总线接口仿真PPT课件

51单片机总线接口仿真PPT课件

U6
2 S10 5 S11 6 S12 9 S13 12 S14 15 S15 16 S16 19 S17
P0.0 3 P0.1 4 P0.2 7 P0.3 8 P0.4 13 P0.5 14 P0.6 17 P0.7 18
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
AT89C52
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
对象1
数据总线 DB 地址总线 AB 控制总线 CB
对象2
对象n
-
3
三总线控制原理图
CPU
对对 象象
12
一个电路总是由元器件通过电线连接而成的在模拟电路中连线并丌成为一个问题因为各器件间一般是串行关系各器件之间的连线并丌很多但计算机电路却丌一样它是以微处理器为核心各器件都要不微处理器相连各器件之间的工作必须相互协调所以需要的连线就很多了如果仍如同模拟电路一样在各微处理器和各器件间单独连线则线的数量将多得惊人所以在微处理机中引入了总线的概念三总线扩展示意图单片机对象1对象2对象n数据总线db地址总线ab控制总线cbxtal218xtal119rstp30rxd10p31txd11p32int012p33int113p34t014p37rd17p36wr16p35t115ad0
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
2 5 6 9 12 15 16 19
U3
23 22 21 20
A B C D
18 19
E1 E2
1 11

51单片机引脚及总线结构

51单片机引脚及总线结构

制电路发出相应的控制信号, 完成指令所指
定的操作。
4. 程序计数器PC(Program
Counter)
PC 用于存放 CPU 下一条要执行的指令地址 , 是一个 16 位的专用寄存器, 可寻址范围是0000H~0FFFFH共 64 K.。 程序中的每条指令存放在ROM区的某一单元, 并都有自己 的存放地址。 CPU 要执行哪条指令时, 就把该条指令所在 的单元的地址送上地址总线。 在顺序执行程序中, 当PC的 内容被送到地址总线后, 会自动加 1, 即(PC)← (PC)+1, 又 指向CPU 下一条要执行的指令地址。
1. 机器周期和指令周期
(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉 冲信号的振荡源的周期。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡 周期经二分频后得到的。 (3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也 就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个 独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。 MCS 51 系统中, 有单周期指令、双周期指令和四周期指令。
(80H~FFH)为特殊功能寄存器区SFR。
在低 128 字节RAM中, 00H~1FH共 32 单元是 4 个通用
工作寄存器区。每一个区有 8 个通用寄存器R0~R7。寄存器
和RAM地址对应关系如表 2.4。
表 2.4 寄存器与RAM 地址对照表
表 2.5 RAM中的位寻址区地址表
表 2.6 SFR特殊功能寄存器地址表
2. MCS - 51 指令的取指/执行时序
图 2 7

片机教程51系列单片机读写IIC总线

片机教程51系列单片机读写IIC总线

测试步骤和注意事项
测试步骤和注意事项
01
3. 发送IIC总线读写命令,检查数据传输是否正确。
02
4. 重复测试,验证稳定性。
注意事项
03
1. 确保电源稳定,避免因电源波动导致IIC总线不稳定。
2. 确保连接线缆质量良好,避免因线缆问题导致信号传输错误。
3. 在测试过程中,避免频繁开关电源或拔插线缆。
51系列单片机读写IIC总线调试与测试
软件工具
串口调试助手、IIC调试器等。
调试方法
通过观察IIC总线的信号波形、电压值等参数,判断IIC总线是否正常工作。
硬件工具
万用表、示波器、逻辑分析仪等。
调试工具和方法
1
2
3
测试步骤
1. 连接IIC总线,确保单片机、传感器等设备正确连接。
2. 配置单片机IIC总线参数,如地址、速率等。
是8051的改进版,增加了一些功能,如更多的I/O端口、定时器等。
是8051的增强版,具有更高的处理速度和更大的内存。0302源自0151系列单片机介绍
SDA(串行数据):用于传输数据。
SCL(串行时钟):用于同步数据传输。
双向数据线:SDA线是双向的,可以用于发送和接收数据。
IIC总线硬件接口
为单片机提供稳定的电源。
工业控制实例
在医疗设备中,以血压计为例,通过51单片机读写IIC总线,实现血压数据的采集、处理和显示,同时可将数据传输至云平台进行分析。
医疗设备实例
应用实例解析
应用前景展望
随着物联网技术的不断发展,51系列单片机读写IIC总线的应用将更加广泛,特别是在智能家居、工业控制等领域,具有广阔的市场前景。
IIC总线具有寻址能力,可以通过地址码识别目标设备。

简单51单片机开发板的电路设计

简单51单片机开发板的电路设计

简单51单⽚机开发板的电路设计⼀、摘要本⽂给出了⼀个简单51单⽚机开发板的电路设计,完成了其原理图的绘制和PCB图的制作。

着重介绍使⽤protel99SE画出的电路设计原理图,接着是对电路各个模块功能的分析,然后是电路所⽤主要芯⽚和其他重要元件的功能介绍以及内部封装和引脚分布,最后介绍⽤protel99SE画出的PCB板。

此开发板具有串⼝通信、液晶显⽰、流⽔灯、扩展、RTC时钟、复位、外部中断、外部存储、A/D D/A转换、报警、继电器控制等开发功能。

关键字:51单⽚机开发板protel99 PCB⼆、实验所⽤元器件及其介绍2.1、清单2.2 主要芯⽚引脚图和实物图2.21 STC89C52图2.21(1) STC89C52引脚图图2.21(2) STC89C52实物图2.22 8255图2.22 8255引脚图2.23 DS1302图2.23(1) DS1302引脚图2.24 24C08图2.24(1) 24C08引脚图表2.24 24C08功能表图2.24(2) 24C08 实物图2.25 MAX232图2.25(1)MAX232引脚图表2.25 各引脚功能及推荐⼯作条件图2.25(2) MAX232 实物图2.26 ADC0809图2.26(1) ADC0809 引脚图图2.26(2)ADC0809实物图2.27 DAC0832图2.27(1)DAC0832引脚图图2.27(2)DAC0832实物图2.3 其他元件和重要电容2.31 USB接⼝图2.31(1)USB封装尺⼨图2.31(2)USB外观图图2.31(3)USB接⼝定义2.32 HRS4-S-DC5V继电器图2.32(1) HRS4-S-DC5V继电器封装尺⼨图2.32(2)HRS2-S-DC5V继电器外观2.33 ⾃锁开关(⽤于原理图中的单⼑双掷和单⼑单掷开关)图2.33 六脚⾃锁开关三、电路设计分析与结果3.1 开发板设计简介3.1.1主芯⽚简介STC89C52是STC公司⽣产的⼀种低功耗、⾼性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。

利用51单片机实现SPI总线通信

利用51单片机实现SPI总线通信
2:基本要求 本设计采用三线式 SPI 总线,一条时钟线 SCK,一条数据输入线 MOSI,一
条数据输出线 MISO。时钟极性 CPOL=0,时钟相位 CPHA=0。
二:设计思路
1:掌握 51 单片机和 SPI 总线通信的工作原理; 2:利用 1 中的原理设计 SPI 总线通信发送和接受电路; 3:编程模拟 SPI 时序,包括串行时钟、数据输入和输出; 4:利用 Protues 软件仿真,观察结果; 5:顺利仿真后,下载到开发板实现串行通信功能。
SPI 接口是在 CPU 和外围低速器件之间进行同步串行数据传输,在主器件 的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输 速度总体来说比 I2C 总线要快,速度可达到几 Mbps。
2:SPI 总线工作原理 SPI 总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以 串行方式进行通信以交换信息。SPI 有三个寄存器分别为:控制寄存器 SPCR, 状态寄存器 SPSR,数据寄存器。外围设备、网络控制器、LCD 显示驱动器、A/D 转换器和 MCU 等。
4
#include<STDIO.H> //--------------------------sbit SPICLK = P1^0; //时钟信号 sbit MOSI = P1^1; //主器件数据输出,从器件数据输入 sbit MISO = P1^2; //主器件数据输入,从器件数据输出 sbit SS = P1^3; //从器件使能信号 //--------------------------void Nop(void)
2
接口包括以下四种信号: (1)MOSI – 主器件数据输出,从器件数据输入; (2)MISO – 主器件数据输入,从器件数据输出; (3)SCLK – 时钟信号,由主器件产生; (4)SS –从器件使能信号,由主器件控制,有的 IC 会标注为 CS(Chip select)。 在点对点的通信中,SPI 接口不需要进行寻址操作,且为全双工通信,显得 简单高效。 3:电路设计 设计的电路,利用两片 AT89C52 芯片,一片做为发送模块,一片做为接收 模块。分别编写发送和接收程序,实现数据的发送和接受。通过 LED 显示接收 到的数据。通过示波器观察输出的波形。 4:编写程序 根据设计好的电路及题目要求分别编写数据发送程序和数据接收程序。 ①:数据发送程序 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //--------------------------#include <REG52.H> #include<STDIO.H> //--------------------------sbit SPICLK = P1^0; //时钟信号 sbit MOSI = P1^1; //主器件数据输出,从器件数据输入 sbit MISO = P1^2; //主器件数据输入,从器件数据输出 sbit SS = P1^3; //从器件使能信号 void Dat_Transmit(uchar dat) //发送数据程序

图文51单片机超详细教程PPT(绝对值)

图文51单片机超详细教程PPT(绝对值)

寄存器组
包括累加器A、寄存器B、 程序状态字PSW等,用于 暂存数据和状态信息。
存储器组织
程序存储器
用于存放程序代码和表格常数,一般 采用ROM或EPROM芯片。
特殊功能寄存器SFR
用于控制单片机的各种功能,如定时 器、中断等。
数据存储器
用于存放数据,包括内部RAM和外部 RAM。
I/O端口及特殊功能寄存器
硬件电路设计思路及关键器件选型建议
51单片机
选用高性能、低功耗的51单片机 ,如STC89C52RC等。
无线通信模块
根据实际需求选用合适的无线通 信模块,如ESP8266 Wi-Fi模块
、HC-05蓝牙模块等。
电源芯片
选用稳定性好、效率高的电源芯 片,如LM2596等。
软件编程实现过程剖析
初始化单片机系统
51单片机在工业自动化、智能家居、仪器 仪表等领域有着广泛的应用基础,为开发者 提供了丰富的经验和案例参考。
应用领域与市场需求
应用领域
51单片机广泛应用于工业自动化、智能家居、仪器仪表、汽车电子、医疗设备等领域。例如,工业自动化中的电 机控制、温度控制等;智能家居中的智能照明、智能安防等;仪器仪表中的数据采集、显示控制等。
市场需求
随着物联网、人工智能等技术的快速发展,对单片机的性能和功能提出了更高的要求。同时,市场对于低功耗、 高可靠性、安全性等方面的需求也在不断增加。因此,未来51单片机需要不断提升自身性能,满足市场需求。
02
51单片机硬件结构
中央处理器CPU
01
02
03
运算器
进行算术运算和逻辑运算 。
控制器
取指、译码、执行,控制 单片机各部分协调工作。

第6章 51单片机总线系统与扩展

第6章 51单片机总线系统与扩展

系统扩展中的原则是,使用相同控制信号的芯片之 间,不能有相同的地址,使用相同地址的芯片之间,控 制信号不能相同。
6.2 程序存储器的扩展 6.2.1 EPROM的扩展 程序存储器扩展电路的安排应满足单片机从外存取 指令的时序要求。从时序图中分析ALE、/PSEN、P0和 P2怎样配合使程序存储器完成取指操作,从而得出扩展 程序存储器的方法。 单片机一直处于不断的取指令码-执行-取指令码 -执行的工作过程中,在取指令码时和执行MOVC指令 时/PSEN会变为有效,和其它信号配合完成从程序存储 器读取数据。
6.1 单片机总线信号的定义 控制线的连接
外接程序存储器:
由于程序存储器只读,通常使用状态是读操作,因 此只需连/OE引脚。由于/PSEN为程序存储器的选通控制 信号,因此单片机的PSEN连接ROM的输出允许端/OE; 外接数据存储器和I/O口:
由于数据存储器可读可写,而/RD(P3.7)和 /WR(P3.6)为数据存储器(RAM)和I/O口的读写控制信 号,因此单片机的/RD应连接扩展芯片的/OE (输出允许) 或/RD端,单片机的/WR应连接扩展芯片的/WR或/WE端。
6.2 程序存储器的扩展
1、ALE(地址锁存信号)在一个程序存储器读周期内两次有效; 2、在ALE第1个下降沿将P0口输出的低8位地址存入地址锁存器; 3、同时高8位地址由P2口直接送到程序存储器; 4、(程序存储器读控制信号)在低电平时有效,便将数据读出; 5、读出的数据通过P0口送回单片机。
6.2 程序存储器的扩展 由于只扩展了一片2732,因此2732的片选端接地。 /PSEN与2732的输出允许信号/OE相连,/PSEN的上升 沿使/OE有效,打开2732中由A0-A11指定的地址单元,该 单元中的指令码从2732的O0-O7输出,被正好处于读入状 态的P0端口输入到单片机内, 经译码执行。这就是从外存 指定地址单元中取出1字节指令并加以执行的整个过程。

单片机总线接口电路的设计_

单片机总线接口电路的设计_

单片机总线接口电路的设计Yibin UniversityEDA技术及应用期末设计报告题目: 单片机总线接口电路的设计专业: 电子信息科学与技术2013 年 12月 19 日摘要:单片机具有性价比高,功能灵活,易于人机交换和良好的数据处理能力等特点;FPGA具有高速,高可靠以及开发方便快捷规范等特点,以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛运用。

在目前的单片机与FPGA的接口电路实际设计中,重要的角色之一就是并串转换电路,并且在很多其它设计中是必不可少的,尤其是在数据量庞大的设计中,如果前级电路和后级电路直接通过并行传输数据,那么数据有多少位就得有多少根通信线,这必将导致通信的准确度的降低和通信成本的增加,当距离较长时这种方式更是不可采用的。

这次设计是基于FPGA设计的51单片机与外围电路通信的并串转换电路,该转换电路在接到51单片发出的访问外部RAM 的时序时,自动接受并行数据,接受完毕后自动串行发送数据,并且产生输出时钟,提供给后级电路使用。

该电路可以完成51单片机与串口外围电路的通信,扩展了51单片机的I/O端口,使得单片机可以带更多的负载。

关键字:(1)并串转换(2)FPGA(3)VHDL(4)状态机(5)单片机目录摘要------------------------------------------------------------------------2关键字---------------------------------------------------------------------2设计概述------------------------------------------------------------------4总的系统框图------------------------------------------------------------4设计思路------------------------------------------------------------------5方案论证------------------------------------------------------------------5设计程序------------------------------------------------------------------6设计仿真图--------------------------------------------------------------16仿真分析-----------------------------------------------------------------17参考文献------------------------------------------------------------------17设计概述:本次设计用FPGA设计一个并串转换电路,完成的功能是让51单片机可以和串行外设通信,51单片机可以用访问外部RAM 的时序去访问该接口电路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机总线设计法全攻略1、目前广大工程师在设计单片机系统时的两种方案之我见针对51单片机,工程师们在设计系统时,从宏观上讲无非就是两种方案:总线式设计方案和非总线式设计方案。

所谓总线式设计方案就是利用51单片机的读写外部RAM功能,将要设计的外部设备(比如说键盘、液晶等)统统挂到单片机总线上,使其统一按类似读写外部RAM功能的指令方法进行操作;而所谓非总线式设计方案,则是不利用单片机的读写外部RAM功能,而直接利用I/O 口读写方式进行外部设备的读写,比如说LED灯、液晶等,因为液晶有两种读写方式,总线方式和模拟I/O方式(贵刊也有文章介绍过),而这里读写液晶的模拟I/O方式就是这里我要说的非总线式设计方案。

那么这两种方案到底哪一种好呢?说这句话可能有点外行,我自己也这样认为,但是为了更好的让初学者了解其中的道理,我还是班门弄斧简单阐述一下:首先要说明,我的这种阐述是建立在有读写外部RAM功能的单片机的基础之上的。

我个人认为,两种方案各有利弊:对于总线式设计方案来说,优点就是能够充分发挥单片机的总线读写功能,系统一旦设计完成,易于日后的升级和扩展。

缺点是灵活性差,硬件连接比较固定;同时由于单片机读写总线时必定要产生一定的总线时间延迟,这样对于低速的单片机来说,如果设计的系统非常庞大的话,那就需要设计人员考虑一下实时性要求了,但是根据我个人多年来的开发经验来说,只要设计得当,一般问题不大,但还是将此问题摆出来,让大家商榷。

对于非总线式设计方案来说,最大的优点就是灵活性强,这种方案可以根据设计者的爱好自由选择单片机端口进行外围设备的设计(当然是要在符合设计原则的前提下),缺点是升级需要重新设计电路图。

2、总线法设计单片机系统的原理和方法2.1 总线法设计原理简介总线式设计方案对于很多的初学者来说是比较困难的,因为对于这种方法来说,牵扯到单片机和外围设备时序逻辑的分配、地址空间的分配、总线驱动能力等等的问题,一旦设计不好,系统便无法启动,或者说部分模块无法工作。

确实,总线式设计方案存在一定的难度,我想这大概也就是很多初学者甚至包括很多单片机设计工程师们也更趋向于利用非总线式设计方案来进行单片机系统设计的原因吧(仅为个人观点,如有不对,还望切磋)。

所以在这一节接下来的内容中我将会带领大家踏入单片机总线式设计方案的大门,让你领略一下在这块设计领域的无限精彩。

首先我们先来看看51单片机读写外部RAM的时序图,如图1、2所示:图1为51单片机读外部RAM的时序图。

图1 51单片机读外部RAM的时序图注意在这里我们只需要关心ALE、RD、PORT0、PORT2四个信号的时序,而不必关心PSEN信号,因为这个信号是用来控制读写外部程序存储器的,跟我们的讨论不相关,有兴趣的可以自行研究,下同。

下面我就跟大家一起讨论一下这四路信号是如何共同使用的。

有过设计经验的人都很清楚,ALE信号就是我们常说的地址锁存信号,那么它为什么要锁信号呢?锁谁的信号呢?又是如何锁的呢?第一、二个问题很简单,因为51单片机的P0口是地址/数据复用的8位端口,在读写外部RAM时,P0口上会顺序接连出现你要读写的地址信号和读到或要写的数据,如果当地址信号出现时不将此8位地址锁住,那么它将会迅速消失,便无法利用此地址进行外部存储器的地址选择;而针对第三个问题,信号时如何锁的,稍微有点麻烦,因为灵活性很大。

大家请仔细看图1的ALE 和PORT0两个信号,LHLL t ——ALE 的有效脉冲宽度AVLL t +——为P0口地址信号的有效时间长度LLAX t 我们先暂且研究一下这两个信号便可解答上面的问题,注意到P0口地址的有效时间长度为+两个时间长度的和,那么我们到底在哪个时间段来锁存地址信号呢?通过时序图我们可以发现,显然必须在ALE 的有效脉冲宽度内来截取这个P0口的地址信号,那么有人会问多出这个时间段干什么用,在这个时间段内P0口其实也在继续保持有效的低8位地址,请继续往下看便可理解。

好了,既然这样,我们要锁存此时的P0口地址信号很显然就要在ALE 的有效脉冲宽度内来动手脚了,大家一看,哈,这简单,这要在ALE 信号为高电平的时候,直接利用373芯片获取P0口地址信号不就完了嘛!不错,是的,目前大家都是这么做的。

那么我现在问你,方法唯一吗?我这么一提醒,大家可能又会想,奥,对了,在ALE 信号的两个边沿也可以啊!那么你又错了,我说还有一个方法就是在ALE 信号的下降沿可以,上升沿是不行的啊!为什么啊?你看看图1的时序,P0口地址的有效起始时间的左边沿在ALE 信号的有效脉冲上升沿后面呢,这显然不行吧!当然我们经常用的方法还是利用74ls373这类高电平传输的芯片。

这里告诉了大家两种方法,只是想提醒大家有时候方法是非常灵活的,后面我会就这两种锁存地址的方法分别以实例的形式体现在大家面前。

AVLL t LLAX t LLAX t AVLL t 好了,地址我们锁存完了,既然P0口是地址和数据复用端口,那我们再来研究一下后面的数据又是怎么传输的。

为了更好的让大家同时了解外部存储器的读和写的原理,这部分我打算结合图2介绍一下数据的写入。

图2为51单片机写外部RAM 的时序图。

图2 51单片机写外部RAM 的时序图同样在这里我们只需要关心ALE 、WR 、PORT0、PORT2四个信号的时序。

请看下面几个时间量:LLWL t ——ALE 信号跳为低到WR 信号开始变低的时间段WLWH t ——WR 信号有效宽度QVWX t ——P0口数据有效开始到WR 信号开始有效WHQX t ——WR 信号有效结束到P0口数据有效结束通过上面我们可以看出,也就是说在ALE 信号跳为低电平以后,延迟这么长的时间后,LLWL t WR 低电平信号会紧跟着出现,注意这个信号是单片机自动产生的,很多读者总是以为要设置什么寄存器之类的东西,容易出现迷惑,只要我们在程序里一调用MOVX 或者在C 语言里读写XDATA (外部)的地址,WR 或者RD 便会自动出现了。

于是乎这时候我们便可以写入我们需要传输的数据了。

问题由来了,我们在什么时候把数据写入到外部RAM 或者说外部设备呢?这里请大家注意,我们发现P0口数据有效的总时间段为++,显然要长于WLWH t QVWX t WHQX t WR 信号有效宽度,并且将其包含在之内,所以在这里,根据这个时序原理,我们可以利用WLWH t WR 的下降沿时刻、低电平阶段或是上升沿时刻进行数据的写入,但是我们最常用的是在WR的低电平时期和WR上升沿时刻将有效数据写入,而利用WR的低电平时期写入数据又是最为普遍,因为好多公司生产的带外部总线读写功能的芯片都是要求在WR的低电平时期写数据,跟上面一样,我们在这里讨论这个,主要是给大家提供一种思路,在自己进行地址分配或时序逻辑设计时也许用得上。

在下面的实例中,这两种方法我都会做介绍,请大家仔细体会。

2.2 两种地址锁存法介绍上面我已经提到,在进行地址锁存时有两种锁存方案:高电平地址锁存法和下降沿地址锁存法,注意我这里所说的这两种方法名称是针对单片机的ALE端信号而言。

下面我将结合具体的电路给大家做一下详细介绍(为节省画图空间,考虑到单片机复位电路和晶振电路不是本文所讨论的话题,故省略):2.2.1 高电平地址锁存法本小节介绍的高电平地址锁存法是单片机开发工程师使用最为广泛的一种方法。

在这种方法中选用373或者573芯片,以573为例,其真值表如表1所示:表1 74HC573真值表OE LE D QL H H H L H L L L L X Q0H X X Z由上述真值表我们不难看出,这个片子的特点是:在输出控制端OE有效(低电平)的前提下,当锁存端LE为高电平时,输出端Q随着输入端D变化,而当LE为低电平时,输出端Q保持上一次的输入端数据,这样的逻辑正好符合我们在第一节分析的有关单片机ALE端信号的变化情况,即ALE端为高电平时,单片机P0口的低8位地址信号输出到573的输入端,而输出端跟随变化,一旦ALE变为低电平,573便不再跟随单片机的P0口地址,因为这时候(应该是过一会)P0 口马上就要输出8位“数据”了,这样便完成了单片机低8位地址的锁存。

图3 高电平地址锁存法2.2.2 下降沿地址锁存法本小节给大家介绍另一种方法——下降沿地址锁存法。

这种方法在我们的实际设计中并不是很常见,但是我仍然给大家做一个简单的介绍,目的是让大家开拓思路,了解问题的实质。

在这种方法中选用374或者574芯片,以374为例,其真值表如表1所示:表2 74HC374真值表OE CLK D QL ↑H H L ↑L L L L X Q0H X X Z由上述真值表我们不难看出,这个片子的特点是:在输出控制端OE有效(低电平)的前提下,当锁存端LE输入上升沿信号时,输入端D的信号才能送到输出端Q,而当LE为非上升沿时,输出端Q保持上一次的输入端数据,这样的逻辑正好符合我们在第一节分析的有关单片机ALE端信号的变化情况,即ALE端为高电平时,单片机P0口的低8位地址信号输出到374的输入端,但是输出端不跟随输入端变化,一旦ALE信号变为低电平,这样便瞬间产生了一个下降沿,但是374需要的是一个上升沿信号才能将数据从输入端打进输出端,为此,必须在ALE与CLK端进行一下反相。

这样在单片机这次整个的读写数据的过程中,374的输出端,也就是锁存的单片机的低8位地址就不再变化了,因为,ALE端信号在一次读写过程中是始终保持低电平的,不会再次产生下降沿,也就不会再次更新374的输出端。

这样也同样完成了单片机低8位地址的锁存。

图4 下降沿地址锁存法3、总线法设计单片机模块全突破通过上面第二节我们知道单片机总线低8位地址有两种锁存方法。

在这一节里,我将就总线设计法中经常用到的一些单片机外围模块的设计思路或者方法详细的介绍给大家,希望大家看完后能从中有所体会。

首先我先把下面各个模块中用到的138地址译码电路摆出来:图5 地址译码电路地址分配:CS_LED: 0X8000~0X8FFF; LED指示灯片选地址CS_SHUMA: 0X9000~0X9FFF;数码管片选地址CS_A/D: 0XA000~0XAFFF;A/D转换器片选地址CS_D/A: 0XB000~0XBFFF;D/A转换器片选地址CS_LCD: 0XC000~0XCFFF;液晶片选地址CS_KEY_RD: 0XD000~0XDFFF;读键盘片选地址CS_KEY_WR: 0XE000~0XEFFF;写键盘片选地址地址分配解析:首先咱们先来看看LED指示灯的地址控制端CS_LED为什么是0X8000~0X8FFF,74HC138首先要工作,必须将它的片选输入(E1、E2、E3)端置为有效,根据我们的硬件连接,E1、E2已经接地,这时我们只需要将E3置为高电平即可随时启动该74HC138芯片,又由于我们把单片机的最高位地址线A15接在了E3上,所以,我们所有外设的片选地址都必须让A15位置为高电平“1”,这样,74HC138片选输出就完全取决于C(A14)、B(A13)、A(A12)三个控制端了,显然要让LED指示灯的地址控制端CS_LED有效,也就是让74HC138的Y0输出端有效(为“0”),只需要C(A14)=“0”、B(A13)=“0”、A(A12)=“0”即可,也就是说只要让单片机地址总线的高四位为“1000”,而其他12根低地址线可以任意取“0”和“1”,所以到此我们便推算出了LED 指示灯的片选地址是0X8000~0X8FFF。

相关文档
最新文档