基于单片机的温度巡检系统的设计 联系客服

发布时间 : 星期四 文章基于单片机的温度巡检系统的设计更新完毕开始阅读ab9e01fc941ea76e58fa046e

图3.16从机采样温度值主流程

33

4.2程序

void UpdateDC() {

WORD DCVal;

if (DspCalibrate == _False) {

DCVal = DspTable.DcVal;

if (MuxAddr[CurrentDC] == _TempAddr) {

if (LastTemperature == 0x7FFF) // init condition LastTemperature = DCVal-3692;

LastTemperature = (LastTemperature + (DCVal-3692))/2;

CalcTable[ _DCOffset + DCCalcTableXRef[CurrentDC] ] = (DWORD)LastTemperature; } else {

/* Reset System if Sync. Error Detected */ // if ((MuxAddr[CurrentDC] == _NegRefAddr) && // ((DCVal > 0xc0a2 ) || (DCVal < 0xbf5d )))

// if (((MuxAddr[CurrentDC]==_NegRefAddr)&&((DCVal > 0xc0a2 )||(DCVal < 0xbf5d ))) ||

// ((MuxAddr[CurrentDC]==_PosRefAddr)&&((DCVal > 0x40a2 )||(DCVal < 0x3f5b ))) )

if (((MuxAddr[CurrentDC]==_NegRefAddr)&&((DCVal > 0xc334 )||(DCVal < 0xbcce ))) ||

((MuxAddr[CurrentDC]==_PosRefAddr)&&((DCVal 0x3ccc ))) ) {

ErrorCount = ErrorCount+1 & 0x0f; ErrorValue[ErrorCount] = DCVal;

34

> 0x4332 )||(DCVal <

Alarm = _True; ResetSystem(); }

CalcTable[ _DCOffset + DCCalcTableXRef[CurrentDC] ] = (DWORD) DCVal; }

CurrentDC = (UBYTE) ((CurrentDC + 1) % DC_Mux_Adrs);

// commence the change at the FPGA

if (LineFrequency & 1) // check for 50 hz ###306 *A2DDcAddr = 0xF0 | MuxAddr[CurrentDC]; else

*A2DDcAddr = 0x70 | MuxAddr[CurrentDC];

第五章 结论

随着用Visio完成电路硬件图,我的毕业设计也算是基本告一段落了,从查资料到程

35

序编写,程序调试,再到整个系统软硬件的联合调试,回首这一路走来的日子,心中颇多感慨。

短短五周理论到实践的转变,让我获益良多。首先看书的侧重点较以往有了很大不同。平时在学习单片机时,总以考试要求为标准来看书,考试不要求的往往一带而过,很少花时间仔细去看,而考试的要相对实际应用来说是较低的,因此理论学习掌握的东西停留在很浅的层面上。而设计的要求则可以说是更深层次的,这要求自己熟悉各个指令的用法以及作用,同时还要求思维的逻辑连续性,如何用单片机的指令语言实现要求的功能等等。其次,一遍遍的翻阅各种资料使得自己的单片机应用能力有了很大的提高。

纵观这次设计,我们要求的主要是硬件之间的连接和搭配。按照指导老师给的任务书上要求的内容和技术指标!我首先要了解有从信号采集到信号输出的空间概念。还必须了解从单片机内部,单片机外围设备,单片机接口电路以及单片机的软件编程的基础知识。因此我先去图书馆查阅资料以及参考指导老师给的珍贵的资料。

在设计硬件图中还是遇到了一些问题:由于我们要求有LED显电路,16位键盘,还有16路的信号采集,需要占用的I/O口很多,一般的单片机都没用那么多的输入输出口,所以必须要扩展I/O口!做为机电一体化的学生,只是对单片机基础元件有少许的了解,涉及到扩展和外围设备时,就要自己去学习和查阅。到最后的确定让我明白没有什么事是可以一次到位的,都必须是在不断的实践中积累经验,从一般到优秀的,如果没有具体的实践是看不出来优劣的。

从这里是我明白,要想应用那一部分必须首先仔细的研究那里的原理知识,然后再在应用中不断地发现问题解决问题。在学习的过程中不能只片面的懂一部分,我已开始就是犯的这种错误,每次都以为好了,可最后总会有不同的问题出现,所以要仔细研究透每一部分更不能不求甚解就胡乱应用。

这里我明白,一个系统并不是一开始就可以让它定型的它是在不断的实验中才逐步完善的,最后的结果中可能不包括开始的一些设想也可能包含一些一开始没有的功能。总之,最终的结果要等最后出来的系统来确定。

在整个设计过程中是离不开书本的支持和老师的指导的,通过这次设计我们从书本和老师那里学到了很多知识,很多课堂上学不到的知识,有理论上的、有技术上的、也有思维上的、更有认识的。。

总之,这次设计从软件编写、调试到软硬件联机调试,我们倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过。。。。。。但最终我们成功了。我想这之于我们组的每一位成员都是最重要的。

因为我们不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。

致谢

首先要衷心感谢的是我可敬可亲的导师李兵老师!李老师渊博的知识,扎实的实践能力,

36