单片机原理与应用课程设计温度控制系统.doc_第1页
单片机原理与应用课程设计温度控制系统.doc_第2页
单片机原理与应用课程设计温度控制系统.doc_第3页
单片机原理与应用课程设计温度控制系统.doc_第4页
单片机原理与应用课程设计温度控制系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

苏 州 市 职 业 大 学实习(实训)报告 名称 单片机原理与应用课程设计 2013 年 2 月 25 日至 2013 年 3 月1 日共1周院 系 班 级 姓 名 院主任 系 主 任 指导教师 苏 州 市 职 业 大 学实习(实训)任务书 名 称: 单片机原理与应用课程设计 起讫时间: 2013-2-252013-3-1 院 系: 电子信息工程系 班级: 指导教师: 系 主 任: 一、实习(实训)目的和要求1掌握使用MSC51单片机编译软件的方法;2掌握常用温度测量方法,了解各种传感器工作原理;3设计电路并确定电路参数;4完成课程设计说明书,内容:原理分析、计算说明、调试报告、心得体会;5将结果向指导教师演示,由教师提问验收通过。二、实习(实训)内容1目录;2单片机结构、原理;3温度控制系统硬件设计(原理图、原理图分析);4软件设计,软件流程图,调试过程;5硬件、软件程序清单。三、实习(实训)方式 集中 分散 校内 校外四、实习(实训)具体安排1集中讲解;2查阅资料,设计电路;3程序调试;4完成课程设计说明书,内容:原理分析、计算说明、调试报告、程序、心得体会;5验收,交课程设计报告。五、实习(实训)报告内容目录第一章 摘要7第二章 芯片资料8一、AT89C51单片机说明81、简介82、引脚说明83、引脚第二功能8二、NTC负温度系数热敏电阻工作原理101、简介102、工作原理10三、TLC549芯片111、 概述112、工作原理113、工作时序图114.、应用接口及采样程序12四、AT24C02芯片131、概述132、管脚配置管脚封装133、功能描述134、结构与寻址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是Negative Temperature Coefficient 的缩写,意思是负的温度系数,泛指负温度系数很大的半导体材料或元器件,所谓NTC热敏电阻器就是负温度系数热敏电阻器。它是以锰、钴、镍和铜等金属氧化物为主要材料, 采用陶瓷工艺制造而成的。这些金属氧化物材料都具有半导体性质,因为在导电方式上完全类似锗、硅等半导体材料。温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所以其电阻值较高;随着温度的升高,载流子数目增加,所以电阻值降低。NTC热敏电阻器在室温下的变化范围在10O1000000欧姆,温度系数-2%-6.5%。NTC热敏电阻器可NTC热敏电阻器广泛用于测温、控温、温度补偿等方面2、工作原理NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料 图2 NTC负温度系数热敏电阻温度范围它的测量范围一般为-10+300,也可做到-200+10,甚至可用于+300+1200环境中作测温用负温度系数热敏电阻器温度计的精度可以达到0.1,感温时间可少至10s以下它不仅适用于粮仓测温仪,同时也可应用于食品储存、医药卫生、科学种田、海洋、深井、高空、冰川等方面的温度测量三、TLC549芯片1、 概述T LC548, TLC549 是美国德州仪器公司生产的8 位串行A / D 转换器芯片, 可与通用微处理器、控制器通过I/ O CLOCK、CS、DATA OU T 三条口线进行串行接口。具有4MHz 片内系统时钟和软、硬件控制电路, 转换时间最长17s, TLC548 允许的最高转换速率为45 500 次/ s, T LC549 为40 000次/ s。总失调误差最大为 0. 5LSB, 典型功耗值为6mW。采用差分参考电压高阻输入, 抗干扰, 可按比例量程校准转换范围, VREF - 接地, VREF + - VREF - 1V, 可用于较小信号的采样。2、工作原理T LC549 均有片内系统时钟, 该时钟与I / O CLOCK 是独立工作的, 无须特殊的速度或相位匹配。其工作时序如图2 所示。当CS 为高时, 数据输出( DATA OUT ) 端处于高阻状态, 此时I /O CLOCK 不起作用。这种CS 控制作用允许在同时使用多片T LC548、TLC 549 时,共用I/ O CLOCK, 以减少多路( 片) A/ D 并用时的I / O 控制端口。一组通常的控制时序为:( 1) 将CS 置低。内部电路在测得CS 下降沿后,再等待两个内部时钟上升沿和一个下降沿后, 然后确认这一变化, 最后自动将前一次转换结果的最高位( D7) 位输出到DAT A OU T 端上。( 2) 前四个I/ O CLOCK 周期的下降沿依次移出第2、3、4和第5 个位( D6、D5、D4、D3) , 片上采样保持电路在第4 个I/O CLOCK 下降沿开始采样模拟输入。( 3)接下来的3 个I /O CLOCK 周期的下降沿将摘要: T LC548、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/ O CLOCK 后, CS 必须为高, 或I / O CLOCK 保持低电平, 这种状态需要维持36 个内部系统时钟周期以等待保持和转换工作的完成。如果CS 为低时I/ O CLOCK 上出现一个有效干扰脉冲, 则微处理器/ 控制器将与器件的I / O 时序失去同步; 若CS 为高时出现一次有效低电平, 则将使引脚重新初始化, 从而脱离原转换过程。在36 个内部系统时钟周期结束之前, 实施步骤( 1) - ( 4) , 可重新启动一次新的A/D 转换, 与此同时,正在进行的转换终止, 此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号,应使第8 个I/O CLOCK 时钟的下降沿与该时刻对应,因为芯片虽在第4 个I/ O CLOCK 时钟下降沿开始采样, 却在第8个I/O CLOCK 的下降沿开始保存。3、工作时序图图3 TLC549工作时序图4.、应用接口及采样程序TLC 549 可方便地与具有串行外围接口( SPI) 的单片机或微处理器配合使用, 也可与51系列通用单片机连接使用。与51 系列单片机的接口如图3 所示。其采样程序框图如图4 所示, 实际应用程序清单如下:; 初始化:SETB P1. 2 ; 置CS 为1。CLR P1. 0 ; 置I / O CLOCK 为零。MOV R0, # 00H ; 移位计数为零。; A/ D 过程:A/ DP: CLR P1. 2NOP ; 等待1. 4s, nop 数根据晶振情况选择。NXT : SET B P1. 0MOV C, P1. 1RLC ACLR P1. 0INC R0CJNE R0, # 8, NXTMOV R0, # 00SETB P1. 2M OV DTSVRM, A ; DTSVRM: DATA SAVERAM .RETTLC 549 片型小, 采样速度快, 功耗低, 价格便宜, 控制简单。适用于低功耗的袖珍仪器上的单路A / D 或多路并联采样。四、AT24C02芯片1、概述AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。2、管脚配置管脚封装DIP:双列直插式封装,是最简单的一种封装技术。管脚名称 功能 A0、A1、A2 器件地址选择 SDA 串行数据、地址 SCL 串行时钟 WP 写保护 VCC+1.8V6.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中的任一个进行读/写操作,其寻址范围为00FF,共256个寻址单位。第三章 项目设计一、设计电路图二、程序设计19;*;难点,EEPROM的读写;A/D数据读取;*WX EQU P3.5DX EQU P3.6AD_CS EQU P1.2AD_CLK EQU P1.0AD_DO EQU P1.1RELAY EQU P1.3SDA EQU P1.6SCL EQU P1.5TEMP EQU 30HTEMP_S EQU 31HSD_JG EQU 32H ;闪动间隔TEMP_T EQU 33H ;采集数据暂存SD EQU 20H.0SD_KG EQU 20H.1XS_IO EQU P0KEY_IO EQU P2;* ORG 0000H AJMP MAIN ORG 000BH AJMP AD_P;*MAIN: MOV DPTR,#TAB MOV SP,#5FH ;- LCALL W_START ;当前地址读 MOV A,#0A0H ;写设备地址,第0位为1为读 LCALL WRITE MOV A,#01H ;写数据地址 LCALL WRITE LCALL W_START MOV A,#0A1H ;写设备地址 LCALL WRITE LCALL READ MOV TEMP_S,A LCALL W_STOP ;- MOV SD_JG,#5 SETB SD SETB SD_KG MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0LOOP: LCALL DISP LCALL KEY_SCAN JZ LOOP LCALL TZ_TEMP AJMP LOOP;*AT24C02保存W_START: CLR SCL ;I2C总线通讯开始 LCALL S_NOP SETB SDA LCALL S_NOP SETB SCL LCALL S_NOP CLR SDA LCALL S_NOP CLR SCL RET ;-W_STOP: CLR SCL ;结束 LCALL S_NOP CLR SDA LCALL S_NOP SETB SCL LCALL S_NOP SETB SDA LCALL S_NOP RET ;-WRITE: MOV R3,#8 ;逐位发送W_NEXT: CLR SCL RLC A MOV SDA,C SETB SCL CLR SCL DJNZ R3,W_NEXT SETB SCL LCALL S_NOP CLR SCL LCALL S_NOP RET ;-READ: MOV R3,#8 ;逐位接收R_NEXT: CLR SCL LCALL S_NOP SETB SCL LCALL S_NOP MOV C,SDA RLC A CLR SCL DJNZ R3,R_NEXT CLR SCL LCALL S_NOP SETB SCL LCALL S_NOP RET;-S_NOP: NOP NOP NOP NOP RET;*TZ_TEMP: CJNE A,#1,TZ_ENDLP1: LCALL DISP LCALL KEY_SCAN JNZ LP1 CLR SD_KGLP2: LCALL DISP LCALL KEY_SCAN JZ LP2 CJNE A,#1,TZ_INCLP3: LCALL DISP LCALL KEY_SCAN JNZ LP3 SETB SD_KG SETB SD ;- LCALL W_START ;设置完毕,写入E2ROM MOV A,#0A0H ;写入设备地址,第0位为0为写 LCALL WRITE MOV A,#01H ;写入数据地址 LCALL WRITE MOV A,TEMP_S ;写入数据 LCALL WRITE LCALL W_STOP ;- AJMP TZ_ENDTZ_INC: CJNE A,#2,TZ_DEC ;设置温度加一按钮0-99LP4: LCALL DISP LCALL KEY_SCAN JNZ LP4 MOV A,TEMP_S CJNE A,#99,INC_NEXT MOV TEMP_S,#0 AJMP LP2INC_NEXT: INC TEMP_S AJMP LP2TZ_DEC: ;- 设置温度减一按钮99-0LP5: LCALL DISP LCALL KEY_SCAN JNZ LP5 MOV A,TEMP_S CJNE A,#0,DEC_NEXT MOV TEMP_S,#99 AJMP LP2DEC_NEXT: DEC TEMP_S AJMP LP2TZ_END: RET;*AD_P: PUSH ACC PUSH PSW PUSH DPH PUSH DPL MOV TH0,#3CH MOV TL0,#0B0H JB SD_KG,AD_NEXT1 DJNZ SD_JG,AD_NEXT1 MOV SD_JG,#5 CPL SD ;-AD_NEXT1: SETB AD_CS ;读取A/D转换数值,结果在A中 CLR AD_CLK MOV R2,#8 CLR AD_CS LCALL S_NOPNEXT: SETB AD_CLK MOV C,AD_DO RLC A CLR AD_CLK DJNZ R2,NEXT MOV R2,#8 SETB AD_CS ;- MOV TEMP,#0 ;温度查表 MOV TEMP_T,A MOV A,#0 MOV DPTR,#TAB1CX_LP: MOVC A,A+DPTR CJNE A,TEMP_T,NEXT1NEXT1: JC NEXT5 AJMP NEXT6NEXT5: MOV A,TEMP CJNE A,#99,NEXT7 ;检查当前温度值是否超过99NEXT7: JC NEXT8 MOV TEMP,#0 ;超出赋0 AJMP NEXT6NEXT8: INC TEMP INC A AJMP CX_LP ;-NEXT6: MOV A,TEMP;控制继电器部分 CJNE A,TEMP_S,NEXT2NEXT2: JC NEXT3 SETB RELAY AJMP NEXT4NEXT3: CLR RELAYNEXT4: POP DPL POP DPH POP PSW POP ACC RETI;*DISP: MOV DPTR,#TAB JNB SD,D_NEXT MOV B,#10 ;显示设置温度 MOV A,TEMP_S DIV AB MOVC A,A+DPTR MOV XS_IO,#11111011B SETB WX CLR WX MOV XS_IO,A SETB DX CLR DX LCALL DELA

温馨提示

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

最新文档

评论

0/150

提交评论