一个小总结呀
O(∩_∩)O哈哈~
最近刚刚参加了物电杯,趁热打铁,回顾一下比赛的过程鸭
#include
某天,我和zdr去上电机学的课……
“zfsh,你想不想来打物电杯?你负责写程序”
“彳亍啊。”
于是我就加入了他们,正好五个人。
#define LED_ON 1
我问:“该怎么做呢?”
zdr说:“是这样的:”
我们要做的项目是DCDC电源。
要求是这样的:
我们的思路是这样的:
sbit LED = P0^0;
“感觉可以啊,来分下工吧。(〃’▽’〃)”
经过理论分析,这样做没毛病,zdr也实现了纹波消除电路。在轻松愉快的氛围里,我们分好了工。
- zdr负责电路绘制
- sjl负责撰写文案
- wlh负责铝制外壳制作
- self负责程序
- ~当然啦,还有一只tyh,这次他好像没有分配什么任务(手动滑稽)~
void main(){
我们愉快地分好了任务。在催更下——实际上只是调侃地说——他画好了电路板。
我在得到原理图后,根据pdf上的引脚,从驱动到功能,非常愉快地实现了代码。
“你没给我弄个中断啊?”
“呃,觉得引脚不够用了,就没再接。”
“啊,那样一些功能实现起来会比较麻烦啊。
“哦哦,我想到办法了,可以替代补救一下。”
第三天,板子也到了,以zdr的焊接技术,这次稳赢。
感觉好宁静,~WW5Wbg==~上也没有~V1~c1~V2JnJTNEJTNE~的人,一切是多么的~YnVn~啊,要是能一直这样下去就好了。大家都能得奖,~dHlo~也在努力着。
LED = V1c1V2JnJTNEJTNE; // 开灯
怪殇始();
zdr总共设计了四块板子,他先焊好了第一块板子,上面带着52单片机。
“干得漂亮,让我来下载程序吧。”
我接过板子,连好了线,把 usb 转 ttl 查到电脑上,在stc-isp中点击了下载。
…………
就没有然后了。
“怎么下不了啊?”
他也不知道为什么。我们两个人试了一晚上,包括直接接上5V VCC、冷启动、热启动、不接VCC(~不启动?~)、反复插拔VCC……但是就是下载不了。
Day_2();
第二天满课,晚上在学长的帮助下,我们意识到了,zdr之前在板子上也焊了个CH340,于是本该由CH340直接连接MCU的电路变成了由CH340到CH340再到MCU,并且有两个晶振同时工作。
肯定下不上去啊!
手头没有单独的MCU了,我们赶紧买了个最小系统板。
“没关系,大不了我可以飞线。”
“啊——”(叹气)“那你先把其它板子焊好吧”
“彳亍。”
Day_3();
第三天,最小系统板还没到,但是我俩的脑洞到了。
我们将CH340的TXD和RXD直接接到MCU的引脚上去。
首先在开发板上实验一下——成功了!
我们俩欣喜若狂,收好开发板,将杜邦线直接怼到52单片机的引脚上去。
下载!
…………
又没有然后了。
“为什么啊……”
while(1); // TODO: Debug here /*
他来飞线
两天后,也就是这个星期六,最小系统板到了。我取了快递,到了实验室,就把程序烧了进去。
“zdr,我去上形势政策课去了,飞线就靠你了。按照之前的结构做就行”
“嗯,你去就行。”
“等你的好消息。”
我来代码
我下课回来,四块板子已经连好了。zdr蹲在电源旁测试。
“怎么样,好了吗?”
“没有,它不显示数字,并且没有输出。”
我看着呆呆的工作状态指示灯,镇定地思考着为什么。
“那好,我去修改下代码。”
我修改了代码,调整了一些逻辑。
“烧录吧。”我想,这次肯定能顺利烧录了吧?
依旧没有然后了。
“怎么回事?今天上午还能正常烧录的。”
“我也不知道。”
我满脸疑惑,发到一个群里去问了问大佬。大佬建议我们把飞线一个个拆掉,然后一条一条连上去。显然时间是不够用的。
在这个时候,工作状态指示灯也不亮。
“程序下不进去,灯也不亮。”我戳了戳工作状态指示灯的飞线……WOC它烧进去了!!!这里有裸露的导线,过载灯和工作灯的飞线连到一起了!一定是这里的问题!
再试一试!!!
我们把四块电路连好,希望这次可以成功。
“哒,哒”
继电器发出了连接的声音。
“诶这里发热很厉害。”
“指示灯在闪!!!”
“诶呦有输出了!!!”
可是电路板不愿意*/
但是数码管不显示数字。按键也不能修改输出电压。
我又修改了代码。
“怎么还是不行?”
“长按按键有反应了。”
“为什么按键反应这么慢?”
“怎么又没输出了?”
“为什么上电之后MCU不运行?”
…………
下载也愈发艰难,以前戳戳那两根导线就可以了,现在需要轻轻“揉一揉”那团没梳过的黑发。
那晚,我反复修改代码,但这堆问题就是不能解决。
“要不……阉割一点需求?可能是哪里焊得有问题?”
“好吧,那只能这样了。”
“行,我今晚熬夜重构一下。”
}
大约今天上午九点,雨初歇,我来到了实验室。
“我自己来试试吧。”
我下载了编译后的.hex文件——无意中发现,像拍拍老电视那样去轻轻拍拍这堆电路,就能下载了。
测试!
失败。
测试!
失败。
阉割,测试!
失败。
…………
zdr也来了,地线被我拍掉了,他重新焊了上去。
继续阉割!现在工作指示灯常亮。
……然而,电路的输出电压也没有了。不知道为什么,单片机供电不稳定,工作指示灯一闪一闪,此时数码管也没有任何显示。我试着按了一下前面的按钮,结果MCU通上电了,工作指示灯亮了,数码管显示了。
“诶诶诶!可以试试。”
zdr按了按调压按钮,但是MCU不鸟他。
我按下了Output按钮,但是MCU也不鸟我。
完了,现在连输出都没有了。
它,是如此冷酷无情——却又怪我俩,或者说只怪我吧。
“等等,我发现,你在设计的时候把Output接到EA上去了,换句话说,时钟同中断或电压输出,你只能二选一!”
“啊这呃……”
午饭时间到。午饭结束。
我作出了终极阉割,彻底放弃PWM调制,只输出高电平,并且让数码管显示一个定死的目标输出电压。
可这时,MCU说什么也不肯下载新的程序。
“还好,至少这不是最坏的结果。”
File/20221127.log
在这次的物电杯里,暴露了这些问题:
File/Readme.md
今天下午,经历了无数次尝试之后,最小系统板终于乖乖地收下了我们的程序,并且仍然没能像预期那样运行。不过此时我已经习惯了,这已经是最棒的结果了。
我们“踉踉跄跄”地拍好了视频,然后发到了评委邮箱。
回顾这次走过的路,虽说结果不尽人意,却也差强人意。我们并非一无所成,也从未一无所获。在这些方面,比起大佬,我们如毫末之芥,但我们已在不凡的道路上行稳渐远。我们之间的差距,仅剩我们的第一次胜利。
这只是物电杯而已。设想一下,如果不是物电杯,我愿意这样试错吗?
继续前进吧,我们将舟适三山,羽化而登仙!