第一篇:关于单片机教学改革的几点建议
关于单片机教学改革的几点建议
齐河县职业中等专业学校
宋黎明 2012年6月21日
论文摘要:单片机技术是当前社会较为流行和热门的技术之一,社会对硬件设计工程师的需求增长相当迅速,该课程的重要性也越来越明显。本文根据单片机原理及应用课程的特点,从课程教学内容、教学方法和手段、实践教学体系等方面进行研究和尝试,目的在于提高学生分析问题和解决问题的能力,增强学生的创新能力和综合素质,并提出了改善现有课堂教学模式、提高教学质量的一些思考。关键词:单片机 教学改革 教学手段
一、引言
单片机技术是现代电子工程领域一门迅速发展的技术,其发展极大地推动了电子工业的发展,无论在教育界还是在产业界,单片机技术的推广仍然是一个热点。但是在多年的教学中,学生普遍反映单片机太抽象、概念多、入门难、指令不易记等等。学生感到枯燥乏味,学习难度很大,教师的课堂教学效果也不够理想。因此为了改变目前的现状,需要对单片机的教学进行改革,下面作者就在单片机的教学中出现的问题提出几点建议。
二、单片机教学改革的措施。
1、培养学生学习兴趣
在单片机课堂教学过程中,教师应注重与实际应用结合,运用案例教学,激发学生的学习兴趣。比如,在教学过程中,以一个完整的项目开发为案例,做个红绿灯控制系统,一方面其趣味性增强了,另一方面又容易被学生接受,学生可以根据所学到的东西,进行分析、反思、体验和感悟。当与其共鸣时,就会很自然的模仿,进而做到举一反三的效果。给学生展示单片机广阔的应用前景比如多媒体教室使用的投影仪,甚至是学生们最常用的pc机的键盘,里面也有一枚小小的单片机芯片在控制。抽象的教学内容与这些活生生的现实应用实例相结合,给学生一个看得到、听得见、摸得着的学习目标,大大提高了学生学习单片机的兴趣。
2、改变教学方式
(1)优化教学内容 单片机课程信息量大,传统的教材一般是以单片机的结构和各模块的使用为核心进行编写的。这样的教材详细的解析了单片机的结构和各种功能,有利于学生全面掌握单片机的理论知识。但是这样的教材对中职学生是不适合的。中职院校教材应当采用“模块化”教材,将教学内容改不成一个个项目和模块,将整个理论体系进行有机的、覆盖性的分解后融入项目和模块的实现过程中。同时要给学生提出基本要求和提高要求,使得学生在完成基本的教学任务的同时拥有自主学习、自主创新的空间,方便学有余力的学生进一步提高自己。
(2)采用诱导式教学
在教学过程中积极对学生进行引导,最大限度地调动和发挥学生在实验中的主体作用。对学生提出的问题,不做正面的回答,而是围绕问题引导学生发现问题的关键,并自己动手独立解决问题。将传统的以教师和课堂教学为主的教学模式,逐步演变成基础实验以教师为主导,综合实验教师与学生并重,创新实验以学生为主的多种形式,使学生从“要我学”转变成“我要学”。鼓励学生结合实际自己立项,独立完成项目。
(3)利用多媒体实验教学,建立虚拟实验室
充分运用现代信息技术手段辅助实验教学,结合实验项目的内容和教学大纲的要求,在教学过程中教师备课时可以精心设计讲解内容,制作生动形象的多媒体课件,将相应的实验原理、实验步骤、实验设备和仪器、实验所用到的芯片工作原理和外形通过多媒体技术设计制作出将文字、图形、图像、声音、视频、动画等集于一体的多媒体虚拟实验软件。将传统课堂教学中抽象难懂的概念具体化、形象化,单调枯燥的理论多样化、生动化,将重难点知识内容形象逼真地展现在学生面前,产生动静结合的画面和智能性启发诱导功能,使学生身临其境,直接去感受、体验,便于学生进一步巩固课堂上所学的基础理论。
(4)加强实践环节教学,培养学生工程素质和实践能力
单片机是一门实践性很强的课程,只有理论联系实际,加强实验教学和课程设计这两个实践环节,才可能真正地掌握单片机技术。为了提高学生的设计能力和创新能力,引入课程设计环节。通过课程设计的实战演练,学生学会了综合运用所学知识进行单片机应用系统开发的方法,既充分锻炼了学生的实践能力又培养了学生的工程素质和创新意识。
三、结束语
单片机技术教学是灵活多样的,教学方法也是非常之多。但是必须突出“三重”原则:重基础、重能力、重应用。本文讲了几点个人在教学中的心得与观点,只有不断改进教学方法、丰富教学手段,加强实践能力的培养,注重理论联系实际,才能激发学生的学习兴趣,取得较好的教学效果。但是如何将教学改革进行得更加深入系统,为社会培养出大批具有工程素质和创新能力的单片机应用型人才,还需要我们教师共同努力,不断探索。
四、参考文献
1、单片机的C语言应用程序设计(第3版)北京航空航天大学出版社 马忠梅 籍顺心 张凯 马岩
2、单片机技术(附光盘)姜大源 高等教育出版社(蓝色畅想)2005.6
3、单片机原理与C51编程 宋彩利 孙友仓 吴宏岐
西安交通大学出版社 2008.06
4、单片机应用技能实训(C语言)李志京 江苏教育出版社 2011.10
第二篇:浅谈单片机课程教学改革
浅谈单片机课程教学改革
楚州职业教育中心校
陈鹏
摘要
《单片机应用技术》课程具有综合性强、实用性强、工程性强的特点。传统的单片机教学不能适应新形势下职业教育的培养目标,本文论述了单片机教学改革的必要性,就改革教学内容和教学方法、加强实验实训环节、改革考核形式等方面作了一定的探索。
关键词
教学改革
单片机
教考分离
《单片机应用技术》课程是一门理论与实践性均很强的学科,是工科电类专业一门很重要的专业基础课,把汇编语言知识、微机接口知识、通信技术知识等综合在一起,属于技术性、工程性、实践性很强的一门课程。该课程作为电子专业最重要的核心课程之一,它是“电子”高素质复合技能型人才所需全部自动控制类知识结构的载体,占据着相当重要的地位。
然而,传统的单片机教学一般均以学科体系为出发点,注重课程本身的体系结构和前后的逻辑联系,但却忽略了“可学性”,致使学生学得吃力,老师教得辛苦,教学效果也不好。为了适应新形势下职业教育的培养目标,近年来,作者一直致力于改革传统的教学模式,本文就单片机的教学改革作了一定的探索。
一、单片机教学改革的必要性
传统的单片机教学,均是以单片机的结构为主线,先讲单片机的硬件结构,接着是指令和软件编程,然后是单片机系统的扩展和各种外围器件的应用,最后再讲一些实例。
按照此种教学结构,学生普遍感到难学。尤其是职业学校的学生,很多还没有接触过计算机结构,甚至数字电路也是刚刚接触,要他去理解单片机内部结构,实在不容易,至于很多书一开始就提出的总线、地址等概念,更是学生难以理解的——不管用什么巧妙的比方都不容易理解。
于是学生糊里糊涂地学完了第一部份单片机原理与结构,接着第二部份一开始就是单片机的七种寻址方式,更抽象,很多学生直到学完单片机还不能理解寻址方式究竟是什么意思,为什么需要这么多寻址方式,刚开始学当然更不懂了。然后是单片机指令,111条指令,又不分个重点,反正全是要记住的,等到指令全部学完,大部份学生已对单片机望而生畏,开始打退堂鼓了。
第三部份是单片机软件编程,如果说前面的东西不能理解,还能靠记忆来获得知识的话,这部份就纯粹是理解和掌握了,如果以前没学过编程,短时间内很难掌握编程的有关知识,更不必说编程技巧了。可是教材上明明规定,要编出这样、那样的程序,学的人编不出来,当然只会认为,教材的要求当然是合理的,应该做到的,我做不到就是我没学好。
此外,现在的单片机教材,基本都是以单片机为蓝本来学习计算机原理,而不纯为学习单片机技术,在教材、教学过程的安排上又没有考虑学生的接受能力,使得学生学习的过程是一个不断充满挫折的过程,于是很多学生认为单片机入门难。
另外,在高等职业技术学院单片机应用技术课程教学中,长期以来理论教学与实践教学脱节,分开进行。在课堂教学中学生均是处于被动接受方式,无法主动参与整个教学活动,没能达到以学生为中心,以培养学生操作技能为目的的职业技术教育宗旨。尽管安排有实验实训,但实验实训环节与课堂教学环节没能做到相互连贯、相互映证,实验实训项目与课堂教学内容相关联程度不够,课堂教学与学生练习没能达到有机结合,习题与课堂内容没能紧密相扣,考试形式和内容多以理论为主,仅凭一张试卷定学生能力,没能体现考查学生实际应用知识的动手实践能力。
总之,传统的单片机教材和教学过于重视知识体系的演绎和推理,加之单片机课程本身所固有的抽象性、教学传统尚存在的诸多问题,使大多数学生对单片机课程产生了畏惧心理,以至于影响了他们学习的积极性,使之变成了“问题课程”,不仅对学生的后续专业课的学习形成了一定困难,也对开展教学质量工程产生了消极影响。因此,对单片机课程进行教学改革是十分必要的。
二、单片机教学改革分析
(一)改革课程内容体系结构。单片机的教学内容具有较高的抽象性,这是历史的沿袭。因此该课程对学生思辩能力和思维灵活性的要求相对较高;我国现行的相关教材中知识相对陈旧,教学内容很少体现单片机知识在相关专业中的实际应用,使得学用脱节----既未能体现“素质教育”的现代教育理念,也没有体现单片机针对各专业所应有的“专业基础性”。另外,在实际教学中,不同学生对单片机课程的不同学习需求也未能得到足够重视。
因此,对单片机的教学内容进行必要的取舍和更新就显得十分必要。
改革后的单片机课程内容采用模块、课题、任务体系结构,将整门课程划分为多个模块,每一模块由多个课题组成,每一课题由一个或多个任务组成,每一任务由任务目标、任务分析、相关知识和任务实施四个相互连贯的部分组成。
(二)改革教学内容组织方式。受传统教育理念的影响,当前单片机的课堂教学方法和手段明显落后。特别是在髙职教育的新形势下,如何开展单片机学习方法的研究,为学生提供有针对性的学习指导,激发学生的学习兴趣,培养学生的自学能力,应是教学改革中亟待加强研讨的重点内容之一。
建构主义认为,学习的过程就是学生在自己头脑中对知识的意义进行建构的过程。在这个建构过程中,学生对知识的认知不能依赖于知识的灌输,也不是对书本内容的记忆和对教师思维的重复,而是在学生完成具体任务的实践过程中由于外部环境的压力促使其认识和解决有关问题,由此产生认知的需求和学习的动力。也就是说意义建构是在一定的学习情境下,由学生的自身需求而在其头脑中逐步将信息加工整理或改造和重组。因此,教师在组织教学的过程中,应遵循知识建构这一规律,为学生营造学习情境。
根据建构主义理论,进行教学内容组织方式改革,每次教学均围绕一个任务目标进行各教学环节的组织,以任务目标为主线,进行各相关知识点和技能点的讲解。任务中用到什么知识点和技能点就讲解什么知识点和技能点,用到多少就讲多少,在哪里用就在哪里讲。以教师为主导,以学生为中心,边讲边学,边学边练。教师讲解过程中,要求学生在计算机上用相关软件进行验证,并要求部分学生上讲台进行分析和操作。教师对学生存在的疑问进行实时解答,并用课后作业进行提问,要求学生对课堂教学任务电路和程序进行局部修改,以培养学生单片机应用电路和程序的设计方法。
(三)改革实践性教学设计方式。学生实验以课堂教学任务为对象,用Protel软件绘制出电路原理图,用Proteus软件绘制出仿真电路图,用WAVE软件或Keil软件输入程序并编译程序,然后对程序和电路进行仿真调试运行。教师对学生实验过程中的重点、难点、关键点、及学生操作过程中存在的问题进行实时点评。并要求学生在实验任务电路和程序的基础上,进行适当修改,培养其独立进行电路和程序的设计能力。课余时间要求学生对实验任务,进行印制电路板设计制作,并将任务程序下载到单片机中,实现任务功能。
(四)改革考核形式,实现教考分离。这门课程以往的考核形式相对单一,考题侧重于记忆,例如背几条指令、说几个部件的作用、编一段简单的程序,有的学生单片机考试成绩很高,但却不会实际运用。因此,改革单片机课程的考核形式,恢复单片机课程应有的活力和作用,以适应社会发展的需要,这是摆在我们面前极其重要的教学改革任务。
改革考核方法是教学改革的关键,由于《单片机应用技术》课程是以培养学生实践能力和应用能力为目的,因此考核也应针对几方面的能力进行考核。考核的方式方法和考核的内容将直接影响教学过程的实施,既关系到教师如何教和学生如何学。因此,应通过对考核方式方法的改革来促进教学过程的改革。
《单片机应用技术》课程的考核主要是对编程能力、软硬件分析能力、软硬件调试能力,综合运用能力的考核。在教学过程中,我们首先对考核的方式方法进行了改革,考核包括三个方面,综合能力的考核,占总成绩的50%;实训过程的考核,占总成绩的30%;平时提问、作业、表现的考核,占总成绩的20%。
综合能力的考核完全采用“试题库”的形式,实行教考分离,由多位专业教师根据教学大纲集体编制出“单片机试题库”。试卷包括应知和应会两方面内容,所谓应知是指对各知识点的考核,包括基本概念、基本原理、基本器件;应会是指会编程、会调试、会分析。对于应会部分要求现场调试结果,教师根据学生完成的准确性和熟练程度现场评分。
实训过程的考核就是在每个模块的实训项目调试过程中,对每位同学完成的结果予以记录和评分,评判依据可以按完成实训项目的先后顺序、完成的质量及学生表达能力等几个方面。记录结果由同学签字确认,其目的是要让学生对每次的实训项目认真对待,实践证明这种做法可取得很好的效果。若以组为单位进行实训时还应对每位同学提出相关的问题或进行单独操作,这对主动性差的同学来说能起到很好的促进作用。
三、结束语
通过上述的教学改革,旨在提高学生对单片机的学习兴趣,调动学生学习的主观能动性,活跃学习气氛,提高教学效果。
参考文献
1.李秀忠.单片机应用技术.人民邮电出版社,2007
2.刘守义.单片机原理与应用.西安电子科技大学出版社,2007
3.张永枫.单片机原理与应用实训教程.西安电子科技大学出版社,200
第三篇:高中物理教学改革建议
高中物理教学改革建议
1、上好物理第一课,消除学生的 “畏难”情绪。很多学生在学高中物理之前听他们师哥师姐说:“物理最难学、最抽象、最难懂”,这无形之中对物理学习产生了恐惧心理同时在最近学习过程中某些章节较难理解,教学中发现学生对学好物理缺乏信心。因此解决此问题尤为重要。
2、注意初中和高中的衔接。初中物理机械记忆东西较多,形象思维活动要求多。高中物理在学习内容深度和广度上比初中有很大增加,研究物理现象较复杂,分析问题抽象思维多于形象思维,动态思维多于静态思维,需要学生需要具有特别的科学思维能力。
3、课前应补充必要的数学知识,培养学生运用数学知识解决物理问题的能力,特别注意函数关系,图像应用等等;
4、加强物理概念的教学,物理概念的引入要自然、直观,表述要准确,巩固要抓反复,反复抓。教会学生准确认识概念和规律,如速度的概念中,平均速度、平均速率、瞬时速度;
5、改变长期形成的“教师讲、学生听”的教学模式。改进课堂教学,每一节课都设法创造思维情境,组织学生的思维活动,培养学生的物理抽象能力、概括能力、判断能力的综合分析能力。在物理概念和规律教学中,按照物理学中概念和规律建立的思维过程,引导学生运用分析、比较、抽象、概括、类比、等效思维方法,对感性材料进行思维加工,抓住主要因素和本质联系,抽象概括出事物的物理本质属性和基本规律,建立科学的物理概念和规律,培养、提高学生抽象概括,实验归纳、理论分析等思维能力水平。
6、加强实验教学
物理学是一门实验为基础的科学,离开了实验,必将寸步难行。在教学中,教师应通过各种手段加强实验教学。特别是研究性实验的教学。增强学生的动手能力、观察能力、采集数据的能力、运用数学知识和分析处理数据的能力。
7、一定教会学生准确运用物理符号,规范使用数学符号等等。
8、强调阅读的重要性。培养学生自主阅读教材的习惯。指导学生怎样读?思考什么?通过要求学生自主阅读教材,培养他们爱读书的习惯。
9、注重研究学生的心理特点,多和学生进行情感方面的交流,不定期召开学生物理学习座谈会,了解学生物理学习中存在的问题,另外也应多关心学生的思想及生活状况。学生亲其师必信其道,极大调动学生学习的主动性。
第四篇:学avr单片机的建议
学avr单片机的建议
建议,(1)做工控首选PLC,实现简单安全可靠开发周期很短,不用很系统的学,买一本教材看看就行了,选型也别挑花眼,就选西门子,不用一下就想学会所有的功能,简单的起步,做项目的同时逐渐延伸。
(2)如果要学单片机,8位机就选avr,型号齐全,一个公司做的,资料统一,实现容易。编译器就用icc avr7.22(不用破解,没有bug),仿真软件就用avr studio4.17(免费下载,最新版式4.18,需要注册才能下载,我闲麻烦就用4.17),到的网站上免费下载。建议买两本书《avr单片机c语言开发入门指导》清华大学出版社的,还有就是《avr单片机嵌入式原理与应用实践》马潮、北航。两本书足以。第一本书主要介绍icc,其余的各种编译器也做了详细介绍,都是经典之作(他的icc版本很低,你用7.22的话有些程序定义部分需要改动,还好icc有自动生成代码框架的功能)。第二本书主要以cva编译器为背景,里面的编程思路是国产教材的经典(不用刻意学cva,主要看看编程思路)。-
到网上再下一个(10天学会avr单片机,叶大鹏老师讲的,以icc为背景),真的10天就可以学会.然后最重要的就是到淘宝上买一个avr单片机实验板100元左右的就不错。到此你的avr全套学习和实验系统就全了,很全别的东西都不需要了。
网络上有关于个各种编译器的好坏之争,我觉得icc就很好,所有编译器里最简单好用的。gcc avr也很好(winavr),到百度里搜winavr,到他的官网下个最新的。网络里有关于它的介绍总是很复杂(网络里的gcc avr学习的帖子过时了),其实科技进步了,他也进步了,你用一个winavr+avr studio,就可以构造一个正版的免费的有固定ide界面的(用的avr studio界面)编译系统和仿真系统.最新的gcc是20100110版的,他升级很快,每个版本编程时有地方会不同,你在老版本下通过,到新版本下不一定通过,所以需要固定一个版本使用,并且要认真看看gcc avr的帮助文件(都是英文的,建议打印出来仔细看,这很重要,关于教材上的定义中断的方式在2010下肯定不能用,所以需要看帮助里的中断定义方面的改动和其余的勘误说明)。我现在就用gcc做工程,暂时没有发现有问题。
avr的介绍就到这里,还有就是要仔细看看你所用avr芯片的手册,不管什么编译器,他的头文件里寄存器定义都和手册里的寄存器名相同的,这很重要,否则教材上介绍的mega16,当你换用mega128时就不会用了,达到触类旁通是我们的目标。到atmel网站里可以下载手册和相关的开发说明。编译器选择要么icc要么gcc,不要用iar和别的。以我的经验从零到做项目需要3个月时间。
单片机就是个控制器和工具,如果要做工程靠他还不够,你要经常看看电路系统构成和强电、弱电、测控、数据信号传输方面的综合知识,如果你要只停留在单片机方面就失败了。还要会画电路图(就用altium designer winter09).好了,祝你早日精通单片机。
哦,对了,科技进步今非昔比,如果要学一种芯片何不学一种再先进一点的呢,比如arm的。切记:选择一种芯片和编译器把它学会,不要为别人的说法所动摇。
第五篇:学习单片机步骤以及一些建议
学习单片机步骤
学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言(推荐先用C编程)中学会各种功能的初始化设置,以及实现各种功能的程序编制。推荐 郭天祥十天学会单片机视频和霖峰51单片机视频,郭天祥视频中有些模块并没有讲,可以针对性的去看霖峰51单片机视频。另外,学习单片机一定要有一本书,可以上网买,也可以去图书馆借。视频上只是告诉你如何去实现某个功能,并没有深入讲解原理。
第一步:数字I/O的使用
使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
第二步:定时器的使用
学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。
定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某 种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。
中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。
第四步:与PC机进行RS232通信
单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。
USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!
第五步:学会A/D转换
MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。
使用A/D转换功能的简单的例子是设计一个电压表。
第六步:学会PCI、I2C接口和液晶显示器接口
这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。
第七步:学会比较、捕捉、PWM功能
这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。
第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计
学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。
心得
1、万事开头难、要勇敢迈出第一步。
开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。
2、知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。
3、程序不要光看不写,一定要自己写一次。
最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。。当你自己能写出来的时候,说明你就真的懂了。。
4、必须学会掌握调试程序的方法。
不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
5、找到解决问题思路比找到代码更重要。
我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。
当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。举个例子:数码管动态扫描,没写过的初学者可能搞不清是怎么回事,其实,就是分时让每一时间段时只控制一只数码管显示数字,几只数码管轮流显示,由于速度很快,人眼的看起来是全部数码管都亮的。明白是这么一回事,剩下的事情,无非是你安排让一只只数码管轮流显示出相应的数值。显示数字,然后延时一下,再下一只显示数字,延时,知道是这样,我们实际程序上只要做到这样就可以:往段口送段码,然后打开位选显示一只,延时一下,再关闭位选,再送出段码,再打开另一只位选..仅此而已。有了解决问题的思路,我们就能问题拆分开来,然后逐一的解决,如果动态扫描的原理都没懂,不知道如何做,那么这个程序是怎么也写不出来的。
6、开动脑筋,运用多种方法,不断优化自己的程序。
想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
7、看别人的代码,学习人家的思路。
这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
8、尝试编写一下综合应用的程序。
从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有
按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
9、着重于培养解决问题的能力,而不是具体看自己编写了多少代码或者做过什么
“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机多年来感悟出来的。经常看到有人说“你会驱动XX芯片,真牛啊”“你搞过XX项目,真厉害”之类的话,其实这是非常片面的,搞过XX芯片,搞过XX项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。
10、如果有可能,多学习计算机专业的知识,比如数据结构等。
这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。
如前所说“会控制XX器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。
11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。
有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
12、多利用网络的搜索,学会提问题。
一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。