ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:28.61KB ,
资源ID:9558499      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9558499.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字式温度计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字式温度计.docx

1、数字式温度计 数字式温度计 1、题意分析及解决方案 1.1题义需求分析 1.1.1 设计内容 本设计为从温度传感器DS18B20通道采样温度模拟信号 转化成数字信号 并在LED液晶显示器上显示出来. 由于DS18B20可以直接将模拟量转换为数字量,因此在并送LED显示时 须通过A/D转换器先将信号送入CPU,然后再选用8255A作为微处理器的输入输出接口芯片,最后将8位数字信号量显示到LED显示器上。 可以从四个方面来分析问题 1 采样模拟信号 转化成数字信号。 2 接口的连接问题。 3 LED显示器如何接入电路。 4) 如何进行显示控制。 1.2 解决问题方法及思路 1.2.1硬件部分 (1

2、) 温度传感器DS18B20 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器 与传统的热敏电阻等测温元件相比 它能直接读出被测温度 可编程的分辨率为9 12位 对应的可分辨温度分别为0.5、0.25、0.125和0.0625 可实现高精度测温 (2) 输入输出接口芯片8255A 由于考虑到8086接口不足的问题 比如对LED数码管进行位选需要2位 对LED数码管每一位进行段选需要8位 所以必须要用8255进行I/O的扩展,通过8255A CPU可以直接同外设相连接,将数字量从CPU输出到LED显示器上. (3) 硬件比较 表1-1 8255A芯片与825

3、1A芯片比较 8255A芯片 8255A芯片是可编程并行接口芯片 不需要附加外部电路便可和大多数并行传输的外设相连 数据可多为同时传输 使用广泛方便。 微机原理课程设计 1 1 8251A芯片 8251A是可编程的串行接口芯片 数据一位一位地顺序传送 电路简单 传输距离远。 表1-2 和 比较 LED 与LCD相比 LED在亮度 功耗可视角度和刷新速率等方面更具有优势 其最显著的特点是使用寿命长 光电转换效能高。 LCD LCD占用空间小 功耗低 低辐射 能降低视觉疲劳 但会出现闪烁现象。 1.2.2软件部分 该程序主要应分为两大部分 (1)对DS18B20进行设置 如何赋初始温度值,如何保存

4、读出的数字量,如何获取当前温度值,如何将温度值显示出来等问题进行编程. (2)对8255的初始化 对方式选择控制字的赋值问题 也就是解决8255A的A口、B口分别工作在方式几 A口、B口、C口高位、C口低位分别是作为输出口还是输入口的问题。 2、硬件设计 2.1选择芯片8255A 2.1.1 8255A在本设计中的作用 芯片8255A在本设计中起输出、输入作用 C口的高四位输入方式。PC7作为读取EOC信号 低四位作输出方式 PC1、PC0作七段LED显示器的位选码 PA口用作输出方式 作七段LED的段选码 PB口为输入方式 读取ADC0809转换后的数字量即8255A通过PB口读入ADC08

5、09转换后的数字量由PC1、PC0产生位选 PA口产生段选后七段LED显示出数字量。 2.1.2 8255A功能分析 8255A是一种通用的可编程的并行I/O接口芯片 可用与连接PCI卡与外设 实现数据的的输入输出功能 可以对输入/输出的数据进行数据锁存和数据缓冲 有中断请求信号 可以向CPU发出中断请求 能进行单向和双向通信。 8255A的数据总线缓冲器是一个三态8位双向缓冲器 用作8255A同系统数据总线相连时的缓冲部件 CPU通过执行输入/输出指令来实现对缓冲器发送或接收数据。8255A的控制字或状态字也是通过该缓冲器传送的。PA、PB、PC三口均工作在方式 状态。 微机原理课程设计 2

6、 2 图 2-1 8255A原理图 表2-1 8255A的操作功能表 8255A的操作功能表 CS RD WR A1 A0 操 作 数 据 传 送 方 式 0 0 1 0 0 读 A 口 A口数据 数据总线 0 0 1 0 1 读 B 口 B口数据 数据总线 0 0 1 1 0 读 C 口 C口数据 数据总线 0 1 0 0 0 写 A 口 数据总线数据 A口 0 1 0 0 1 写 B 口 数据总线数据 B口 0 1 0 1 0 写 C 口 数据总线数据 C口 0 1 0 1 1 写控制口 数据总线数据 控制口 (1) 方式0的工作特点 这种方式通常不用联络信号 不使用中断 三个通道中的每一

7、个都有可以由程序选定作为输入或输出。 (2) 方式0的功能为 a.两个8位通道 通道A、B。两个四位通道 通道C高4位和低四位 b.任何一个通道可以作输入/输出 c.输出是锁存的 微机原理课程设计 3 3 d.输入是不锁存的 e.在方式0时各个通道的输入/输出可有16种不同的组合。 2.1.3 8255A主要技术参数 表2-2 8255A主要技术参数 参数名称 符号 测试条件 规范值 最大 最小 输入低电平电压 VIL 0.8V -0.5V 输入高电平电压 VIH VCC 2.0V 输入低电平电压 数据总线 VOL IOL=2.5MA 0.45V 输入低电平电压 外部端口 VOL IOL=1.

8、7MA 0.45V 输入高电平电压 数据总线 VOH IOH= -400UA 2.4V 输入高电平电压 外部端口 VOH IOH= -200UA 2.4V 达林顿驱动电流 IDAR REXT=750 VEXT=1.5 -0.4MA 1.0MA 电源电流 ICC 120MA 输入负载电流 IIL I=VCC0MA +10MA -MA 输出浮动电流 IOFL VOUT=VCC0MA +MA -MA 2.2 选择芯片LED 2.2.1 LED在本设计中的作用 LED发光二极管 Light-Emitting Diode 在本设计中采用7段数字发光二级管 做为终端显示。 2.2.2 LED的功能分析 笔

9、画型LED显示器是由8个二极管电路adp按字型8的方式排列 当不同的二极管被选通后根据发光效果会显示不同的自型。本设计中采用共阴极连接方式 当某段接入正电压时 对应的发光二极管会发光 当需要显示字型码“0”时 对应下图中的a b c d e f发光二极管应发光 输入位选码应为00111111 即为 3FH 类似可以显示其他。adp分别与74LS273的1Q8Q相连 接收段选码信号 高电平 4位LED显示器的4根共阴极引线与8255A的PC0PC3相连 接收位选码信号 低电平 。段选码和位选码共同作用以显示不同的字型。 微机原理课程设计 4 4 表2-3共阴极七段LED显示段码 数字 DP g

10、f e d c b a 二进制编码 字形 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 0 1 1 03H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 1 0 1 1 1 1 6FH A 0 1 1 1 0 1 1 1 77H B 0 1 1 1 1 1 0 0 7CH C 0 0 1 1 1 0 0

11、 1 69H D 0 1 0 1 1 1 1 0 5EH E 0 1 1 1 1 0 0 1 79H F 0 1 1 1 0 0 0 1 71H 2.2.3 芯片LED的技术参数 表2-4 LED的技术参数 消耗功率 PM 150mW 最大工作电流 IFM 100mA 正常工作电流 IF 40mA 正向压降 VF 1.8V 燃亮电压为5v 共阴极LED的PM 300mW,IFM 200 mA,IF 60mA,VF 1.8V,VR5V 发红光。 2.3 选择芯片DS18B20 Pcw If Vr Ir If p 对应型号 散射颜色 BT235 2 70 25 5 1.5 2.5 200 SEL-

12、10 红色 BT1441529 100 40 5 0.5 2.5 565 绿色 BT1341529 100 40 5 0.5 2.5 585 蓝色 微机原理课程设计 5 5 2.3.1 DS18B20在本设计中的作用 DS18B20在本设计中主要是测量手部的温度并将接收的模拟信号转化为数字信号输出至8255中。 2.3.2 DS18B20的功能分析 DS18B20测温原理如图2-2所示。图中低温度系数晶振的振荡频率受温度影响很小 用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变 所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在 55所对应的一个基

13、数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数 当计数器1的预置值减到0时 温度寄存器的值将加1 计数器1的预置将重新被装入 计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数 如此循环直到计数器2计数到0时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性 其输出用于修正计数器1的预置值。 图2-2 DS18B20测温原理图 1) DS18B20主要数据部件 1 光刻ROM中的64位序列号是出厂前被光刻好的 它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是 开始8位 28H 是产品类型标号 接着的4

14、8位是该DS18B20自身的序列号 最后8位是前面56位的循环冗余校验码 CRC=X8+X5+X4+1 。光刻ROM的作用是使每一个DS18B20都各不相同 这样就可以实现一根总线上挂接多个DS18B20的目的。 2 DS18B20中的温度传感器可完成对温度的测量 以12位转化为例 用16位符号扩展的二进制补码读数形式提供 以0.0625/LSB形式表达 其中S为符号位。如图2-3: 微机原理课程设计 6 6 图2-3 DS18B20温度值格式 这是12位转化后得到的12位数据 存储在18B20的两个8比特的RAM中 二进制中的前面5位是符号位 如果测得的温度大于0 这5位为0 只要将测到的数

15、值乘于0.0625即可得到实际温度 如果温度小于0 这5位为1 测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H +25.0625的数字输出为0191H -25.0625的数字输出为FF6FH -55的数字输出为FC90H。 图2-4 DS18B20温度转换 3 DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 4 配置寄存器 低五位一直都是1 TM是测试模式位 用于设置DS18B20在工作模式还是在测试模式。在DS

16、18B20出厂时该位被设置为0 用户不要去改动。R1和R0用来设置分辨率 如下表所示 DS18B20出厂时被设置为12位 表2-5 配置寄存器分辨率 微机原理课程设计 7 7 表2-5 ROM指令 表2-5 RAM指令 3、硬件总逻辑图及其说明 3.1硬件总逻辑图 微机原理课程设计 8 8 图3-1 硬件总逻辑图 3.2说明 实验硬件原理图由PCI、8255A、DS18B20、LED数码显示器构成 8255A芯片CS片选信号线接PCI卡上CS, 8255A芯片A0、A1接PCI卡的A0、A1。 8255A的C口的PC7作为DS18B20的输入口 A口作为LED数码管的段选 B口作为LED数码管

17、的位选。 4、控制程序设计 4.1 控制程序设计思路说明 本程序主要功能分为初始化、读温度量、写操作及LED的显示输出。 初始化主要实现写8255方式控制字 设置控制字为89h ,即10001001 8255芯片工作于方式0 PA口作输出段选 PB口作输出位选 PC口作为输入。 然后向DS18B20发送读温度指令 准备读温度前先复位 跳过ROM匹配 发出读温度命令 调用读18B20子程序, 先读低8位再读高8位 读出转换后的温度值存在AX中。再调用显示子程序 将温度值显示出来。 实现二进制到十六进制数字型码的转化主要通过二进制数从段选码中查表找出相应的字型码并从8255中送出在LED显示器中显

18、示。从高位到低位、输出结果并控制显示器显示通过循环完成。 微机原理课程设计 9 9 4.2 程序流程图 1 主程序 (3)读18B20子程序 (2)写18B20子程序 Y 开始 初始化8255 N 调用启动DS18B20子程序 CF=1 延时1s 调用读温度子程序 转换后数据-3、2、1号数码管 4、5、6、7、8号数码管消隐 调用0-PC0子程序 ROR AL 1 开始 8-CX CF=0 返回 保存CX 恢复CX 调用1-PC0子程序 保存CX 12-CX CX-1=0 N 恢复CX Y 调用1-PC0子程序 CX-1=0 N Y Y N Y N 开始 8-CX CX-1=0 返回 BL-

19、AL 8255控制口地址-DX 80H-AL AL-DX 0-PC0 89H-AL AL-DX PC口输入 NOP NOP NOP 8255PC口地址-DX DX-AL ROR AL,1 RCR BL,1 8255控制口地址-DX 80H-AL AL-DX 0-PC0 1-AL AL-DX 1-PC0 微机原理课程设计 10 10 (4)复位DS18B20子程序 (6)启动DS18B20子程序 (7)读温度子程序 (5)0-8255的PC0口子程序 (8)1-8255的PC0口子程序 保存AX 8255的控制口- DX 01H-AL AL-DX(0-PC0口) 恢复AX 开始 返回 保存AX

20、8255的控制口- DX 80H-AL AL-DX(0-PC0口) 恢复AX 开始 返回 返回 0CCH-AL 调用写DS18B20子程序(跳过ROM匹配) 44H-AL 调用写DS18B20子程序(发出温度转换指令) 开始 调用复位DS18B20子程序 调用读18B20子程序 AL-AH 调用读18B20子程序 AL与AH交换 0CCH-AL 调用写DS18B20子程序(跳过ROM匹配) 0BEH-AL 调用写DS18B20子程序(发出温度转换指令) 0-CF 开始 调用复位DS18B20子程序 N Y CF=1 返回 Y Y N Y N N 开始 调用0-PC0子程序 (主机发出501us

21、复位低脉冲) 136-CX CX-1=0 8255控制口地址-DX 89H-AX AL-DX PC输入状态 DX-1 15-CX 返回 DX-AL AL.0=1 N CX-1=0 1-CF 18B20部不存在 136-CX CX-1=1 0-CF Y 微机原理课程设计 11 11 3-cx N Y ROL AH,1 INC SI N SI-AL PA_8255-DX 换码 AL-DX PB_8255-DX AH-AL AL-DX 开始 调用存放字节子程序 AX内容-buffer Y 100-CX PUSH CX 0FEH-AH Cx= =0 Cx= =0 POP CX Y NY 返回 (9)显

22、示子程序 (10)存放字节子程序 开始 LEA DI,buffer CLD STOSB STOSB STOSB STOSB 返回 微机原理课程设计 12 12 4.3 程序代码 表 5-1转换表 0 1 2 3 4 5 6 7 8 9 A B C D E F 3fh 60h 5Bh 4Fh 66h 6dh 7dh 07h 7fh 6fh 77h 7ch 39h 5eh 79h 71h .MODEL TINY PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_ID EQU 10EBH ;厂

23、商ID号 Device_ID EQU 8376 ;设备号 .STACK 300 .DATA IO_Bit8_BaseAddress DW ? msg0 DB BIOS不支持访问PCI $ msg1 DB 找不到Star PCI9052板卡 $ msg2 DB 读8位I/O空间基地址时出错$ Con_8255 DW 00F3H PA_8255 DW 00F0H PB_8255 DW 00F1H PC_8255 DW 00F2H buffer DB 8 DUP(0) ;温度临时存放区 TAB db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39

24、h,5eh,79h,71h ;七段显示器TAB db 3eh,05h,5ah,4eh,65h,6ch,7ch,06h,7eh,6eh,76h,7bh,38h,5dh,78h,70h tab1 db 0bfh,086h,0dbh,0cfh,0e6h,0edh,0fdh,087h,0ffh,0efh,0f7h,0fch,0b9h,0ceh,0f9h,0f1h .CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP ;DELAY? CALL InitPCI CALL ModifyAddress ; 根据PCI提供的基地址,将偏移地址转化为实地址 CALL I

25、nit8255 ;初始化8255 MAIN: CALL START_Temperature ;向DS18B20发送读温度指令 JB MAIN 微机原理课程设计 13 13 CALL RD_Temperature ;读出温度值 call displayNumber ;调用显示子程序 JMP MAIN ;DS18B20复位初始化子程序 INIT_18B20 PROC NEAR CALL W_L;调用0-PC0子程序 CALL Delay501us ; 主机发出501us复位低脉冲 标示复位信号 MOV DX,Con_8255 ;8255控制口地址-DX MOV AX,89H ;设置控制字10001

26、001 OUT DX,AL ;PC输入状态 DEC DX ;DX-1 MOV CX,15 15-CX INIT_18B20_1: IN AL,DX ;DX-AL TEST AL,01H ;AL.0=1? JZ INIT_18B20_2 LOOP INIT_18B20_1 STC ;1;置位标志位 表示DS18B2bu0存在 RET INIT_18B20_2: CALL Delay501us CLC ;0;复位标志位,表示DS18B存在 RET INIT_18B20 ENDP Delay501us PROC NEAR PUSH AX PUSH CX PUSH DX MOV CX,167 MOV

27、DX,PA_8255 Delay501us_1: IN AL,DX LOOP Delay501us_1 POP DX POP CX POP AX RET Delay501us ENDP Delay50us PROC NEAR PUSH AX PUSH CX PUSH DX MOV CX,12 MOV DX,PA_8255 Delay50us_1: 微机原理课程设计 14 14 IN AL,DX LOOP Delay50us_1 POP DX POP CX POP AX RET Delay50us ENDP ;写操作 WRITE_18B20 PROC NEAR MOV CX,8 ;一共8位数据

28、WRI: CALL W_L ;0-PC0 ROR AL,1 ;把最低位移到cf 和最高位 JNB WRI1 ;if(ch=0) jmp CALL W_H ;1-PC0 WRI2: CALL Delay50us CALL W_H LOOP WRI RET WRI1: PUSH CX ;保存CX 恢复CX POP CX JMP WRI2 WRITE_18B20 ENDP ;读操作 READ_18B20 PROC NEAR MOV CX,8 ;数据一共有8位 Read: CALL Delay50us MOV DX,Con_8255 ;8255控制口地址-DX MOV AL,80H OUT DX,AL ;0-PC0 MOV AL,89H OUT DX,AL ;PC口输入状态 MOV DX,PC_8255 ;8255PC口地址-DX IN AL,DX ROR AL,1 RCR BL,1 ;cf ror MOV DX,Con_8255 ;8255控制口地址-DX MOV AL,80H OUT D

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1