阅读提示
建议先通读一遍,再回看题目、开头、过渡和结尾,更容易提炼出可借鉴的写作框架。
这次单片机课程设计从选题到最终调试完成,整整折腾了两周。一开始觉得就是按老师给的框架填代码,真做起来才发现,完全不是那么回事。
选的是温湿度监控系统,要用DHT11传感器和LCD1602显示。找资料时发现网上例程一堆,但直接抄过来总是不灵。不是时序不对,就是端口配置出错。第一次烧录程序后屏幕亮都不亮,心里就咯噔一下。查了半天,原来是排线插反了。这种低级错误让我恨不得敲自己脑袋。硬件连接真是看起来简单,实际稍不注意就出问题,一根线没接牢,整个系统就趴窝。
编程部分更磨人。写按键切换显示模式的时候,消抖处理没做好,一按就乱跳。调试时一遍遍改延时参数,用示波器看波形,才发现自己理论上的理解和实际信号差距这么大。还有一次,温湿度读数老是飘,怀疑是传感器坏了,结果发现是代码里读取数据的间隔太短,传感器还没响应。那会儿蹲在实验室里,对着代码一行行看,差点把屏幕盯穿。
最崩溃的是软硬件联调。程序单独仿真都通过了,一烧进单片机就和硬件打架。显示时有时无,数据时对时错。没办法,只能分模块查:先确保电源稳定,再单独测传感器信号,最后一段段验证代码。用串口打印调试信息这招是跟学长学的,真是救命稻草,不然根本不知道程序卡在哪。当屏幕上终于稳定跳出温度和湿度数字的时候,我直接从椅子上蹦起来了。
这次设计让我彻底明白了,单片机不是只写代码就行。硬件电路要靠谱,电源要干净,时序要对得上,抗干扰也得考虑。光看手册参数不够,得动手试。那些寄存器配置,以前背书一样记,现在调通了才真正懂为什么要这么设。还有调试方法,比写代码本身还重要。
团队合作也是深刻一课。我和搭档分工,他偏硬件我偏软件,但中间没少吵架。为了一个接口定义互相不服,最后发现两人参考的例程根本不是同一个型号的单片机。磨合之后才学会,先统一资料版本,定时对进度,有问题立刻一起查,效率高多了。
现在回头看,那些熬到半夜查资料的焦虑,那些调试不通的烦躁,都变成了最后看到系统稳定运行的踏实感。单片机这东西,就像个执拗的伙伴,你得按它的规矩来,摸清它的脾气,它才会乖乖干活。这门课设计虽然结束了,但我知道,下次再遇到嵌入式项目,我至少不会像这次一样手忙脚乱了。经验都是摔跟头摔出来的,这话没错。