欢迎来到天天文库
浏览记录
ID:31957654
大小:708.00 KB
页数:12页
时间:2019-01-29
《电子装置课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、可编辑版浙江理工大学班级:08电子信息实验班学号:Q08610110姓名:周慧指导老师:陈科2010~2011第二学期设计题目:温度检测系统设计Word完美格式可编辑版一、实验内容1、利用板载模拟温度传感器TC1047A实现一温度采集系统;2、间隔1--5s采集一次(步进1s,可以预设),在液晶屏第一行显示连续的3个采集温度值;3、当最新采集的温度大于这三个温度的平均值温度1℃时,蜂鸣器报警,当温度降低后,解除报警;4、记录报警次数,在LCD上显示,,并将结果存入24LC024。二、电路原理图以及各功能模块的工作原理1、驱动蜂鸣器APP001开
2、发板上的BUZZER是由RC2控制一个三极管来驱动的,当JP4的跳线开关短路时,RC2管脚输出高电平便会使蜂鸣器发出声音,RC2管脚输出低电平便禁止蜂鸣器发声。2.字符LCDAPP001开发板配置了一个2*16的字符LCD,它和PIC18F452的接口是RD0-RD3连接到LCD模块的DB4-DB7,用来向LCD模块写入命令和数据,其中DB7可以用来作为LCD模块控制器的忙标志位;RD5是读写控制位;RD4是命令和数据标志位。RD=0时,RD0-RD3是读取和写入数据到LCD的命令寄存器;RD=1时,RD0-RD3读取和写入的是要显示的数据。W
3、ord完美格式可编辑版3.温度测量使用模拟温度传感器TC1047A,利用模数转换,将模拟电压转换为数字电压。对应于相应的温度。Word完美格式可编辑版4.键盘使用开发板上的2组按键SW2和SW35.RTC采用Timer1外接32.768kHz的晶振可以产生精确的1秒计时,从而实现RTC。6.24LC024Word完美格式可编辑版7.LCD、LED&ADC按键读取Word完美格式可编辑版三、主要函数程序流程图1.Main函数流程图Word完美格式可编辑版2.LCD__EEPROM更新Word完美格式可编辑版3.温度比较和蜂鸣器四、实验主要源码(1
4、)Main函数:voidmain(void){intAlarmNum;/*首先初始化*/InitializePORT();InitializeINTs();InitializeAD();InitializeTMR1();Initialize_I2C_Master();/*lcd初始化*/OpenLCD();Word完美格式可编辑版while(1){Key_Press_Check();if(Flagbits.Timer1_Flag)//updateTemperatureonLCDevery1Sec{Flagbits.Timer1_Flag=0;g
5、et_key_flag++;if(get_key_flag>=Time_count){get_key_flag=0;LCD_Temp_Update();//updateTemperatureTemp_Compare();}}}}(2)读取温度:intRead_TC1047_Temperature(void){intAD_Temp;ADCON0bits.CHS0=1;for(AD_Temp=0;AD_Temp<5;AD_Temp++);ADCON0bits.GO=1;//StarttoconverttheA/Dwhile(ADCON0bits.G
6、O);//WaitingA/DuntildoneAD_Temp=ReadADC();//Get10bitsA/DresultreturnAD_Temp;}(3)LCD__EEPROM更新voidLCD_Temp_Update(void){inti;LCD_Set_Cursor(0,0);//清理lcdfor(i=0;i<16;i++)putcLCD('');/****显示第一个温度值******/LCD_Set_Cursor(0,0);//定位光标T2_buffer[0]=T2_buffer[1];//从后面向前传递温度参数if(T2_buff
7、er[0]!=0)//如果是零,不要显示{Buffer_LCD(T2_buffer[0]);LCD_Set_Cursor(0,4);//定位光标putcLCD(0xDF);//显示”度“这个标志}Word完美格式可编辑版/****显示第二个温度值******/LCD_Set_Cursor(0,5);if(T2_buffer[1]!=0){Buffer_LCD(T2_buffer[1]);LCD_Set_Cursor(0,9);putcLCD(0xDF);}/****显示第三个温度值******/LCD_Set_Cursor(0,10);T2_b
8、uffer[2]=T2_buffer[3];if(T2_buffer[2]!=0){Buffer_LCD(T2_buffer[2]);LCD_Set_
此文档下载收益归作者所有