资 源 简 介
关于单片机开发方面的教程。大家如有需要的可以搜集下。内容简介本书以89S51系列单片机为载体,结合作者多年教学与指导大学生电子设计竞赛的经验编写而成。全书分三部分:汇编语言程序设计、C语言程序设计和RTX51实时多任务操作系统。内容编排符合初学者先了解单片机底层的工作原理,再掌握高效编程语言的使用方法,最后达到熟练应用RTX51实时多任务操作系统这一高级阶段的学习过程。这三部分内容中许多例程所完成的任务是相同的,便于读者比较对照从而加深理解。书中的全部内容均是作者亲自实践调试通过的,其中大部分内容采用倒叙的写作手法,即先给出设计内容的全貌,然后结合作者调试时遇到的问题和学生经常问的问题,以对话的形式对设计内容进行分析讲解书中大胆采用了许多来源于生活的卡通图片和生活用语,力争生动形象地讲述单片机技术。本书既可以作为单片机爱好者的自学用书,也可以作为大中专院校自动化、电子和计算机等相关专业的教学参考书。图书在版编目(CIP)数据51单片机自学笔记/范红刚,魏学海,任思璟编著.北京:北京航空航天大学出版社,2010.1ISBN978-7-81124-935-4L.①5…Ⅱ.①范…②魏…③任…Ⅲ.①单片微型计算机Ⅳ.①TP368.1中国版本图书馆CIP数据核字(2009)第231676号◎2010,北京航空航天大学出版社,版权所有。未经本书出版者书面许可,任何单位和个人不得以任何形式或手段复制或传播本书及其所附光盘内容。侵权必究。51单片机自学笔记范红刚魏学海任思璟编著责任编辑冯颖北京航空航天大学出版社出版发行北京市海淀区学院路37号(100191)发行部电话:010-82317024传真:010-82328026http://www.buaapress.com.cne-Mail:emsbook@gmail.com印刷有限公司印装各地书店经销开本:787×9601/16印张:27.25字数:610千字2010年1月第1版2010年1月第1次印刷印数:4000册ISBN978-7-81124-935-4定价:47.00元(含光盘1张)前言我为什么写本书我在单片机的学习方面走了许多弯路,一路跌跌撞撞地走过来。幸运的是,在我学习的过程中总有贵人相助。但是,并非所有人都能像我这么幸运,所以我想把自己的学习经验和对单片机的理解写出来,能够让更多的人尽快从门外的徘徊中走进来,去感受和体会在单片机学习中自由翱翔的乐趣。本书特点记得在我刚开始学习单片机时,内心特别渴望能够拥有一本适合初学者的书,这本书用通俗的生活语言来描述单片机。如果能在书中借鉴一些经典影片或小品中的语言,再配上一些卡通图片和励志短文,那可真是太棒了。还有一点,最好能够让人看到书就如同有一个老师在身边现场指导一样,而不是一个人苦苦地在黑暗中摸索前行。能够让初学者在遇到困难时懂得借鉴他人当年的经验,并且真正明白一个道理:成功往往会用千万次的失败作为挡箭牌,最后才会现身。我就是循着这样的想法来完成这本书的。总结本书的特点大致如下(1)彻底打破传统教材中内容的安排顺序,将枯燥的单片机原理和部分指令融入到每个任务实例中,让初学者在应用的过程中学习、理解并最终掌握知识(2)语言通俗形象。如果说赵本山老师的二人转是“大俗”文化,那么我的这本单片机书也具有类似的韵味。我认为书的作用是为了让读者看懂,而绝非用来显示作者有多高的水平。所以,我坚持了本书的写作风格3)书中插入部分卡通图片,目的是让读者能够在轻松的环境下学习单片机,并且有助于读者快速理解那些用专业术语表达的内容(4)内容体系完整。很少有人学完51单片机就不想在这个领域继续学习发展了,绝大多数人还想学其它单片机、学ARM、学操作系统等,都想成为这个领域的高手。但是,学习总要有个过程。所以我精心安排了本书的内容,前9章用汇编语言编程;第10~14章用C语言编程,并且部分例程与前9章相同,便于读者对照学习;第15章为操作系统的相关知识。通过这样的安排,既可以使初学者了解硬件底层的工作原理,也可以快速上手用C语言编写程序,到了这一步就可以在网上找资料自学了,最后再用简单易懂的语言把操作系统的相关知识及应用实例展现给初学者,为初学者将来学习ARM打下良好的基础。(5)每个例程都是完整的。许多学生曾给我反馈过这样的信息:他们发现许多资料上面都是讲原理,紧接着给出一段程序,虽然这段程序是对的,但是并不完整,这样就会给零基础的初学者带来很多麻烦。所以本书尽量做到每个程序,无论长短,都能实现一个完整任务。(6)书中多数实例的分析讲解采用倒叙法。很多实例都是简单作了需求分析,给出电路图和程序清单,然后结合我个人调试程序时遇到的问题和学生常提出的问题,以对话的形式对设计内容进行分析讲解如何使用本书如果您是一个地地道道的零基础初学者,就需要从第1章开始看。如果您的电子技术的基础知识掌握得一般的话,就要结合附录D、E来学习如果您有一定的基础,自己曾经用汇编语言编写过部分程序,那么建议您前两章快速浏览或略过,直接从第3章开始看。如果您已经比较熟练地掌握了汇编语言的程序设计方法,那么建议您从第章开始看。无论您的基础如何,都要“不管三七二十一”先把程序在编程软件中调试并下载到单片机中看看实验现象,然后再结合附录中的指令表、特殊功能寄存器的介绍等进行分析。相信您定会从本书中找到您想要的东西。我最想让您从本书中得到什么大家都看过古装武打片儿吧?有一种说法是,武术的最高境界就是无招胜有招。我期望您拿到这本书后,通过自己的努力,可以掌握单片机技术的精髓即编程思想,而不是简单地记住了多少指令或熟练敲出多少代码。指令是可以在指令表中查到的,各个特殊功能寄存器的设置也是可以在书中查到的,甚至是部分器件的使用方法和应用程序代码都可以在网上查到但是,唯独编程思想是需要放在自己心中的。在以后的学习和工作中,无论您遇到什么样的设计题目,都可以应用这种编程思想创造性地给出设计方案,从而达到无招胜有招的境界。给您的建议通过自身的学习成长,我有一些经验性的建议愿与您分享,希望能够给您一些帮助:(1)多找几本参考书,从中选择适合自己的;不要一本书看几天感觉很难,就放弃了(2)一定要有电脑和实验板,无论多好的书,如果不亲自调试程序,不用实验板做实验的话,就不会对所学的内容有太深的理解。(3)结合具体的设计实例学习,不要单纯为了练习指令或语句而学习。如自己动手制作一个数字电子钟、智能孵化器、循迹小车等,在制作的过程中学得最扎实(4)条件允许的话,可以参加培训班或购买现成的实验板。这样可以加速学习的进程,可以快速掌握别人的经验。因为在这个信息爆炸的社会,寻找正确的知识并非难事,但是获得宝贵的经验绝非易事。您的每一份用心投入都会在将来得到成倍的回报。(5)没有完美的个人,只有完美的组合。参加学习小组,或利用网络平台获得帮助,这样也会加速您的学习进程。致谢我一直认为自己是个命好的人,在我成长的每个阶段都会有贵人相助。今天能够完成这本书和许多曾经帮助过我的人是分不开的。特在此表示感谢感谢大学时的单片机老师杨庆江先生,他让我有一个很深厚的专业知识功底。感谢我的师傅王振龙先生,他让我第一次看到怎么把程序下载到单片机中,并且亲自陪同我完成了多个实验(那个时候我个人没有电脑、实验板)感谢卢文生老师,他与我一同合作多次指导学生实践活动,使我从中受到很多锻炼和启发,也积累了很多宝贵经验感谢我的合作者、同事、朋友、战友魏学海和任思璟的辛勤工作及他们家人的支持。感谢艾延宝老师,他为本书编写了附录D、E,贡献了他的幽默才华和电子技术知识,为本书增添了色彩。感谢全吉男和韩春燕这些年一直对我的帮助,是他们的帮助启发了我这本书的写作风格感谢宋婀娜老师,在我刚毕业给宋老师做助教时从她那儿学到了许多电子知识,这对我后来学习单片机应用技术很有帮助感谢和我一起打球锻炼的兄弟们,他们让我体会了协作的力量,为编写RTX51实时操作系统部分提供了思路。感谢多年来我曾经指导参加电子竞赛的学生,也是我的好朋友宋延佑、秦林柱、曲畅、李雍、张洋等,他们帮助我完成了大量的实验工作。特别是李雍还为本书编写了一个51单片机程序生成器软件,并做了大量的资料整理工作。感谢我的表弟房海华、周大原和吕建三位同学,感谢他们当年对我们培训班的支持(第批学员就这三个人),给我们信心,也是他们让我们萌生了写作本书的想法。感谢我的学生和朋友朱亮,他为本书录制了实验现象,并整理成为本书所附光盘。感谢大庆师范学院艺术学院2006级美术二班的杨晓峰同学,他为本书画了大量的卡通插图,使本书显得与众不同。感谢东北师范大学历史系博士顾丽华,她不但学识渊博,还多才多艺,她也为本书画了多幅卡通插图。感谢刘峰巍、张大维、赵家国等多名学生,他们帮助完成了部分实验和材料的整理工作。感谢哈尔滨工业大学华德应用技术学院的张昌玉老师为本书做了大量的资料整理工作感谢黑龙江科技学院的杜林娟、刘晓红、汝洪芳、于雁男、赵晓彦、穆秀春、訾鸿、张桂凤、王国新、王安华老师对本书做了大量的资料整理和排版工作。最后要感谢我的妻子和我们的父母,他们是我不断奋斗的动力源泉由于作者的水平有限、时间也有限,书中难免会出现一些错误。衷心地期待您的宝贵意见和建议。有兴趣的读者,可以发送邮件到fhg2002@126.com,与作者进一步交流;也可以发送电子邮件到buaafy@sina.com,与本书策划编辑进行交流。范红冈2009年10月25日目录第1天从哪儿开始你的单片机学习21.1神秘武器的得来…121.2单片机的身世1.3单片机都能千什么··14神秘老人的法宝…1.4.1实验开发板142下载线…143电源…16144编程软件…14.5下载软件181.5一个古老的神灯16互动环节22第2天认识一下著名的单片机先生21单片机的外在形象2.1.1要工作就得吃饭2421.2庞大的组织要有个总指挥2421.3控制信号引脚.…2.1.4输入输出引脚P0、P1、P2、P322单片机丰富的内芯世界262.2.1好东西都放在哪了?262.2.2芯里还有别人吗?23互动环节….着………130第3天用语言尝试着与单片机交流…3.1一个LED灯闪烁…32跑马灯3.3LED万能闪烁程序第4天LED数码管的应用……4741LED数码管显示原理及显示方式4742LED数码管分类及驱动474.3点亮一个LED数码管4.4LED数码管显示段码……中“494.5静态显示…4.6动态显示生日4.70-99循环自加计数器4.8其它数码管驱动电路面Bt日“自自t日“面t“面第5天引发事端的按键….625.1按键控制LED小灯怎么失灵了?511硬件电路设计及原理分析.512软件设计思想及代码分析.5.13究竟错在哪里?.655.2对付按键抖动52.1公园的一个入口CAL与多个出口RET68522RET与SMP真的都能找回家吗?5.2.3CAL与RET是天生的一对儿5.3按键与数码管共舞………5.3.1两个按键控制数码管显示两个数字.5.3.2按键控制数码管数据加减5.3.3数码管熄灭—按键在捣鬼….5.3.4按键与数码管和睦相处…7535数码管怎么又不听按键的了……54按键进阶….80第6天定时器/计数器的应用8261定时器/计数器工作原理6.1.1定时器/计数器在生活中的原型826.1.2定时器/计数器的定时和计数是怎么实现的613例说定时器/计数器能干什么836.2控制定时器/计数器工作的四大金刚6.21计数容器THO、TL0及TH1、TL1846.2.2设置定时器/计数器工作方式寄存器TMOD6.2.3控制定时器/数器工作寄存器TCON6.24中断允许寄存器IE8663在此我该说点儿什么8864定时器用于定时64.1查询法定时50ms实现一个LED小灯闪烁88642中断法定时50ms实现一个LED小灯闪烁643中断PK查询