51单片机总线时序

合集下载

51单片机模拟IIC工作时序,以EEPROM器件进行掉电保护数据

51单片机模拟IIC工作时序,以EEPROM器件进行掉电保护数据

51单片机软件模拟I2C时序,进行掉电保护数据在数码管上按顺序显示数据0—f(十六进制)模拟断电-切断单片机电源复位后接着断电前数据显示#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit sda=P2^0;sbit scl=P2^1;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39 ,0x5e,0x79,0x71} ;uchar num,sec,panju;//由定时器进行计数,计时,以数组的形式显示于数码管每隔1S读一次AT24C16中的数据//-------------------------------定时器0进行精确的计时,由AT24C16进行掉电保护----------------------------------//void delay(){;;}void init_timer0()//定时器初始化{TMOD=0X01;//工作方式1,GATE=0,C/~T=0,M0=0,M1=1;TH0=15536/256;//求模TL0=15536%256;//求余装入初值EA=1;ET0=1;//中断允许寄存器TR0=1;//TCON寄存器}//------------------------------------------------------------------------------------------------------------//void init_AT()//EEPROM器件初始化释放总线{scl=0;delay();//微秒延时sda=1;delay();scl=1;delay();}//----------------------------------------------------------------------------------------------------------//void start() //起始信号{scl=0;delay();sda=1;delay();scl=1;delay();sda=0;delay();sda=1;//释放数据总线//--------------------------------------------------------------------------------------------------------//void write_byte(uchar date)//字节写{uchar s,temp;//局部变量temp=date;//由高位一位一位的写入for(s=0;s<8;s++){temp=temp<<1;//左移溢出到PSW寄存器CY位scl=0;//允许sda进行的变化delay();sda=CY;//进行一位一位的送入数据总线delay();scl=1;//符合读走数据总线上数据的要求delay();//稳定一段时间}scl=0;//允许sda变化,以便于接受应答信号delay();sda=1;//释放数据总线,准备接收应答信号delay();}//--------------------------------------------------------------------------------------------------------//void response()//应答,可以看书page181,由接收设备发出的第九位数据,要经由sda传输给发送设备{uchar t;//局部变量scl=1;delay();while((sda==1)&&(t<250)){t++;//等待应答有一定的时间限制,sda被拉低表示有应答,由硬件控制}scl=0;delay();}//------------------------------------------------------------------------------------------------------//void stop()//停止信号,scl=1,sda形成一个正跳变{scl=0;//允许sda变化delay();sda=0;//准备形成正跳变delay();scl=1;//信号有效前提1delay();sda=1;//形成正跳变delay();//信号有效前提1}//-----------------------------------------------------------------------------------------------------//void delay1(uint z)//毫秒级延时{for(x=z;x>0;x--)for(y=10;y>0;y--);}//---------------------------------------------------------------------------------------------------------------//uchar read_byte()//带有返回值,将所读到的数据作为返回值{uchar i,d;//局部变量d=0x00;//清空存储变量的空间for(i=0;i<8;i++){scl=0;//允许变化,即允许传送数据,sda是serial dual date busdelay();scl=1;//允许读走数据delay();d=(d<<1)|sda;//将sda上数据放入存储变量d,也是8位ucharscl=0;delay();}return d;}//----------------------------------------------------------------------------------------------------------//void write_add(uchar address,uchar date) //任意位置,写任意内容{start();//起始信号write_byte(0xa0);//写入EEPROM器件地址,写入分为数据,地址数据,地址又分为器件地址和内部存储地址,例如某班级某学生座位response();//等待应答write_byte(address);//内部存储地址实际参数addressresponse();write_byte(date);//写入真正意义上的数据,由引入的实际参数dateresponse();//等待应答stop();//停止读取数据信号delay1(1);}//-------------------------------------------------------------------------------------------------------//uchar read_add(uchar address){uchar shu;start();write_byte(0xa0);//申明所读器件地址response();write_byte(address);//申明该器件中所要求读数据的位置response();start();write_byte(0xa1);response();shu=read_byte();//进行读数据操作后,非应答,budaixingcan,而是将返回值直接赋予变量stop();}//------------------------------------------------------------------------------------------------------------// void main(){P0=0X00;init_AT();sec=read_add(0X03);//将芯片中数据读出;作为基数init_timer0();//定时器初始化设置if(sec==16)sec=0;while(1){P0=table[sec];if(panju==1){panju=0;write_add(0x03,sec);}}}//---------------------------------------------------------------------------------------------------------// void timer0_break() interrupt 1{TH0=15536/256;//求模TL0=15536%256;//求余装入初值num++;if(num==20){num=0;sec++;panju=1;if(sec==16) sec=0;}}。

第2章 MCS-51单片机结构与时序_110905

第2章 MCS-51单片机结构与时序_110905
2.3.1 运算部件及专用寄存器组 2.3.2 控制部件及振荡器 2.3.3 单片机工作的基本时序
2.3.1 运算部件及专用寄存器组
运算部件以算术逻辑单元ALU为核心,包括一个位处理器和 两个8位暂存寄存器(不对外开放),它能实现数据的算术运 算、逻辑运算、位变量处理和数据传输操作。 累加器ACC 寄存器B 专用寄存器组 程序状态字PSW 程序计数器PC 堆栈指针SP 数据指针寄存器DPTR
锁 存 器
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 VCC VSS
地 址 总 线 (AB)
数 据 总 线 (DB)
VCC VSS
ห้องสมุดไป่ตู้(a)
(b)
MCS-51系列单片机引脚及总线结构
2.3 微 处 理 器
Program State Word
accumulator
ALU --Arithmetic and Logic Unit
图2.1 MCS-51单片机内部结构框图
1.算术逻辑单元ALU与累加器ACC、寄存器B
算术逻辑单元不仅能完成8位二进制的加、减、乘、除、加 1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进 行逻辑"与"、"或"、"异或"、循环移位、求补、清零等逻辑运 算,并具有数据传输、程序转移等功能。 累加器(ACC,简称累加器A,地址E0H)为一个8位寄存器, 它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的 操作数多来自于A,运算结果也常送回A保存。 寄存器B(地址F0H )是为ALU进行乘除法运算而设置的。 若不作乘除运算时,则可作为通用寄存器使用。

由MOVX指令深入分析51单片机总线时序及扩展

由MOVX指令深入分析51单片机总线时序及扩展

1 MC S 5 1单 片 机 系 统 的 四要 素
1 . 1 5 1单 片 机 系 统 的 启 动
MC S 5 1单 片 机 上 电 正 常 工 作 , 需具 备 以下 四点 : ( 1 ) 电 源 。A T 8 9 S 5 1系 列单 片机 的 第 4 0引 脚 为 V 外
加电压 5 V工 作 电 压 ,另 外 ,单 片 机 的 第 2 0 引 脚 是
中 图 分 类 号 :T P 3 1 3 文 献 标 识 码 :A 文 章 编 号 :1 6 7 4 — 7 7 2 0 ( 2 0 1 3 ) 2 0 — 0 0 0 4 — 0 4
De e p l y a n a l y z i n g b u s s e q u e n c e a n d e x p a n s i o n o f 5 1 MUC b y c o mma n d M OVX
So f t wa r e Te ch n o l o g y
由 MO V X指令 深入分析 5 1 单片机总线 时序及扩展
周 姝 颖 ,林 凡 强 ,何 凌 霄 ,富 饶 ( 成都 理 工 大 学 信 息 科 学 与 技 术 学 院 , 四川 成 都 6 1 0 0 5 9 )
摘 要 :分 析 了 MC S 5 1单 片 机 访 问 外 部 存 储 器 指 令 MO V X 的 执 行 过 程 ,介 绍 了 5 1系 列 单 片 机 使
ቤተ መጻሕፍቲ ባይዱ
Ke y wor d s:MC U;b u s ;s e q u e n c e i n t i me ;s p a c e o f me mo  ̄ ;d e c o d i n g
A T 8 9 C 5 l单 片 机 是 A T ME L 公 司 设 计 生 产 的 与 MC S 5 1内 核 兼 容 的 5 1系 列 单 片 机 之 一 ,该 系 列 单 片 机 以 其 优 越 的 性 能 和 成 熟 的 技 术 在 控 制 和 自动 化 应 用 领 域 占有着 较 大的 市场 ; 除此 以外 , 5 1单 片 机 有 着 计 算 机 系统 中经 典 的总线结 构 , 即: 数据 总线 、 地 址 总 线 和 控 制 总线 。 在 实 际 应 用 中 ,单 片 机 的 4个 端 口 中 , P O 口通 常 是

MCS-51系列单片机

MCS-51系列单片机

外部程序存储器读
外部数据存储器读
MCS-51单片机的指令时序 单片机的指令时序
定时/计数器
T/C的控制寄存器
工作方式选择:TMOD
启停控制:TCON
T/C方式0,1(M1M0=00,01)
普通T/C模式
– – – – 定时:C/T=0 计数:C/T=1 13位计数模式:TH+TL低5位 16位计数模式:TH+TL
定时/计数器1不能工作在方式3,此时它可以处在其他方式(0/1/2).
串口通信
4种工作方式
– SM0,SM1:方 式控制
支持多机通信
– SM2:多机通信 控制位
串口通信工作方式
方式0:8bits同步工作方式
– 接收,发送均通过RXD – TXD用于发送同步脉冲 – 波特率固定
方式1:10bits异步方式
单片机应用 参考书:《微型计算机技术及应用》,清华大学出版社, 戴梅萼等
背景
单片机
– 在一个芯片中集成了CPU,ROM,RAM,T/C, I/O等. – 主要用于控制等领域.
我国的单片机年容量已达1-3亿片,且年增 长约16%
– 但相对于世界市场,我国的占有率还不到1%.
体系结构
CISC结构
– 应用:控制关系较复杂的场合,如通讯产品,工业控 制系统
RISC结构
– Microchip的PIC系列,Zilog的Z86系列,Atmel的 AT90S系列,韩国三星公司的KS57C系列4位单片机 – 应用:控制关系较简单的小家电
PIC单片机
初档8位单片机:PIC12C5XXX/16C5X系列
特殊程序存储区
系统复位区
– 0000H—0002H:3B,上电后第一条指令

第1章 MCS-51单片机结构

第1章  MCS-51单片机结构

第1章 MCS-51单片机结构
1.2.2
外部数据存储器
用于存放随机读写的数据。 外部I/O口地址影像区。 MCS-51单片机的外部数据存储器和外部I/O口实行统一编址 , 并使用相同的RD WR作选通控制信号,均使用 MOVX 指令访 问。 MCS-51 单片机最多可扩展64KB外部数据存储器
1.2.3 内部数据储存器
MCS-51仅能实现两个8位二进 制数的算术逻辑运算!
第1章 MCS-51单片机结构
2. 控制器
(1)组成: 定时与控制部件,复位电路,程序计数器 (PC),指令寄存器、指令译码器,数据指针 (DPTR),堆栈指针(SP)等 (2)作用:产生计算机所需的时序,控制程序自动执行。
外RAM, EPROM, 外I/O CPU
第1章 MCS-51单片机结构
程序存储器中的几个特殊地址的使用:
地址
0000H 0003H 000BH 0013H 001BH 0023H
用途
复位操作后的程序入口 外部中断0服务程序入口 定时器0中断服务程序入口 外部中断1服务程序入口 定时器1中断服务程序入口 串行口中断服务程序入口
串行口中断入口 T1中断入口 T0中断入口 中断入口 INT1
在8051/8751/89C51 片内,分别内置最低地 址空间的4KB ROM/EPROM程序储存器(内部程序储 存器),而在8031片内,则无内部程序储存器, 必须外部扩展EPROM。MCS-51单片机中64KB内、外 程序储存器的地址是统一编排的。
第1章 MCS-51单片机结构
8031单片机无内部程序存储器,地址从0000H~ EA 应始终接地, FFFFH都是外部程序存储空间。 对于内部有ROM的单片机(51、52系列) , EA 引脚接高电平,使程序从内部ROM开始执行。当PC 值超出内部ROM的容量时,会自动转向外部程序存 储器空间。外部程序存储器地址空间为1000H~ FFFFH。 访问程序存储器使用MOVC指令。 单片机执行程序时由PC 指示地址, 复位时PC内 容为0000H, 由此, 程序必须从0号单元开始存放.

片机教程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单⽚机晶振频率、时钟周期、状态周期、机器周期、指令周期和总线周期的关系⼀、晶振频率1、英⽂全称:frequency oscillate2、定义:晶体振荡器的固有频率, 不能改变。

⼆、时钟周期1、英⽂全称:Clock Cycle。

2、时钟周期是计算机中最基本的、最⼩的时间单位。

在⼀个时钟周期内,CPU仅完成⼀个最基本的动作。

3、时钟周期 = 晶振周期 = 振荡周期Tosc = 晶振频率(振荡频率fosc)的倒数。

4、若晶振周期为12MHz,则时钟周期 = 1/12us。

每秒发出12000000个脉冲信号,那么发出⼀个脉冲的时间就是时钟周期,即1/12微妙。

三、状态周期振荡器脉冲信号经过时钟电路⼆分频之后产⽣的单⽚机时钟信号的周期(⽤S表⽰)称为状态周期。

故⼀个状态周期S包含2个节拍,前⼀时钟周期称为P1节拍,后⼀时钟周期称为P2节拍。

四、机器周期1、定义:CPU完成⼀项基本操作(取指令、存储器读写等)所消耗的最短时间。

2、⼀般由12个时钟周期或者6个状态周期组成。

3、计算:机器⼈周期 = 12 / 晶振频率。

4、存在的原因:1个时钟周期⽆法⼲完⼀件事,⽽12个时钟周期能够完成基本的操作。

五、指令周期取出并执⾏⼀条指令的时间。

指令周期是不确定的,因为她和该条指令所包含的机器周期有关。

⼀个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。

六、总线周期访问1次存储器和I/O端⼝操作所需要的时间。

七、⼩结所需时间:时钟周期 < 状态周期 < 机器周期 < 指令周期 < 总线周期————————————————————————————————————————————————————————————。

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

2.数据存储器典型扩展电路
6264的地址范围为:0000H~1FFFH。
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单 元开始的16个数据,传送片外数据存储器0000H开始的单元中。
程序如下:
ORG 1000H MOV R0, #50H MOV R7, #16 MOV DPTR, #0000H AGAIN: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R7, AGAIN RET END ; 数据指针指向片内50H单元 ; 待传送数据个数送计数寄存器 ; 数据指针指向数据存储器6264的0000H单元 ; 片内待输出的数据送累加器A ; 数据输出至数据存储器6264 ; 修改数据指针 ; 判断数据是否传送完成
4.2.1
程序存储器扩展
单片机内部没有ROM,或虽有ROM但容量太小时,必须扩 展外部程序存储器方能工作。最常用的ROM器件是EPROM 1. 常用EPROM程序存储器 EPROM主要是27系列芯片,如:2764(8K)/27128(16K) /27256(32K)/27040(512K)等,一般选择8KB以上的芯片作为 外部程序存储器。
4.2.3 MCS-51对外部存储器的扩展
下图所示的8031扩展系统中,外扩了16KB程序存储器(使用两片 2764芯片)和8KB数据存储器(使用一片6264芯片)。采用全地址译码方 式,P2.7用于控制2―4译码器的工作,P2.6, P2.5参加译码,且无悬空地 址线,无地址重叠现象。 1# 2764, 2# 2764, 3# 6264的地址范围分别为:0000H~1FFFH, 2000H~3FFFH, 4000~5FFFH。
MOV DPTR, #7FFFH ; 数据指针指向74LS377 MOV A, 60H ; 输出的60H单元数据送累加器A MOVX @DPTR, A ; P0口将数据通过74LS377输出

MCS51单片机时序

MCS51单片机时序

S1
S1
P1P2 S2 S3 S4 S5 S6 P1P2 S2 S3 S4 S5 S6
ALE
读操作码
读下一个操作码(丢弃)
单字节单周期指令
S1 S2 S3 S4 S5 S6 S1
例:INC A
读操作码 读第二个字节
双字节单周期指令
S1 S2 S3 S4 S5 S6 S1
例:ADD A,DATA
读操作码
一、片内振荡器及时钟信号的产生
8051芯片内部有一个高增益反相放大器,用于构成振 荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,分 别是8051的19脚和18脚。
在XTAL1和XTAL2两端跨接石英晶体及两个电容就可以 构成稳定的自激振荡器。电容器C1和C2通常取30pF左右, 对 振 荡 频 率 有 微 调 作 用 。 振荡 频 率 范围 是 0.5MHz-16MHz
提供定时信号的振荡源的周期; 计算机中最基本的时间单位。
时钟周期:
1个时钟周期=2个振荡周期; 分为P1节拍和P2节拍; P1节拍通常完成算术逻辑操作; P2节拍完成内部寄存器间的传送。
机器周期*:
1个机器周期 = 12个振荡周期 CPU访问存储器一次所需的时间; 执行一条指令需要的时间以机器周期为单位。
指令的字节数指指令的存储长度,在进行程序跳转时用 于计算跳转的偏移量。
指令的周期数指指令的运行时间,决定了指令执行的速 度,同时在定时时要用于计算实际定时时间。
CPU取指、执行周期时序
每一条指令都可以包括取指和执指两个阶段。 在取指阶段,CPU从内部或者外部ROM中取出指令操作 码及操作数,然后再执行这条指令。 在8051指令系统中,根据各种操作的繁简程度,其指 令可由单字节、双字节和三字节组成。从机器执行指令速 度看,单字节和双字节指令都可能是单周期或双周期的, 而三字节指令都是双周期的,只有乘、除指令占四个周期。 此外,在6MHz时钟频率下,执行一条指令的时间(指 令周期)分别为2μs,4μs和8μs。

MCS51单片机的指令时序

MCS51单片机的指令时序

单片机时序图MCS51单片机的指令时序接下来我们分别对几个典型的指令时序加以说明。

·单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。

·双字节单周期指令:这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。

·单字节双周期指令:两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。

单字节双周期指令有一种特殊的情况,象MOVX这类指令,执行这类指令时,先在ROM 中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。

在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。

上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。

·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。

·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。

51单片机控制Nand Flash读写的两种方法

51单片机控制Nand Flash读写的两种方法

51单片机控制N a n d F l a s h读写的两种方法本文叙述了51单片机控制N a n d F l a s h读写的两种方法:总线方式和I/O模拟方式,并通过逻辑分析仪验证这两种方法均是符合N a n d F l a s h的读写时序的,最后通过逻辑分析仪观察和汇编分析给出了这两种方法读效率的对比。

第一章 单片机与N a n d F l a s h总线连接 1N a n d F l a s h的总线时序分析图1-1N a n d F l a s h总线操作要求将N a n d F l a s h总线操作分为三类:写命令、写地址和数据操作(读数据与写数据仅仅差别在n R和n W引脚,而且这两个引脚无法进行编址,故归为一类)。

根据这三类的时序要求,选出引脚在这三类中变化的进行编址,n E引脚总是要求低电平,不符合要求;A L和C L在这三类操作中有时是低电平有时是高电平,符合要求。

2单片机读写外部数据存储器的时序分析由图2和图3可以知道,51单片机在进行外部数据读写操作时要求A L E信号为低电平,这与N a n d F l a s h总线操作片选信号n E要求相同,因此可以将A L E与n E相连。

为了能够利用N a n d F l a s h的保护功能,将n W P引脚与单片机的一个I/O 口相连。

3N a n d F l a s h与单片机的连接及编址因为对于单片机仅仅M O V X 指令才能访问外部数据存储器,又因为单片机P 0口已经作为数据口与单片机相连,因此只能使用拥有高8位地址的P 2口。

P 2口仅仅在16位地址操作中才有用,因此编址采用16位形式,用不到的补零。

如表2所示,可知N a n d 的命令端口地址为:0×6000h ,地址端口地址为:o x A o o o h ,数据端口地址为:0×2000h 。

在C 程序中声明如下:第二章 单片机与N a n d F l a s h I /O 直接相连1.N a n d 与单片机的连接图1-1描述了N a n d F l a s h 操作的时序要求,根据该要求可以采用单片机的I /O 口与N a n d F l a s h 直接相连,通过I /O 口模拟的方式来控制N a n d F l a s h 的操作。

用Proteus学习51单片机之I2C

用Proteus学习51单片机之I2C

在学习单片机的过程中,我常有这样的烦恼:随随便便一个芯片,少则占用三五个IO口,一般的就占用8个,稍微想用多一点芯片吧,老觉得IO口不够用。

学串口的时候觉得串口是个好东西,连两条线就够了,现在学到I2C,觉得这也是一个非常好的东西,也是两条线,还能给每个总线上的设备设立地址,简直就是一个小网络了。

I2C总线使用两条线,一条是时钟线,称为SCL,一条是数据线,称为SDA,各个设备就并在总线上,每一个总线上的设备都有一个自己的地址,主机在操作设备的时候,都会先发送一个地址码,告诉被操作机,接下来的命令由它接收。

接下来说一下I2C总线的数据有效性。

I2C总线进行数据传送时,要求SCL为高电平时,SDA上的数据必需保持稳定,换言之,当SCL为高电平时,SDA的电平不能变换,只有当SCL为低电平时,SDA的电平才能变。

I2C总线通信时,需要遵照一定的协议,以下为一次通信过程:1.由主机发送起始信号,启动I2C总线。

时序为,在SCL为高电平期间,SDA出现一个下降沿。

2.主机发送寻址信号,即告诉特定的设备,接下来的命令是发给它的。

地址分为7位和10位,以7位为例,高7位为设备地址,最低位表示读或写,1表示读,0表示写。

3.应答信号,I2C协议规定,每传送一个字节数据(包括地址及命令)后,都要有一个接收设备返回的应答信号,以确定信号是否被接收设备正确接收到了。

其时序为,在SCL信号为高电平期间,接收设备把SDA电平拉低。

4.数据传输,当主机发送发址并收到应答后,就可以发送数据了,但是发送数据只能每次发送一位,并且每发送一位后都需要收到接收机的应答。

或主机为接收设备时,主机对最后一个字节不应答,表示向发送设备说,数据传送结束。

5.发送停止信号,在全部数据传送完毕后,主机发送停止信号,时序为,在SCL为高电平期间,SDA上产生一个上升沿。

前面讲到,I2C协议要求数据的发送,要求SCL为低电平时,SDA才能变换,看一下上面的时序,可以看到,命令都是SCL为高电平时对SDA的操作,而发送数据则是SCL为低电平时对SDA操作。

MCS-51单片机的指令时序

MCS-51单片机的指令时序

MCS-51 单片机的指令时序
时序是用定时单位来描述的,MCS-51 的时序单位有四个,它们分别是
节拍、状态、机器周期和指令周期,接下来我们分别加以说明。

-节拍与状态:
我们把振荡脉冲的周期定义为节拍(为方便描述,用P 表示),振荡脉冲经
过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义
为状态(用S 表示),这样一个状态就有两个节拍,前半周期相应的节拍我们
定义为1(P1),后半周期对应的节拍定义为2(P2)。

-机器周期:
MCS-51 有固定的机器周期,规定一个机器周期有6 个状态,分别表示为
S1-S6,而一个状态包含两个节拍,那幺一个机器周期就有12 个节拍,我们
可以记着S1P1、S1P2S6P1、S6P2,一个机器周期共包含12 个振荡脉冲,即机器周期就是振荡脉冲的12 分频,显然,如果使用6MHz 的时钟频率,一个机器周期就是2us,而如使用12MHz 的时钟频率,一个机器周期就是1us。

-指令周期:
执行一条指令所需要的时间称为指令周期,MCS-51 的指令有单字节、双
字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器。

51单片机几种总线的学习与应用(一)

51单片机几种总线的学习与应用(一)

参考自
51单片机工程应用实例/唐继贤编著.—北京:北京航空航天大学出版社,2009.1
单片机初级教程:单片机基础/张迎新等编著.—2版.—北京:北京航空航天大学出版社,
2006.8
AT89S52数据手册/Atmel Corporation
1.并行
2.串行
2.1 UART异步串行【Intel】
2.2 IIC(I2C)【Philips】
2.3 SPI 【Motorola】
2.4 单总线【Dallas Semiconductor】
2.5 USB
并行总线
并行通行——所传数据的各位同时发送或接收
并行扩展——利用单片机的三总线(地址、数据和控制)进行系统扩展一般的计算机外部总线是相互独立的,但是51系列单片机由于受引脚的限制,地址总线与数据总线是引脚复用。

并行总线的扩展有几种
1.专用的可编程并行口扩展芯片如8255
2.不可编程的并行口扩展
1).三态门如74LS244 [扩展输入]
2).锁存器如74LS273 [扩展输出]
3).带三态功能的锁存器如74LS373
3.利用串行口扩展并行口
(图1)向片外写数据时的时序图
(图2)从片外读数据时的时序图
74244扩展输入例子
(图3)74244扩展输入例子注:图中用的是或门
74273扩展输出例子
(图4)74273扩展输出例子注:图中用或或非都可以
另附上74273的逻辑
74373的扩展例子(略)
串口扩展并口(串口设为移位寄存器模式,加上74164即可)
【END】。

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

51 单片机总线时序
一、总线概述
计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。

计算机的总线分为控制总线、地址总线和数据总线等三种。

而数据总线用于传送数据,控制总线用于传送控制信号,地址总线则用于选择存储单元或外设。

二、单片机的三总线结构
51 系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2 的16 次方) 。

在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。

单片机三总线扩展示意如图1 所示。

1、数据总线。

相关文档
最新文档