单片机核心知识摘要.docx
《单片机核心知识摘要.docx》由会员分享,可在线阅读,更多相关《单片机核心知识摘要.docx(15页珍藏版)》请在冰豆网上搜索。
单片机核心知识摘要
第一、共阴数码管码表
▪0x3f,0x06,0x5b,0x4f,0x66,0x6d,
▪012345
▪0x7d,0x07,0x7f,0x6f,0x77,0x7c,
▪6789AB
▪0x39,0x5e,0x79,0x71,0x00
▪CDEF无显示
动态显示——数码管
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
第二、80C51中断系统的结构
80C51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套。
第三、DAC0832与80C51单片机的接口
1、DAC0832单缓冲工作方式
此方式适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统。
双极性模拟输出电压:
双极性输出时的分辨率比单极性输出时降低1/2,这是由于对双极性输出而言,最高位作为符号位,只有7位数值位。
2、双缓冲工作方式
多路D/A转换输出,如果要求同步进行,就应该采用双缓冲器同步方式。
3、直通工作方式
当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接+5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。
http:
//www.A
第四、串行通信接口标准
一、RS-232C接口
RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。
RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。
1、机械特性
RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。
(阳头)
4、过程特性
过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。
近程通信连接
6、采用RS-232C接口存在的问题
1、传输距离短,传输速率低
RS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过15米(线路条件好时也不超过几十米)。
最高传送速率为20Kbps。
-----------------------------------------------------------------------
2、有电平偏移
RS-232C总线标准要求收发双方共地。
通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。
---------------------------------------------------------------------------------
3、抗干扰能力差
RS-232C在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中。
为了提高信噪比,RS-232C总线标
准不得不采用比较大的电压摆幅。
-------------------------------------------
RS-485是一点对多点的通信接口,一般采用双绞线的结构。
普通的PC机一般不带RS485接口,因此要使用RS-232C/RS-485转换器。
对于单片机可以通过芯片MAX485来完成TTL/RS-485的电平转换。
在计算机和单片机组成的RS-485通信系统中,下位机由单片机系统组成,上位机为普通的PC机,负责监视下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况。
系统中各节点(包括上位机)的识别是通过设置不同的站地址来实现的。
-----------接书上223页---------
第五、IIC总线
一、总线通信原理
1、总线优点
▪采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。
同时,系统的更改和扩充极为容易。
▪常用的串行扩展总线有:
I2C(InterICBUS)总线、单总线(1-WIREBUS)、SPI(SerialPeripheralInterface)总线及Microwire/PLUS等。
-----------要学习一下
2、I2C总线通过上拉电阻接正电源。
当总线空闲时,两根线均为高电平。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
3、起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态即总线被释放。
4、注意------接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。
直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。
5、字节传送与应答
每一个字节必须保证是8位长度。
数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
6、由于从机不应答而主机发送终止信号的两种情况
由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。
如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续传送。
7、由于主机不应答而主机发送终止信号的两种情况
当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。
这个信号是由对从机的“非应答”来实现的。
然后,从机释放SDA线,以允许主机产生终止信号。
8、注意-----每次数据传送总是由主机产生的终止信号结束。
但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。
9、在总线的一次数据传送过程中,可以有以下几种组合方式:
a、主机向从机发送数据,数据传送方向在整个传送过程中不变:
注:
有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
A表示应答,A非表示非应答(高电平)。
S表示起始信号,P表示终止信号。
。
b、主机在第一个字节后,立即从从机读数据
c、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。
二、IIC总线的器件介绍(AT24C02)
1、ATMEL公司的AT24C系列:
AT24C01:
128字节(128×8位);
AT24C02:
256字节(256×8位);
AT24C04:
512字节(512×8位)AT24C08:
1K字节(1K×8位);
AT24C16:
2K字节(2K×8位);
注意:
有多少个字节就有多少个地址
2、写入过程
AT24C系列E2PROM芯片地址的固定部分为1010,A2、A1、A0引脚接高、低电平后得到确定的3位编码。
形成的7位编码即为该器件的地址码。
单片机进行写操作时,首先发送该器件的7位地址码和写方向位“0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。
被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为相应,单片机收到应答后就可以传送数据了。
传送数据时,单片机首先发送一个字节的被写入器件的存储区的首地址,收到存储器器件的应答后,单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。
AT24C系列器件片内地址在接收到每一个数据字节地址后自动加1,在芯片的“一次装载字节数”(不同芯片字节数不同)限度内,只需输入首地址。
装载字节数超过芯片的“一次装载字节数”时,数据地址将“上卷”,前面的数据将被覆盖。
当要写入的数据传送完后,单片机应发出终止信号以结束写入操作。
写入n个字节的数据格式:
3、读出过程
单片机先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号。
被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应。
然后,再发一个字节的要读出器件的存储区的首地址,收到应答后,单片机要重复一次起始信号并发出器件地址和读方向位(“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。
当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。
4、移位操作
▪左移时最低位补0,最高位移入PSW的CY位
▪右移时最高位补零,最低位移除。
第六、RTC时钟芯片(ds1302)
1、定义——实时时钟(RTC)是一个由晶体控制精度的,向主系统提BCD
码表示的时间和日期的器件
DS1302是美国DALLAS公司推出的一种高性能、低功
耗‘带RAM的实时时钟电路,具有闰年补偿功能,工作电压为2.5V~5.5V
2、注意————只有在SCLK为低电平时,才能将RST置为高电平。
控制字节总是从最低位开始输出。
3、DS1302的寄存器和控制命令
对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历和时钟有关,存放的数据位为BCD码形式。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器,日历、时钟寄存器及其控制字如下表3-3-1所示:
表3-3-1日历、时钟寄存器及其控制字对照表
寄存器名称
7
6
5
4
3
2
1
0
1
RAM/CK
A4
A3
A2
A1
A0
RD/W
秒寄存器
1
0
0
0
0
0
0
1/0
分寄存器
1
0
0
0
0
0
1
1/0
时寄存器
1
0
0
0
0
1
0
1/0
日寄存器
1
0
0
0
0
1
1
1/0
月寄存器
1
0
0
0
1
0
0
1/0
周寄存器
1
0
0
0
1
0
1
1/0
年寄存器
1
0
0
0
1
1
0
1/0
写保护寄存器
1
0
0
0
1
1
1
1/0
慢充电寄存器
1
0
0
1
0
0
0
1/0
时钟突发秒寄存器
1
0
1
1
1
1
1
1/0
DS1302内部主要寄存器功能如下表3-3-2所示
表3-3-2DS1302内部主要寄存器功能表
名称
命令字
取值范围
各位内容
写
读
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00-59
CH
10SEC
SEC
分寄存器
82H
83H
00-59
0
10MIN
MIN
时寄存器
84H
85H
1-12或0-23
12/24
0
A/P
HR
HR
日寄存器
86H
87H
1-28,29,30,31
0
0
10DATE
DATE
月寄存器
88H
89H
1-12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
1-7
0
0
0
0
0
DAY
年寄存器
8CH
8DH
0-99
10YEAR
YEAR
其中CH:
时钟停止位;为0时振荡器工作;为1时振荡器停止;
AP=1时为下午模式,为0时上午模式;
DS1302的控制字节说明
1)DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中:
位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址:
最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
2)在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7。
4、芯片内部结构
第六、数字温度传感器(DS18b20)
一、DS18b20的一些注意事项
1、DS18B20内部结构
内部结构说明:
温度传感器、高温触发器、低温触发器、配置寄存器、8位CRC生成器都是独立于高速缓存器的EEROM,高速缓存器里面分别由他们的临时副本,第1、2字节是温度传感器的副本,第3、4、5、9字节分别是高温触发器、低温触发器、配置寄存器、8位CRC生成器的副本。
2、配置寄存器
配置寄存器为高速缓冲寄存器中的第5个节。
各位定义如下:
TM
R0
R1
1
1
1
1
1
MSB
LSB
TM:
测试模式标志位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动;R0、R1:
温度计分辨率设置位,对应4种分辨率,出厂时设为默认值:
R0=1、R1=1(即12位分辨率)。
3、注意————
(1)对89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
(2)掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
(3)当工作于寄生电源时,电源端口必须接地,且当温度高于100℃时,不能使用寄生电源,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。
二、DS18b20工作时序
1、DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
2、DS18B20的初始化时序
单总线上的所有通信都以初始化时序开始,包括主机发出的复位脉冲和从机的应答脉冲。
当从机发出响应主机的应答脉冲时,即向主机表明它处于总线上,且工作准备就绪。
在主机初始化过程中,主机通过拉低单总线至少480us,以产生复位脉冲,接着,主机释放总线,并进入接收模式。
当总线被释放后,上拉电阻将单总线拉高。
做为从器件的DS18B20在一上电后就一直在检测总线上是否有480-960微秒的低电平出现,如果有,在总线转为高电平后等待15-60微秒后将总线电平拉低60-240微秒做出响应存在脉冲,告诉主机本器件已做好准备。
若没有检测到就一直在检测等待。
——时序图看过天线的348页
3、DS18B20的读时序
对于读数据操作时序也分为读0时序和读1时序两个过程。
读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。
DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。
若要送出1则释放总线为高电平。
主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。
采样期内总线为高电平则确认为1。
完成一个读时序过程,至少需要60us才能完成。
重复此步骤,知道读完一个字节
4、DS18B20的写时序
写周期最少为60微秒,最长不超过120微秒。
写周期一开始做为主机先把总线拉低1微秒表示写周期开始。
随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。
若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。
而做为从机的DS18B20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。
三、DS18b20工作过程
DS18B20单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱,1-WIRE器件将不响应主机,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
根据DS18B20的协议规定,微控制器控制DS18B20完成温度的转换必须经过以下4个步骤:
(1)每次读写前对DS18B20进行复位初始化(注意这句话的理解)。
复位要求主CPU将数据线下拉750us,然后释放,DS18B20收到信号后等待16us~60us左右,然后发出
60us~240us的存在低脉冲,主CPU收到此信号后表示复位成功。
(2)发送一条ROM指令
(3)发送存储器指令
DS18B20的存储器指令集
写工作过程————现在我们要做的是让DS18B20进行一次温度的转换,那具体的操作就是:
1、主机先作个复位操作,
2、主机再写跳过ROM的操作(CCH)命令,
3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成转换的操作。
在这里要注意的是每个命令字节在写的时候都是低字节先写。
读工作过程——读取RAM内的温度数据。
同样,这个操作也要接照三个步骤。
1、主机发出复位操作并接收DS18B20的应答(存在)脉冲。
2、主机发出跳过对ROM操作的命令(CCH)。
3、主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。
如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。
同样读取数据也是低位在前的。
整个操作的总线状态如下图:
在这里说明一下,第二步跳过对ROM操作的命令是在总线上只有一个器件时,为节省时间而简化的操作,若总线上不止一个器件,那么跳过ROM操作命令将会使几器件同时响应,这样就会出现数据冲突。