查看: 2057|回复: 0

单片机 存储器 温度计 电路 脉冲

[复制链接]
发表于 2009-7-3 21:35:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
单片机 存储器 温度计 电路 脉冲

[img]/qzone/newblog/v5/editor/css/loading.gif[/img] [img]/qzone/newblog/v5/editor/css/loading.gif[/img] 目录前 言............................................................5
一、总体设计方案.................................................6
二、PCB电路原理图...............................................6
三、MCS-51 系列单片机简介........................................7
四、温度传感器DS1820 简介.......................................12
五、软件编程.....................................................15
致谢.............................................................18   
参考文献......................................................... 19
前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。温度测控技术也在各个领域应用越来越广泛,同时温度测量也被人们所异常关注,一时间涌现出大量各式各样的测试温度仪器,这些仪器的原理到底是怎样的呢?说到底也是属于温度测控的范畴,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,测温传感器使用DS18B20,用4 位共阳极LED 数码管以串口传送数据,实现温度显示,能准确达到以上要求。
一、总体设计方案
     1.1  数字温度计设计方案论证
传统的测温元件有热电偶和热电阻,而它们测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,电路复杂,软件调试复杂,制作成本高。所以我们改用一种智能传感器DS18B20作为检测元件,测温范围-55℃~125℃,分辨率最大可达0.0625℃。DS18B20可以直接读出被测温度值。而且采用3线制与单片机相连,减少了外部硬件电路,具有低成本和易使用的特点。
二、参考电路 (及PCB电路原理图)
三、 MCS-51 系列单片机简介
      MCS-51 系列单片机研制于1980年,由Intel 公司所开发,其结构是8048 的延伸,改进了8048 的缺点,其ROM、RAM 都可扩充至64KB,也增添了如乘(MUL)、除(DIV)、减(SUBB)、比较(CJNE)、栈入(PUSH)、栈出(POP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5 个中断源。8052 有6 个中断源,MCS-51 系列单片机存储器容量如表(二-1)所示。MCS-51 系列单片机特点如下:
1、专为控制应用所设计的八位CPU
2、具有布尔代数的运算能力
3、32条双项且可被独立寻址的I/O口
4、芯片内有128字节可供存储数据的RAM(8052:256字节)
5、内部有两组16位定时器(8052有3个)
6、具有全多工传输信号UART
7、5个中断源,且具有两级(高/低)优先权顺序的中断结构
8、芯片内有4KB(8KB/8052)的程序存储器(ROM)
9、芯片内有时钟(CLOCK)振荡器电路
10、程序存储器可扩展至64KB(ROM)
11、数据存储器可扩展至64KB(RAM)
12、8051/52:工厂烧写型,内含ROM
13、P8751:一次烧写型,内含PROM
14、8751/8751:可重复烧写型,内含EPROM
15、87C51/87C52:省电型(低消耗功率)
表(二-1)MCS-51 系列单片机ROM及RAM 容量(字节)
型号803180518751803280528752ROM04K008K0RAM128128128256256256EPROM004K008K1、时钟电路引脚
     MCS-51单片机的时钟可以由内部方式和外部方式产生,XTAL1(19脚)和XTAL2(18脚)即为单片机的两个时钟引脚。 (1)内时钟引脚 8051单片机片内有振荡电路,只需在XTAL1和XTAL2间外接石英晶体和电容组成的并联振荡电路(晶振器),晶体可以在固有频率1.2~12MHz 的晶振器之间任选晶体,电容可以在20~60pF的电容之间任选,通常选择30pF的瓷片电容。在单片机控制的数字显示温度计电路设计的这个部分,就是采用内时钟引脚,其中晶振器为6MHz,两个电容均为30pF。(2)外时钟方式,XTAL1接地,XTAL2接外部振荡器。由于XTAL2端的电平不是TTL电平,故接一个上拉电阻。外部振荡器的频率应低于12MHz。
2、控制信号引脚
(1)RST/Vpd (9脚):复位信号/备用电源引脚当输入的复位信号延续2个机器周期以上,高电平即为有效,用以完成单片机的复位操作。复位后影响片内特殊功能寄存器的状态,但不影响片内RAM状态同一引脚的Vpd 是备用电源输入端(Vpd 接+5V备用电源)。在Vcc 断电时,为保证RAM中的信息不丢失,可使此引脚完成掉电保护功能。
(2)ALE/PROG非(30脚);地址锁存允许信号/编程脉冲输入端在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此可作为外边时钟或外部定时脉冲使用。对片内带有4kbyteEPROM的8751编写固化程序时,PROG非作为编程脉冲输入端。
(3)PSEN非(29引脚):外边程序存储器读选通信号为低电平有效,8051在访问片外程序存储器时,此引脚端输出负脉冲作为读片外程序存储器的选通信号,以实现外部ROM单元的读操作。要检查8051上电平后CPU能否正常到程序存储器中读取指令码,可以用示波器观察引脚PSEN非有无脉冲输出,若有说明正常。
(4)EA非/Vpp (31脚):内部和外部程序存储器选择信号当引脚接高电平时,CPU只访问片内4kbyte 的EPROM/ROM,执行内部程序存储器中的指令,但在程序计数器计数超过0FFF时(即地址大于4kbyte 时),将自动转向执行片外大于4kbyte 程序存储器内的程序。若EA非引脚接低电平时,CPU只访问外部程序存储器,而不管片内是否有程序存储器。对于8031单片机(片内无ROM)需外扩EPROM,故必须将EA非引脚接地。在对EPROM编写固化程序时,需对此引脚施加21V的编程电压。
3、I/O(输入/输出)接口引脚
(1)并行I/O接口的特点
MCS-51有4 个8位并行I/O接口P0~P3,他们都是双向端口,可以进行输入或者输出操作,每个口都有口锁存器和口驱动器两部分组成。此外,它还有一个全双工串行通信口。这4 个端口为MCS-51 与外围器件或外围设备进行信息(数据、地址、控制信号)交换提供了多功能的输入/输出通道,也为MCS-51 扩展外部功能、构成应用系统提供了必要的条件。
它们的特点如下:
a、4 个并行I/O 接口都是双向的。P0 口为漏极开路,P1、P2、P3 口均具有内部上拉电阻,它们有时被称为准双向口。
b、4个并行口的32 条I/O接口线都可以独立地用于输入或输出操作。
c、当4 个并行口的I/O 接口线有作输入操作时,必须对该口的锁存器进行写1操作,以保证从I/O接口线输入数据的正确性,这也是4 个并行接口有时被称为“准”双向的含义。
(2)I/O接口电路功能汇总
MCS-51 单片机内部属单总线结构,因此使系统在结构上增加了灵活性。通过总线,用户可根据应用需要进行多功能的系统扩展,构成用户的实际应用系统。MCS-51 系列中的8031单片机,因其内部在结构上无程序存储器,所以它的应用系统必定为一个扩展的系统。因此,MCS-51 的4个并行I/O接口中的P0、P2、P3 口基本上都具备有这两项功能。
a、P0 口:P0 口是一个多功能口除可以作为通用的输入/输出口外,还具备用于系统扩展的第二功能。在MCS-51 的进行系统扩展时,它作为地址/数据总线口。通过外接地址锁存器,MCS-51 的内部单总线可从P0 口被扩展成 8 位的数据总线和16 位地址总线的低8 位。在实际应用中,P0 口先送出外部存储器16 位地址中的低8 位至地址锁存器锁存,然后再由P0 口进行8 位数据的输入或输出。
b、P1 口:P1 口作为通用I/O接口,它的每一位都可以别编程为通用I/O接口线。
c、P2 口:P2 口也是一个多功能口,与P0 口相似,它除可被用作I/O接口外,在进行系统扩展时,还可以输16位地址总线中的高8位,和P0 口共同构成16位的地址总线。当然,在P0 口和P2 口用作地址/数据总线时,它们都不能再作为通用I/O接口。
d、P3 口:P3 口也是一个多功能口,除可以作为通用I/O接口外,还具有多种控制功能,为通用I/O 接口时和MCS-51 其他具有控制功能的输入/输出引线在一起,共同形成MCS-51 的控制总线。P3 口在作为第二功能(控制功能)使用时。
一个信号引脚,既是第一功能又是第二功能,在使用时也不会引起混乱和造成错误,理由如下:
a、对于各种型号的芯片,其功能的第一功能信号是相同的,所不同的只在引脚的的第二功能信号上。
b、对于9、30 和31 各引脚,由于第一功能信号与第二功能信号是单片机在不c、P3 口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的二功能,剩下不用的才作为口线使用。
P3 口线的第二功能表口线第二功能信号名称P3.0P3.1P3.2P3.3RXDTXDINT0INT1串行数据接收串行数据发送外部中断0申请外部中断1申请P3.4T0定时器/计时器0技术输入申请P3.5T1定时器/计时器1技术输入申请P3.6WR外部RAM写选通P3.7RD外部RAM读选通
d、引脚表现出的是单片机的外特性或硬件特性,在硬件方面用户只能使用引脚,即通过引脚组建系统。因此熟悉引脚是我们设计数字显示温度计的重要内容。
4、MCS-51 单片机的复位方式和复位电路
(1)复位操作 :复位是单片机的初始化操作,其主要功能是把 PC 初始化为9999H,使单片机从9999H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或者操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。复位操作还对单片机的个别引脚信号有影响,例如把ALE和PSEN 非信号变为无效状态,即ALE=0,PSEN=1。
(2)复位信号及其产生 :RST 引脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24 个振荡脉冲周期(即2 个机器周期)以上,若使用频率为 12MHz 的晶振,则复位信号持续时间应超过4us 才能完成复位操作。
(3)复位方式   
按键手动复位有电平方式和脉冲方式两种。其中按键电平复位是通过使复位端经电阻与Vcc 电源接通而实现的,而按键复位脉冲复位则是利用RC 微分电路产生的正脉冲来实现的。电路中的电阻电容参数适宜于12MHz 晶振,能保证复位信号高电平持续时间大于2 个机器周期。
5.显示电路
显示电路采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.2~P3.5来实现,列驱动用9012三极管。
四、温度传感器DS1820 介绍
     (一)DS1820 芯片简介:
      在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。我们在为某水电站开发水轮发电机组轴瓦温度实时监测系统时,为了克服上面提到的三个问题,采用了新型数字温度传感器DS1820,在对其测温原理进行详细分析的基础上,提出了提高DS1820测量精度的方法,使DS1820的测量精度由0.5℃提高到0.1℃以上,取得了良好的测温效果。
1.DS1820 简介
      DS1820 是美国DALLAS 半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与其它温度传感器相比,DS1820 具有以下特性:
    (1)独特的单线接口方式,DS1820 在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820 的双向通讯。
    (2)DS1820 支持多点组网功能,多个DS1820 可以并联在唯一的三线上,实现多点测温。
    (3)DS1820 在使用中不需要任何外围元件。
    (4)温范围-55℃~+125℃,固有测温分辨率0.5℃。
    (5)测量结果以9 位数字量方式串行传送。
2.DS1820 使用中注意事项
     DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
   (1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820 与微处理器间采用串行数据传送,因此,在对DS1820 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C 等高级语言进行系统程序设计时,对DS1820 操作部分最好采用汇编语言实现。
   (2) 在DS1820 的有关资料中均未提及单总线上所挂DS1820 数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
  (3)连接DS1820 的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
   (4) 在DS1820 测温程序设计中,向DS1820 发出温度转换命令后,程序总要等待DS1820 的返回信号,一旦某个DS1820 接触不好或断线,当程序读该DS1820 时,将没有返回信号,程序进入死循环。这一点在进行DS1820 硬件连接和软件设计时也要给予一定的重视。

五、软件编程
    ORG 0000H
    JMP MAIN
    ORG 0030H
MAIN:  CALL RESET;先复位DS18B20
    MOV A,#0CCH ; 跳过ROM匹配
    CALL WRITE
    MOV A,#44H ; 发出温度转换命令
    CALL WRITE
    CALL DELAY500
    CALL DELAY500
    CALL RESET;准备读温度前先复位
    MOV A,#0CCH ; 跳过ROM匹配
    CALL WRITE
    MOV A,#0BEH ; 发出读温度命令
    CALL WRITE
    CALL READ; 将读出的温度数据保存到30H/31H
    MOV 31H,A
    CALL READ
    MOV 30H,A
    CALL CHANGE
    CALL DISPLAY;调用数码管显示子程序
    JMP MAIN
;;;;;;;复位初始化子程序;;;;;;;;;
RESET: SETB P3.5
    NOP
    CLR P3.5
    CALL DELAY500
    SETB P3.5;然后拉高数据线
    CALL DELAY50
    JB P3.5 ,RESET
    CALL DELAY100; 时序要求延时一段时间
    CALL DELAY100
    RET
;;;;;;;;;;;;;;;;;;;写子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WRITE:  MOV R0,#8   ;写一个字节8位
    SETB P3.5
    CLR C
LOOP1: NOP
    CLR P3.5   ;拉低
    CALL DELAY10
    RRC A
    MOV P3.5,C   ;将A中内容写入总线
    CALL DELAY50
    SETB P3.5                       ;释放总线
    DJNZ R0,LOOP1
    SETB P3.5
    RET
;;;;;;;读子程序;;;;;;;;;;;
READ:   MOV R1,#8 ;读一个字节8位
    SETB P3.5
    CLR C
LOOP2: NOP
    CLR P3.5
    NOP
    NOP
    NOP
    NOP
    SETB P3.5 ;释放总线
    MOV R3,#6
    DJNZ R3,$
    MOV C,P3.5 ;将总线上的内容读入A
    RRC A
    CALL DELAY50
    DJNZ R1,LOOP2
    SETB P3.5
    RET
;;;;;;数据转换子程序;;;;;;;;;;
;读来的数据放在30H,31H两个单元中
;30H中放高8位,31H中放低8位
CHANGE:    MOV A,30H
    SWAP A
    ANL A,#F0   ;只保留前4位
    MOV 30H,A
    MOV A,31H
    SWAP A
    ANL A,#0FH  ;只保留后4位
    ORL A,30H  ;显示数据
    MOV 32H,A
    RET
;;;;;;;;;;;;;显示子程序;;;;;;;;;;;;;;;;
DISPLAY:MOV A,32H
    MOV B,#10
    DIV AB
    MOV 35H,A
    MOV 36H,B
    MOV R3,#25
LOOP3: MOV A,35H
    MOV B,36H
    MOV DPTR,#TAB1
    MOVC A,@A+DPTR
    MOV P0,A
    CLR P2.7
    CALL DELAY10
    SETB P2.7
    NOP
    MOV A,B
    MOV DPTR,#TAB1
    MOVC A,@A+DPTR
    MOV P0,A
    CLR P2.6
    CALL DELAY10
    SETB P2.6
    NOP
    DJNZ R3,LOOP3
    RET
;;;;;;;;;;;;;延时子程序;;;;;;;;;;;;;;;;
DELAY500:MOV R4,#5
DELAY1:    MOV R5,#2
DELAY2:    MOV R6,#5
DELAY3:    MOV R7,#5
    DJNZ R7,$
    DJNZ R6,DELAY3
    DJNZ R5,DELAY2
    DJNZ R4,DELAY1
    RET
DELAY100:MOV R5,#2
DELAY4:    MOV R6,#5
DELAY5:    MOV R7,#5
    DJNZ R7,$
    DJNZ R6,DELAY5
    DJNZ R5,DELAY4
    RET
DELAY50:MOV R6,#5
DELAY6:    MOV R7,#5
    DJNZ R7,$
    DJNZ R6,DELAY6
    RET
   
DELAY10: MOV R7,#5
    DJNZ R7,$
    RET
TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H  ;无点
    DB 92H,82H,0F8H,80H,90H
    END
               参 考 文 献
[1] 李广弟等编,《单片机基础》,北京航空航天大学出版社,2001
[2] 吴金戌等编,《8051 单片机实践与应用》,清华大学出版社,2001
[3] 王洪庆编,《微型计算机控制技术》,机械工业出版社,2006         
[4] 付家才编,《单片机控制工程实践技术》,化学工业出版社,2004   
[5] 鲍宏亚等编,《MCS-51 系列单片机应用系统设计及实用技术》,中国宇航出版社,2005 [img]/qzone/newblog/v5/editor/css/loading.gif[/img]  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|维修人员 ( 鲁ICP备17033090号 )

GMT+8, 2024-4-30 02:46 , Processed in 0.180597 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表