基于STC89C52单片机的智能路灯控制系统_第1页
基于STC89C52单片机的智能路灯控制系统_第2页
基于STC89C52单片机的智能路灯控制系统_第3页
基于STC89C52单片机的智能路灯控制系统_第4页
基于STC89C52单片机的智能路灯控制系统_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

XXVII参考文献[1]石文轩,宋薇.基于单片机MCS-51的智能密码锁设计[M].武汉工程职业技术学院学报,2004,(01).[2]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报,2002,(01).[3]叶启明.单片机制作的新型安全密码锁[J].家庭电子,2005,(10).[4]李明喜.新型存储柜锁的设计[J].机电产品开发与创新,2004,(03).[5]董继成.一种新型安全的单片机密码锁[J].电子技术,2004,(03).[6]杨茂涛.一种存储柜锁的实现[J].福建电脑,2004,(08).[7]瞿贵荣.实用存储柜锁[J].家庭电子,2000,(07).[8]ATmega.ATmega8L-8AC,2006,(01).[9]WirelessWorld,1998,vol、84,No、1509,p69.[10]王千.实用电子电路大全[M],电子工业出版社,2001,p101.[11]何立民.单片机应用技术选编[M],北京:北京航空大学出版社,1998.[12]李华.MCS-51系列单片机使用接口技术[M],北京航空航天大学出版社,1993.[13]彭为.单片机典型系统设计实例精讲[M],北京:电子工业出版社,2006.[14]潘永雄.新编单片机原理与应用[M],西安:西安电子科技大学出版社,2003.[15]童诗白,华成英,模拟电子技术基础[M],北京:高等教育出版社,2000.[16]阎石主.数字电子技术基础[M],北京:高等教育出版社,1998.[27]樊昌信,曹丽娜.通信原理[M],北京:国防工业出版社,2007.[28]李瀚荪.电路分析基础[M],北京:高等教育出版社1991.[19]郭海英.基于单片机的电子安全密码锁的设计[M].现代电子技术,2005,(13).[20]何希才,杜煜.实用电子电路设计[M].北京:电子工业出版社,1998.[21]康华光.电子技术基础(第四版)[M].北京:高等教育出版社,1998.[22]俞睆卿.智能家居终端的研究与设计[D]上海交通大学2008.[23]林旭东.智能家居系统相关技术及发展趋势[J].创新科技导报.2008.6.5-6.[24]李方.浅谈几种智能家居系统网络技术[J].计算机与网络.2006年.5(2).98-101.[25]陈文智.嵌入式系统开发原理与实践.清华大学出版社.2005.[26]贾宗璞,许合利.C语言程序设计.中国矿业大学出版社,2007.[27]谭浩强.C程序设计.清华大学出版社,2005.[28]余发山,王福忠.单片机原理及应用技术.中国矿业大学出版社,2008.[29]沈星星,丛露微.基于ZigBee的智能家具控制系统,论文选粹,2011第3期[30]冯培昌,周晓云,陈孝伟.无线传感器网络探讨[J].电气自动化.2005年.27(5).73-75.[31]周健明,江玲.ZigBee网络层关键技术研究与实现.黄石理工学院学报.2009.25.附录系统程序#include<reg52.h> //头文件#include<intrins.h> //头文件#defineucharunsignedchar //宏定义#defineuintunsignedint //宏定义uchartime_data[7]; //时钟芯片数据存储ucharwrite_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};//时钟芯片数据的地址ucharread_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81}; //时钟芯片数据的地址ucharcodetable1[]="2000/00/00";ucharcodetable2[]="00:00:0000";ucharcodetable3[]=""; //清屏内容ucharcodetable4[]="SetRealTime";ucharcodetable5[]="SetOpenTime";ucharcodetable6[]="StartTime:";ucharcodetable7[]="00:00:00";ucharcodetable8[]="EndTime:";bitAdjust; //调节标志位,=1表示进入按键调节模式,=0是正常显示模式bitTimer; //定时模式标志位,=1表示进入定时开启模式,=0是光线开启模式bitflag; //延时10s标志位sbitrs=P1^0; //LCD1602端口sbitrw=P1^1; //LCD1602端口sbite=P1^2; //LCD1602端口sbitsck=P3^5; //时钟端口sbitio=P3^6; //时钟端口sbitrst=P3^7; //时钟端口sbitSELT=P1^3; //选择键端口sbitENTER=P1^4; //确认键端口sbitUP=P1^5; //加键端口sbitDOWN=P1^6; //减键端口sbitLAMP1=P2^7; //路灯接口sbitLAMP2=P2^6; //路灯接口sbitBEEP=P2^0; //蜂鸣器接口sbitLIGHT=P2^2; //光线检测端口sbitCHECK=P2^3; //检查路灯故障光明电阻接口ucharSelect_num; //选择按键按下次数ucharEnter_num; //确认按键按下次数floatYear,Month,Day,Hour,Minute,Second,Week; //时间设置值floatHour_H,Minute_H,Second_H; //设置开始时间floatHour_L,Minute_L,Second_L; //设置结束时间intCount; //T0中断次数ucharMiao; //延时时间10svoidread_rtc(); //函数声明/**************************************LCD1602显示*******************************************************************************/voiddelay1(uintz) //延时函数{ uintx,y; for(x=z;x>0;x--) for(y=10;y>0;y--);}voidwrite_com(ucharcom) //写指令函数{ rw=0; delay1(5); rs=0; delay1(5); e=1; delay1(5); P0=com; delay1(5); e=0; delay1(5); }voidwrite_date(uchardate) //写数据函数{ rw=0; delay1(5); rs=1; delay1(5); e=1; delay1(5); P0=date; delay1(5); e=0; delay1(5); }voidinit() //初始化函数{ ucharnum; Year=17; Month=1; Day=1; Hour=15; Minute=30; Second=50; Week=1; Hour_H=23; Minute_H=59; Second_H=59; Hour_L=18; e=0; //时序表e初始为0 write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口 write_com(0x0c); //设置光标 write_com(0x06); //光标自动加1,光标输入方式 write_com(0x01); //清屏 write_com(0x80); //设置初始显示位置 for(num=0;num<16;num++) { write_date(table1[num]); delay1(5); } write_com(0x80+0x40); for(num=0;num<16;num++) { write_date(table2[num]); delay1(5); } }voidSetTime_dispaly(ucharadd,uchardat) //第一个:参数的地址,第二个:参数的内容{ ucharshi,ge; shi=dat/10; //把数据的十位提取出来 ge=dat%10; //把数据的个位提取出来 write_com(add); //要写的地址 write_date(0x30+shi); //十位的内容1602字符库 write_date(0x30+ge); //个位的内容1602字符库}voidDate_dispaly(ucharadd,uchardat) //第一个:参数的地址,第二个:参数的内容{ ucharshi,ge; shi=dat/16; //把数据的十位提取出来 ge=dat%16; //把数据的个位提取出来 write_com(add); //要写的地址 write_date(0x30+shi); //十位的内容1602字符库 write_date(0x30+ge); //个位的内容1602字符库 }voidLCD_Display_String(unsignedcharline,unsignedchar*string){ //液晶屏显示内容,把要显示的内容写到对应的位置 unsignedchari; unsignedcharaddress=0; if(line==1) { address=0x80; //0X80是第1行的第1个位置,0x81第2位 } elseif(line==2) { address=0x80+0x40; //0X80+0x40是第2行的第1个位置,0X80+0x40+1是第2行第2位 } for(i=0;i<16;i++) { write_com(address); write_date(string[i]); address++; }}voidTime_Display(void){ read_rtc(); Date_dispaly(0x80+0x40+9,time_data[6]);//显示秒 Date_dispaly(0x80+0x40+6,time_data[5]); //显示分 Date_dispaly(0x80+0x40+3,time_data[4]); //显示时 Date_dispaly(0x80+11,time_data[3]); //显示日 Date_dispaly(0x80+8,time_data[2]); //显示月 Date_dispaly(0x80+0x40+14,time_data[1]);//显示周 Date_dispaly(0x80+5,time_data[0]); //显示年 // Year/10*16+Year%10 Year=time_data[0]/16*10+time_data[0]%16; Week=time_data[1]/16*10+time_data[1]%16; Month=time_data[2]/16*10+time_data[2]%16; Day=time_data[3]/16*10+time_data[3]%16; Hour=time_data[4]/16*10+time_data[4]%16; Minute=time_data[5]/16*10+time_data[5]%16; Second=time_data[6]/16*10+time_data[6]%16;}/*************************************DS1302时钟*******************************************************************************/voidwrite_ds1302_byte(uchardat){ uchari; for(i=0;i<8;i++) { sck=0; io=dat&0x01; //准备数据,从最低位开始 dat=dat>>1; sck=1; }}voidwrite_ds1302(ucharadd,uchardat){ rst=0; _nop_(); //CPU原地踏步 sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); //传地址 write_ds1302_byte(dat); //传数据 rst=0; //不受其他影响 _nop_(); io=1; //释放 sck=1;}ucharread_ds1302(ucharadd){ uchari,value; rst=0; _nop_();//CPU原地踏步 sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); for(i=0;i<8;i++) { value=value>>1; sck=0; if(io) value=value|0x80; sck=1; } rst=0; _nop_(); sck=0; _nop_(); sck=1; io=1; returnvalue;}voidset_rtc() //设置时间{ uchari,j; for(i=0;i<7;i++) //转换BCD码 { j=time_data[i]/10; time_data[i]=time_data[i]%10; time_data[i]=time_data[i]+j*16; } write_ds1302(0x8e,0x00); //去除写保护 for(i=0;i<7;i++) { write_ds1302(write_add[i],time_data[i]); } write_ds1302(0x8e,0x80);//加写保护}voidread_rtc(){ uchari; for(i=0;i<7;i++) { time_data[i]=read_ds1302(read_add[i]); //最终读出来的数16进制 }}/*************************************************按键****************************************************************/voidKeyscan(void){ if(SELT==0) { delay1(2); if(SELT==0) { while(!SELT); Select_num++; //选择键按下一次 Adjust=1; //进入调节模式 } if(Select_num==1) { LCD_Display_String(1,table4); LCD_Display_String(2,table5); write_com(0x80+0); //写>> write_date(0x3e); write_com(0x80+1); //写>> write_date(0x3e); Enter_num=0; } if(Select_num==2) { LCD_Display_String(1,table4); LCD_Display_String(2,table5); write_com(0x80+0x40+0); //写>> write_date(0x3e); write_com(0x80+0x40+1); //写>> write_date(0x3e); Enter_num=0; } if(Select_num==3) { LCD_Display_String(1,table1); LCD_Display_String(2,table2); Select_num=0; Enter_num=0; Adjust=0; } write_com(0x0c); //光标不再闪烁 Enter_num=0; } if(ENTER==0) { delay1(2); if(ENTER==0) { while(!ENTER); Enter_num++; } if(Select_num==1) //设置实时时间 { if(Enter_num==1) { LCD_Display_String(1,table1); LCD_Display_String(2,table2); SetTime_dispaly(0x80+5,Year); SetTime_dispaly(0x80+8,Month); SetTime_dispaly(0x80+11,Day); SetTime_dispaly(0x80+0x40+3,Hour); SetTime_dispaly(0x80+0x40+6,Minute); SetTime_dispaly(0x80+0x40+9,Second); SetTime_dispaly(0x80+0x40+14,Week); write_com(0x80+5); //光标闪烁地址,停留在年的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==2) { write_com(0x80+8); //光标闪烁地址,停留在月的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==3) { write_com(0x80+11); //光标闪烁地址,停留在日的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==4) { write_com(0x80+0x40+3); //光标闪烁地址,停留在时的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==5) { write_com(0x80+0x40+6); //光标闪烁地址,停留在分的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==6) { write_com(0x80+0x40+9); //光标闪烁地址,停留在秒的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==7) { write_com(0x80+0x40+15); //光标闪烁地址,停留在星期的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==8) { Enter_num=0; write_com(0x0c); //光标不再闪烁 LCD_Display_String(1,table1); LCD_Display_String(2,table2); time_data[0]=Year;///10*16+Year%10; time_data[1]=Week;///10*16+Week%10; time_data[2]=Month;///10*16+Month%10; time_data[3]=Day;///10*16+Day%10; time_data[4]=Hour;///10*16+Hour%10; time_data[5]=Minute;///10*16+Minute%10; time_data[6]=Second;///10*16+Second%10; set_rtc(); //设置时间 Select_num=0; Adjust=0; } } if(Select_num==2) //设置开关锁时间 { if(Enter_num==1) { LCD_Display_String(1,table6); LCD_Display_String(2,table7); SetTime_dispaly(0x80+0x40+4,Hour_L); SetTime_dispaly(0x80+0x40+7,Minute_L); SetTime_dispaly(0x80+0x40+10,Second_L); write_com(0x80+0x40+4); //光标闪烁地址,停留在时的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==2) { write_com(0x80+0x40+7); //光标闪烁地址,停留在分的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==3) { write_com(0x80+0x40+10); //光标闪烁地址,停留在秒的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==4) { write_com(0x0c); //光标不再闪烁 LCD_Display_String(1,table8); LCD_Display_String(2,table7); SetTime_dispaly(0x80+0x40+4,Hour_H); SetTime_dispaly(0x80+0x40+7,Minute_H); SetTime_dispaly(0x80+0x40+10,Second_H); write_com(0x80+0x40+4); //光标闪烁地址,停留在时的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==5) { write_com(0x80+0x40+7); //光标闪烁地址,停留在分的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==6) { write_com(0x80+0x40+10); //光标闪烁地址,停留在秒的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==7) { Enter_num=0; write_com(0x0c); //光标不再闪烁 LCD_Display_String(1,table1); LCD_Display_String(2,table2); Select_num=0; Adjust=0; } } } if(UP==0) { delay1(2); if(UP==0) { while(!UP); if(Select_num==1) { if(Enter_num==1) { Year++; if(Year>99) Year=0; SetTime_dispaly(0x80+5,Year); write_com(0x80+5); write_com(0x0f); } if(Enter_num==2) { Month++; if(Month>12) Month=1; SetTime_dispaly(0x80+8,Month); write_com(0x80+8); write_com(0x0f); } if(Enter_num==3) { Day++; if(Day>31) Day=1; SetTime_dispaly(0x80+11,Day); write_com(0x80+11); write_com(0x0f); } if(Enter_num==4) { Hour++; if(Hour>23) Hour=0; SetTime_dispaly(0x80+0x40+3,Hour); write_com(0x80+0x40+3); write_com(0x0f); } if(Enter_num==5) { Minute++; if(Minute>59) Minute=0; SetTime_dispaly(0x80+0x40+6,Minute); write_com(0x80+0x40+6); write_com(0x0f); } if(Enter_num==6) { Second++; if(Second>59) Second=0; SetTime_dispaly(0x80+0x40+9,Second); write_com(0x80+0x40+9); write_com(0x0f); } if(Enter_num==7) { Week++; if(Week>7) Week=1; SetTime_dispaly(0x80+0x40+14,Week); write_com(0x80+0x40+14); write_com(0x0f); } } if(Select_num==2) { if(Enter_num==1) { Hour_L++; if(Hour_L>23) Hour_L=0; SetTime_dispaly(0x80+0x40+4,Hour_L); write_com(0x80+0x40+4); write_com(0x0f); } if(Enter_num==2) { Minute_L++; if(Minute_L>59) Minute_L=0; SetTime_dispaly(0x80+0x40+7,Minute_L); write_com(0x80+0x40+7); write_com(0x0f); } if(Enter_num==3) { Second_L++; if(Second_L>59) Second_L=0; SetTime_dispaly(0x80+0x40+10,Second_L); write_com(0x80+0x40+10); write_com(0x0f); } if(Enter_num==4) { Hour_H++; if(Hour_H>23) Hour_H=0; SetTime_dispaly(0x80+0x40+4,Hour_H); write_com(0x80+0x40+4); write_com(0x0f); } if(Enter_num==5) { Minute_H++; if(Minute_H>59) Minute_H=0; SetTime_dispaly(0x80+0x40+7,Minute_H); write_com(0x80+0x40+7); write_com(0x0f); } if(Enter_num==6) { Second_H++; if(Second_H>59) Second_H=0; SetTime_dispaly(0x80+0x40+10,Second_H); write_com(0x80+0x40+10); write_com(0x0f); } } } } if(DOWN==0) { delay1(2); if(DOWN==0) { while(!DOWN); if(Select_num==1) { if(Enter_num==1) { Year--; if(Year<0) Year=99; SetTime_dispaly(0x80+5,Year); write_com(0x80+5); write_com(0x0f); } if(Enter_num==2) { Month--; if(Month<1) Month=12; SetTime_dispaly(0x80+8,Month); write_com(0x80+8); write_com(0x0f); } if(Enter_num==3) { Day--; if(Day<1) Day=31; SetTime_dispaly(0x80+11,Day); write_com(0x80+11); write_com(0x0f); } if(Enter_num==4) { Hour--; if(Hour<0) Hour=23; SetTime_dispaly(0x80+0x40+3,Hour); write_com(0x80+0x40+3); write_com(0x0f); } if(Enter_num==5) { Minute--; if(Minute<0) Minute=59; SetTime_dispaly(0x80+0x40+6,Minute); write_com(0x80+0x40+6); write_com(0x0f); } if(Enter_num==6) { Second--; if(Second<0) Second=59; SetTime_dispaly(0x80+0x40+9,Second); write_com(0x80+0x40+9); write_com(0x0f); } if(Enter_num==7) { Week--; if(Week<1) Week=7; SetTime_dispaly(0x80+0x40+14,Week); write_com(0x80+0x40+14); write_com(0x0f); } } if(Select_num==2) { if(Enter_num==1) { Hour_L--; if(Hour_L<0) Hour_L=23; SetTime_dispaly(0x80+0x40+4,Hour_L); write_com(0x80+0x40+4); write_com(0x0f); } if(Enter_num==2) { Minute_L--; if(Minute_L<0) Minute_L=59; SetTime_dispaly(0x80+0x40+7,Minute_L); write_com(0x80+0x40+7); write_com(0x0f); } if(Enter_num==3) { Second_L--; if(Second_L<0) Second_L=59; SetTime_dispaly(0x80+0x40+10,Second_L); write_com(0x80+0x40+10); write_com(0x0f); } if(Enter_num==4) { Hour_H--; if(Hour_H<0) Hour_H=23; SetTime_dispaly(0x80+0x40+4,Hour_H); write_com(0x80+0x40+4); write_com(0x0f); } if(Enter_num==5) { Minute_H--; if(Minute_H<0) Minute_H=59; SetTime_dispaly(0x80+0x40+7,Minute_H); write_com(0x80+0x40+7); write_com(0x0f); } if(Enter_num==6) { Second_H--; if(Second_H<0) Second_H=59; SetTime_dispaly(0x80+0x40+10,Second_H); write_com(0x80+0x40+10); write_com(0x0f); } } } }}/**************************************开关灯控制*******************************************************************************/voidOpen(void){ floatNow; floatSet_L,Set_H; Now=Hour+Minute/60+Second/3600; //把实时时间化成小时为单位 Set_L=Hour_L+Minute_L/60+Second_L/3600; //把设置下限时间化成小时为单位 Set_H=Hour_H+Minute_H/60+Second_H/3600; //把设置上限时间化成小时为单位 if((Now>=Set_L)&(Now<=Set_H)) //实时时间在上下限时间范围内 { LAMP1=0; //开启路灯 LAMP2=0; Timer=1; //进入定时模式 } if((Now<Set_L)|(Now>Set_H)) //实时时间不在范围内 { Timer=0; //退出定时模式,根据光线强度或声响进行亮灭灯 } if((Timer==0)&&(flag==0)) //没有定时并且不延时10s的情况下 { if((Hour>=0)&&(Hour<6)) //在凌晨0点到6点 { LAMP1=1; //一亮一灭 LAMP2=0; } if(Hour>=6) //不在凌晨时间里 { LAMP1=1; //关灯 LAMP2=1; } } if(flag==1) //延迟10s { TR0=1; //启动定时器 } if((LAMP1==0)||(LAMP2==0)) //灯亮情况下 { if(CHECK==0) //检测到灯暗,表示灯故障启动蜂鸣器 { delay1(20); //消抖 if(CHECK==0) { BEEP=1; //启动蜂鸣器 } } else { BEEP=0; //关闭蜂鸣器 } } if((LAMP1==1)&&(LAMP2==1)) //灯灭情况下 { BEEP=0; //关闭蜂鸣器 }}/******************************************主函数外部中断定时器中断*************************************************************/voidT0_init(void){ TMOD=0x11; //设置定时器0为工作方式1 TH0=(65536-50000)/256; //定时50MS TL0=(65536-50000)%256; EA=1; //开定时器T0的中断 总中断 ET0=1; //允许T0中断}voidint0init(void) //外部中断0初始化{ EA=1; //打开总中断 EX0=1; //中断允许位 IT0=1; //外部中断0触发方式为下降沿触发}voidmain(){ BEEP=0; //关蜂鸣器 init(); //液晶初始化 T0_init(); //定时器初始化 int0init(); //外部中断初始化 while(1) { if(Adjust==0) //非调节模式下显示时间和控制灯 { Time_Display(); //显示时间 Open(); //动作判断,根据光线和声响开关 } Keyscan(); //扫描按键 }}voidint0()interrupt0 //有声响{ if(Timer==0) { if((Hour>=0)&&(Hour<6))//在凌晨0点到6点 { LAMP1=0; //两个都开启 LAMP2=0; flag=1; //启动定时 Miao=0; //重新计时 } if(Hour>=6) //不在凌晨时间里 { if(LIGHT==0) //在黑暗时 { LAMP1=0;//两个都开启 LAMP2=0; flag=1; //启动定时 Miao=0; //重新计时 } } }}voidTimer0()interrupt1 //定时器T0中断服务子程序定时倒计时10s{ TH0=(65536-50000)/256; //赋初值=50ms TL0=(65536-50000)%256; //TH0=3C,TL0=B0 Count++; //每中断一次,Count加一,计数20次,表示1s的时间到 if(Count>=20) //50ms*20次=1s { Miao++; if(Miao>=10) //定时时间10s到 { TR0=0; //关闭定时器 flag=0; //清除标志位 Miao=0; //清除计数 } Count=0; //清除计数 }}PCB图系统电路总图

HYPERLINK如何选择组装电脑配件

如何选择组装的电脑配件.

第一,选择好CPU平台,就是INTER还是AMD,看你是要配什么样的电脑,高端还是低端的,两个平台都高低的产品。第二,选择主板了,主板的品牌比较多,质量,价格也不一,当你第一步却定了,那么主板也就相应的却定下来了,以INTER为例,只可以选择775接口的主板(早期有478接口的,不推荐),主板的选择主要有两种,一是集成显卡,二是不集成显卡。集成显卡的话,就可以省下显卡的钱,但是对游戏玩家不推荐。那么当然是选择不集成显卡的主板了,而且最好选择一线品牌,如华硕,技嘉等。主板里,还有个蕊片组的选择。关于蕊片组,各个品牌的主板命名有些不一样,主流是INTER965,945,915,VIA的KT890,还有NFORCE4,NFORCE5。等。比较难说清楚。最好是选择INTER的蕊片组,虽然价格会稍高一些。推荐945,技术比较成熟。第三,显卡的选择。显卡主要还是有两类品牌,GEFORCE和ATI,两个品牌有高,中,低的显卡。显卡选择要看你个人喜欢了,预算充足的话,最好是买中,高端的显卡。

第四,就是内存了,内存关系电脑的稳定性。当然是要好一点的。买一线品牌的。现在配电脑,主流是DDR667,DDR800DDR1333第五,显示器的选择,推荐液晶。如何选择硬件组装电脑这是一个老生常谈的问题了,这也是一个让高手们显示自己硬件功底的问题,同时这还是一个让很多新手为之焦头烂额的问题。该怎么配?具体配什么?怎样配才能尽量减小瓶颈?本文就将从内到外,从理论到实践,为朋友们抽丝剥茧一一道来。

一、CPU

作为一台电脑最关键的组成部分,CPU确实起着举足轻重的作用,但体现一台电脑的综合速度,并不是仅仅依靠CPU的,常常看到很多新手们在配电脑的时候,把CPU选的很好,但其他的东西诸如内存、主板、硬盘等都选的不太理想,好像这台电脑速度的快慢就体现在CPU速度的快慢上似的。甚至很多著名的品牌机厂商,都推出过类似“P4+256M内存”的这种跛脚配置。其实对于一般的家用电脑而言,一个真正会配的高手,是不会把大量的钱花在CPU上的。家用电脑,毕竟不是做密集型科学计算用的,它讲求的是多种媒体的配合工作,讲求的是能一边下载文件、一边上网浏览网页、一边听音乐、一边还能打开其他的程序,在这种情况下,提升内存的容量比提升CPU的主频对速度的影响要明显的多。现今的中国家庭用户,很多家长对于电脑一窍不通,他们只听说“奔四”代表着速度快,并不知道整机速度的快慢除了CPU以外,还有很多其他的因素影响着它。但在买电脑的时候,最后做决定并掏钱的人,往往都是这些啥都不懂的家长们,于是就出现了上面的一幕:品牌机厂商为了能有更好的销路、兼容机装机店的销售人员为了能拿到更多的奖金,开始违背良心来配置出这种高主频处理器、低容量内存的跛脚电脑。说严重点,这是属于对消费者的不负责任,是一种商业欺诈行为!同样5000元的配置,高手配出来的赛扬,比新手配出来的P4还要快很多,曾经有一家全球著名的硬件网站在2003年的时候刊登过一篇关于配置家用电脑时各硬件占用总预算百分比的文章,文中很明确的提到了CPU的价钱最好不要超过总预算的10%-15%,我们虽然不能说他肯定完全正确,但至少人家是通过很多调查后得出的结论,有借鉴的理由。反观现在的很多所谓的“低价奔四电脑”、“3999元买P4品牌机”之类的广告,我想说的就是:你花了3999元,只买了一块P4的处理器,其他的什么都没有了!

二、内存

对于配置一台电脑来说,内存是重头戏,容量、速度、类型等等每一项指标都对最终的整机综合速度起着至关重要的影响,尤其是内存的带宽和容量。对于内存带宽而言,很多人都认为400MHz、533MHz前端总线的赛扬四或P4,配单通道的DDR内存就足够了,双通道DDR内存是配合800MHz以上前端总线的P4处理器用的,其实这样就大错特错了,哪怕是最老的赛扬四,都需要双通道的DDR内存才能达到它的带宽!也就是说,你如果选择赛扬四1.8G,必须配合865以上的主板和至少双通道DDR200的内存,才能满足它的带宽要求!稍微计算一下就可以得知:赛扬四1.8G的前端总线是400MHz,它的内存带宽理论值是400MHz×64bit÷8=3.2G/s,但当它装在845系列的主板上时,由于845主板的限制,即使你插上能符合它带宽要求的DDR400内存,也只能运行在DDR266上,这时的内存所能提供的带宽是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通过BIOS里的内存调节选项往上调节一档(也只能调节一档而已),让内存运行在DDR333下,所能提供的带宽也仅仅是333MHz×64bit÷8=2.66G/s,离3.2G/s还是有一定的距离,而内存带宽的降低,能非常明显的降低整机的综合速度,运行任何程序都能明显的感觉出来!所以如果想满足赛扬1.8G处理器的内存带宽要求,你必须要为它配置865以上的主板和双通道的内存才行!P4亦是如此。很多人也许会问:那845系列的主板是配什么处理器的呢?我想回答你的就是:845系列的主板是属于“不能用”的主板,因为处理器永远比主板发展的快,当初Intel造出845系列的芯片组是为了能给当时的赛扬和P4提供一个过渡的平台,不至于让它们成为“没有主板配合”的处理器而已,也是为了能在低端市场分一杯羹,而现今865甚至9xx系列的主板横行的时候,845系列的主板确实是属于“不能用”的主板了,满足不了任何一款处理器的内存带宽,造成性能上的严重低下,试问这种主板你会选择么?即使配台2000多元的超低价电脑,也不要去选择845系列的主板,至少需要865以上的和双通道内存才行,因为内存带宽是一个非常影响系统性能的参数,倘若一味的为了省钱而配置845系列的主板,那就得不偿失了。

内存的容量方面,应每个人对电脑的使用方向不同,容量的要求也是不同的,现在配置的家用电脑,笔者建议:如果不打游戏,或者是打打扫雷、纸牌之类的游戏,平时注重于上网浏览或者是聊天、看电影之类的应用的话,内存容量不应该低于1G;如果是偶尔打打单机游戏或者是网络游戏,内存容量应该选择在2G左右,如果是经常打大型的游戏或是进行HDTV视频编辑等应用,那么4G的内存是必不可少的。

三、主板

一台电脑的稳定性和兼容性,一大部分是看主板的,一款优秀的主板不仅需要拥有上等的用料和优良的做工,还需要拥有合理的走线设计,那些没有技术实力的三、四线主板厂家生产的主板,多数是采用公版走线,而且用料非常差,稳定性不堪一击,这种类型的主板,笔者建议宁愿不买电脑也不要配这种主板,否则以后将会是个淘气的祖宗。对于家庭用户,主板方面一定不能省钱,预算够的话最好能买个一线的主板品牌,如果预算实在不足,二线的主板是底线了,不要再往下选择了,毕竟家用电脑是用来使用的,不是用来整天维修的。再谈到主板的用料,笔者常常看到很多新手在配置主板的时候,貌似老鸟似的说某某品牌的主板好,某某品牌的不好,试问你知道它好在哪里么?不好在哪里么?这个就要看主板的用料了,虽然用料好的主板并不能代表一定是高档主板,但最少能代表它的电气性能出色。举一个很简单的例子吧:有A、B两款主板,A主板的处理器供电滤波电容采用的是日系电容,B主板的处理器供电滤波电容采用的是台系电容,那么基本上可以肯定的是:如果在电源输出电压的波动范围比较大的情况下,A主板就比较能耐得住,而B主板就很容易产生电容鼓包、漏夜等情况。不要小看这小小的电容,笔者从一个开维修店的朋友那里得知,来维修主板的人,有80%的都是这几个小电容损坏,究其原因,就是电源选择的不好,导致了输出电压的不稳定,久而久之最终导致这几个小电容爆浆,并且详细叙述了主板的品牌:“一线厂家的×硕牌主板就很少出现这种情况,但同样为一线厂家的×星牌主板,经常遇到!原因就是前者的大部分主板使用的是日系电容,而后者的大部分主板为了省钱,选用的是台系电容!”厂家的广告不能信,宣传也不能信,看到一个产品的广告之后,你所能相信的唯一一点就是:地球上有这么个产品的存在!然后其他的就统统都不能信了!网上有好多所谓的“评测”文章,都是枪手写的,基本上没有任何参考余地,只能作为一篇小说来读,一款主板的真正性能,只有你自己使用了之后才能知道。厂家为了销量、商家为了利润,他们能把最最垃圾的主板宣传为最顶级的产品,笔者曾经就看到过一款四线品牌的主板厂商,在对其主流主板的广告上说“最优秀的设计、最精湛的工艺、最稳定的性能”……结果一看报价:550元/块……其他的话我也不想多说了,只想问问这家厂商:你这么垃圾的主板都用了三个“最”字,那么华硕的同芯片组主板,售价是你三倍的,应该用什么词语来描述了??中国有一句古话:一分钱一分货,说的非常正确!不要认为价格高的主板就是暴利产品,从市场经济学上说,暴利产品是不会被市场所接受的,之所以他能存活到今天,而且售价依然是这么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售价高,在此,笔者奉劝大家一句:买主板千万不要凭侥幸心理,认为自己能花很少的钱买到很好的东西,只有错买的没有错卖的,商家永远都比你精明!主板上面还是老老实实的多花点钱来买个一线产品吧,否则以后有你吃苦的时候!

四、硬盘

现在的电脑,硬盘的速度当之无愧的成为了“第一大瓶颈”,无论你是再高的高手,配电脑的时候也无法消除这个瓶颈的存在,我们只有尽量的减小…再减小……。对于家用电脑的硬盘来说,容量和速度是两个非常重要的参数,容量上而言,笔者建议:如果你的电脑只是上网浏览浏览、偶尔打打小游戏的,那么160G的硬盘是个不错的选择;如果你常常下载软件或电影,那么250G的硬盘是个不错的选择,如果你是个下载狂人,那么400G的硬盘比较适合你;如果你有DV或者是经常编辑大型的视频文件,那么400G×2比较适合你,如果你是个玩HDTV的人,那么恭喜你,400G×4也许你都不够用。对于硬盘容量上的选择,你不能考虑现在是否够用,你应该考虑未来的1年里是否够用,大概的公式是:现在需要的容量×3。也就是说,如果你现在感觉80G的硬盘差不多够用了,那么你就需要买个250G的硬盘。如果你现在感觉120G的硬盘够用了,那么就去买个400G的硬盘吧。硬盘另外的一个参数就是速度,受到内部传输率等诸多因素的限制,一块硬盘的实际传输速度是不可能达到它的接口速度的,现在的并口硬盘基本上都是ATA133了,串口硬盘也都是150了,但民用级硬盘的实际传输速度最快的也还没突破66M/s,所以跟内存相比,硬盘的速度是电脑中最大的瓶颈,那么怎么来减小这个瓶颈呢?于是人们就发明了RAID,就是磁盘阵列(当然RAID不是仅仅为了这个而发明的),用两块一模一样的硬盘来组成RAID0,速度理论上能提高1倍,虽然实际上是不可能达到1倍的,但至少能非常非常明显的感觉到了硬盘速度的提升,笔者建议:如果你买的主板是带有RAID功能的,并且你需要保存的数据不是很重要的话,那么强烈建议你在预算允许的情况下购买两块硬盘来组建RAID0,这将使你能亲身体会到飞机与火车的速度差别!但最好是串口的,如果是并口的话,因为并口走的是PCI总线,由于PCI总线上的设备比较多,所以速度不可能达到比较高的地步,但如果是串口的话,那么硬盘的速度提升将更加明显!

五、显示器

显示器方面,笔者想澄清一个观念:曾经听过非常多的人说液晶显示器保护眼睛,因为没有辐射和闪烁……包括很多业内人士都这么认为的,其实错了,液晶显示器比普通的CRT还要伤眼睛!因为伤眼睛不仅仅是辐射和闪烁,还有对比度、亮度等参数,虽然液晶显示器的辐射和闪烁比CRT要小的多,但它那要命的对比度、那要命的色泽度、还有那大于每平方米300cd的亮度,这些都会对眼睛造成很大的伤害,并且你即使将液晶显示器的亮度和对比度调节到最低,也还是非常的刺眼。德国的一家权威机构做过一项调查:液晶显示器用久了会使人的眼睛感觉到疲倦,甚至头痛等症状,而使用相同时间的CRT显示器,却基本没有这些情况出现。现在的通过TCO03认证的CRT显示器,其实外露的辐射已经相当小了,基本上对人已经没有多大的伤害了,闪烁感也可以通过调节刷新率来降低,笔者实在是搞不懂为什么很多人非要去选择液晶显示器,还非要说液晶显示器不伤眼睛??一个最差的17寸液晶显示器的价格,能买一台不错的、通过TCO03标准的19寸CRT了,显示面积也差不多大,而且CRT又比液晶更保护眼睛,液晶显示器唯一的一个优点就是占用空间小而已,其他的统统是缺点,为什么不选择CRT呢??说到TCO03标准,现在很多的号称是通过TCO03认证的显示器,其实都是贴牌的,都没有真正的通过,关于怎样鉴别一台TCO03的显示器,网上已经有很多文章可以搜索到,笔者在此不想过多叙述,只是提醒大家一点:一台真正的通过TCO03认证的显示器,外表的颜色除了白色以外,是不会有其他颜色的了,因为TCO03认证中有重要的一条就是外壳可回收性,而除了白色以外,其他的任何颜色都加了有机染料在里面,是不能作为回收利用的,这点请大家购买显示器的时候一定要注意了!

六、电源

温馨提示

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

评论

0/150

提交评论