• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

学习单片机的那些傻缺事件.未完,待续

 

记得若干年前,我还没学c语言,单片机的资料是在一个淘宝店里下载的;当然,我的第一块开发板也是从他店里买来的.

那时候的工作是修电视机,平时比较闲,感觉单片机比较神奇,几乎能完成硬件的各种电路,而且只需要改一点程序就可以了.太奇妙了.

刚到手,视频教程没看,就一堆的插头插上,里边有最简单的跑马灯程序,上电就亮了.

我的第一天就是盯着开发板睡着的.

全部回复(22)
正序查看
倒序查看
tanb006
LV.10
2
2014-04-07 21:26
 

第二天开始研究怎么写程序,怎么安装各种的上位机软件,虽然压根不会C语言.

我只是想着有教程,有例子.我照抄总是可以的吧.嘿嘿嘿

于是想弄一个8*8点阵顺序点亮并且循环的一个程序.

悲催的日子这就开始了:

先是试着学会使用软件删除程序,再下载一个新的程序,因为不会写.只能下载淘宝那家伙送我的程序了.

折腾了一整天,先是接触不好,换了跟打印机线(以前的老东西是从打印口传输的),好了.

再是被旁边的电视机干扰,总是下载中断,出错,各种的死机.开始怀疑开发板是假的了.....恨

后来偶尔关了旁边的电视机,一切OK了.可以顺利写进去了.

哇哈哈,那时候好开心的样子现在依然记得很清楚.

0
回复
tanb006
LV.10
3
2014-04-07 21:28
@tanb006
 第二天开始研究怎么写程序,怎么安装各种的上位机软件,虽然压根不会C语言.我只是想着有教程,有例子.我照抄总是可以的吧.嘿嘿嘿于是想弄一个8*8点阵顺序点亮并且循环的一个程序.悲催的日子这就开始了:先是试着学会使用软件删除程序,再下载一个新的程序,因为不会写.只能下载淘宝那家伙送我的程序了.折腾了一整天,先是接触不好,换了跟打印机线(以前的老东西是从打印口传输的),好了.再是被旁边的电视机干扰,总是下载中断,出错,各种的死机.开始怀疑开发板是假的了.....恨后来偶尔关了旁边的电视机,一切OK了.可以顺利写进去了.哇哈哈,那时候好开心的样子现在依然记得很清楚.

乐极生悲就是说我啊!

程序是下载进去了.可压根不会动.我重启,复位,拔掉IC,再插,再下载,再擦除.......

 

若干天之后,QQ群的大虾指点:里面的电路图和程序不匹配,我瞬间崩溃。。。愣愣的看着不会亮的开发板,感觉自己还没芯片聪明啊…………..无限悔恨为啥初中英文不学好(其实英文老师蛮漂亮的,光顾得看她了,根本没听她讲的啥)

0
回复
tanb006
LV.10
4
2014-04-07 21:28
@tanb006
乐极生悲就是说我啊!程序是下载进去了.可压根不会动.我重启,复位,拔掉IC,再插,再下载,再擦除....... 若干天之后,经QQ群的大虾指点:里面的电路图和程序不匹配,我瞬间崩溃。。。愣愣的看着不会亮的开发板,感觉自己还没芯片聪明啊……啊…….啊.无限悔恨为啥初中英文不学好(其实英文老师蛮漂亮的,光顾得看她了,根本没听她讲的啥)
 

于是,半个月后.我轻轻的把开发板放进了抽屉最里边.心里流着泪下载了C语言的视频教程,开始了长达半年的学习C语言中.

0
回复
tanb006
LV.10
5
2014-04-07 21:49
@tanb006
 于是,半个月后.我轻轻的把开发板放进了抽屉最里边.心里流着泪下载了C语言的视频教程,开始了长达半年的学习C语言中.
 

断断续续学了一个多月,知道一点C怎么回事了。也学了一些单片机的硬件知识.明白了程序是由数据在寄存器之间的传递和逻辑控制组成。而学习的重点应放在逻辑控制上。多看别人的程序,找出别人程序中的闪光点,并且在自己以后的编程中加以运用。这才是进步之道。

接着开始四处搜刮别人的程序,拿来看,拿来读.虽然很枯燥的字母和语法,但每看明白一部分,都有莫大的开心.

0
回复
tanb006
LV.10
6
2014-04-07 21:58
@tanb006
 断断续续学了一个多月,知道一点C怎么回事了。也学了一些单片机的硬件知识.明白了程序是由数据在寄存器之间的传递和逻辑控制组成。而学习的重点应放在逻辑控制上。多看别人的程序,找出别人程序中的“闪光点”,并且在自己以后的编程中加以运用。这才是进步之道。接着开始四处搜刮别人的程序,拿来看,拿来读.虽然很枯燥的字母和语法,但每看明白一部分,都有莫大的开心.
 

这楼想写一些我体会到的东东,就当是自己的日记了.

读别人的程序是一个痛苦的过程。痛苦才有进步。编程时,务必力求简洁。

也犹豫过到底那本书适合入门,真的是随便一本大学教材就可以,

我这里说的是入门,也就是书的重点应该放在51单片机的内部结构上。

没事翻翻,熟悉一下硬件结构。因为毕竟软件是依赖于硬件运行的。

单片机的内部模块无非那么几个:

中断,定时器,串口,SPIIICAD,EEPROMDA有的还有LCD驱动模块,

所有的单片机几乎都是这些模块。那么我们只要掌握了这些功能模块的运用,单片机就算学了个大概了.

虽然不同的单片机在这些功能模块上的操作有区别,不过大同小异。

功能越强大,寄存器就越多。这简单,看数据手册就是了。

有的单片机官方还提供例程,比如TI(这里不是广告.)

单片机内部模块的学习重点,放在前6个模块上。即中断,定时器,串口,SPIIICAD,DA

0
回复
tanb006
LV.10
7
2014-04-07 22:05
@tanb006
 这楼想写一些我体会到的东东,就当是自己的日记了.读别人的程序是一个痛苦的过程。痛苦才有进步。编程时,务必力求简洁。也犹豫过到底那本书适合入门,真的是随便一本大学教材就可以,我这里说的是入门,也就是书的重点应该放在51单片机的内部结构上。没事翻翻,熟悉一下硬件结构。因为毕竟软件是依赖于硬件运行的。单片机的内部模块无非那么几个:中断,定时器,串口,SPI,IIC,AD,EEPROM,DA有的还有LCD驱动模块,所有的单片机几乎都是这些模块。那么我们只要掌握了这些功能模块的运用,单片机就算学了个大概了.虽然不同的单片机在这些功能模块上的操作有区别,不过大同小异。功能越强大,寄存器就越多。这简单,看数据手册就是了。有的单片机官方还提供例程,比如TI。(这里不是广告.)单片机内部模块的学习重点,放在前6个模块上。即中断,定时器,串口,SPI,IIC,AD,DA

在买了书,学了一点点的C,终于可以对照着书,将书上的程序移植到我的开发板上。

哇,两灯来回闪亮了,

然后是根据网上提供的详细例程来试着下载到开发板上.

那段时间,看着开发板的灯各种的闪,对上位机的操作也越来越熟悉,让我感觉到一次次骄傲.

需要说明的是,千万不要以为你给板子通上电,例程烧进去,单片机就会了。

我必须冷静下来.因为就算你看了例程,看懂了注释也不叫会。那只是在理解。

擦掉单片机的程序,自己不看例程,实现任何你想实现的功能,自己把程序编出来,这才叫学会。

0
回复
tanb006
LV.10
8
2014-04-07 22:08
@tanb006
在买了书,学了一点点的C,终于可以对照着书,将书上的程序移植到我的开发板上。哇,两灯来回闪亮了,然后是根据网上提供的详细例程来试着下载到开发板上.那段时间,看着开发板的灯各种的闪,对上位机的操作也越来越熟悉,让我感觉到一次次骄傲.需要说明的是,千万不要以为你给板子通上电,例程烧进去,单片机就会了。我必须冷静下来.因为就算你看了例程,看懂了注释也不叫会。那只是在理解。擦掉单片机的程序,自己不看例程,实现任何你想实现的功能,自己把程序编出来,这才叫学会。

这里插入一位单片机大虾的良言:

没有必要专门学习!要带着问题来边学习边实践的。单片机只是自动控制系统中的一个部件而已。学习什么?怎样学习?应该看看毛泽东的《改造我们的学习》。

0
回复
tanb006
LV.10
9
2014-04-07 22:48
@tanb006
这里插入一位单片机大虾的良言:没有必要专门学习!要带着问题来边学习边实践的。单片机只是自动控制系统中的一个部件而已。学习什么?怎样学习?应该看看毛泽东的《改造我们的学习》。
 

学到现在,依然停留在玩开发板的阶段.

想起曾经一些傻缺的问题,列几个,看看有没有人跟我一样傻缺.

这头文件到底是啥意思?#include

为啥每个程序开始都这样写捏?

喂马程序中可以有中文注释,而并不会占用可怜的存储空间呢?

为什么100块的开发板可以写程序,可以各种玩,而几千块的 编程器却只能写程序不能玩呢?

为什么单片机都需要一个固定频率的晶振?而不是像电源一样可以变频?

都说数字电路抗干扰能力强,为啥单片机却会因电压不稳而死机?

0
回复
tanb006
LV.10
10
2014-04-07 22:54
@tanb006
 学到现在,依然停留在玩开发板的阶段.想起曾经一些傻缺的问题,列几个,看看有没有人跟我一样傻缺.这头文件到底是啥意思?#include为啥每个程序开始都这样写捏?喂马程序中可以有中文注释,而并不会占用可怜的存储空间呢?为什么100块的开发板可以写程序,可以各种玩,而几千块的编程器却只能写程序不能玩呢?为什么单片机都需要一个固定频率的晶振?而不是像电源一样可以变频?都说数字电路抗干扰能力强,为啥单片机却会因电压不稳而死机?
 

说到抗干扰,这里说说我自己的心得.

早期的开发板都是单独一个7805来解决供电问题的.

但在自己组装的电路中,却很多初学的都忽视了7805的退耦电容.

准确的说是因为模电基础没打好.

其实在7805的前和后,也就是1—23—2脚分别接入一个104的电容,

就能很有效的防止7805的自激,或者莫名奇妙的干扰问题了.

如果有可能,也可以在78053脚上串入一个你能找得到的电感.比如电脑电源里拆出来的那些.就能让你的单片机远离干扰.

0
回复
2014-04-08 09:10
顶~~~哈哈哈哈
0
回复
2014-04-08 11:40
没有必要专门学习!要带着问题来边学习边实践的~~没错~
0
回复
daihui713
LV.6
13
2014-04-08 19:18

支持一下楼主,我就是从郭天祥的C51开始的,现在在玩PIC

0
回复
niexiaozhi
LV.4
14
2014-04-08 19:56
@tanb006
 第二天开始研究怎么写程序,怎么安装各种的上位机软件,虽然压根不会C语言.我只是想着有教程,有例子.我照抄总是可以的吧.嘿嘿嘿于是想弄一个8*8点阵顺序点亮并且循环的一个程序.悲催的日子这就开始了:先是试着学会使用软件删除程序,再下载一个新的程序,因为不会写.只能下载淘宝那家伙送我的程序了.折腾了一整天,先是接触不好,换了跟打印机线(以前的老东西是从打印口传输的),好了.再是被旁边的电视机干扰,总是下载中断,出错,各种的死机.开始怀疑开发板是假的了.....恨后来偶尔关了旁边的电视机,一切OK了.可以顺利写进去了.哇哈哈,那时候好开心的样子现在依然记得很清楚.

深有同感啊!每次看到自己看到自己编的程序就有一种说不出的开心。

有种自豪的成就感

0
回复
zhanggn
LV.1
15
2014-04-10 09:53
顶,跟随楼主学习... 
0
回复
2014-04-11 14:13
@zhanggn
顶,跟随楼主学习... [图片]

哈哈 都差不多,看来大家学习的时候都是很用心的呀!支持一下,我是先自学汇编语言然后才辗转C的

0
回复
晶熔铁
LV.7
17
2014-04-13 22:27
@tanb006
 说到抗干扰,这里说说我自己的心得.早期的开发板都是单独一个7805来解决供电问题的.但在自己组装的电路中,却很多初学的都忽视了7805的退耦电容.准确的说是因为模电基础没打好.其实在7805的前和后,也就是1—2和3—2脚分别接入一个104的电容,就能很有效的防止7805的自激,或者莫名奇妙的干扰问题了.如果有可能,也可以在7805的3脚上串入一个你能找得到的电感.比如电脑电源里拆出来的那些.就能让你的单片机远离干扰.

向楼主致敬!

0
回复
2014-04-15 09:57
@晶熔铁
[图片]向楼主致敬!

寿工,你也来单片机板块啦~~这是咱们综合区的大咔呢,寿工,你现在工作中也用到软件了么?

0
回复
amao473
LV.4
19
2014-04-21 22:38
@niexiaozhi
深有同感啊!每次看到自己看到自己编的程序就有一种说不出的开心。有种自豪的成就感

各位大哥,请教个问题,单片机运行程序的时候总是容易死机,是怎么回事啊?

0
回复
amao473
LV.4
20
2014-04-21 22:38
@yueyunno1
哈哈都差不多,看来大家学习的时候都是很用心的呀!支持一下,我是先自学汇编语言然后才辗转C的
汇编好难理解啊.只会一点点C的路过.
0
回复
unremitting
LV.5
21
2014-04-22 16:49
看样子,学单片机都得经过这样的过程啊,坚持就是胜利!
0
回复
tanb006
LV.10
22
2014-04-22 17:28
@daihui713
支持一下楼主,我就是从郭天祥的C51开始的,现在在玩PIC
连长,请教下51学习中的困难点,我还是没搞清楚堆栈.
0
回复
amao473
LV.4
23
2014-04-22 19:39
@amao473
各位大哥,请教个问题,单片机运行程序的时候总是容易死机,是怎么回事啊?

电源的问题居多.通常滤波不好就这样.

最简单的判断方法是在你的电源线靠近板子的地方,加个磁环,

电源线在磁环上绕几圈就可以了.

如果是电源干扰,效果是立竿见影的.

0
回复