井下环境数据采集装置的开发v1601.docx
《井下环境数据采集装置的开发v1601.docx》由会员分享,可在线阅读,更多相关《井下环境数据采集装置的开发v1601.docx(13页珍藏版)》请在冰豆网上搜索。
井下环境数据采集装置的开发v1601
开发设计文档
项目名称:
井下环境数据采集装置的开发
项目开发周期:
5周
项目经费:
自筹(每人50元)
指导老师:
黄健
项目组长:
陈淋超
经费管理员:
李建宁
文档管理员:
高攀
组员1:
陈淋超
组员2:
刘光超
组员3:
高攀
组员4:
陈应虎
组员5:
梁宝东
组员6:
李佳伟
组员7:
申孝琴
组员8:
秦敏哲
组员9:
李建宁
组员10:
毛甜甜
组员交流场地:
暂定16#311办公室
定期交流时间:
周六15:
00~17:
00点,周日15:
00~17:
00点
项目版本号:
1.6.01
组织开发原则:
1)每个组员都必须了解整个项目的软硬件结构、电路设计和工作原理、代码编写规范和调试运行全过程
2)每2个组员为一个分组,可以自由配对,每个分组承担一个功能模块的开发,从资料收集到硬件设计,软件编写,软件调试,最终运行。
3)版本1.0.01为单片机最小系统,不包括任何外围设备和软件。
从1.0基础上每增加一个功能模块版本号增加0.1,依次累加。
文档版本号,跟随项目版本号一致。
例如文档号1.2.01,1就是主版本号,2就是功能版本号或次版本号,01为文档号,每次修改文档都递增01
4)每个分组管理和编写自己相关的设计文档和设计原理。
最终由文档管理员把各个文档集合到最终设计文档中。
5)每个组员的模块必须有电路原理图和源代码附加到文档里。
6)每周六和周日(各2个小时),小组所有成员都必须见面讨论和交流一次。
组织管理职责:
1)组长必须由一定科技开发经验者担任,负责小组的软硬件总体设计和组织交流。
必要时给予组员一定的帮助,但是组员的任务必须自己独立完成,每行代码必须自己编写调试。
2)经费管理员协助组长管理小组经费,对每次采购清单都要有详细记录。
只要有购买设备或器件的时候,都必须开具收据和清单。
准备记账本,任何时候组员都有权知道经费余额和花费情况。
3)文档管理员协助组长管理各个组员的设计文档,按统一格式整理到总体设计文档中,每次整合都必须发布最新的文档到群里共享。
文档更新记录
版本
说明
完成日期
负责人
1.0.01
单片机最小系统
2011-12
全体成员
1.1.01
增加LED液晶显示功能模块
2011-12-30
李建宁、毛甜甜
1.2.01
增加按键控制模块
2011-12-30
陈应虎
1.3.01
增加AD转换接口模块可以支持电流或电压的数据采集,支持8通道的模数转换
2012-2-20
高攀、申孝琴
1.4.01
温湿度传感器采集模块
2012-2-20
刘光超、秦敏哲
1.5.01
瓦斯传感器采集模块
2012-2-20
梁宝东、李佳伟
1.6.01
烟雾和火焰传感器采集模块
2012-2-20
梁宝东、李佳伟
注:
所有模块文档整合到一起,为项目最终版本1.6.01,如果整合完,再有修改就以1.6.01为基础,递增为1.6.02等等。
参考文档:
《单片机C51编程》
《单片机C51编程规范》
1.软硬件功能模块总体设计
2.单片机最小系统
2.1功能原理描述
单片机最小系统包含:
CPU、时钟电路、复位电路。
CPU采用的是STC公司
生产的STSTC89C52芯片。
该芯片内含FlashEEPROM存储器,内部程序存储空间(ROM)大小为8KB,随机读写存储器(RAM)大小为512B。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
2.2硬件原理图
2.3相关参数
本系统所用的STC89C52单片机采用的时钟晶振为11.059MHz,为商业级
用品,适用温度范围为:
0~70℃。
2.4源代码
/*一般在最小系统上,会外接8个LED,故可通过测试LED来检测单片机的好坏。
*/
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharaa;
voiddelay_ms(uintn);
voidmain()
{
aa=0xaa;
while
(1)
{
P1=aa;
delay_ms(5);
aa=_crol_(aa,1);
}
}
voiddelay_ms(uintn)
{
uinti,j;
for(i=100*n;i>0;i--)
for(j=144;j>0;j--);
}
3.LED液晶显示功能模块
3.1功能原理描述
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,
内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
3.2硬件原理图
3.3相关参数
● 低电源电压(VDD:
+3.0--+5.5V)
● 显示分辨率:
128×64点
● 内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
● 内置128个16×8点阵字符
● 2MHZ时钟频率
● 显示方式:
STN、半透、正显
● 驱动方式:
1/32DUTY,1/5BIAS
● 视角方向:
6点
● 背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
● 通讯方式:
串行、并口可选
● 内置DC-DC转换电路,无需外加负压
● 无需片选信号,简化软件设计
● 工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
3.4源代码
/*这是测试LCD12864的一段程序*/
#include
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
/*****端口定义***************/
#defineLCD_dataP0
sbitLCD_RS=P2^4;
sbitLCD_RW=P2^5;
sbitLCD_EN=P2^6;
sbitLCD_PSB=P2^7;
uchardis1[10];
uchardis2[]={"WELCOMETOHERE!
"};
uchardis3[]={"西安科技大学"};
uchardis4[]={"------------"};
/****延时函数******/
voiddelay_ms(uintx)
{
uinti,j;
for(i=x;i>0;i--)
for(j=114;j>0;j--);
}
/**/
voidwrite_cmd(ucharcmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
/*дÏÔʾÊý¾Ýµ½LCD*/
voidwrite_dat(uchardat)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
/*É趨ÏÔʾλÖÃ*/
voidlcd_pos(ucharX,ucharY)
{
ucharpos;
if(X==0)X=0x80;
elseif(X==1)X=0x90;
elseif(X==2)X=0x88;
elseif(X==3)X=0x98;
pos=X+Y;
write_cmd(pos);
}
/*Ëæ»úÏÔʾһ´®Êý×Ö*/
voidmakerand()
{
uinti;
for(i=0;i<10;i++)
{
dis1[i]=i+0x30;
}
}
/*LCD³õʼ»¯É趨*/
voidlcd_init()
{
LCD_PSB=1;//²¢¿Ú·½Ê½
write_cmd(0x30);//»ù±¾Ö¸Áî²Ù×÷
delay_ms(5);
write_cmd(0x0c);//ÏÔʾ¿ª£¬¹Ø¹â±ê
delay_ms(5);
write_cmd(0x01);//Çå³ýLCDµÄÄÚÈÝ
delay_ms(5);
}
/*******Ö÷³ÌÐò********/
voidmain()
{
uchari=0;
delay_ms(10);//ÑÓʱ
lcd_init();//³õʼ»¯LCD
lcd_pos(1,0);//ÉèÖÃÏÔʾλÖÃΪµÚ¶þÐеĵÚÒ»¸ö×Ö·û
while(dis2[i]!
='\0')
{
write_dat(dis2[i]);//ÏÔʾ×Ö·û
i++;
}
lcd_pos(2,0);//ÉèÖÃÏÔʾλÖÃΪµÚÈýÐеĵÚÒ»¸ö×Ö·û
i=0;
while(dis3[i]!
='\0')
{
write_dat(dis3[i]);//ÏÔʾ×Ö·û
i++;
}
lcd_pos(3,0);//ÉèÖÃÏÔʾλÖÃΪµÚËÄÐеĵÚÒ»¸ö×Ö·û
i=0;
while(dis4[i]!
='\0')
{
write_dat(dis4[i]);//ÏÔʾ×Ö·û
i++;
}
while
(1)
{
lcd_pos(0,0);//ÉèÖÃÏÔʾλÖÃΪµÚÒ»ÐеĵÚÒ»¸ö×Ö·û
makerand();
for(i=0;i<10;i++)
{
write_dat(dis1[i]);//ÏÔʾ×Ö·û
}
}
}
4.按键控制模块
4.1功能原理描述
单片机的I/O口既可当输入用也可作输出用,当按键闭合时,线路导通;当
按键弹起时,线路断开。
4.2硬件原理图
4.3相关参数
(无)
4.4源代码
(无)
5.元件选择:
单片机:
STC89C52;
AD采集模块:
AD0809;
LCD模块:
12864液晶显示
温湿度采集:
DHT11;
按键模块:
独立矩阵;
瓦斯浓度采集:
MQ-4