EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一个简单单片机项目的一些想法% f1 @* \+ L# p6 g
- X0 i/ ~5 c( O( w% x9 l# i* b0 }% q
仪器的原理是借助电磁感应,为线圈通电,不同含铁量的成分会使线圈产生不同频率的震荡,由此来测试成分的含铁量。我做的部分也非常简单,使用51单片机操作12864做显示,矩阵键盘 控制系统的行为,1302存储时间,可有可无,24c02用来存储预设参数,用于方便计算,仅此而已。 接到任务后,准备一晚上把它弄完。这也是上大学以来首次通宵做东西(其实后半夜基本都在发呆),第一天晚上进展还算比较快,每个基本模块的基本操作都能进行了。然后就 可以回家轻松过五一啦。其实艰巨的任务还在后面。 碰到的第一个问题就做一个什么样的操作界面比较靠谱。由于没有gui支持,做什么玩意全都需要自己安排。原仪器用的是数码管,自然参考价值不大。起初就试着按照操作步骤 来编排界面。 时钟显示->设置参数1->设置参数2->......->测量结果->返回重测 整个过程是一个线性的设置过程,逐一检查每一个参数,然后进行测量。 后来我发现既然要选择参数进行设置,我们应该把参数选择放入一个并排选择的环境中,即参数选择界面->1,...2... ... ->回参数选择界面。这样就可以方便地设置参数, 修改需要修改的部分。 当时想也没想就这么写了,而且写了一个超级长的大循环,里面嵌套了无数小循环,直接导致的后果就是 冗长的程序搞乱了自己的思维,测试过程中发现键盘扫描出了问题,时常有检测不到按键的现象。而回头看看自己写的程序,实现类似的键盘检测却运用了各种不同的方法,还都写在同一个 函数中,就算不出错,自己也不想再看。真有种绝望的感觉,后来又将这段代码全部删除了,这是个教训。 /***************************************************************************************************************** *在实现类似功能的时候,最好是用同样的方法,这种方法要经过仔细的推敲和实验,可以不是最简单的,但必须是最可靠的办法。比如在这个程序中,每次显示之后然后判断按键 值,从而进入下一个步骤。可见,每个步骤的切换都是相类似的,当然,我们可以用很多方式来实现这个功能,开始的做法就是想起来怎么做就怎么做,写得多了自己也不明白了。我们可以
4 K: ^- r* H5 S% l% Z f |