打铃系统结题报告.docx
《打铃系统结题报告.docx》由会员分享,可在线阅读,更多相关《打铃系统结题报告.docx(29页珍藏版)》请在冰豆网上搜索。
打铃系统结题报告
成都信息工程学院电子工程学院
[电子系统综合设计]
总结报告
题目:
电子打铃系统
专业:
生物医学工程
班级:
2010级01班
姓名:
苏泽华
徐波
张列
指导教师:
陆继庆
评分:
2012年11月23日
1项目计划
1.1项目分析
电子打铃系统是一款在生活中非常实用的系统。
它不仅能代替之前一切的人工打铃,而且还能做人们无法做到的某些功能。
它的出现不只是节省了劳动力的问题,主要它的精确度大大提高。
它的优势有很多。
首先,组成它的硬件不多,所以它的体积不大。
而且这些硬件元器件的价格不算高,我们能以很低的成本就能生产出成品。
其次,控制它工作的软件很灵活,我们可以根据不同的要求更改其参数,从而实现真正的“随心所欲”。
它还附带了其他优势。
首先,我们所需的团队人员不算太多,而且分工明确,确保了人员的充分利用。
其次,生产过程中每个环节都严格把关,确保产品的质量。
1.2方案可行性分析
1.2.1元器件可行分析
我们用到的核心元器件是DS1302,STC12C5A60S2等等都是可靠度很高的芯片,质量是有保证的。
而且价格优惠,成本降到最低,从而使利润最大化。
1.2.2市场可行分析
通过问卷调查,我们了解到有相当一部分人们愿意买我们的这款产品。
特别是有严格时间要求制度的学校、公司和各工厂等对我们这款产品更是“一见钟情”。
还有其他很多地方都会用到我们这款产品。
1.2.3法律可行分析
我们的电子打铃系统不是抄袭某公司的产品,我们在综合其他产品优点的前提下有独特的技术创新,不存在侵权问题。
1.3项目市场及风险
随着经济的不断发展,人们对生活质量的追求不断上升,很多事情人们都需要时刻提醒,于是,电子打铃系统有了它发挥作用的舞台。
不管是学校还是家庭,电子打铃系统已经成为不可缺少的部分。
所以它就有了它存在的必然性。
高兴之余我们也不能不考虑到另一方面,由于现在科技的不断进步,人们对各个产品都有很高的要求。
各个企业间的竞争也愈演愈烈。
电子打铃系统应用越来越广,这也给企业带来了巨大的机遇和挑战。
由于市场竞争太激烈,我们必须以科学为基础,也技术为指导,不断改进和创新我们的产品。
这就要求我们在严谨负责,不断改进的同时,尤其要使其性能达到最先进的位置。
1.4项目经费预算
买相关电子方面的书籍,如《单片机原理及应用》、《电子系统设计》、《C语言大学实用教程》花费80元。
做板子的元器件花费15元。
人力投资方面,从画电路图到做成板子共用一天,调试共用两天。
1.5执行计划
1.5.1产品生产计划
国庆后第二周内完成电路图的设计,并应刷电路板。
再在一个周内完成元器件的焊接任务。
花一天时间进行调试并修正。
1.5.2产品的功能计划
1)基本计时和显示功能(包括时分的数字显示)。
2)设置当前时间(包括上时、分)。
3)实现打铃功能,整点打铃和自定义时间打铃。
2设计说明
2.1设计原理框架图
图2.1原理框架图
电路设计共分为7个模块:
时钟电路、电源电路、显示电路、CPU、按键电路、驱动电路、电铃电路。
2.2设计原理图
2.2.1时钟电路
图2.2.1时钟电路原理图
时钟电路由时钟芯片DS1302为主,DS1302的5、6、7脚分别通过3个104欧的电阻连接到电源。
8脚通过1个电池接地,该电池作用是在断电后对DS1302其保护作用。
1脚接电源和一个电容,该电容的作用是滤波,电容大小为105pf。
2脚通过一个32.768k的晶振后连接到3脚,为时钟芯片提供频率,保持时钟的正常运行。
4脚接地。
2.2.2电源电路
图2.2.2电源电路原理图
2.2.3电铃电路
图2.2.3电铃电路原理图
电源通过一个PNP的三极管连接到电铃和CPU,其中,在CPU和三极管中间还连接了一个1000欧的电阻,该三极管在低电平时导通。
2.2.4显示电路
图2.2.4显示电路原理图
2.2.5按键电路
图2.2.5按键电路原理图
3个按键直接与CPU相连。
其中,SWD1是功能按键,SWD2是上调按键,SWD3是下调按键。
2.2.6复位电路
图2.2.6复位电路原理图
电源通过一个22uf的电解电容与CPU相连,CPU通过一个1000欧的电阻接地,由此构成复位电路。
2.2.7供频电路
图2.2.7供频电路原理图
给CPU提供频率,使CPU能正常工作的电路。
图中CJ1、CJ2分别是22uf、22uf的瓷片电容,Y1是晶振。
2.3程序流程图
图2.3程序控制流程图
2.4部分程序代码及注释
/********头文件申明********/
#include"stdio.h"
#include
#include"stc12c5a60s2.h"
/********宏定义********/
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineIAP_ENABLE0X83
#defineSTANDBY0X00//待机模式
#defineBYTE_READ0X01//字节读取
#defineBYTE_PROGRAM0X02//字节编程
#defineSECTOR_ERASE0X03//扇区删除
/****定义ISP/IAP/EEPROM的命令****/
#defineCMD_IDLE0//Stand-By
#defineCMD_READ1//uchar-Read
#defineCMD_PROGRAM2//uchar-Program
#defineCMD_ERASE3//Sector-Erase
/*DefineISP/IAP/EEPROMoperationconstforIAP_CONTR*/
#defineENABLE_IAP0x82//ifSYSCLK<20MHz
#defineIAP_ADDRESS0x0000//EEROM起始地址
/*通用位寻址寄存器*/
ucharbdataReg=0;
sbitbReg0=Reg^0;/*串行移位之用*/
sbitbReg7=Reg^7;/*串行移位之用*/
/**************************主函数*****************************/
voidmain(void)
{
/****************定时器初始化*******************/
TMOD=0x12;
TL1=-200;
TH1=-200;/*8位定时器,测每周的时间*/
TR1=1;
ET1=1;
/*任务切换函数*/
TL0=-200;
TH0=-200;/*8位自动重装定时器约每100uS中断1次,9216次为1秒*/
TR0=1;
ET0=1;
InitDS1302();/*初始化DS1302*/
R_DS1302Timer();/*读时钟数据()*/
Init_EEROM();
EA=1;/*开总中断*/
P0M0=0xff;
P1M0=0x04;
P1_2=0;
/*显示初始界面*/
while
(1)
{
R_DS1302Timer();/*读时钟数据()*/
display();
Updata_Display();
Check_Key();
Junk_Time();
}
}
/******************多任务时序控制时钟中断*********************/
voidIntT0()interrupt1
{
//*************************中断次数计数******************
nTimer++;
if(nTimer==(9216/2))/*满1秒,进行秒处理*/
{
nTimer=0;
}
}
voidInit_EEROM(void)
{
ucharADDR=0,i;
for(i=0;i<24;i++)//擦除整个eeprom
{
Set_Time_Hour[i]=Byte_Read(i);
Set_Time_Min[i]=Byte_Read(i+24);
}
uTime.sTime.Hour=uClock.Time[2];
uTime.sTime.Min=uClock.Time[1];
}
//函数功能:
字节编程
voidByte_Program(ucharDATAIN,uintADDR)
{
ucharDPL;
DPL=ADDR&0X00FF;
IAP_DATA=DATAIN;
IAP_CONTR=IAP_ENABLE;
IAP_CMD=BYTE_PROGRAM;
IAP_ADDRH=ADDR>>8;
IAP_ADDRL=DPL;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
Iap_Disable();
}
//函数功能:
IAP功能关闭
voidIap_Disable()
{
IAP_CONTR=0X00;
IAP_CMD=0X00;
IAP_TRIG=0X00;
IAP_ADDRH=0XFF;
IAP_ADDRL=0XFF;
}
//函数功能:
字节读取
ucharByte_Read(uintADDR)
{
ucharDATAOUT;
ucharDPL;
DPL=ADDR&0X00FF;
IAP_CONTR=IAP_ENABLE;
IAP_CMD=BYTE_READ;
IAP_ADDRH=ADDR>>8;
IAP_ADDRL=DPL;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
DATAOUT=IAP_DATA;
Iap_Disable();
return(DATAOUT);
}
voidJunk_Time(void)
{
uchari;
ucharTemp_H,Temp_M;
Temp_H=((uClock.Time[2]>>4)*10)+(uClock.Time[2]&0x0f);
Temp_M=((uClock.Time[1]>>4)*10)+(uClock.Time[1]&0x0f);
for(i=0;i<24;i++)
{
if(Temp_H==Set_Time_Hour[i])
{
if(Temp_M==Set_Time_Min[i])
{
P1_2=~P1_2;
}
}
}
}
/******************DS1302驱动程序*****************/
voidInitDS1302()
{
uchardat;
W_DS1302(0x8e,0);/*控制命令,禁止写保护*/
W_DS1302(0x90,0xa5);/*2K电阻,一个二极管*/
dat=R_DS1302(0x81);/*读秒字节*/
if(dat>127)
{
dat=0;
W_DS1302(0x80,dat);/*启动时钟*/
}
W_DS1302(0x8e,0x80);/*控制命令,使能写保护*/
}
voidW_DS1302Byte(uchardat)
{
uchari=8;
Reg=dat;
while(i--)
{
DS_CLK=0;
DS_IO=bReg0;
DS_CLK=1;
Reg>>=1;
}
}
ucharR_DS1302Byte()
{
uchari=8;
while(i--)
{
DS_CLK=0;
Reg>>=1;
bReg7=DS_IO;
DS_CLK=1;
}
return(Reg);
}
voidW_DS1302(ucharadr,uchardat)
{
DS_CLK=0;
DS_RST=0;
DS_RST=1;
W_DS1302Byte(adr);/*地址,命令*/
W_DS1302Byte(dat);/*写1Byte数据*/
DS_RST=0;
DS_CLK=0;
}
ucharR_DS1302(ucharadr)
{
uchardat;
DS_CLK=0;
DS_RST=1;
W_DS1302Byte(adr);/*地址,命令*/
dat=R_DS1302Byte();/*读1Byte数据*/
DS_RST=0;
DS_CLK=0;
return(dat);
}
/**************写时钟数据**************/
voidW_DS1302Timer()
{
uchari;
W_DS1302(0x8e,0);/*控制命令,禁止写保护*/
DS_CLK=0;
DS_RST=0;
DS_RST=1;
W_DS1302Byte(0xbe);/*0xbe:
时钟多字节写命令*/
for(i=0;i<8;i++)/*8Byte=7Byte时钟数据+1Byte写保护控制*/
W_DS1302Byte(uClock.Time[i]);
DS_RST=0;
DS_CLK=0;
W_DS1302(0x8e,0x80);/*控制命令,使能写保护*/
}
/**************读时钟数据**************/
voidR_DS1302Timer()
{
uchari;
DS_CLK=0;
DS_RST=1;
W_DS1302Byte(0xbf);/*0xbf:
时钟多字节读命令*/
for(i=0;i<8;i++)
uClock.Time[i]=R_DS1302Byte();
DS_RST=0;
DS_CLK=0;
}
/*************************数码管显示函数***************************/
voidUpdata_Display(void)
{
//*************************显示刷新******************
P0=0;/*先清显示再换位选*/
P2|=0xf0;/*先清显示再换位选*/
P2&=acLEDCS[cScanIndex]|0x0f;/*送位选数据*/
P0=acLED[cScanIndex++];/*送显示数据,位选指针移位*/
cScanIndex&=3;/*位选指针回位*/
}
3调试说明
3.1调试须知
本产品名称为电子打铃系统,对于它的详细介绍请参考产品说明书。
目前本产品已经完全按照原理图和PCB图成功完成电路板的焊接,相应硬件的控制程序也已经烧入单片机。
接下来还有一项重要的任务,那就是对它进行调试。
为了确保调试人员的安全以及能准确快速地对板子进行调试,请调试严格按照下面的步骤进行操作。
3.2调试前的准备
3.2.1仪器,仪表,工具等的准备
调试前先要准备好能调到5V的可调直流电源一台(图3-1),万用表一只(图3-2),示波器一台,导线若干。
电源用于为板子提供稳定的5V电压,保证电路中各个元器件安全地工作。
万用表用于测量各部位的参数,如果要测量电压或者是电阻时,在使用前先要把红黑表笔(如图3-2)进行连接。
如果要进行电流的测量,红表笔要接到左边的“mA”插孔。
根据元器件的不同属性选择不同的档位和倍率。
当测电阻时开关打到“Ω档”,测电压时打到“V档”,测电流时打到“A档”。
不管进行什么测量,进行前都必须短接调零,即就是把电红黑表笔的两端短接,万用表屏幕上显示为零时才能进行测量。
图3-1可调直流电源图3-2万用表
3.2.2电路板的样板以及有关设计文件的准备
准备好提供参考的样板和各重要元器件的使用和检测的介绍说明书。
样板便于提供直观而可靠的参考。
PCB图很直观地和板子进行比较。
各元器件的相关说明为我们的检测提供性能和参数参考,便于我们进行检测。
3.3通电前的检查
3.3.1外电路整体检查
首先,拿到板子,检查一下上面的元器件是否和实物图3-3元件面上一样,再看看各元器件的外表面是不是完好的。
如果有的元器件明显由于外力作用使之严重变形了,暂不用对它调试,此板子需要重新加工。
检查各根导线的两端是否是完全连接好的,并且还要检查板子上的铜线没有断路情况。
其次,检查各个元器件的焊接情况,要确保每个焊接点与和它相连的铜线要牢固地连在一起,如图3-4。
再次,检查芯片的放置,具体看它的芯片上的“小缺口”的位置是不是和图中一样。
另外,检查有极性的元器件,图中用红色标注A、B、C、D旁边的就是有极性的元件,具体检查是看标注A、B、C旁边那个圆柱体元件上的灰白色的那个“条纹”的方向是不是和图上基本一样,标注D旁边那个看它的安放是不是和图上一样。
C
D
B
A
图3-3元件面图3-4铜线面
3.3.2对设备内部电源线的引线端进行是否对地短路检查
首先把万用表的开关打到“V档”(如图3-1所示),然后将黑表笔的探头至于电路的接地端,将红表笔的探头以此去接触板子上的各个被检测点(样板上标注了VCC的地方)。
根据表上的读数以及电路原理图分析这个点的电压是否正常。
如果表上的读数为0,那么该点短路,板子有问题,需要重新加工。
3.4未插芯片电路板的通电检查
3.4.1是否有元器件骤然发烫现象
检查时如果某个器件骤然发烫,说明该器件正负接反或者上面电压过大,那说明电路或元件有问题,不合格。
3.4.2是否有烧焦等怪味
如果电路中出现烧焦等味道,那说明有元器件被烧,这时要对元器件进行排查,找出被烧的元件,不合格。
3.5通电检查
当按照前面的步骤都做完了,并且没有任何问题。
用5V的直流电源给板子供电,具体做法是用导线从可调直流电源的右下角“红、黑”接头输出5V电压,红色是正5V,黑色为接地(如图3-1)。
此时观察电路中有没有出现元件发烫、焦味等情况。
如果出现这些情况,立即断电,说明电路还有问题,要进行查找和分析。
重复以上步骤。
如果这一切都没问题了,那就用万用表对照着原理图对各个点进行检测,保证这些被测参数接近理论值。
4总结
在我组成员的全力协作下,我们完成了此次电子综合设计。
本设计达到了预期的基本要求,能实现定时打铃。
但由于所学这方面的知识有限,硬件电路设计受自身技术的影响,所以本设计不可避免的存在一些问题,由于PCB的知识积累不够,绘制时走线欠妥,实物稍显不美观。
软件部分也遇到很多问题。
之前,我们学了C语言,也了解过Protel软件,但那只是基础,开始时什么都不会。
真正想完成这次设计需要更深层次的学习。
由于没有相关的经验知识积累,我们的板子重做了三次,才有了一点点的经验。
在软件方面更是恼火,编了几天的程序,什么效果都没有,后来不断在网上查资料,才做到现在这个效果。
虽然遇到了很多困难,但在我组成员的团结协作,共同奋斗下终于完成任务。
本次电子综合设计不但在硬件和软件方面的知识使我们产生了质的飞跃,而且真正教会我们如何与人合作,如何做人做事。
在此次设计当中,我们受益良多。
我们深刻体会到理论与实践相结合的重要性,同时明白一个团队要相互配合,相互补充、相互鼓励才能发挥最大的效率。
参考文献
郑郁正主编,单片机原理及应用,四川大学出版社,2010
余小平、奚大顺,电子系统设计基础,北京航天航空大学出版社,2010
苏小红等,C语言大学实用教程第二版,电子工业出版社,2007
附录
表1元器件清单
原件名称
型号
数量
单片机
STC12C5A60S2
1
芯片
DS1302
1
排阻
1k
8
电阻
10kx3,1kx2
5
电容
104,22pf,22ufx2
4
蜂鸣器
1
按键
四角按键
3
晶振
32.768k,11.0592M
2
数码管
四位数码管
1
三极管(NPN型)
8050
1
电池
恒定5V
1
图1电路原理图
图2PCB面层
图3PCB底层
图4工作时的图片
图5工作时的图片
图6工作时的图片
图7复位波
图8按键波
图9位选波
图10单片机工作波
图11蜂鸣器工作波
合同书
甲方:
法定代表人:
地址:
邮编:
联系电话:
乙方:
法定代表人:
地址:
邮编:
联系电话:
合同内容
第一条合同内容
甲方委托并积极配合乙方完成教学打铃系统的制作和完成。
乙方根据甲方要求制作出成品,并且将成品和原理图等交给甲方验收。
第二条甲方权利和义务
1、甲方应在年月日交给乙方该项目的详细要求。
甲方应审核所有的必要资料,并在“资料确认单”签字,作为该项目制作和验收的基本依据,如后期因原始资料的更改而造成的返工将由甲方承担责任,乙方不承担任何责任。
2、甲方应在项目制作的整个过程中积极配合乙方,并有权对设计方案进行及时的修正和完善,以便乙方及时高效的完成该项目的制作,若由于甲方原因没能积极及时配合乙方的工作造成工期拖延,乙方不负任何责任。
3、甲方有义务了解该项目的特点,不能把乙方制作暴露的本属于设计方案上存在的问题归咎为乙方的制作错误。
乙方不遵守甲方的设计和设计师的知指导除外。
4、甲方对乙方提交的项目不享有著作权,仅限于对该项目的使用,不得用于该项目以外的其他商业活动,否则乙方有权追究其法律责任。
第三条乙方权利和义务
1、乙方在制作的过程中,发现设计方案有明显或重大的问题,如布局不美观等,有义务及时告之甲方并提出专业经验的建议。
2、乙方必须以忠实于甲方的设计原则作为开展工作的根本性指导原则。
只有在甲方对项目特点了解不充分的时候,可以提出优于甲方的经验的专业的建议,但必须征得甲方同意。
3、乙方严格按照甲方提供的设计资料进行项目制作。
或在甲方设计师的指导下积极开展工作。
4、双方合作期间,乙方对甲方提供的一切资料未经甲方许可不得以任何方式泄露给第三方。
乙方对甲方提供的文字及图片资料中