论坛风格切换切换到宽版
  • 5420阅读
  • 14回复

青少年科技活动中开展单片机汇编语言学习和应用有意义吗 [复制链接]

上一主题 下一主题
离线BA5RW
 
发帖
48263
只看楼主 倒序阅读 0楼 发表于: 2009-11-16
我想向各位玩过或在用单片机的朋友们请教一个问题:
青少年科技活动中开展单片机汇编语言学习和应用有意义吗?
不搞代码输入的那种编程方式,直接就是汇编语言的格式。
离线danju
发帖
415
只看该作者 1楼 发表于: 2009-11-16
周老师,汇编语言感觉对于硬件方面的理解还是有帮助的,要说效率,肯定还是用c比较好了,中学里面现在好像信息技术课有学basic
离线BD7RC
发帖
3283
只看该作者 2楼 发表于: 2009-11-18
使用汇编语言来学习单片机,这对于硬件的了解非常重要、也很必要。在很多高校的单片机课程的学习中,都是要求先学习汇编语言才使用高级语言进行编程的。

但是,现在的小孩,不管是中小学生还是高校的学生,实用主义思想非常严重,希望学了什么东西马上就能立竿见影。如果他知道要完成一个比较复杂点的多位除法运算需要几百行的汇编代码的时候,可能会崩溃的,除非他很有耐心或者老师的预防针打得好

作为科普学习,我个人不太赞成使用汇编语言去弄单片机,尤其是对一点基础都没有的中小学学生,整体效果不会太好,但也许可能发现或培养出少数几个尖子。

楼上的建议不错,比较适合科普的,可能还是basic语言,贴近自然的语言和逻辑思维。楼主可以尝试使用bascom-avr教他们玩avr单片机或用bascom-8051玩51单片机,它们的编程语言非常接近标准的basic语言。

这几年我一直在用bascom-avr在我所在的大学里面教电气类的大学生玩单片机,跟汇编和c语言比起来,虽然看起来比较粗糙(基本屏蔽了单片机底层硬件详细结构),不太入流,能共享的网络资源比较少,但是学生一致反映上手快、效率高、容易理解,这对于入门者来说非常重要,成功的开始,这会给学习者很大的鼓舞。

今年上半年我曾经试着让我读小学四年级的儿子用bascom-avr玩单片机,只需要几天的时间,他就可以自己玩一些简单的控制类东西了。

因此,科普类的单片机学习,我还是比较推荐使用bascom-avr或bascom-8051,貌似pic单片机也有类似的开发语言和工具。

比较纳闷的一点是,这类开发语言,在国外还是比较风行的,但是国内好像前几年推过一段时间,近期好像有销声匿迹的迹象......
离线bellstudio
发帖
2820
只看该作者 3楼 发表于: 2009-11-18
basic好啦,比较容易
avr,pic都有basic的

asm太生涩,c太严谨
离线BA5RW
发帖
48263
只看该作者 4楼 发表于: 2009-11-19
basic的确上手快,十几年前我都没接触过,结果只看了半小时的介绍就能利用可编程计算器basic编写程序做计算。
我们还是选用最普及的51做学习入门,恐怕还是用汇编比较容易,其实主要是看我们怎么教。我担心的是孩子们只喜欢玩,不喜欢去研究原理,只想模仿后炫耀。所以正在考量这种科技活动的意义。
离线BG5ROJ
发帖
1883
只看该作者 5楼 发表于: 2009-11-19
我觉得用c好, 一个是现在的趋势,asm通常是进阶选手,有更高效率要求的时候使用的,
  而小孩甚至是我们,有短期成果的激励其继续学习是很重要的, 如果你费了很大力气就那么点东西,可能你会很郁闷, 而且现在的c和汇编好像差别也不会太大,效率上,如果你使用的好的话,在大多数情况下。

  作为一个新的程序员,严谨的习惯恰恰是他该养成的,你可以编程水平不高,但习惯一定要好,不然更糟糕,我写程序的时候老师多数强调的是习惯,包括命名,对齐,等等,,非常重要的
离线黑衣
发帖
2315
只看该作者 6楼 发表于: 2009-11-20
短期成果的激励其继续学习是很重要的

所以说:
实用主义思想非常严重,希望学了什么东西马上就能立竿见影
离线BH7KQK
发帖
3425
只看该作者 7楼 发表于: 2009-11-20
听说过logo语言吗???这个最不错。

看这里。
http://baike.baidu.com/view/324525.html
离线BA5RW
发帖
48263
只看该作者 8楼 发表于: 2009-11-20
'
听说过logo语言吗???这个最不错。
看这里。
http://baike.baidu.com/view/324525.html
'
logo语言侧重画图激发儿童学计算机的兴趣,而单片机汇编或c语言则侧重硬件的应用和实现,更趋向实际应用,容易跟大学生的实验或竞赛活动接轨,也能在各行各业得到应用。我个人粗浅比较了logo、basic、c、pascal和汇编之后,感觉logo太耗时间,把孩子圈在竞赛的怪圈里,以后并无太大的应用,而pascal好象已经被大学竞赛放弃了,一定有其不通用的原因或是背后的支持不够,而单片机c虽然和标准的c有差别,但是灌输的概念是传承一体的,估计即使以后玩更高级的芯片都是通用的,所以还是感觉由汇编入门,不教太复杂的算法,主要解决输入输出口的应用就可以了,后面再导入c语言,不知道我的思路对否?
离线永远的FM
发帖
12110
只看该作者 9楼 发表于: 2009-11-20
感觉在青少年中(特别是对电子技术一知半解甚至完全不解的青年)推广学习这类东西,最好就是立竿见影。如果不立竿见影,就会打击他们的积极性。一旦失去积极性,这种状态下学东西就变成灌输,就失去科普教育的意义了。(个人认为科普教育是在有兴趣情况下学的东西,不是应试教育那种)
既然是科普学习,就不必要强求他们去深入学习。
可以先用楼上几位朋友推荐的basic语言写个单片机程序,等他们发现有趣之后,真正喜欢的人自然就会去进一步探索(你可以告诉他们控制单片机工作的程序有很多种写法),一般的人也会记住单片机这一小东西有很大的用处。而你也可以挖掘出一些苗子。
至少我们学校电子设计协会在组织大一新来同学的实践活动就是基于这个思想的。
离线danju
发帖
415
只看该作者 10楼 发表于: 2009-11-21
'
logo语言侧重画图激发儿童学计算机的兴趣,而单片机汇编或c语言则侧重硬件的应用和实现,更趋向实际应用,容易跟大学生的实验或竞赛活动接轨,也能在各行各业得到应用。我个人粗浅比较了logo、basic、c、pascal和汇编之后,感觉logo太耗时间,把孩子圈在竞赛的怪圈里,以后并无太大的应用,而pascal好象已经被大学竞赛放弃了,一定有其不通用的原因或是背后的支持不够,而单片机c虽然和标准的c有差别,但是灌输的概念是传承一体的,估计即使以后玩更高级的芯片都是通用的,所以还是感觉由汇编入门,不教太复杂的算法,主要解决输入输出口的应用就可以了,后面再导入c语言,不知道我的思路对否?
'
c是大趋势了,pascal现在不流行了,不过以前用过pl/m,与pascal有点相似,效率很高,上手很快,不亚于basic,生产的代码也很小,据说早期电脑的bios也是用pl/m语言编的,但是现在也没什么人用了,最主要这些移植起来都不如c/c++吧
离线BA5RW
发帖
48263
只看该作者 11楼 发表于: 2009-11-21
。(个人认为科普教育是在有兴趣情况下学的东西,不是应试教育那种)
我也是持这种观点的,所以正在考量怎么普及,先让更多的孩子知道有这神奇的东西,中间就有一部分孩子会往这边靠。
离线BA5RW
发帖
48263
只看该作者 12楼 发表于: 2009-11-21
'
c是大趋势了,pascal现在不流行了,不过以前用过pl/m,与pascal有点相似,效率很高,上手很快,不亚于basic,生产的代码也很小,据说早期电脑的bios也是用pl/m语言编的,但是现在也没什么人用了,最主要这些移植起来都不如c/c++吧
'
主要是basic语言在单片机方面的应用除了avr有听说用过,51的没看到。c语言中涉及的对口的赋值和对中断、定时器等的操作过程和汇编也差不多,所以我还在摇摆中……
离线BG4RFF
发帖
1581
只看该作者 13楼 发表于: 2009-11-21
科普,用图形语言最好了,明了,再配合什么机器人之类的相当的有吸引力
科普主要是兴趣的培养,最终会不会弄出什么东东就看兴趣浓厚程度
有兴趣什么都好说
我上学学的是tc2.0,然后微机原理是8086和汇编,结果看了几天8051的原理,就有点会弄8051的汇编,再看看那单片机c语言应用之类的书,就又能用c编写了,再后来avr、pic、arm都是直接用c编,这当然是我个人的经历
科普的确是和兴趣联系的,不过现在好多家长让孩子上兴趣班,想的确是能灌输给孩子一些东西,并不是随着孩子的兴趣去搞的
离线bellstudio
发帖
2820
只看该作者 14楼 发表于: 2009-11-21
labview 配合乐高机器人 哈哈哈哈