单片机大侠是怎么样炼成的
时间:11-09
来源:互联网
点击:
串口调试软件。还有手上的几本VC书,就这样写出我的第一个VC程序出来。还记得当时成功发送的第一个字节是’r’!!到现在我还记得很清楚,当时真是开心死了,还马上把串口线和程序带回学校(我是走读生)给MM看,并正式宣布我们的项目开始。这国庆7天假期个中的困难和痛苦我就不想说了,只知道那是我技术之路的第一个起点。
人家都说VC难入门,是的,真的很难啊,不过你要知道VC存在并为这么多程序员所用,自然有他的道理,只要愿意坚持,困难是能够克服的,而且,你并不是第一个面对他的人,所以没有任何道理退缩。看到别的大虾能够成功,那自己为什么不行呢?所以炼虾米的第二要素是:坚持!!
第三章:尝试成功
在VC写的串口程序成功后,我们的计算机远程控制系统就要开始了。其实,当时的VC程序只能发数据,并不能收,因为收的话如果是mscomm要利用消息,如果是API的话要用线程,上面两个我当时都不懂,不过没问题,我的题目是远程控制,没有说是远程监控,所以单发就够用了,:)。剩下的就是单片机接收串口数据,然后控制射频模块发射,接收端就是模块接收后的单片机处理,例如亮LED和控制16*2LCD。
那时侯如何分配51的IO脚也弄了个半天呢,最后和2个MM协调好后,用了张A3纸画了两个大大的51,然后那个脚做什么,哪个脚接LED,那个脚接16*2LCD,那个脚按键。。。呵呵,是夸张了点,但当时还是菜鸟阶段啊~~~~
弄好管脚分配了,就做板子,别以为我很有钱,做工业板,我是拿万能板飞线做的,当时焊个MAX232也焊了半天,勉强焊好了个有串口的最小系统了,发射模块都还没焊上呢。但这时候要分工合作利用时间,于是开始写程序了,基本上是边看书本边写程序,半猜半写。用的是汇编。那时侯没有这里的家伙这么幸福,300元就能买个老丁的仿真器来调试程序,我用的是最纳闷的方法:N片51侍侯,130元的便宜烧写器写程序,编译通过,烧一片,插上板,上电!!出什么问题?拔下,猜猜原因后改程序,再烧再插拔。(当时没有S51的,其实那时侯有我也不会用ISP的),于是就是这样调试程序的了,其中多繁琐可能没多少人明白,因为你们买了个仿真器就插到上面去了,到程序完成了才拔掉。
直到整个项目完成为止,我有一片51烧坏了,估计是寿命到达终点了,1000次的寿命,代表我至少就这样插拔了1000次单片机。真不知道是什么滋味了。
总之当时就是这样天天写,晚晚写,还得和MM逃课了一个星期,终于搞定,发射距离是30M左右啦。20M内接收完全没有错误。还能在PC上按键,然后字母发射到远处的16*8LCD显示出来。(其实现在还想不通这么简单的东西当时居然要花一个多月呢,如果是现在,估计单片机程序我是一小时就出来了)
电子大赛结束,我的MM组合赢得学校的一等奖(林中无老虎,菜鸟称大王咯:),后来这东东改进一下就赶着参加了广东省的挑战杯了,蒙混骗了个3等奖。
第四章:真正的开始
比赛是有两个一等奖的,还有一个是我们邻班的家伙,他当时比我牛多了,做的是串口的电子阅读器,把文章从PC下载他的阅读器上就能阅读了,中文的哦:),其实他当时就已经会VC的DIRECTX编程了,还喜欢用VC来写游戏,比我牛多了。之后的大学单片机生涯我都是在和他比拼中度过的,这样进步当然就快啦。现在这个家伙和我住在一起了,呵呵,不过他向驱动程序的路走,我向嵌入式发展,此为后话。
自从有了第一次尝试成功,我就开始沉迷起来了,特别在放假的时候,更是全情投入,我戒掉电脑游戏也是从那时侯开始的,现在有多少大学生敢说他不玩游戏??我看没多少吧?其实现在想来,玩游戏真的浪费了我很多的生命啊。。回头看一看,游戏在你的回忆中并没有多少残留,也就是不值得去回忆,那我们弄来还有什么用?所以我从不玩游戏。
说回来,我开始沉迷在单片机的研究中,也经常省下点钱上落广州购买点芯片等东西,开始还是自己用万能板焊电路板的,玩玩键盘扫描,做做动态显示8段管等的。后来买了块128*64的LCD,学人家搞起汉字显示来了,好象搞了一个多星期才能输出个汉字,呵呵,够笨吧?后来还做了很多小实验,其实都是自己焊的万能板的。之后从老师中得知有种感光板,于是就扑上广州买了几块回来弄,第一次弄就失败了2块,合共18大元,我狂倒中(2002年12月左右吧)~~后来积累经验后,就成功了,之后越做越漂亮:)单面的工艺已经比美工业板,现在能做到0.25MM的线宽和0.3MM的线距,能够完成大部分的实验需要了。
其实那时侯大学阶段做的小实验还是围绕着一些自己的愿望,也就是算创作了,例如做个计数器,做个电子种;有的是网上看到别人做出来了,自己又想做。不过想做的太多,时间却太少,那时候还是处于刚进门什么都想学的阶段。但不管时间够不够,做的多少得多少嘛,结果现在家里就一大堆东西了,呵呵。
后来学会了上论坛问人了,取名字的时候我想想,我是个电子白痴呢,就取个菜点的名字吧,叫白痴不是很好,于是就叫白菜了,于是我就叫电子白菜,其实就是电子白痴的意思:)那年是2003年的新年。
有了论坛的帮助,我感觉进步的更快了,好多问题都有人指点,开始发的问题还直被人骂菜,后来慢慢地积累帖子数百,偶然也就能骂骂别人菜,呵呵,不过论坛是要上,自己的实验也得做,我觉得在开始阶段,很多东西都要亲身经历过才能积累经验的,单看书上说的是一回事,自己做起来又是另外一回事。在实践中,我学到的绝对不止是实验中的一个程序,更加地我学会了如何去解决问题和如何利用实验成果进入下一个更复杂的实验中。
第五章 狂热
2003年开始,大学的课程基本完结,但还没毕业^0^,我是2003年7月毕业的,那么这7个月就是假期,对的,是7个月的假期,基本除了做毕业设计外是没什么事情做的。我觉得这个正是我第一个飞跃的阶段。话说回来,我们的同学们啊,真是难得有这7个月假期了,疯狂的在游戏,电影和睡觉吃饭中度过,直到后来快要把全天下的电影看光了,百般无聊下,
开始看那些有着10年历史的外国肥皂剧(中文语音),那么这7个月他们是白过的了,还连电费都亏下了!!
当然,我也很快乐地玩了不少时间,这7个月当中,我基本把技术和娱乐1比1地分配下去了,折算一下我也算下了3个半月去钻研了。其实现在回想一下还是觉得当时应该把更多的时间下在技术研究上,这样的话我现在的技术应该会更好一些。因为工作后自己研究的时间就少很多了嘛。。。
说到我这7个月,学会的东西还真不少,主要是不玩游戏啊,就省下了很多很多时间了。我在不做实验的时候,基本时间都花在网上,找找资料,看看技术类的东西,从网上我得到了很多新信息,包括很多单片机的应用,重要的是这些应用远超越我自己做的那些小试验,小电路板。另一个方面,应用思维也很重要,实际的产品跟我们学生比赛弄的东西不同,他要求的是稳定,实际和可行。举个例子:学生们参加比赛都做过什么红外线水龙头的东西吧?他们做出来的那东东,红外线不怎么经过调制和编码就射了,接收端当然是抗干能力扰差啦,如果用在实际上,岂不是水龙头一天自动放水几次??就算一天自动放水一次而已,这个东西都是卖不出的了。另一方面,他们总觉得电费不是钱,红外线是源源不断地放,接收端是不停地检测,单片机经常缺乏睡眠。。。再举个例子,温度控制,这个东西估计大学生的比赛中是常出现的题目了,他们总是有着这样一个概念:你调100度,那么我的发热管就一直加热,直到AD检测到100度了,就停,然后当温度降低到99度,又开始加温。同学们,看上去很正常吧??但我不妨跟你说,这样的东西是根本不能用的,如果用在工控上(一般要求精度为1~2度)是必然闯祸的东西!!为什么?因为学生们都认为到了100度的时候就关发热管,那么他温度就应该只有下降没有上升的理由是不?但实际中,关掉发热设备后,发热丝还是火红火红的,温度是以一个曲线形式继续上升的,所以你到100度才关,到头来实际温度是到110或更高才会开始下降的。同理,温度下降后的加热上升也有这个问题。关于这类温度控制的算法,是有一门专门的PID学问的。大家可以在网上多搜索资料。
说回正题,由于在上网中得到了不少启发,我就开始慢慢脱离那些C程序量还不到300行的小实验了,也就是说,不再点跑马灯,键盘,LED等的东西了。我开始想写大点的程序,但想归想,可是没有什么题材啊,于是就想不如尝试做个主板的BIOS烧写器如何?其实BIOS烧写器就只是一个简单的PC下载BIN或HEX程序到FLASH上的东西而已。如果这个东西能做出来,倒不如再加上一个128*64的LCD上去(之前刚能弄的他显示汉字),再加个键盘(早就会了,扫描程序是抄回来的:),做个类似PDA的东西,有时间显示(当时刚弄通了1302),有中文显示,还要有中文阅读器的(因为那位朋友做过的,我不会,当然就想做出来啦)。于是就这样,心中就有了一大堆的想法了,慢慢就把这个模型拼了出来:要有一个单片机,一片FLASH,一片RAM,一个串口,LCD,键盘,还有时钟芯片,就这么多!!
(呵呵,说着好象有点象丁丁在卖的实验板了:)
不过很可惜,到现在我还是没有把这个东西完全做出来(倒是给老丁先下了手:),只自己做了块有FLASH,RAM,串口的板子,也就是先完成了烧写BIOS的部分了,而且这个东西还是很后期才做出来的,为什么?因为当时有更重要的事情吸引了我。。。
第六章 升级
当时在论坛上,网上看到有人做USB接口的,觉得很牛啊,于是自己也想做,但一直就是没资料,也不知道如何学。这时候好象又回到了当初认识单片机的时候,好象一切都很新鲜,全部都不懂一样。感到无从下手。2003年一月,是我大学4年级第一学期末,我们开始要毕业设计选题了,当时有两个最难的题目USB
人家都说VC难入门,是的,真的很难啊,不过你要知道VC存在并为这么多程序员所用,自然有他的道理,只要愿意坚持,困难是能够克服的,而且,你并不是第一个面对他的人,所以没有任何道理退缩。看到别的大虾能够成功,那自己为什么不行呢?所以炼虾米的第二要素是:坚持!!
第三章:尝试成功
在VC写的串口程序成功后,我们的计算机远程控制系统就要开始了。其实,当时的VC程序只能发数据,并不能收,因为收的话如果是mscomm要利用消息,如果是API的话要用线程,上面两个我当时都不懂,不过没问题,我的题目是远程控制,没有说是远程监控,所以单发就够用了,:)。剩下的就是单片机接收串口数据,然后控制射频模块发射,接收端就是模块接收后的单片机处理,例如亮LED和控制16*2LCD。
那时侯如何分配51的IO脚也弄了个半天呢,最后和2个MM协调好后,用了张A3纸画了两个大大的51,然后那个脚做什么,哪个脚接LED,那个脚接16*2LCD,那个脚按键。。。呵呵,是夸张了点,但当时还是菜鸟阶段啊~~~~
弄好管脚分配了,就做板子,别以为我很有钱,做工业板,我是拿万能板飞线做的,当时焊个MAX232也焊了半天,勉强焊好了个有串口的最小系统了,发射模块都还没焊上呢。但这时候要分工合作利用时间,于是开始写程序了,基本上是边看书本边写程序,半猜半写。用的是汇编。那时侯没有这里的家伙这么幸福,300元就能买个老丁的仿真器来调试程序,我用的是最纳闷的方法:N片51侍侯,130元的便宜烧写器写程序,编译通过,烧一片,插上板,上电!!出什么问题?拔下,猜猜原因后改程序,再烧再插拔。(当时没有S51的,其实那时侯有我也不会用ISP的),于是就是这样调试程序的了,其中多繁琐可能没多少人明白,因为你们买了个仿真器就插到上面去了,到程序完成了才拔掉。
直到整个项目完成为止,我有一片51烧坏了,估计是寿命到达终点了,1000次的寿命,代表我至少就这样插拔了1000次单片机。真不知道是什么滋味了。
总之当时就是这样天天写,晚晚写,还得和MM逃课了一个星期,终于搞定,发射距离是30M左右啦。20M内接收完全没有错误。还能在PC上按键,然后字母发射到远处的16*8LCD显示出来。(其实现在还想不通这么简单的东西当时居然要花一个多月呢,如果是现在,估计单片机程序我是一小时就出来了)
电子大赛结束,我的MM组合赢得学校的一等奖(林中无老虎,菜鸟称大王咯:),后来这东东改进一下就赶着参加了广东省的挑战杯了,蒙混骗了个3等奖。
第四章:真正的开始
比赛是有两个一等奖的,还有一个是我们邻班的家伙,他当时比我牛多了,做的是串口的电子阅读器,把文章从PC下载他的阅读器上就能阅读了,中文的哦:),其实他当时就已经会VC的DIRECTX编程了,还喜欢用VC来写游戏,比我牛多了。之后的大学单片机生涯我都是在和他比拼中度过的,这样进步当然就快啦。现在这个家伙和我住在一起了,呵呵,不过他向驱动程序的路走,我向嵌入式发展,此为后话。
自从有了第一次尝试成功,我就开始沉迷起来了,特别在放假的时候,更是全情投入,我戒掉电脑游戏也是从那时侯开始的,现在有多少大学生敢说他不玩游戏??我看没多少吧?其实现在想来,玩游戏真的浪费了我很多的生命啊。。回头看一看,游戏在你的回忆中并没有多少残留,也就是不值得去回忆,那我们弄来还有什么用?所以我从不玩游戏。
说回来,我开始沉迷在单片机的研究中,也经常省下点钱上落广州购买点芯片等东西,开始还是自己用万能板焊电路板的,玩玩键盘扫描,做做动态显示8段管等的。后来买了块128*64的LCD,学人家搞起汉字显示来了,好象搞了一个多星期才能输出个汉字,呵呵,够笨吧?后来还做了很多小实验,其实都是自己焊的万能板的。之后从老师中得知有种感光板,于是就扑上广州买了几块回来弄,第一次弄就失败了2块,合共18大元,我狂倒中(2002年12月左右吧)~~后来积累经验后,就成功了,之后越做越漂亮:)单面的工艺已经比美工业板,现在能做到0.25MM的线宽和0.3MM的线距,能够完成大部分的实验需要了。
其实那时侯大学阶段做的小实验还是围绕着一些自己的愿望,也就是算创作了,例如做个计数器,做个电子种;有的是网上看到别人做出来了,自己又想做。不过想做的太多,时间却太少,那时候还是处于刚进门什么都想学的阶段。但不管时间够不够,做的多少得多少嘛,结果现在家里就一大堆东西了,呵呵。
后来学会了上论坛问人了,取名字的时候我想想,我是个电子白痴呢,就取个菜点的名字吧,叫白痴不是很好,于是就叫白菜了,于是我就叫电子白菜,其实就是电子白痴的意思:)那年是2003年的新年。
有了论坛的帮助,我感觉进步的更快了,好多问题都有人指点,开始发的问题还直被人骂菜,后来慢慢地积累帖子数百,偶然也就能骂骂别人菜,呵呵,不过论坛是要上,自己的实验也得做,我觉得在开始阶段,很多东西都要亲身经历过才能积累经验的,单看书上说的是一回事,自己做起来又是另外一回事。在实践中,我学到的绝对不止是实验中的一个程序,更加地我学会了如何去解决问题和如何利用实验成果进入下一个更复杂的实验中。
第五章 狂热
2003年开始,大学的课程基本完结,但还没毕业^0^,我是2003年7月毕业的,那么这7个月就是假期,对的,是7个月的假期,基本除了做毕业设计外是没什么事情做的。我觉得这个正是我第一个飞跃的阶段。话说回来,我们的同学们啊,真是难得有这7个月假期了,疯狂的在游戏,电影和睡觉吃饭中度过,直到后来快要把全天下的电影看光了,百般无聊下,
开始看那些有着10年历史的外国肥皂剧(中文语音),那么这7个月他们是白过的了,还连电费都亏下了!!
当然,我也很快乐地玩了不少时间,这7个月当中,我基本把技术和娱乐1比1地分配下去了,折算一下我也算下了3个半月去钻研了。其实现在回想一下还是觉得当时应该把更多的时间下在技术研究上,这样的话我现在的技术应该会更好一些。因为工作后自己研究的时间就少很多了嘛。。。
说到我这7个月,学会的东西还真不少,主要是不玩游戏啊,就省下了很多很多时间了。我在不做实验的时候,基本时间都花在网上,找找资料,看看技术类的东西,从网上我得到了很多新信息,包括很多单片机的应用,重要的是这些应用远超越我自己做的那些小试验,小电路板。另一个方面,应用思维也很重要,实际的产品跟我们学生比赛弄的东西不同,他要求的是稳定,实际和可行。举个例子:学生们参加比赛都做过什么红外线水龙头的东西吧?他们做出来的那东东,红外线不怎么经过调制和编码就射了,接收端当然是抗干能力扰差啦,如果用在实际上,岂不是水龙头一天自动放水几次??就算一天自动放水一次而已,这个东西都是卖不出的了。另一方面,他们总觉得电费不是钱,红外线是源源不断地放,接收端是不停地检测,单片机经常缺乏睡眠。。。再举个例子,温度控制,这个东西估计大学生的比赛中是常出现的题目了,他们总是有着这样一个概念:你调100度,那么我的发热管就一直加热,直到AD检测到100度了,就停,然后当温度降低到99度,又开始加温。同学们,看上去很正常吧??但我不妨跟你说,这样的东西是根本不能用的,如果用在工控上(一般要求精度为1~2度)是必然闯祸的东西!!为什么?因为学生们都认为到了100度的时候就关发热管,那么他温度就应该只有下降没有上升的理由是不?但实际中,关掉发热设备后,发热丝还是火红火红的,温度是以一个曲线形式继续上升的,所以你到100度才关,到头来实际温度是到110或更高才会开始下降的。同理,温度下降后的加热上升也有这个问题。关于这类温度控制的算法,是有一门专门的PID学问的。大家可以在网上多搜索资料。
说回正题,由于在上网中得到了不少启发,我就开始慢慢脱离那些C程序量还不到300行的小实验了,也就是说,不再点跑马灯,键盘,LED等的东西了。我开始想写大点的程序,但想归想,可是没有什么题材啊,于是就想不如尝试做个主板的BIOS烧写器如何?其实BIOS烧写器就只是一个简单的PC下载BIN或HEX程序到FLASH上的东西而已。如果这个东西能做出来,倒不如再加上一个128*64的LCD上去(之前刚能弄的他显示汉字),再加个键盘(早就会了,扫描程序是抄回来的:),做个类似PDA的东西,有时间显示(当时刚弄通了1302),有中文显示,还要有中文阅读器的(因为那位朋友做过的,我不会,当然就想做出来啦)。于是就这样,心中就有了一大堆的想法了,慢慢就把这个模型拼了出来:要有一个单片机,一片FLASH,一片RAM,一个串口,LCD,键盘,还有时钟芯片,就这么多!!
(呵呵,说着好象有点象丁丁在卖的实验板了:)
不过很可惜,到现在我还是没有把这个东西完全做出来(倒是给老丁先下了手:),只自己做了块有FLASH,RAM,串口的板子,也就是先完成了烧写BIOS的部分了,而且这个东西还是很后期才做出来的,为什么?因为当时有更重要的事情吸引了我。。。
第六章 升级
当时在论坛上,网上看到有人做USB接口的,觉得很牛啊,于是自己也想做,但一直就是没资料,也不知道如何学。这时候好象又回到了当初认识单片机的时候,好象一切都很新鲜,全部都不懂一样。感到无从下手。2003年一月,是我大学4年级第一学期末,我们开始要毕业设计选题了,当时有两个最难的题目USB
单片 相关文章:
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 巴西的新电视机顶盒采用意法半导体(ST)的最先进的解码器技术(03-24)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)