1、 设计题目:温度检测系统设计设计题目:温度检测系统设计 一、实验内容一、实验内容 1、利用板载模拟温度传感器 TC1047A 实现一温度采集系统; 2、间隔 1-5s 采集一次(步进 1 s,可以预设) ,在液晶屏第一行显示连续的 3 个采集温度值; 3、当最新采集的温度大于这三个温度的平均值温度 1时,蜂鸣器报警,当温 度降低后,解除报警; 4、记录报警次数,在 LCD 上显示,,并将结果存入 24LC024。 二、二、 电路原理图以及各功能模块的工作原理电路原理图以及各功能模块的工作原理 1、驱动蜂鸣器 APP001 开发板上的 BUZZER 是由 RC2 控制一个三极管来驱动的,当 JP
2、4 的跳 线开关短路时,RC2 管脚输出高电平便会使蜂鸣器发出声音,RC2 管脚输出低电 平便禁止蜂鸣器发声。 2.字符 LCD APP001 开发板配置了一个 2*16 的字符 LCD,它和 PIC18F452 的接口是 RD0-RD3 连接到 LCD 模块的 DB4-DB7,用来向 LCD 模块写入命令和数据,其中 DB7 可以用来作为 LCD 模块控制器的忙标志位;RD5 是读写控制位;RD4 是命令和数 据标志位。RD=0 时,RD0-RD3 是读取和写入数据到 LCD 的命令寄存器;RD=1 时, RD0-RD3 读取和写入的是要显示的数据。 3.温度测量 使用模拟温度传感器 TC1
3、047A,利用模数转换,将模拟电压转换为数字电压。 对应于相应的温度。 4.键盘 使用开发板上的 2 组按键 SW2 和 SW3 5. RTC 采用Timer 1外接32.768kHz的晶振可以产生精确的1秒计时, 从而实现RTC。 6.24LC024 7LCD、LED /*首先初始化*/ InitializePORT( ); InitializeINTs( ); InitializeAD( ); InitializeTMR1( ); Initialize_I2C_Master( ); /*lcd 初始化*/ OpenLCD( ); while(1) Key_Press_Check(); if
4、 (Flagbits.Timer1_Flag) / update Temperature on LCD every 1 Sec Flagbits.Timer1_Flag=0; get_key_flag+; if(get_key_flag=Time_count) get_key_flag=0; LCD_Temp_Update() ; / update Temperature Temp_Compare(); (2)读取温度)读取温度: int Read_TC1047_Temperature(void) int AD_Temp; ADCON0bits.CHS0=1; for (AD_Temp=0;AD_Temp4) Time_count=1; else Time_count+; PIE1bits.TMR1IE=1; if(!SW3) EEByteWrite(0xA0, 0x30, 0); EEAckPolling(0xA0); LCD_Set_Cursor(1,13); putcLCD( )