课程设计(论文)基于单片机的DS18B20数字温度传感器设计_第1页
课程设计(论文)基于单片机的DS18B20数字温度传感器设计_第2页
课程设计(论文)基于单片机的DS18B20数字温度传感器设计_第3页
课程设计(论文)基于单片机的DS18B20数字温度传感器设计_第4页
课程设计(论文)基于单片机的DS18B20数字温度传感器设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京交通大学微机原理与接口技术综合实践说明书摘 要利用ds18b20温度传感器与89c51相连测量室内温度并且在六位led显示器的中间两位显示出来。led显示器的前两个显示上限温度,中间两个显示当前温度测量值。最后两位显示下限温度。利用按键设置温度的上限与下限,并在led显示器上动态显示。系统共有四个按键,前两个按键实现温度上限的调整,后两个实现温度下限的调整。当温度低于下限(15)值时二极管发光,当室温高于上限(40)时蜂鸣器报警,发出有规律的声音。通过按键调节温度上下限,使当前外界温度的范围包含在温度传感器的上下限内,从而使得蜂鸣器关闭和二极管光灭。关键词:ds18b20数字温度传感器 8

2、9c51 led共阴极显示器 程序汇编 调试目 录一、ds18b206二、89c5117三、815519四、实验设备及原理23五、设计思路及程序流程图28六、上机调试过程37七、心得体会38八、附件40 参考文献47正 文一、ds18b20温度传感器 ds1820 单线数字温度计特性 独特的单线接口仅需一个端口引脚进行通讯 简单的多点分布应用 无需外部器件 可通过数据线供电 零待机功耗 测温范围-55+125,以 0.5递增 温度以 9 位数字量读出 温度数字量转换时间 200ms(典型值) 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 应用包

3、括温度控制、工业系统、消费品、温度计或任何热感测系统 引脚说明 16脚ssoppr35符号说明91gnd接地82dq数据输入/输出脚。对于单线操作:漏极开路(见“寄生电源”节)73vdd可选的 vdd 引脚。具体接法见“寄生电源”节ds18b20(16 脚 ssop):所有上表中未提及的引脚都无连接。 概览图1的方框图示出了ds1820的主要部件。ds18b20 有三个主要数字部件:1)64 位激光 rom,2)温度传感器,3)非易失性温度报警触发器th和tl。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高

4、电平到来再给寄生电源(电容)充电。ds18b20 也可用外部 5v 电源供电。ds18b20 依靠一个单线端口通讯。在单线端口条件下,必须先建立 rom 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面 5 个 rom 操作命令之一:1)读 rom,2)匹配 rom,3)搜索 rom,4)跳过 rom,5)报警搜索。这些命令对每个器件的激光 rom 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条 rom 操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条

5、控制操作命令指示 ds18b20 完成一次温度测量。测量结果放在 ds18b20 的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器 th 和 tl 各由一个 eeprom 字节构成。如果没有对 ds18b20 使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对 th 和 tl 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。 寄生电源 寄生电源的方框图见图 1。这个电路会在 i/o 或 vdd 引脚处于高电平时“偷”能量。当有特定的时间和电压需求时(见节标题“单线总线系统”),i/

6、o 要提供足够的能量。寄生电源有两个好处:1)进行远距离测温时,无需本地电源,2)可以在没有常规电源的条件下读 rom。要想使 ds18b20 能够进行精确的温度转换,i/o 线必须在转换期间保证供电。由于 ds18b20 的工作电流达到 1ma,所以仅靠 5k 上拉电阻提供电源是不行的,当几只 ds18b20 挂在同一根 i/o线上并同时想进行温度转换时,这个问题变得更加尖锐。 有两种方法能够使 ds18b20 在动态转换周期中获得足够的电流供应。第一种方法,当进行温度转换或拷贝到存储器操作时,给 i/o 线提供一个强上拉。用 mosfet 把 i/o 线直接拉到电源上就可以实现,见图 2。

7、在发出任何涉及拷贝到存储器或启动温度转换的协议之后,必须在最多 10s 之内把 i/o 线转换到强上拉。使用寄生电源方式时,vdd 引脚必须接地。另一种给 ds18b20 供电的方法是从 vdd 引脚接入一个外部电源,见图 3。这样做的好处是 i/o线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片 ds18b20,而且如果它们都使用外部电源的话,就可以先发一个 skip rom 命令,再接一个 convert t 命令,让它们同时进行温度转换。注意当加上外部电源时,gnd 引脚不能悬空。温度高

8、于 100时,不推荐使用寄生电源,因为 ds18b20 在这种温度下表现出的漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用 ds18b20 的 vdd 引脚。 对于总线控制器不知道总线上的 ds18b20 是用寄生电源还是用外部电源的情况,ds18b20 预备了一种信号指示电源的使用意图。总线控制器发出一个 skip rom 协议,然后发出读电源命令,这条命令发出后,控制器发出读时间隙,如果是寄生电源,ds18b20 在单线总线上发回“0”,如果是从 vdd 供电,则发回“1”,这样总线控制器就能够决定总线上是否有 ds18b20 需要强上拉。如果控制器接收到一个“0”,

9、它就知道必须在温度转换期间给 i/o 线提供强上拉。这个命令协议详见“存储器操作命令”节。 测温操作 ds18b20 通过一种片上温度测量技术来测量温度。图 4 示出了温度测量电路的方框图。 ds18b20 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达 0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始

10、计数直到 0,如果门周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。 温度/数据关系(表 1)温度数据输出(二进制)数据输出(十六进制)+12500000000 1111101000fa+2500000000 001100100032+1/200000000 000000010001000000000 000000000000-1/211111111 11111111ffff-2511111111 11

11、001110ffce-5511111111 10010010ff92ds18b20 内部对此计算的结果可提供 0.5的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表 1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。ds18b20 测温范围-55+125,以 0.5递增。如用于华氏温度,必须要用一个转换因子查找表。 报警搜索操作 ds18b20 完成一次温度转换后,就拿温度值和存储在th和tl中的值进行比较。因为这些寄存器是8位的,所以 0.5位被忽略不计。th或tl的最高有效位直接对应16位温度寄存器的符号位。如果测得的温度高于th或低于tl,器件内部就会置

12、位一个报警标识。每进行一次测温就对这个标识进行一次更新。当报警标识置位时,ds1820会对报警搜索命令有反应。这样就允许许多ds18b20并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。64位(激)光刻rom 每只ds18b20都有一个唯一的长达64位的编码。最前面8位是单线系列编码(ds1820 的编码是 9h)。下面48位是一个唯一的序列号。最后8位是以上56位的crc码。(见图 5)64位rom和rom操作控制区允许ds18b20作为单线制器件并按照详述于“单线总线系统”一节的单线协议工作。只有建立了rom操作协议,才能对ds

13、1820进行控制操作。这个协议用rom操作协议流程图来描述。单线总线控制器必须得天独厚提供5条rom操作命令其中之一:1)read rom,2)match rom,3)search rom,4)skip rom,5)alarm search。成功进行一次rom操作后,就可以对ds18b20进行特定的操作,总线控制器可以发出六个存储器和控制操作命令中的任一条。 crc 发生器 ds1820 中有 8 位 crc 存储在 64 位 rom 的最高有效字节中。总线控制器可以用 64 位 rom 中的前 56 位计算出一个 crc 值,再用这个和存储在 ds1820 中的值进行比较,以确定 rom 数

14、据是否被总线控制器接收无误。crc 计算等式如下: crc=+ds1820 同样用上面的公式产生一个 8 位 crc 值,把这个值提供给总线控制器用来校验传输的数据。在任何使用 crc 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个 crc 值,和存储在 ds1820 的 64 位 rom 中的值或 ds1820 内部计算出的 8 位 crc 值(当读暂存器时,做为第 9 个字节读出来)进行比较。crc 值的比较以及是否进行下一步操作完全由总线控制器决定。当在 ds1820中存储的或由其计算的 crc值和总线控制器计算的值不相符时,ds1820 内部并没有一个能阻止命令序列进行

15、的电路。 单线crc可以用一个由移位寄存器和 xor 门构成的多项式发生器来产生,见图 7。 移位寄存器的各位都被初始化为 0。然后从系列编号的最低有效位开始,一次一位移入寄存器。8位系列编码都进入以后,序列号再进入,48 位序列号都进入后,移位寄存器中就存储了crc值。移入8位crc会使移位寄存器复0。存储器ds1820的存储器结构示于图 8。存储器由一个暂存 ram 和一个存储高低温报警触发值 th 和tl 的非易失性电可擦除()ram 组成。当在单线总线上通讯时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性()

16、ram 中。这一过程确保更改存储器时数据的完整性。暂存器的结构为 8 个字节的存储器。头两个字节包含测得的温度信息。第三和第四字节是 th和 tl 的拷贝,是易失性的,每次上电复位时被刷新。下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑 1。第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力(见“测温操作”一节)。还有一个第九字节,可以用读暂存器命令读出。这个字节是以上八个字节的 crc 码。crc 的执行方式如第二个标题“crc 发生器”所述。 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。ds18b20 是从机。关于这种总线分三个题目讨论:硬件结构、

17、执行序列和单线信号(信号类型和时序)。 单线总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。为此每一个总线上的器件都必须是漏极开路或三态输出。ds18b20 的单总线端口(i/o引脚)是漏极开路式的,内部等效电路见图9。一个多点总线由一个单线总线和多个挂于其上的从机构成。单线总线需要一个约 5k的上拉电阻。 单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。如果总线停留在低电平超过480s,总线上的所有器件都将被复位。 通

18、过单线总线端口访问ds1820的协议如下: 初始化 rom 操作命令 存储器操作命令 执行/数据 初始化 通过单线总线的所有执行(处理)都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。存在脉冲让总线控制器知道ds1820在总线上且已准备好操作。rom 操作命令 一旦总线控制器探测到一个存在脉冲,它就可以发出5个rom命令中的任一个。所有rom操作命令都8位长度。read rom 33h 这个命令允许总线控制器读到ds18b20的8位系列编码、唯一的序列号和8位crc码。只有在总线上存在单只ds1b820的时候才能使用这个命令。如果总线上有不止

19、一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起开成相与的效果)。 match rom 55h 匹配rom命令,后跟64位rom序列,让总线控制器在多点总线上定位一只特定的 ds18b20。只有和64位rom序列完全匹配的ds1820才能响应随后的存储器操作命令。所有和64位rom序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 skip rom cch 这条命令允许总线控制器不用提供64位rom编码就使用存储器操作命令,在单点总线情况下又节省时间。如果总线上不止一个从机,在skip rom命令之后跟着发一条读命令,由于多个从机同时传送信

20、号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。 search rom f0h 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位rom编码。搜索rom命令允许总线控制器用排除法识别总线上的所有从机的64位编码。 alarm search ech 这条命令的流程图和search rom相同。然而,只有在最近一次测温后遇到符合报警条件的情况,ds18b20才会响应这条命令。报警条件定义为温度高于th或低于tl。只要ds18b20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。i/o 信号 ds18b20需要严格的协议以确保数据的完整性。协议

21、包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和ds18b20间的任何通讯都需要以初始化序列开始,初始化序列见图 11。一个复位脉冲跟着一个存在脉冲表明 ds18b20 已经准备好发送和接收数据(适当的rom命令和存储器操作命令)。 存储器操作命令 write scratchpad 4e 这个命令向ds18b20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。 read scratchpad beh 这个命令读取暂存器的内容。读取将从字节0开

22、始,一直进行下去,直到第9(字节8,crc)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取.copy scratchpad 48h 这条命令把暂存器的内容拷贝到ds18b20的存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而ds1820又正在忙于把暂存器拷贝到存储器,ds1820就会输出一个“0”,如果拷贝结束的话,ds18b20则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。 convert t 44h 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而

23、后 ds18b20 保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而ds18b20又忙于做时间转换的话,ds18b20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。recallb8h 这条命令把报警触发器里的值拷回暂存器。这种拷回操作在ds18b20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读时间隙,器件会输出温度转换忙的标识:“0”=忙,“1”=完成。read power supply b4h 若把这条命令发给 ds18b20 后发出读时间隙,器件

24、会返回它的电源模式:“0”=寄生电源,“1” =外部电源。读/写时间隙 ds1820 的数据读写是通过时间隙处理位和命令字来确认信息交换。写时间隙当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙:写1时间隙和写0时间隙。所有写时间隙必须最少持续60s,包括两个写周期间至少1s的恢复时间。i/o线电平变低后,ds18b20在一个15s到60s的窗口内对i/o 线采样。如果线上是高电平,就是写1,如果线上是低电平,就是写0(见图 12) 时 序 主机使用时间隙(time slots)来读写 dsl8b20 的数据位和写命令字的位 (1)初始化主机总线t0时刻发送一复位脉

25、冲(最短为 480us 的低电平信号)接着在t1时刻释放总线并进入接收状态dsl8b20在检测到总线的上升沿之后等待15-60us接着ds18b20 在t2时刻发出存在脉冲(低电平持续60-240us)。reset push b ;保存 b 寄存器 push a ;保存 a 寄存器 mov a,#4 ;设置循环次数 clr p1.0 ;发出复位脉冲 mov b,#250 ;计数 250 次 djnz b,$ ;保持低电平 500us setb pl.0 ;释放总线 mov b,#6 ;设置时间常数 clr c ;清存在信号标志 waitl: jb pl.0,wh ;若总线释放 跳出循环 djn

26、z b,waitl ;总线低 等待 djnz acc,waitl ;释放总线等待一段时间 sjmp short wh : mov b,#111 wh1 : orl c,p1.0 djnz b,wh1 ;存在时间等待 short : pop a pop bret(2)写时间隙 当主机总线t0时刻从高拉至低电平时就产生写时间隙从t0时刻开始15us之内应将所需写的位送到总线上dsl820在t0后15-60us间对总线采样.若低电平写入的位是0,若高电平写入的位是1.连续写 2 位间的间隙应大于1us。写位子程序(待写位的内容在 c 中) wrbit: push b ;保存 b mov b,#28

27、;设置时间常数 clr p1.0 ;写开始 nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us mov pl.0,c ;c 内容到总线 wdlt: djnz b,wdlt ;等待 56us pop b setb pl.0 ;释放总线 ret ;返回 写字节子程序(待写内容在 a 中): wrbytb: push b ;保存 b mov b,#08h ;设置写位个数 wlop: rrc a ;把写的位放到 c acall wrbit ;调写 1位子程序 djnz b wlop ;8 位全写完? pop b ret (3)读时间隙 读位子程序(读得的位到 c

28、中) rdbit: push b ;保存 b push a ;保存 a mov b,#23 ;设置时间常数 clr p1.0 ;读开始 nop ;1us nop ;1us nop ;1us nop ;1us setb pl.0 ;释放总线 mov a,p1 ;p1口读到a mov c,eoh ;p1.0 内容 c nop ;1us nop ;1us nop ;1us nop ;1us rddlt:djnz b,rddlt ;等待 46us setb p1.0 pop a pop b ret 读字节子程序(读到内容放到 a 中) rdbyte: push b ;保存 b rlop: mov b,

29、#08h ;设置读位数 acall rdbit ;调读 1 位子程序 rrc a ;把读到位在 c 中并依次送给 a djnz b,rlop ;8 位读完? pop b ;恢复 b ret 二、89c5189c51的内部结构和引脚功能名称类型名称和功能vssi地vcci电源:提供掉电、空闲、正常工作电压p0.0-0.7 i/op0 口是开漏双向口,可以写为1使其状态为悬浮用作高阻输入。p0也可以在访问外部程序存储器时作地址的低字节。在访问外部数据时作数据总线,此时通过内部强上拉输出 1 p1.0-1.7 i/op1 口是带内部上拉的双向i/o口,向p1口写入1时 p1 口被内部上拉为高电平,可

30、用作输入口 当作为输入口。当作为输入脚时,被外部拉低的 p1 口会因为内部上拉而输出电流。p1 口第 2 功能 :t2(p1.0) 定时/计数器 2 的外部计数输入/时钟输出t2ex(p1.1) 定时/计数器 2 重装载/捕捉/方向控制 p2.0-2.7 i/op2 口是带内部上拉的双向i/o口,向p2口写入1时,p2口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的p2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时分别作为地址高位字节和 16 位地址(movx dptr),此时通过内部强上拉传送1当使用8位寻址方式(mov ri)访问外部数据存储器时,p2口发送p

31、2特殊功能寄存器的内容p3.0-3.7 i/op3口是带内部上拉的双向i/o口向p3口写入1时,p3口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的p3口会因为内部上拉而输出电流p3 口还具有以下特殊功能:rxd(p3.0) 串行输入口 txd(p3.1) 串行输出口 int0(p3.2) 外部中断 0 int1(p3.3) 外部中断 t0(p3.4) 定时器 0 外部输入 t1(p3.5) 定时器 1 外部输入 wr(p3.6) 外部数据存储器写信号 rd(p3.7) 外部数据存储器读信号 rsti复位 当晶振在运行中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电

32、阻连接到vss仅需要外接一个电容到vcc即可实现上电复位 aleo地址锁存使能在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ale输出信号恒定为1/6振荡频率,并可用作外部时钟或定时,注意每次访问外部数据时一个ale脉冲将被忽略ale可以通过置位sfr的auxlilary.0 禁止,置位后ale只能在执行movx指令时被激活 o程序存储使能 当执行外部程序存储器代码时 psen 每个机器周期被激活两次 在访问外部数据存储器时 psen 无效 访问内部程序存储器时 psen 无效 i外部寻址使能/编程电压在访问整个外部程序存储器时ea 必须外部置低 如果ea为高时,将执行内部程序除

33、非程序计数器包含大于片内 flash 的地址 该引脚在对 flash 编程时接 5v/12v 编程电压(vpp) 如果保密位1 已编程ea在复位时由内部锁存 xtal1i晶体 1 反相振荡放大器输入和内部时钟发生电路输入 xtal2o晶体 2 反相振荡放大器输出 三、81558155的内部结构和引脚功能8155各引脚功能说明如下:rst:复位信号输入端,高电平有效。复位后,3个i/o口均为输入方式。ad0ad7:三态的地址/数据总线。与单片机的低8位地址/数据总线(p0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。:读选通信号,控制对8155的读操作,低电

34、平有效。:写选通信号,控制对8155的写操作,低电平有效。:片选信号线,低电平有效。io/m :8155的ram存储器或i/o口选择线。当io/ 0时,则选择8155的片内ram,ad0ad7上地址为8155中ram单元的地址(00hffh);当io/ 1时,选择 8155的i/o口,ad0ad7上的地址为8155 i/o口的地址。ale:地址锁存信号。8155内部设有地址锁存器,在ale的下降沿将单片机p0口输出的低8位地址信息及 ,io/ 的状态都锁存到8155内部锁存器。因此,p0口输出的低8位地址信号不需外接锁存器。pa0pa7:8位通用i/o口,其输入、输出的流向可由程序控制。pb0

35、pb7:8位通用i/o口,功能同a口。pc0pc5:有两个作用,既可作为通用的i/o口,也可作为pa口和pb口的控制信号线,这些可通过程序控制。timer in:定时/计数器脉冲输入端。timer out:定时/计数器输出端。vcc:5v电源。 2、8155的地址编码及工作方式 在单片机应用系统中,8155是按外部数据存储器统一编址的,为16位地址,其高8位由片选线提供, 0,选中该片。当0,io/m0时,选中8155片内ram,这时8155只能作片外ram使用,其ram的低8位编址为00hffh;当0,io/m1时,选中8155的i/o口,其端口地址的低8位由ad7ad0

36、确定,如表6-6所示。这时,a、b、c口的口地址低8位分别为01h、02h、03h(设地址无关位为0)。 下表为8155芯片的i/o口地址ad7ad6ad5ad4ad3ad2ad1ad0所选端口×××××000命令/状态寄存器×××××001a口×××××010b口×××××011c口×××××100定时器低8位××&

37、#215;××101定时器高6位及方式××××××××ram单元8155的a口、b口可工作于基本i/o方式或选通i/o方式。c口可工作于基本i/o方式,也可作为a口、b口在选通工作方式时的状态控制信号线。当c口作为状态控制信号时,其每位线的作用如下:pc0:aintr(a口中断请求线)pc1:abf(a口缓冲器满信号)pc2: (a口选通信号)pc3:bintr(b口中断请求线)pc4:bbf(b口缓冲器满信号)pc5: (b口选通信号)8155的i/o工作方式选择是通过对8155内部命令寄存器

38、设定控制字实现的。命令寄存器只能写入,不能读出,命令寄存器的格式如下图所示。在alt1alt4的不同方式下,a口、b口及c口的各位工作方式如下:alt1:a口,b口为基本输入/输出,c口为输入方式。alt2:a口,b口为基本输入/输出,c口为输出方式。alt3:a口为选通输入/输出,b口为基本输入/输出。pc0为aintr,pc1为abf,pc2为 ,pc3pc5为输出。alt4:a口、b口为选通输入/输出。pc0为aintr,pc1为abf,pc2为 ,pc3为bintr,pc4为bbf,pc5为 。图6-16 8155命令寄存器格式8155内还有一个状态寄存器,用于锁存输入/输出口和定时/

39、计数器的当前状态,供cpu查询用。状态寄存器的端口地址与命令寄存器相同,低8位也是00h,状态寄存器的内容只能读出不能写入。所以可以认为8155的i/o口地址00h是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。3、8155的定时/计数器8155内部的定时/计数器实际上是一个14位的减法计数器,它对timer in端输入脉冲进行减1计数,当计数结束(即减1计数“回0”)时,由timer out端输出方波或脉冲。当timer in接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。定时/计数器由两个8位寄存器构成,其中的低14位组成计数器,剩下的两个高位(m2,

40、m1)用于定义输出方式。其格式如下:d7 d6 d5 d4 d3 d2 d1 d0 m2 m1 t13 t12 t11 t10 t9 t8d7 d6 d5 d4 d3 d2 d1 d0 t7 t6 t5 t4 t3 t2 t1 t0 定时器/计数器的使用 8155的定时器/计数器与mcs-51单片机芯片内部的定时器/计数器,在功能上是完全相同的,同样具有定时和计数两种功能。但是再使用上却与mcs-51的定时器/计数器有许多不同之处。具体表现在: 8155的定时器/计数器是减法计数,而mcs-51的定时器/计数器却是加法计数.因此确定计数初值的方法是不同的. mcs-51的定时器/计数器有多种工

41、作方式.而8155的定时器/计数器,则只有一种固定的工作方式,既14位计数,通过软件方法进行计数值加载. mcs-51的定时器/计数器有两种计数脉冲。当定时工作时,从芯片内部按机器周期提供固定频率的计数脉冲;当计数工作时,从芯片外部引入计数脉冲。但8155的定时器/计数器,不论是定时工作还是计数工作,都由外部提供计数脉冲,其信号引脚就是timer in. mcs-51的定时器/计数器,计数溢出自动置位tcon寄存器的计数溢出标志位(tf),供用户以查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外边输出一个信号(timer out)。而且这一信号还有脉冲和方波两种形式,可由用户

42、进行选择。具体由m1.m2两位定义: m2 m1=00 单个方波 m2 m1=01 连续方波 m2 m1=10 单个脉冲 m2 m1=11 连续脉冲 8155定时器/计数器的工作方式由命令字中的高二位d7d6进行控制。具体说明如下: d7d6 =00 不影响计数器工作。 d7d6 =01 停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。 d7d6 =10 达到计数值(计数器减为0)后停止。 d7d6 =11 启动计数器。如计数器没运行,则在装入计数值后开始计数;如计数已运行,则在当前计数值计满后,再以新的计数值进行计数。 四、实验设备及原理工具清单:1、电烙铁 2、电烙铁架 3、镊

43、子 4、小螺丝刀 5、偏口钳 6、焊锡 7、电路板8、元器件清单:序号名 称数 量序号名 称数 量189c5116共阴极数码管 62815517ds18b20 1374ls14184740729575452 310注:以上元器件不能焊在板上。序号名 称数 量序号名 称数 量1电阻 0.1k518晶振 11.059212电阻 0.3k119单排插针/座 (3)13电阻 1k120短路块14电阻 2.2k421单排插座 (3)15电阻 3k122单排插座 (30)26电阻 4.7k123dip 4027电阻 8.2k124dip 14 38排电阻 0.1k*8125dip839电解电容4.7uf/

44、3.3uf426蜂鸣器110电解电容 10uf227电源线 (黄) 111电解电容 47uf/33uf128电源线 (黑)112瓷片电容 30p/33p229支座413独石电容 0.1uf13014独石电容 0.01uf23115三极管 901313216发光二极管(红)13317按钮开关434主要设备、器件结构及原理介绍74ls14inputoutputaylhhl六反相器(有施密特触发器)。真值表如右:逻辑图如下:引出端符号 : 1a6a 输入端 1y6y 输出端 74077407ttl集电极开路六正相高压驱动器。74ls07引脚图 74ls07逻辑图 74ls07真值表754527545

45、2是双外围器件驱动芯片,其引脚图如下图左所示:1a和1b是内部与非门的两个输入端,通过三极管放大后由1y输出。相似的,2a和2b另一个与非门的输入端,2y为这一路信号的输出。1y,2y输出的是经过三极管放大后的信号,从而起到增加驱动能力的作用。75452常用于驱动步进电机等!电解电容电解电容是电容的一种介质有电解液涂层有极性,分正负不可接错。电容(electric capacity),由两个金属极,中间夹有绝缘材料(介质)构成。其特点:单位体积的电容量非常大,比其它种类的电容大几十到数百倍;额定的容量可以做到非常大,可以轻易做到几万f甚至几f(但不能和双电层电容比);价格比其它种类具有压倒性优

46、势,因为电解电容的组成材料都是普通的工业材料,比如铝等等。制造电解电容的设备也都是普通的工业设备,可以大规模生产,成本相对比较低。瓷片电容用高介电常数的电容器陶瓷钛酸钡一氧化钛挤压成圆管、圆片或圆盘作为介质,并用烧渗法将银镀在陶瓷上作为电极制成。它又分高频瓷介和低频瓷介两种。具有小的正电容温度系数的电容器,用于高稳定振荡回路中,作为回路电容器及垫整电容器。低频瓷介电容器限于在工作频率较低的回路中作旁路或隔直流用,或对稳定性和损耗要求不高的场合包括高频在内。这种电容器不宜使用在脉冲电路中,因为它们易于被脉冲电压击穿。独石电容电容量大、体积小、可靠性高、电容量稳定,耐高温耐湿性好等。广泛应用于电子

47、精密仪器。各种小型电子设备作谐振、耦合、滤波、旁路。容量范围:0.5pf-1uf耐压:二倍额定电压。三极管三极管,是一种电流控制电流的半导体器件。作用是把微弱信号放大成辐值较大的电信号,也用作无触点开关。三极管是一种电流放大器件,但在实际使用中常常利用三极管的电流放大作用,通过电阻转变为电压放大作用。发光二极管发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过渡层,称为pn结。在某些半导体材料的pn结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。pn结加反向电压,少数载流子难以注入,故不发光。这种利

48、用注入式电致发光原理制作的二极管叫发光二极管,通称led。 当它处于正向工作状态时(即两端加上正向电压),电流从led阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。晶振晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的倍频或分频后就成了电脑中各种不同的总线频率。蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,广泛应用于计算机、打印机、报警器、定时器等电子产品中作发生器件。电磁式蜂鸣器驱动原理:蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机io引脚输出的电流较小,单片机输出的ttl

49、电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。s51增强型单片机实验板通过一个三极管c8550来放大驱动蜂鸣器,原理图见下面图:s51增强型单片机实验板驱动蜂鸣器原理图如图所示,蜂鸣器的正极接到vcc(+5v)电源上面,蜂鸣器的负极接到三极发射管的发射极e,三极管的基级b经过限流电阻r1后由单片机的p3.7引脚控制,当p3.7输出低电平时,三极管t1截止,没有电流流过线圈,蜂鸣器不发声;当p3.7输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制p3.7引脚的电平来使蜂鸣器发出声音和关闭。 ·led显示器工作原理:led(发光二极管l

50、ight emitting diode的英文缩写)是利用pn结把电能转换成光能的固体发光器件,根据制造材料的不同可以发出红、黄、绿、白等不同色彩的可见光来。led的伏安特性类似于普通二极管,正向压降约为2伏左右,工作电流一般在10 -20ma之间较为合适。led显示器有多种结构形式,单段的圆形或方形led常用来显示设备的运行状态,8段led可以显示各种数字和字符,所以也称为led数码管,其外形如图所示。8段led在控制系统中应用最为广泛,其接口电路也具有普遍借鉴性。因此,我们介绍8段led数码管显示器。8段led显示器的结构与工作原理如图所示。一个8段led显示器的结构与工作原理如图6-1所示。它是由8个发光二极管组成,各段依次记为a、b、c、d、e、f、g、dp ,其中dp表示小数点(不带小数点的称为7段led)。8段led显示器有共阴极和共阳极两种结构,分别如图(b)、(c)所示。共阴极led的所有发光管的阴极并接成公共端com,而共阳极led的所有发光管的阳极并接成公共端com。当共阴极led的com端接地,则某个发光二极管的阳极加上高电平时,则该管有电流流过因而点亮发光;当共阳极led的com端接高电平,则某个发光管的阴极加上低电平时,则该管有电流流过因而点亮发光。8段led通过不同段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论