单片机原理与应用课程设计温度控制系统.docx

上传人:b****8 文档编号:9960499 上传时间:2023-02-07 格式:DOCX 页数:23 大小:221.28KB
下载 相关 举报
单片机原理与应用课程设计温度控制系统.docx_第1页
第1页 / 共23页
单片机原理与应用课程设计温度控制系统.docx_第2页
第2页 / 共23页
单片机原理与应用课程设计温度控制系统.docx_第3页
第3页 / 共23页
单片机原理与应用课程设计温度控制系统.docx_第4页
第4页 / 共23页
单片机原理与应用课程设计温度控制系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

单片机原理与应用课程设计温度控制系统.docx

《单片机原理与应用课程设计温度控制系统.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计温度控制系统.docx(23页珍藏版)》请在冰豆网上搜索。

单片机原理与应用课程设计温度控制系统.docx

单片机原理与应用课程设计温度控制系统

 

苏州市职业大学

实习(实训)报告

名称单片机原理与应用课程设计

2013年2月25日至2013年3月1日共1周

院 系

班级

姓名

 

院 主 任

系主任

指导教师

 

苏州市职业大学

实习(实训)任务书

 

名称:

单片机原理与应用课程设计

起讫时间:

2013-2-25-2013-3-1

院系:

电子信息工程系

班  级:

指导教师:

系主任:

 

一、实习(实训)目的和要求

1.掌握使用MSC51单片机编译软件的方法;

2.掌握常用温度测量方法,了解各种传感器工作原理;

3.设计电路并确定电路参数;

4.完成课程设计说明书,内容:

原理分析、计算说明、调试报告、心得体会;

5.将结果向指导教师演示,由教师提问验收通过。

 

二、实习(实训)内容

1.目录;

2.单片机结构、原理;

3.温度控制系统硬件设计(原理图、原理图分析);

4.软件设计,软件流程图,调试过程;

5.硬件、软件程序清单。

三、实习(实训)方式

√集中□分散√校内□校外

四、实习(实训)具体安排

1.集中讲解;

2.查阅资料,设计电路;

3.程序调试;

4.完成课程设计说明书,内容:

原理分析、计算说明、调试报告、程序、心得体会;

5.验收,交课程设计报告。

五、实习(实训)报告内容

目录

第一章摘要7

第二章芯片资料8

一、AT89C51单片机说明8

1、简介8

2、引脚说明8

3、引脚第二功能8

二、NTC负温度系数热敏电阻工作原理10

1、简介10

2、工作原理10

三、TLC549芯片11

1、概述11

2、工作原理11

3、工作时序图11

4.、应用接口及采样程序12

四、AT24C02芯片13

1、概述13

2、管脚配置管脚封装13

3、功能描述13

4、结构与寻址13

第三章项目设计14

一、设计电路图14

二、程序设计15

第四章总结报告19

第一章摘要

第二章芯片资料

一、AT89C51单片机说明

1、简介

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:

4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。

2、引脚说明

•VCC:

电源电压

•GND:

•P0口:

P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0口具有内部上拉电阻。

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

•P1口:

P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

•P2口:

P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。

•P3口:

P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P3口同时具有AT89C51的多种特殊功能,具体如下

3、引脚第二功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2(外部中断0)

P3.3(外部中断1)

P3.4T0(定时器0)

P3.5T1(定时器1)

P3.6(外部数据存储器写选通)

P3.7(外部数据存储器都选通)

图1单片机引脚图

•RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

•ALE/:

当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。

当在Flash编程时还可以作为编程脉冲输出()。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

•PSEN:

程序存储允许时外部程序存储器的读选通信号。

当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。

•VPP:

外部访问允许。

为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。

需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

当执行内部编程指令时,应该接到VCC端。

•XTAL1:

振荡器反相放大器以及内部时钟电路的输入端。

•XTAL2:

振荡器反相放大器的输出端。

二、NTC负温度系数热敏电阻工作原理

1、简介

NTC是NegativeTemperatureCoefficient的缩写,意思是负的温度系数,泛指负温度系数很大的半导体材料或元器件,所谓NTC热敏电阻器就是负温度系数热敏电阻器。

它是以锰、钴、镍和铜等金属氧化物为主要材料,采用陶瓷工艺制造而成的。

这些金属氧化物材料都具有半导体性质,因为在导电方式上完全类似锗、硅等半导体材料。

温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所以其电阻值较高;随着温度的升高,载流子数目增加,所以电阻值降低。

NTC热敏电阻器在室温下的变化范围在10O~欧姆,温度系数-2%~-6.5%。

NTC热敏电阻器可NTC热敏电阻器广泛用于测温、控温、温度补偿等方面.

2、工作原理

NTC(NegativeTemperatureCoefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料.该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻.其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化.现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料.

图2NTC负温度系数热敏电阻温度范围

它的测量范围一般为-10~+300℃,也可做到-200~+10℃,甚至可用于+300~+1200℃环境中作测温用. 

负温度系数热敏电阻器温度计的精度可以达到0.1℃,感温时间可少至10s以下.它不仅适用于粮仓测温仪,同时也可应用于食品储存、医药卫生、科学种田、海洋、深井、高空、冰川等方面的温度测量.

三、TLC549芯片

1、概述

TLC548,TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过I/OCLOCK、CS、DATAOUT三条口线进行串行接口。

具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17􀀁s,TLC548允许的最高转换速率为45500次/s,TLC549为40000次/s。

总失调误差最大为􀀁0.5LSB,典型功耗值为6mW。

采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+-VREF-1V,可用于较小信号的采样。

2、工作原理

TLC549均有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无须特殊的速度或相位匹配。

其工作时序如图2所示。

当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。

这种CS控制作用允许在同时使用多片TLC548、TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。

一组通常的控制时序为:

(1)将CS置低。

内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。

(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。

(3)接下来的3个I/OCLOCK周期的下降沿将

摘要:

TLC548、TLC549是采用LinCMOSTM技术,以开关电容逐次逼近原理工作的8位串行A/D

芯片。

单电源3V~6V供电范围,控制口线少,时序简单,转换速度快,功耗低,价格便宜,适用于低功耗的袖珍仪器上的单路A/D采样,也可将多个器件并联使用。

(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。

保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。

第8个I/OCLOCK后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。

如果CS为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。

在36个内部系统时钟周期结束之前,实施步骤

(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。

若要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。

3、工作时序图

图3TLC549工作时序图

4.、应用接口及采样程序

TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。

与51系列单片机的接口如图3所示。

其采样程序框图如图4所示,实际应用程序清单如下:

;初始化:

SETBP1.2;置CS为1。

CLRP1.0;置I/OCLOCK为零。

MOVR0,#00H;移位计数为零。

;A/D过程:

A/DP:

CLRP1.2

NOP;等待1.4􀀁s,nop数根据晶振情况选择。

NXT:

SETBP1.0

MOVC,P1.1

RLCA

CLRP1.0

INCR0

CJNER0,#8,NXT

MOVR0,#00

SETBP1.2

MOVDTSVRM,A;DTSVRM:

DATASAVERAM.

RET

TLC549片型小,采样速度快,功耗低,价格便宜,控制简单。

适用于低功耗的袖珍仪器上的单路A/D或多路并联采样。

四、AT24C02芯片

1、概述

AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IIC总线接口进行操作,有一个专门的写保护功能。

2、管脚配置管脚封装

DIP:

双列直插式封装,是最简单的一种封装技术。

管脚名称功能A0、A1、A2器件地址选择SDA串行数据、地址SCL串行时钟WP写保护VCC+1.8V~6.0V工作电压VSS地

3、功能描述

AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。

任何从总线接收数据的器件为接收器。

数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。

主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。

AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

SDA串行数据/地址AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。

A0、A1、A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。

当使用AT24C02时最大可级联8个器件。

如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。

WP写保护如果WP管脚连接到Vcc,所有的内容都被写保护只能读。

当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作

4、结构与寻址

AT24C02的存储容量为2Kb,内容分成32页,每页8B,共256B,操作时有两种寻址方式:

芯片寻址和片内子地址寻址。

(1)芯片寻址:

AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0R/W。

其中A2,A1,A0可编程地址选择位。

A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。

R/W为芯片读写控制位,该位为0,表示芯片进行写操作。

(2)片内子地址寻址:

芯片寻址可对内部256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。

第三章项目设计

一、设计电路图

二、程序设计

;**********************************

;难点,EEPROM的读写

;A/D数据读取

;*************************************

WXEQUP3.5

DXEQUP3.6

AD_CSEQUP1.2

AD_CLKEQUP1.0

AD_DOEQUP1.1

RELAYEQUP1.3

SDAEQUP1.6

SCLEQUP1.5

TEMPEQU30H

TEMP_SEQU31H

SD_JGEQU32H;闪动间隔

TEMP_TEQU33H;采集数据暂存

SDEQU20H.0

SD_KGEQU20H.1

XS_IOEQUP0

KEY_IOEQUP2

;***********************************

ORG0000H

AJMPMAIN

ORG000BH

AJMPAD_P

;***********************************

MAIN:

MOVDPTR,#TAB

MOVSP,#5FH

;--------------------

LCALLW_START;当前地址读

MOVA,#0A0H;写设备地址,第0位为1为读

LCALLWRITE

MOVA,#01H;写数据地址

LCALLWRITE

LCALLW_START

MOVA,#0A1H;写设备地址

LCALLWRITE

LCALLREAD

MOVTEMP_S,A

LCALLW_STOP

;---------------------

MOVSD_JG,#5

SETBSD

SETBSD_KG

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

SETBEA

SETBET0

SETBTR0

LOOP:

LCALLDISP

LCALLKEY_SCAN

JZLOOP

LCALLTZ_TEMP

AJMPLOOP

;***************************AT24C02保存

W_START:

CLRSCL;I2C总线通讯开始

LCALLS_NOP

SETBSDA

LCALLS_NOP

SETBSCL

LCALLS_NOP

CLRSDA

LCALLS_NOP

CLRSCL

RET

;---------------

W_STOP:

CLRSCL;结束

LCALLS_NOP

CLRSDA

LCALLS_NOP

SETBSCL

LCALLS_NOP

SETBSDA

LCALLS_NOP

RET

;----------------------

WRITE:

MOVR3,#8;逐位发送

W_NEXT:

CLRSCL

RLCA

MOVSDA,C

SETBSCL

CLRSCL

DJNZR3,W_NEXT

SETBSCL

LCALLS_NOP

CLRSCL

LCALLS_NOP

RET

;-----------------------

READ:

MOVR3,#8;逐位接收

R_NEXT:

CLRSCL

LCALLS_NOP

SETBSCL

LCALLS_NOP

MOVC,SDA

RLCA

CLRSCL

DJNZR3,R_NEXT

CLRSCL

LCALLS_NOP

SETBSCL

LCALLS_NOP

RET

;-----------------------------

S_NOP:

NOP

NOP

NOP

NOP

RET

;**********************************

TZ_TEMP:

CJNEA,#1,TZ_END

LP1:

LCALLDISP

LCALLKEY_SCAN

JNZLP1

CLRSD_KG

LP2:

LCALLDISP

LCALLKEY_SCAN

JZLP2

CJNEA,#1,TZ_INC

LP3:

LCALLDISP

LCALLKEY_SCAN

JNZLP3

SETBSD_KG

SETBSD

;----------------------

LCALLW_START;设置完毕,写入E2ROM

MOVA,#0A0H;写入设备地址,第0位为0为写

LCALLWRITE

MOVA,#01H;写入数据地址

LCALLWRITE

MOVA,TEMP_S;写入数据

LCALLWRITE

LCALLW_STOP

;-------------------------

AJMPTZ_END

TZ_INC:

CJNEA,#2,TZ_DEC;设置温度加一按钮0-99

LP4:

LCALLDISP

LCALLKEY_SCAN

JNZLP4

MOVA,TEMP_S

CJNEA,#99,INC_NEXT

MOVTEMP_S,#0

AJMPLP2

INC_NEXT:

INCTEMP_S

AJMPLP2

TZ_DEC:

;----设置温度减一按钮99-0

LP5:

LCALLDISP

LCALLKEY_SCAN

JNZLP5

MOVA,TEMP_S

CJNEA,#0,DEC_NEXT

MOVTEMP_S,#99

AJMPLP2

DEC_NEXT:

DECTEMP_S

AJMPLP2

TZ_END:

RET

;******************************

AD_P:

PUSHACC

PUSHPSW

PUSHDPH

PUSHDPL

MOVTH0,#3CH

MOVTL0,#0B0H

JBSD_KG,AD_NEXT1

DJNZSD_JG,AD_NEXT1

MOVSD_JG,#5

CPLSD

;---------------------------

AD_NEXT1:

SETBAD_CS;读取A/D转换数值,结果在A中

CLRAD_CLK

MOVR2,#8

CLRAD_CS

LCALLS_NOP

NEXT:

SETBAD_CLK

MOVC,AD_DO

RLCA

CLRAD_CLK

DJNZR2,NEXT

MOVR2,#8

SETBAD_CS

;-------------------

MOVTEMP,#0;温度查表

MOVTEMP_T,A

MOVA,#0

MOVDPTR,#TAB1

CX_LP:

MOVCA,@A+DPTR

CJNEA,TEMP_T,NEXT1

NEXT1:

JCNEXT5

AJMPNEXT6

NEXT5:

MOVA,TEMP

CJNEA,#99,NEXT7;检查当前温度值是否超过99

NEXT7:

JCNEXT8

MOVTEMP,#0;超出赋0

AJMPNEXT6

NEXT8:

INCTEMP

INCA

AJMPCX_LP

;-------------------------

NEXT6:

MOVA,TEMP;控制继电器部分

CJNEA,TEMP_S,NEXT2

NEXT2:

JCNEXT3

SETBRELAY

AJMPNEXT4

NEXT3:

CLRRELAY

NEXT4:

POPDPL

POPDPH

POPPSW

POPACC

RETI

;*******************************

DISP:

MOVDPTR,#TAB

JNBSD,D_NEXT

MOVB,#10;显示设置温度

MOVA,TEMP_S

DIVAB

MOVCA,@A+DPTR

MOVXS_IO,#B

SETBWX

CLRWX

MOVXS_IO,A

SETBDX

CLRDX

LCALLDELAY

MOVA,B

MOVCA,@A+DPTR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

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

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