105387|13

15

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

高手进来帮个忙 [复制链接]

有没有哪个大虾做过pt100的温度测量的啊?可以给些参考资料我看看不?
元器件89s51+1602+pt100 精度0.5 其他没什么要求了
重申一下问题就是,要一个pt100的前置电路(上网找了很久都没有找到一个说的明白的),还有就是最好能给个pt100+stc8952的实例。还有就是经过ad得出的数据是不是2进制的(以前没有做过ad方面的,所以顺便问一下)·

[ 本帖最后由 ap0505525 于 2008-10-10 10:42 编辑 ]
此帖出自单片机论坛

最新回复

冯老啊:在这里,有些求助帖子是为了完成毕业设计题目的,至于详细的题目和内容多数不想搞清楚,能完成任务就行的。所以,不能用你的思想和观念说服他们。大概你还不了解现在高校搞毕业设计的情况吧,一句话:“能帮忙就帮个忙,帮不到也来提点意见!” [ 本帖最后由 忙忙草 于 2008-10-12 09:08 编辑 ]  详情 回复 发表于 2008-10-12 09:07
点赞 关注
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

1602 LCD显示实验

利用启点开发板可以很容易的完成LCD显示,具体如下:
1602采用标准的14脚接口其中:

第1脚:VSS为地电源

第2脚:VDD接5V正电源

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。
另外引脚"A"和"K"为背光引脚,"A"接正,"K"接负便会点亮背光灯.

  1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”












1602液晶模块内部的控制器共有11条控制指令,如表2所示,








它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

指令7:字符发生器RAM地址设置

指令8:DDRAM地址设置

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据

指令11:读数据
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是DM-162的内部显示地址.





比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)



RS EQU P3.7
RW EQU P3.6
E EQU P3.5
mov p3,#0ffh
MOV P1,#01H ;清除屏幕
ACALL ENABLE
MOV P1,#38H ;8位点阵
ACALL ENABLE
MOV P1,#0FH ;开显示
ACALL ENABLE
MOV P1,#06H ;移动光标
ACALL ENABLE
MOV P1,#80H ;显示位置
ACALL ENABLE
l3: mov p1,#01h
acall enable
mov dptr,#table1 ;送第一句话
call write1
call enable
MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置)
ACALL ENABLE ;调用写入命令子程序
call write1
call enable
mov p1,#01h
call delay1
call delay1
call delay1
jmp l3
ENABLE: ;送命令
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
write1: ;送字符串
mov r1,#00h
a1:mov a,r1
movc a,@a+dptr
call write2
inc r1
cjne a,#00h,a1 ;以00H做字符串结束标志
ret
write2: ;送单个字符
mov p1,a
setb rs
clr rw
clr e
call delay
setb e
ret
delay: ;延时子程序
mov r7,#255
d1:mov r6,#255
d2:djnz r6,d2
djnz r7,d1
ret
delay1:
mov r7,#255
delay2:mov r6,#255
       djnz r6,$
       djnz r7,delay2
ret
;以下每个表格都是一句话,以00H作为每句话的结尾.
table1: db 20h,20h,20h,57h,45h,4ch,43h,4fh,4dh,45h,20h,54h,4fh,20h,20h,20h,20h,00h
table2: db 20h,57h,57h,57h,2Eh,4dh,43h,55h,39h,39h,2Eh,43h,4Fh,4Dh,20h,20h,20h,00h
end



此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

2万

帖子

71

TA的资源

管理员

板凳
 

数字温度传感器DS18B20的原理与应用

1引言
        DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。
2DS18B20的内部结构
        DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。
        ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。



图1DS18B20的内部结构



图2DS18B20的管脚排列



(a)初始化时序



(b)写时序



(c)读时序
图3DS18B20的工作时序图
DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

23
22
21
20
2-1
2-2
2-3
2-4


温度值低字节
MSBLSB

S
S
S
S
S
22
25
24


温度值高字节
        高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下:

0
R1
R0
1
1
1
1
1


MSBLSB

        R1、R0决定温度转换的精度位数:R1R0=“00”,9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;未编程时默认为12位精度。
  高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。
3DS18B20的工作时序
  DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如图3(a)(b)(c)所示。
4DS18B20与单片机的典型接口设计
    图4以MCS-51系列单片机为例,画出了DS18B20与微处理器的典型连接。图4(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图4(b)中DS18B20采用外接电源方式,其VDD端用3V~5.5V电源供电。
    假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。
    DATEQUP1.0
    ……
    INIT:CLREA
    INI10:SETBDAT
    MOVR2,#200




a)寄生电源工作方式
(b)外接电源工作方式
图4DS18B20与微处理器的典型连接图

INI11:CLRDAT
DJNZR2,INI11;主机发复位脉冲持续3μs×200=600μs
SETBDAT;主机释放总线,口线改为输入
MOVR2,#30
IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs
CLRC
ORLC,DAT;DS18B20数据线变低(存在脉冲)吗?
JCINI10;DS18B20未准备好,重新初始化
MOVR6,#80
INI13:ORLC,DAT
JCINI14;DS18B20数据线变高,初始化成功
DJNZR6,INI13;数据线低电平可持续3μs×80=240μs
SJMPINI10;初始化失败,重来
INI14:MOVR2,#240
IN15:DJNZR2,INI15;DS18B20应答最少2μs×240=480μs
RET
;------------------------
WRITE:CLREA
MOVR3,#8;循环8次,写一个字节
WR11:SETBDAT
MOVR4,#8
RRCA;写入位从A中移到CY
CLRDAT
WR12:DJNZR4,WR12
;等待16μs
MOVDAT,C;命令字按位依次送给DS18B20
MOVR4,#20
WR13:DJNZR4,WR13
;保证写过程持续60μs
DJNZR3,WR11
;未送完一个字节继续
SETBDAT
RET
;------------------------
READ:CLREA
MOVR6,#8;循环8次,读一个字节
RD11:CLRDAT
MOVR4,#4
NOP;低电平持续2μs
SETBDAT;口线设为输入
RD12:DJNZR4,RD12
;等待8μs
MOVC,DAT
;主机按位依次读入DS18B20的数据
RRCA;读取的数据移入A
MOVR5,#30
RD13:DJNZR5,RD13
;保证读过程持续60μs
DJNZR6,RD11
;读完一个字节的数据,存入A中
SETBDAT
RET
;------------------------
        主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设一线仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,可写出完成一次转换并读取温度值子程序GETWD。
    GETWD:LCALLINIT
    MOVA,#0CCH
    LCALLWRITE;发跳过ROM命令
    MOVA,#44H
    LCALLWRITE;发启动转换命令
    LCALLINIT
    MOVA,#0CCH;发跳过ROM命令
    LCALLWRITE
    MOVA,#0BEH;发读存储器命令
    LCALLWRITE
    LCALLREAD
    MOVWDLSB,A
    ;温度值低位字节送WDLSB
    LCALLREAD
    MOVWDMSB,A
    ;温度值高位字节送WDMSB
    RET
    ……
        子程序GETWD读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
        如果一线上挂接多个DS18B20、采用寄生电源连接方式、需要进行转换精度配置、高低限报警等,则子程序GETWD的编写就要复杂一些,限于篇幅,这一部分不再详述,请参阅相关内容。
        我们已成功地将DS18B20应用于所开发的“家用采暖洗浴器”控制系统中,其转换速度快,转换精度高,与微处理器的接口简单,给硬件设计工作带来了极大的方便,能有效地降低成本,缩短开发周期。
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

2万

帖子

71

TA的资源

管理员

4
 
0.5度这个应该可以了。

很多单片机开发板上直接就有,pt100也就加上个ad,型号根据精度自己选
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

557

帖子

0

TA的资源

裸片初长成(初级)

5
 
从二楼的回复可以看出大家很想助楼主一臂之力,可是看病是要对症的,你的问题到底在哪里?例如,对象信息的采集变换及其中的补偿,还是1602的显示,检测数据的转换,还是精度的处理?等等。不能都是你的难点吧?
另外请问“精度0.5” 所指是0.5%,还是0.5度;以及具体到你设计的设备的测温范围等要求,这很重要,因为pt100的测温范围从-200到+800度以上,宽达千度。0.5的不同含义会影响整个设计的。
总之,你能描述的完整准确,大家就更准确地给你帮助

[ 本帖最后由 xiaoxif 于 2008-10-8 22:57 编辑 ]
此帖出自单片机论坛
 
 
 

回复

2万

帖子

71

TA的资源

管理员

6
 
冯老师说的有道理。根据这个问题的问法,确实很难给他做个完全的东西出来。

问了下朋友:
温度测量本身就很麻烦,受现场很多因素限制,自己做的测量系统毕竟不是独立专门的仪表。受干扰的因素也要多,所以还是要根据他自己的实际情况来设计调整。

PS:pt100在使用中比那个麻烦一些,但也只是需要建立一个电桥测量电路。和几个功率放大器。
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

7
 
问题还没有解决 大虾快出来!!!:Q
此帖出自单片机论坛
 
 
 

回复

557

帖子

0

TA的资源

裸片初长成(初级)

8
 

我不是大侠,不过也想试试

我不是大侠,但接触过这方面的问题,所以想试试.也正因为想试试,所以此前才请教了几个问题(重复如下):

"另外请问“精度0.5” 所指是0.5%,还是0.5度;以及具体到你设计的设备的测温范围等要求,这很重要,因为pt100的测温范围从-200到+800度以上,宽达千度。0.5的不同含义会影响整个设计的。"

你在编辑过的主题中,是否提出了以下三个具体问题:

1 要一个pt100的前置电路(上网找了很久都没有找到一个说的明白的),

2 要一份至少是完整结构的Solution :"还有就是最好能给个pt100+stc8952的实例。"

3 在MCU中如何将ad得出的2进制数据转换为十进制的显示数据

还有一个会影响大家讨论角度,深度的问题:这个题目是实际设计,是毕业设计,还是一道作业题?

[ 本帖最后由 xiaoxif 于 2008-10-10 18:50 编辑 ]
此帖出自单片机论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

9
 
[quote]原帖由 xiaoxif 于 2008-10-10 18:44 发表
我不是大侠,但接触过这方面的问题,所以想试试.也正因为想试试,所以此前才请教了几个问题(重复如下):

"另外请问,还是0.5度;以及具体到你设计的设备的测温范围等要求,这很 ... [/quote]“精度0.5” 所指是0.5%.这个是老师给我的一个课题,本来是2个人做的,但是另外一个人放弃了,所以只剩下我一个人做,感觉一个人做有点难,能帮忙就帮个忙,帮不到也来提点意见!

[ 本帖最后由 ap0505525 于 2008-10-11 00:13 编辑 ]
此帖出自单片机论坛
 
 
 

回复

557

帖子

0

TA的资源

裸片初长成(初级)

10
 

需要注意的一些建议

作为特定的设计,你的主要问题应该在第一个问题,就是前级电路上,为此推荐一篇文章供你参考,题目是:
Positive Analog Feedback Compensates PT100 Transducer 这篇资料可以很方便地利用以下地址得到:
http://pdfserv.maxim-ic.com/en/an/AN3450.pdf


第三个问题,经过AD转换后的信息是二进制的,这类问题可以直接参考计算机的任何一本基本教程(包括你的教材)中二-十进制转换的内容就可以找到解决方法(指程序).

第二个问题,等于请别人为你做设计,或者是抄一个设计,这样做对你的学习不太好吧?但是仍提供一些建议:


1 相对于0.5度,0.5%的精度处理难度要小多了(差一个数量级,这就是问你这个0.5是什么的原因),不十分准确地讲(只能不十分准确的讲--这就是为什么要问你要求的测温范围的原因)按照pt100的满量程,0.5%的精度折合约为温度偏差5度,从pt100的特性看,其变化阻值大约为200m ohm的数量级.AD的分辨率取12bit以上没有问题(建议高取).其中的数量关系可以参考上面介绍资料的数据表进行验算.


2 根据你的要求,还有几个建议提醒注意:
第一:连接pt100的前级电路及其布线要有足够的补偿(这个设计要求足够的温度稳定性);
第二:要注意AD的分辨率以外的转换线性等直接间接关系到精度和稳定度的指标.
第三:作为基本设计技巧/阶段,建议你先明确"温度-阻值-电压-二进制数据-十进制数据"这几层数据变换关系.再搞具体设计就不难了.


学识所限,错误之处,望更深入讨论.


[ 本帖最后由 xiaoxif 于 2008-10-15 01:19 编辑 ]
此帖出自单片机论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

11
 
谢谢楼上的兄弟指点!你能+我的Q详聊吗?
此帖出自单片机论坛
 
 
 

回复

557

帖子

0

TA的资源

裸片初长成(初级)

12
 
原帖由 ap0505525 于 2008-10-11 10:01 发表
谢谢楼上的兄弟指点!你能+我的Q详聊吗?


对不起,我没有Q。
此帖出自单片机论坛
 
 
 

回复

1225

帖子

0

TA的资源

裸片初长成(中级)

13
 

回复 12楼 xiaoxif 的帖子

冯老啊:在这里,有些求助帖子是为了完成毕业设计题目的,至于详细的题目和内容多数不想搞清楚,能完成任务就行的。所以,不能用你的思想和观念说服他们。大概你还不了解现在高校搞毕业设计的情况吧,一句话:“能帮忙就帮个忙,帮不到也来提点意见!”

[ 本帖最后由 忙忙草 于 2008-10-12 09:08 编辑 ]
此帖出自单片机论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

14
 
原帖由 忙忙草 于 2008-10-12 09:07 发表
冯老啊:在这里,有些求助帖子是为了完成毕业设计题目的,至于详细的题目和内容多数不想搞清楚,能完成任务就行的。所以,不能用你的思想和观念说服他们。大概你还不了解现在高校搞毕业设计的情况吧,一句话:“能帮 ...
谢谢你的宝贵意见,但是告诉你这不是我的毕业设计!本人现在大三,离毕业设计还有上一年的时间,这个只是我们兴趣小组的一个课题!我们学校是大三才开始学单片机的,所以很多东西没弄清楚才在这里发帖的.你那么清楚现在高校搞毕业设计的情况想必也是过来人吧!



[ 本帖最后由 ap0505525 于 2008-10-12 10:45 编辑 ]
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表