温度控制系统的定时测量、定时控制、数据记录功能扩展

上传人:woxinch****an2018 文档编号:38976695 上传时间:2018-05-10 格式:DOC 页数:15 大小:5.77MB
返回 下载 相关 举报
温度控制系统的定时测量、定时控制、数据记录功能扩展_第1页
第1页 / 共15页
温度控制系统的定时测量、定时控制、数据记录功能扩展_第2页
第2页 / 共15页
温度控制系统的定时测量、定时控制、数据记录功能扩展_第3页
第3页 / 共15页
温度控制系统的定时测量、定时控制、数据记录功能扩展_第4页
第4页 / 共15页
温度控制系统的定时测量、定时控制、数据记录功能扩展_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《温度控制系统的定时测量、定时控制、数据记录功能扩展》由会员分享,可在线阅读,更多相关《温度控制系统的定时测量、定时控制、数据记录功能扩展(15页珍藏版)》请在金锄头文库上搜索。

1、1电子工程设计第三阶段报告电子工程设计第三阶段报告题目 4:温度控制系统的定时测量、定时控制、数据记录功能扩展专业:专业: 电子信息工程电子信息工程小组:小组: 1919姓名学号:姓名学号:1202103112021031 指导教师:指导教师: 高新高新完成日期:完成日期:2015.42015.42目录目录一实验介绍3二基础模块介3三功能设计4四总体设计9五程序调试及遇到的问题11六实验心得与体会.12七参考文献.12附录.133温度控制系统的定时测量、定时控制、数据记录功能扩展一实验介绍一实验介绍1、项目简介项目简介:该项目在已经完成的闭环温度控制系统上增加一些新的功能。 包括定时温度测控和

2、数据记录二个方面。定时温度测控指的是按一定时间间隔 刷新温度的测量结果显示和在规定的时间点上启动温度控制过程。数据记录指 的是温度测量的文字数据存档和温度变化过程的图形数据输出。2、实验背景实验背景:实时钟电路为能够实时提供精确的日期、时间数据的专用电 路,可用于以时间作为动作参考的测控系统之中。实时钟电路均带有标准的处 理器接口,可以通过简单的数据访问操作实时获得所需的日期、时间信息。非易失存储器可用于掉电数据不丢失的数据保存需要。非易失存储器常用 的有 EPROM、EEPROM、Flash ROM、FRAM 等,其中 EEPROM 是低成本、 使用简单的非易失存储器,可用于几百 KB 规模

3、的数据掉电不丢失存储。微型打印机是一种低成本记录设备,可用于文字、图形的存档记录。3、实验要求:实验要求: 采用实时钟电路进行温度测量与控制的精确定时设计。 对温度测量结果进行掉电不丢失存储。 用微型打印机记录测温结果及温度变化趋势曲线。二基础模块介绍二基础模块介绍1、单片机、单片机 C8051F023C8051F0234主要连接如下图2、显示、键盘电路:接在、显示、键盘电路:接在 cs4,地址,地址 0x8000 3、AD 转换电路:将模拟信号转为数字信号,负责读取温度,接在转换电路:将模拟信号转为数字信号,负责读取温度,接在 cs0,地址,地址 0x0000 4、DA 转换电路:负责控制实

4、验箱温度的上升与下降,接在转换电路:负责控制实验箱温度的上升与下降,接在 cs3,地址,地址 0x2000三功能设计三功能设计51.时钟功能时钟功能(1)硬件设计)硬件设计:时钟功能我们选用 ds12887 芯片来实现。 DS12887 是 Dallas 半导体公司推出的实时时钟芯片,在没有外部供电的情况 下,可以正确走时 10 年;可以计数时分秒、年月日和星期等信息。以下为其连接图。 AD0AD7 是地址、数据复用线,跟标准的 51 单片机的 P0 口类似,在一个读写周期里的 前后两个时间段分别是作为地址线或数据线。可与 f023 单片机的 AD0AD7 口直连。 ALE 为地址锁存信号,因

5、为 DS12887 数据地址线采用分时复用的形式,所以需要 ALE 作 地址锁存信号。在一个读写周期里 AD0AD7 引脚上首先出现的信号表示地址,通过 ALE 的下降沿将该信号锁存到 DS12887 的地址寄存器,稍后 AD0AD7 引脚上出现的信号则表 示写入或读出 DS12887 的数据。ALE 可以直接连接至 f023 的 ALE 引脚。 CS 为片选信号,为低电平时选中芯片,是 DS12887 的读写基地址:接在 cs3,地址 0x4000。RST 引脚输出有效低电平,该引脚为漏极开路输出,在外部需要加上拉电阻。复位功能在本设计中不使用,RST 可以直接接高电平。(2)程序设计)程序

6、设计ds12887 的程序分为三部分,定义、写入和读取。 定义:定义:unsigned char a7=15,4,21,7,14,0,0/定义一个存取数据的数组,7 位代表了年、月、 日、星期、小时、分、秒。 #define DS12887 0x4000 /定义时钟芯片的片选基址 #define DS12887_sec DS12887+0x00 / 秒 #define DS12887_min DS12887+0x02 / 分 #define DS12887_hour DS12887+0x04 / 时 #define DS12887_Reg_A DS12887+0x0a /寄存器 A #defi

7、ne DS12887_Reg_B DS12887+0x0b /寄存器 B #define DS12887_Reg_C DS12887+0x0c /寄存器 C #define DS12887_Reg_D DS12887+0x0d /寄存器 D6写入写入:void WriteDs12887() REG_ADD=DS12887_Reg_B;*REG_ADD=0x80; REG_ADD=DS12887_min; *REG_ADD=a5; /将 a 数组的分数据放入 ds12887 中 REG_ADD=DS12887_sec; *REG_ADD=a6; /将 a 数组的秒数据放入 ds12887 中RE

8、G_ADD=DS12887_Reg_A; *REG_ADD=0x20; REG_ADD=DS12887_Reg_B; *REG_ADD=0x06; 读取读取:void ReadDs127887()/将 12887 中的数据读取到 a 中相应位置 unsigned char temp;REG_ADD=DS12887_Reg_B; do temp=*REG_ADD; while(temp REG_ADD=DS12887_min; a5=*REG_ADD; /读取现在的分 REG_ADD=DS12887_sec; a6=*REG_ADD; /读取秒 2.掉电存储功能掉电存储功能(1)硬件设计:)硬件

9、设计:掉电存储功能我们选用的是 eeprom 芯片 AT24C64。AT24C64 是 ATMEL 公司生产的 I2C 总线的 EEPROM 芯片,属于最常用 24C 系列。 24C 系列从 24C01 到 24C512,C 后面的数字代表该型号的芯片有多少 K 的存 储位。ATMEL 的 24C64 存储位是 64K 位它支持 1.8V 到 5V 电源,可以擦写 1 百万次,数据可以保持 100 年使用 5V 电源时时钟可以达到 400KHz。SDA 是串行数据引脚用于在芯片读写时输入或输出数据、地址等,这个引脚是 双向引脚,它是漏极开路的使用时需要加上一个上拉电阻。接在 P1*5。 SLC

10、 脚是器件的串行同步时钟信号,如果器件是使用在单片机系统中那么 SLC 脚应该由单片机控制根据单片机的程序要求产生串行同步时钟信号控制总线 的存取。接在 P1*7。 WP 脚是写保护脚,当这个脚接入高电平时芯片的芯片数据均处于禁止 写入状态,所禁止的地址段要看各芯片的详细资料,当把 WP 脚接到地线芯片 处于正常的读写状态。 A0 到到 A2 为总线地址,我们由于不用总线就置于 000 了。 注:注:本来 f023 单片机是由专用 slc 及 sda 引脚的,但由于关于 f023 用的总线7资料不太好找,所以我们决定和打印机一样使用在 Init device 中被定义成 I/O 口的 P1*4

11、-P1*7 管脚了。 (2)程序部分)程序部分 *start() 、stop()等子程序在附录中可查看 写入函数:写入函数:void write_m_data_24c64(uchar addH,uchar addL,uchar *m_data_24c64,uchar n) /从某地址开始连续多字节写入(前两位写入高低地址,第四位地址相当于一页,第三位为存储写入数据的数组) uchar i;start_24c64();/调用启动子程序,通过控制 sda、slc 的输出启动 24c64 芯片writebyte_24c64(0xa0);/写指令writebyte_24c64(addH);/写高位地址

12、writebyte_24c64(addL);/写低位地址if(n32) /每页最多 32 字节n = 32;for(i=0;i32) /n 不能大于 32,会从头覆盖字节 n=32;start_24c64();writebyte_24c64(0xa0);/写写指令writebyte_24c64(addH);/写高位地址writebyte_24c64(addL);/写低位地址(实际上是调 24c64 地址指针到要读取的数据的地址)stop_24c64();start_24c64();writebyte_24c64(0xa1);/写读指令for(i=0;in;i+) /读 n 个字节数据wi =

13、readbyte_24c64(0);/将数据存入宏定义数组 w 中。stop_24c64();3.打印功能打印功能(1)硬件设计:)硬件设计: TH40-PCTH40-PC 微型打印机:微型打印机:可打印全部 448 个字符及图块,包括 96 个 ASCII 字符,外接口可选用标准并行接口,标准串行接口,485 接口,可选配红外无线接口。我们这里选择并口连接。连接图如下。8D0 到到 D7 为数据传输口用于将数据信息传输到打印机,直接与单片机上 AD0- AD7 连接。 BUSY 引脚是来传送打印机的状态的,可以省略,接在 P1*5. STB 引脚控制打印机的数据接收,将其置零再置一,就能把此

14、时 AD0 到 AD7 的数据接收。接在 P1*7,也是初始化为 I/O 口的引脚。打印机会在收到几个特定的数据作为指令后,会根据数据来打印相应的文字符 号,根据指令数据的不同,可以调整打印的方式、字体、大小等。(2 2)程序部分:)程序部分: 传送数据:传送数据:void pprint(unsigned int ch)while(BUSY1);当打印机忙时循环P3=ch;/p3 位单片机 AD0-AD7 口STB=0; /STB 置 0delay();STB=1; /STB 置 1,此时 p3 口数据将被接受 文字、数字打印:文字、数字打印: c1=c/10+48;c2=c%10+48;/将

15、数字分为个位、十位,+48 转化为 ASCII 码 pprint(0x1b);pprint(0x38);pprint(0x00); /调用汉字出库指令 for(i=0;istrlen(zh);i+)/循环打印字符串,zh 中存有“当前温度”字样pprint(zhi);pprint(c1);pprint(c2); pprint(0x0d);/结束标志,这样打印出“当前温度 XX”字样,XX 表示温度数字9曲线打印曲线打印: pprint(0x1b);pprint(39);pprint(2);/曲线打印指令,一次打一个点,2 表示同时打两条线 pprint(30+c);pprint(30+z);c、z 都是温度量,+30 是为了让温度起点高一些。 pprint(13);四总体设计四总体设计1、系统初始化、系统初始化 主要为在原有 Init_Device()函数中 Port_IO_Init()的 I/O 口配置进行改动 void Port_IO_Init()/*I/O 口的配置为主要改动 XBR0 = 0x0F;/UART0 的 TX0,RX0 连到端口引脚 P0.0,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号