b=m;
else
;
}
h=b+7*(h-1);
returnh;
}
2.2显示将探头坐标还原程序
由于采用TFT液晶显示屏,所以可以在屏幕上画出一个7*7的方格模拟五合板的矩形框,我们在某个格子探测到电缆就可以在显示屏对应的格子坐上标记,不同的电缆用不同的颜色,在探测完毕以后,那个格子有什么电缆就一目了然,下边是将串口接收的方格信号转换并显示在显示屏上对应的方格上,以及标注不同的颜色,其中temp[2]是格子号的十位,temp[3]是格子号的各位,程序如下
voiddadian()//打点
{
uinta,b,c,d;
shu=temp[2]*10+temp[3];
if((kk==0)&&(shu>0)&&(shu<50))
{
if((shu%7)==0)
{
b=7-1;
a=shu/7-1;
}
else
{
b=shu%7-1;
a=shu/7;
}
if(temp[0]==1)
{
for(c=0;c<3;c++)
{
for(d=0;d<3;d++)
{
Put_pixel(12+34*b+c,216-34*a+d,lan);
}
}
}
if(temp[1]==1)
{
for(c=0;c<3;c++)
{
for(d=0;d<3;d++)
{
Put_pixel(20+34*b+c,216-34*a+d,hong);
}
}
}
}
}
3电路与程序设计
3.1电路的设计
3.1.1探头处理器电路
探头处理器采用STC12C5628AD单片机,其最小系统如下图,RXD和TXD用于与显示处理器通信,P1.1用于采集12W节能灯处理电路处理后的电压,P1.2用于采集60W白炽灯处理电路处理后的电压,Y1为单片机正常工作提供时钟
图3-1探头处理器电路
3.1.2显示处理器电路
显示处理器采用STC12C5A60S2单片机,RXD与TXD用于与探头处理器通信,D1~D8用于显示屏的数据通信,B1~B6用于显示屏的控制,A1~A3用于和时钟芯片DS1302之间数据通信,C1~C6用于触摸屏的控制数据口,JP1为上拉电阻,其主要是是增加P0口的驱动能力,其电路图如图下
图3-2显示处理器电路
3.1.312W节能灯电缆检测电路
由于节能灯灯头部还有一块电路,所以检测它导线走位的磁场会有一个1KHz左右的基带信号,所以根据这一特点我们可以就把这个信号提取出来放大等处理,单片机就可以识别,最后调试好的电路如下图,电容C4滤除线圈感应到的外接超高频信号,运放LM8与外部元器件组成300Hz的高通滤波器,时线圈中300Hz以下的信号衰减,LM6与外部电阻组成一个50倍的线性放大器,LM7其功能是将LM6输出的交流信号整流检波转换成对应的直流信号,以便送至单片机P1.1口A/D采集并进行处理,LM5组成一个电压跟随器,使其驱动负载能力更强。
图3-312W节能灯电缆检测电路
3.1.460W白炽灯电缆检测电路
由于白炽灯是纯电阻的器件,所以线圈感应到的信号就是一个50Hz的正弦信号,所以也要先利用电容C4滤除超高频信号,再用运放LM4及外部元器件放大此信号,然后通过带通滤波器LM1就可以滤出50Hz的信号,经过运放LM2线性放大50倍后运放LM3整流检波就可以直接送入单片机P1.2A/D口采集并进行处理。
图3-460W白炽灯电缆检测电路
3.1.5超声波定位电路
电路采用两个HC-SRO4超声波传感器模块来检测探头在哪个方格中。
其中超声波传感器的Trig和Echo管脚分别与探头微处器理STC12C5628AD单片机P2.6、P3.7和P2.7、P1.0相连。
具体电路如下图所示:
图3-5超声波定位电路
3.1.6报警电路
设计中由显示微处理器STC5A60S2控制8550三极管来驱动蜂鸣器发生产生报警。
当显示微处理器的串口产生中断信号时,就说明探头检测到了新的信号,此刻显示微处理器通过P3.4给8550三极管Q1基极一段时间的低电平,8550三极管Q1导通,于是报警电路导通,就产生报警信号。
具体电路如图3-4所示:
图3-6报警电路
3.1.7时钟电路
本项目时间数据由DS1302时钟芯片提供,只要开始把时间数据校准后,即使整个电路掉电,时钟芯片DS1302还可以通过电池BT1供电继续工作,当电路恢复供电时,时间数据还是准确的,此时钟芯片能提供年、月、日、时、分、秒、星期等数据,它与微处理器之间采用I2C通信,通信质量可靠,是应用比较广泛的一款芯片,在本系统中的具体连接电路如下,三根数据线A1~A3分别于显示为处理器的P1.1~P1.3相连接,完成数据的读写操作。
图3-7时钟电路
3.1.8显示、触摸电路
本系统中显示器件和输入设备我们采用带触摸功能的TFT彩色液晶显示屏,其具体电路连接如下,触摸屏控制信号C1~C6与显示微处理器的P2.0~P2.5连接,
LCD显示屏的数据口D1~D8与显示微处理器的P0口对应连接,完成微处理器与液晶数据的传输,B1~B6分别于显示微处理器的P1.4~P1.7、P2.6~P2.7相连接,用来控制液晶显示屏的数据操作。
图3-8显示、触摸电路
3.1.9电源电路
本系统供电方案采用自制的市电转±5V的直流电电源,先将市电通过一个中频变压器将夜为双17V的交流电,然后在通过一个整流桥整流成直流电,在通过电容滤波、集成稳压器7805和7905稳压后,通过电容C3、C5再次滤波就得到±5V的直流电源,具体电路图如下
图3-9电源电路
3.2程序的设计
3.2.1程序功能描述
程序设计分为五个部分,主要分为探头主程序、显示主程序、触摸扫描、超声波检测、串口数据的传输、显示屏显示数据的处理、DS1302时钟芯片数据的读写操作等。
通过这些程序设计来实现设计当中的要求。
3.2.2程序流程图
(1)探头主程序主要是对超声波I/O口、A/D通道的选择及相应转换数据配置、串口配置作对应的初始化,再进入超声波距离的测量及坐标的转化和A/D数据的采集做出分析处理后通过串口发送给显示微处理器进行相应的操作的循环中。
探头主程序流程图如图3-7所示:
图3-10探头主程序流程图
(2)显示主程序主要是对TFT触摸显示屏、DS1302时钟芯片、报警电路I/O口配置初始化,并对DS1302时钟芯片和串口的配置作对应的初始化,显示主程序流程图如图所示
图3-11显示主程序流程图
(3)串口通信子程序,先是对串口进行相应的初始化,然后探头发送数据请求,显示模块做出应答后探头就发送数据并发送以为校验位,显示接收数据并接收校验位,如果校验位正确,本次数据发送完成,不然请求数据重发,一下是数据的发送和数据接收的子程序流程图
图3-12串口数据的发送和接收程序流程图
(4)超声波测距子程序,首先单片给Trig管脚一个大于10uS的高电平,当超声波模块接收到这一信号时,Echo管脚变为高电平,单片机接收到这一信号,立即启动定时器,并等待Echo逆变为低电平,说明超声波模块发出的超声波信号被障碍物反射回来并被超声波模块检测到,单片机通过这时间差和声速及可以计算出距离探头距离五合板边缘的距离,具体程序流程图如下图
图3-10外部中断子程序流程图
(5)显示界面子程序,显示界面主要是判断变量kk,kk=0则显示主界面(打点界面),kk=1时则显示时间设置界面,程序流程图如下图
图3-11显示界面子程序流程图
4测试方案与测试结果
4.1测试方案
首先在面包板上搭接各个模块电路,在上边测试通过后再焊接成成品板子,然后在做适当的调整,最后编写程序并软硬件结合调试,达到最终的预想效果。
4.2测试条件与仪器
测试条件:
检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:
4位半的数字万用表、数字示波器、XD22型低频信号发生器、电源等。
4.3测试结果及分析
4.3.1测试结果
由于本电路采用的12W节能灯检测电路和60W白炽灯检测电路分开设计的方案,所以在测试中数据互不干扰,因此我们可以一次性的完成整个过程的探测,下图是探测结果的一照片
图4-1实际效果界面图
4.3.2测试分析与结论
根据上述测试显示结果可知:
红色的点代表此方格背后有60W白炽灯电缆,蓝色的点表示此方格背后有11W节能灯电缆,根据界面显示的和五合板背后实际的电缆走向,完全一致,所用时间为1分58秒。
本设计实现了基本部分的设计要求。
5致
在本次毕业设计过程中,我们遇到的最大困难是通电电缆的检测,我们花费了近一个星期都买有攻破这个难关,最后在王伟祥教授的指导下,我们慢慢的发现了克服这些困难的方法,这个问题克服了以后,接下来的是软件的实现,别的程序还很好写,但是单片机串口通信也出现了难题,通过罗云高老师和朱一多老师的指导,这个问题也迎刃而解了,最后在写论文时指导老师新也给予了很大的帮助,才使本次毕业设计顺利完成,衷心感以上老师给予的帮助和指导!
6参考文献
【1】胡宴如、耿燕.模拟电子技术.第3版.高等教育.2008.154~185
【2】志忠、卫桦林.数字电子技术.第3版.高等教育.2008.271~278
【3】石生、肖宁.电路基本分析.第3版.高等教育.2008.146~170
【4】臧春华、玉蓝、施亿平.电子线路设计与应用.第1版.高等教育.2004.85~168
【5】何丽梅、彦飞、管湘芸.SMT基础与工艺.第1版.机械工业.2011.10~44
【6】徐军、辉.传感器技术基础与应用实例.电子工业.2012.47~66
【7】夏西全、任德齐.电子工艺实训教程.第1版.机械工业.2011.77~80
【8】林春方、俊真、方庆山.高频电子线路.第3版.电子工业.2012.6~26
【9】夏路易、石宗义.电路原理图与电路板设计教程Protel99SE.第1版.希望电子.2002.28~79
【10】程德福、林君.智能仪器.第2版.机械工业.2013.174~196
【11】郭天祥.51单片机C语言教程.电子工业.2012.217~230
【12】加囯、董秀成.单片机原理与应用及C51程序设计.第2版.清华大学.2009.139~143
【13】朱一多、罗云高、桂红等.电子设备整机分析.电子信息工程系.28~29
【14】胡宴如.模拟电子技术.高等教育.2002
【15】广弟、朱月秀.单片机基础.航空航天大学出榜社.2001
【16】王庆利、奎、袁建敏.单片机设计标准教程.邮电大学.2008
【17】陆子明、徐长根.单片机设计与应用基础.国防工业.2005
【18】福学.传感器应用及其电路精选,电子工业,1991
【19】钱国维.铂电阻温度传感器的非线性校正.1995年第10期
【20】波.单片机温度自动控制系统.自动化与仪器仪表.1996
【21】卫平、英儒编著.现代电子电路原理与设计.原子能.1997
【22】马忠梅.单片机C语言应用程序设计.航空航天大学.1998
【23】萍.单片机温度控制系统的设计与实现.师专学报.1999
【24】晓荃.单片机原理与应用.电子工业.2000
【25】余锡存、.单片机原理及接口技术.电子科技大学.2007
附一:
部分程序
探头主程序:
intmain(void)
{
AD_INIT();
chuaninit();
while
(1)
{
julijisuan();
shujufasong();
if((temp[2]<5)&&(temp[3]<10))
if((temp[0]==1)||(temp[1]==1))
{
if((temp[0]==tems[0])&&(temp[1]==tems[1])&&(temp[2]==tems[2])&&(temp[3]==tems[3]))
;
else
{
do
{
SBUF=0xaa;
while(TI==0);
TI=0;
while(RI==0);
RI=0;
}
while((SBUF^0xbb)!
=0);
{
pf=0;
for(p=0;p<4;p++)
{
SBUF=temp[p];
pf+=temp[p];
while(TI==0);
TI=0;
}
SBUF=pf;
while(TI==0);
TI=0;
}
tems[0]=temp[0];
tems[1]=temp[1];
tems[2]=temp[2];
tems[3]=temp[3];
}
}
}
}
显示主程序:
intmain(void)
{
init();
TFT_Initial();//初始化LCD
start_7843();//触摸屏初始化
CLR_Screen(bai);//清屏
Reset_DS1302();//初始化DS1302
while
(1)
{
if(kk==0)xianshi1();
if(kk==1)xianshi2();
}
}
附二:
探头电路图
附三:
显示电路图
附四:
部分电路照片
指导教师意见
指导教师(签名及时间):
答辩意见
答辩小组组长(签名及时间):
成绩评定
毕业设计(论文)成绩
答辩成绩
总评成绩