用51单片机来测试成分的含铁量

发布时间:2023-09-05  

仪器的原理是借助电磁感应,为线圈通电,不同含铁量的成分会使线圈产生不同频率的震荡,由此来测试成分的含铁量。我做的部分也非常简单,使用51单片机操作12864做显示,矩阵键盘控制系统的行为,1302存储时间,可有可无,24c02用来存储预设参数,用于方便计算,仅此而已。


接到任务后,准备一晚上把它弄完。这也是上大学以来首次通宵做东西(其实后半夜基本都在发呆),第一天晚上进展还算比较快,每个基本模块的基本操作都能进行了。然后就可以回家轻松过五一啦。其实艰巨的任务还在后面。碰到的第一个问题就做一个什么样的操作界面比较靠谱。由于没有gui支持,做什么玩意全都需要自己安排。原仪器用的是数码管,自然参考价值不大。起初就试着按照操作步骤来编排界面。时钟显示->设置参数1->设置参数2->......->测量结果->返回重测整个过程是一个线性的设置过程,逐一检查每一个参数,然后进行测量。后来我发现既然要选择参数进行设置,我们应该把参数选择放入一个并排选择的环境中,即参数选择界面->1,...2... ... ->回参数选择界面。这样就可以方便地设置参数,修改需要修改的部分。


当时想也没想就这么写了,而且写了一个超级长的大循环,里面嵌套了无数小循环,直接导致的后果就是冗长的程序搞乱了自己的思维,测试过程中发现键盘扫描出了问题,时常有检测不到按键的现象。而回头看看自己写的程序,实现类似的键盘检测却运用了各种不同的方法,还都写在同一个函数中,就算不出错,自己也不想再看。真有种绝望的感觉,后来又将这段代码全部删除了,这是个教训。*在实现类似功能的时候,最好是用同样的方法,这种方法要经过仔细的推敲和实验,可以不是最简单的,但必须是最可靠的办法。比如在这个程序中,每次显示之后然后判断按键值,从而进入下一个步骤。可见,每个步骤的切换都是相类似的,当然,我们可以用很多方式来实现这个功能,开始的做法就是想起来怎么做就怎么做,写得多了自己也不明白了。


我们可以遵循这样的模式:

key = KEY_NULL;

while(key == KEY_NULL)

{

key = keyscan();

switch(key)

{

... ...

}

}

这段代码用于检测按键相对比较清晰,可靠性高,可以作为通用模板。

写完了按键的控制,下一个比较让人纠结的就是12864的显示问题。使用有字库的12864本来应该是方便一些,但是被我奇葩地搞得一塌糊涂。开始写了一个在12864上打印字符的函数,然后再上面循环打印出要显示的数字。程序复杂也就算啦,关键是打印效果很让人郁闷,我们知道12864带字库的是16*16为一大格,这样一个字节写下去,一个数字就占据1个方格,光标还乱飞。纠结一段时间知道,受到打印字符串的启发,将数字转换成ascii放到数组中,数组尾巴上加'

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>