




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 40 单片机总结 单片机课程学习总结 单片机这门课程我已经学了一个学期了,在这一个学期的学习过程中,我一开始不怎么懂得编程,但慢慢的我现在已经不仅会读程序还会写程序了。真为自己一个学期来努力学到的单片机知识只是而感到高兴。 怎么学单片机?也常看到有人说学了好几个月可就是没有什么 进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。 我觉得学习单片机首先要懂得 C 语言,因为单片机大多说都是靠 程序来实现的,如果看不懂程序或则不懂的编程是很难学会单片机的。学习单片机首先要明白一个程序是怎么走的,要完全懂得程序每一个步骤的意思。其次要懂得每一条指令的2 / 40 意思,不能盲目地去靠背指令,这是记得不牢靠的,最主要的还是靠了解。学习单片机最主要的对 89C51芯片内部结构有全方面的,只要了解了 89C51才能知道单片机实现什么样的功能和作用,才能对单片机有更深一步的了解。 通过一个学期单片机这门课程的学习,我也从中有了不 少心 得和体会想和大家分享一下。 万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己 找借口,不要说单片机的程序全是英文,自己看不懂。遇到困难要一件件攻克,不懂指令 就要勤奋看书,不懂程序就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少。然后建个程序,加入项目中,再写代码、编译、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。 知识点用到才学,不用的暂时丢3 / 40 一边。厚厚的一 本书,看着人头 都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。 程序不要光看不写,一定要自己写一次。最开始的时候,什么都 不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果。看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。 必须学会掌握调试程 序的方法。不少人写程序,把代码写好了, 然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习4 / 40 调试程序的方法,比如 KEIL 里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步 ,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。 找到解决问题思路比找到代码更重要。我们用单片机来控制周边 器件,达到我们想到的目的,这是一个题目,而如 何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以。要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人。所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道 了。当你知道一个5 / 40 问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。 开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不 同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来 的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。 看别人的程序,学习人家的思路。这个在学习初期是很有用,通 过看别人的程序,特别是老师写出的具有一定水平的程序,可以使自己编程水平得到迅速的提高。同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的程序,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。 6 / 40 尝试编写一下综合应用的程序。从流水灯学起,到动态扫描,再 到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键、动态扫描、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序什么也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键 读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。 着重于培养解决问题的能力,而不是具体看自己编写了多少程序 或者做过什么。 “ 学单片机重点在于学 习解决问题的思路,而不是局限于具体的芯片类型和语言 ” 这一直是我的座右7 / 40 铭,是我学单片机学习单片机之后感悟出来的。真正的能力不是你曾经编写过多少个可以实现的程序,而应该是: “ 遇到没有解决过的问题,能利用自己已学的知识,迅速找到解决问题的方法。 ” 这个才是能力。 面对一个新程序时,多自己开动脑筋,不要急于找别人的程序。 有不少人面对一个新程序时,第一步想到的就是网上找别人写过的程序,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个程序时,应该先自己构思一下整个程序的架构,想想如何来完成。有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教老师或同学,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路。如果你一开始就看别人的程序,你的思维就 会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。 学会提问题。一般来说,学习过程中,你遇上的问题,多数8 / 40 人也 有遇上的,所以如果 有什么不懂,你可以去问老师。我觉得学习单片机最主要的要多提问,对于一个自己不是太懂的程序,自己一定要多提问几遍,这样不但有利于加深自己的印象还能从中学到不少别人的方法。 经过一个学期我对单片机这门课程的学习,不仅让我懂得了 很多程序的编写,还让我学到了很多对自己有用的学习方法。总 结这个学期来的我自己的学习情况,我觉得自己对编程进步了不少,懂得运用正确的学习方法学习单片机程序,不再去死记硬背指令了。所以我觉得学习要不断总结学习方法,才能让自己学习不断进步。 交通信号灯设计报告 实验目的: P1口的使用方法,延时程序的编写 实验要求:在一个十字路口分为东西南北走向,信号等按以下的状态顺序工作: 9 / 40 初始状态 0,东西、南北红灯全亮。延时一定时间; 状态 1,南北绿灯亮通车,东西红灯,延时一定时间; 状态 2,南北绿灯闪烁几次转黄灯,东西仍然红灯,延时一定 时间; 状态 3,南北红灯,东西绿灯通车,延时一定时 间; 状态 4,南北仍然红灯,东西绿灯闪烁几次转黄灯,延时一定 时间; 循环至状态 1,继续 实验电路和流程框架图: 硬件电路 10 / 40 交通灯实训设备用最小系统板和信号灯组合而成。 2、软件编程 若各路口灯亮灭的时间间隔为 2s钟,灯光闪烁时间间隔为。用软件延时的方法,晶振频率 12MHz时,一个机器周期为 1us。 编写交通信号灯程序: 编写主程序,由 R7做主程序的计数器,确定调用延 时时间为,从而获得交通灯的亮灭时间。程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP INTRU0 11 / 40 ORG 0030H MAIN: SETB EA SETB ET0 CLR IT0 单片机学习心得 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机课程也结束,但通过这次单片机的学习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 当今社会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这12 / 40 门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。 刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。由中央处理器 CPU、随机存储器 RAM、只读存储器 ROM、 I/O 接口、定时器 /计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。它的应用范围很广,在工业 自动化中应用有数据采集、测控技术。在智能仪器仪表中应用有数字示波器、数字信号源、自动取款机等。在消费类电子产品中应用有空调机、电视机、微波炉、手机、 IC 卡、汽车电子设备等。在通讯方面应用有手机、小灵通等。在武器装备方面应用有飞机、坦克、导弹、航天飞机、智能武器等。刚开始学习时只能抄写别人做成功的程序,一遍一遍的写,从简单的入手,逐步的积累,一步步的能够将小的程序结合到一起,拼接成较为复杂一些的程序。但是程序不要只是看别人得,一定要自己写过才是自己的。只有当你自己能写出来的时候说明你真懂了。刚接触 KEIL 时确 实很让人头疼,13 / 40 使用 KEIL 不会建项目、不会使用实验板。然后可以参考已经成功的程序,抄过来,写一个最简单的,让它运行起来,先培养一下自己的感 觉,先建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成 HEX,刷进单片机中、运行。其实当遇到问题一定要自己尝试着解决,不能遇 到问题就去问别人,自己一定要掌握解决问的方法和思路。对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。应该先想一下程序的构架,想想如何来完成。然后自己动手去写,理清自己的思路这样更容易提高自己。 熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介 绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,虽然单片机的课程只上了几节就去上班了,但在学习的过程中有了一定的了解。下面就本人学习单片机的过程和经验做简要介绍。 14 / 40 首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础, 特别是数字电路;编程语言要求汇编语言或 C语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入 C 语言学习。尽管汇编语言属于低级语言,编程效率低,但是较 C 语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。 C语言是一门学问 ,有很多专业书籍来讲解 ,并且对我们今后的编程生涯有绝对的好处 ,因此要深入学习 ,千万不要自以为看了某某的视频教程就以为掌握了 C语言,那只是 C语 言的一部分。在这里给大家推荐一本单片机 C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的单片机的 C 语言应用程序设计,要求 C 语言基础。如果没学过 C语言,建议学习清华大学谭浩强编写的 C语言程序设计,这本书写的不错,通俗易懂。 其次,是单片机教材选择。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎 样工作的,能干些什么?刚开始时,也许你看不明白, 15 / 40 但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛 ,因此各个厂家分别推出了自己的单片机,我们没必要每样都学 !因为他们的编程方法和调试过程以及内部指令结构有一定的相似 ,只要学精通一款就 OK 了 !尤其是用 C 语言编程 ,就几乎不用分什么派系 ,但是 我们要选择一款有代表性的知识范围广 ,并且入门容易 ,书籍多。一般来说, MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:新编 MCS-51 单片机应用设计,哈尔滨工业大学出版,作者:张毅刚;书名:单片机原理及应用,高等教育出版社,作者:张毅刚等;书名:单片机高级教程 :应用与设计,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。 然后,是开发工具和开发环境的选择。选择一块合适的学习板,对于初学者来说一般无力接受,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、 AD 或 DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因16 / 40 为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来 提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。随便推荐一下,学林电子的 51tracer 仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得非常兴奋, 比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞定某个实验,就恭维的告诉你一声 ” 恭喜你 ,学会了 ” 自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了一定了解和会使用它了。但是单片机能完成的功能太多了 ,尤其是对外围器件的控制 ,综合起来能设计出许多意想不到的产品 .因此除了入门外 ,精通可千万别轻易说出口。 最后,在熟练掌握和应用后,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计开发各种课题,不断的积累经验。最终,自己完全设计具有个人风格的课题,17 / 40 产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,这大家可能都听过。 有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程 序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远! 单片机学习总结 单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在单片机里面的应用很多。由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没有什么捷径可循。 在大二的时候,我就听学长介绍过单片机,当时感觉很神奇,从此就对单片机特别感兴趣,也感觉它特别有用。于是经学长推荐,在大二上学期我利用学习之余 在图书馆借书,学习了 KILE 和 Proteus 软件,刚开始学习的时候,对单片机没18 / 40 有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。由中央处理器CPU、随机存储器 RAM、只读存储器 ROM、 I/O接口、定时器 /计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。也算给我正式学习单片机打下一个基础。 在大二下学期,我购买了一套单片机 学习开发板和郭天祥主编的新概念 51单片机 C 语言教程,从此正式开启我的单片机学习之路。在刚开始学时,就完全模仿郭天祥主编的这本书再结合开发板一步一步的学,从点亮一个发光二级管,流水灯,数码管,定时器,中断,矩阵键盘, AD、 DA,串口通行, I2C 总线等一步一步的深入学习。此时,我虽然能看懂程序,一些简单的程序可以自己编写,但一些比较复杂的自己编不出来。在大二暑假,我发现了郭天祥主讲的十天学 会单片机视屏,于是我坚持天天看视屏,然后在自己根据视屏内容结合开发板写程序,调程序,就这样学了一个暑假。通过这个视屏,我初步了解了单片机的硬件结构,编程方法及调试方法,寄存器的使用,学会了如何看芯片资料,初步开始利用芯片时序图来编程。可以说这个视屏对我学习单片19 / 40 机有巨大的帮助,更夸张的说是这个视屏将我带进了单片机的世界,让我尽情的体验单片机带给我的快乐! 在大三上学期,我有幸参加了教改班的单片机课程学习。我觉得邓老师的教学很有特点,让我们自己一个模块、一个模块的焊电路板,写程序,调试,然后上讲台讲。这样不仅提高了我对单片机的进一步学习,更锻炼了我在公众面前的表达能力。我觉得大学的教育就应当如此,应该多注重学生的实际动手操作能力,只有自己亲自动手做了,才能体会到其中的艰辛,当然还伴随着众多的乐趣。在经过大三一学期的学习,我的单片机水平有了质的飞跃。首先焊电路板,从单片机最小系统、电源、流水灯开始 ,第一次自己通过模电上学的一个电源的构成知识做了一个电源,知道了用 HC573 锁存器对流水灯的作用以及上拉电阻的用法。其次焊数码管,数码管有共阴共阳之分,焊电路板以及写程序都有区别。接着焊了键盘、串口通信、液晶、 AD、 DA、 I2C 总线 24C02 芯片、时钟芯片 DS1302、 DS12C887、温度传感芯片 18B20 以及其他模块。通过焊电路,现在对单片机各个模块的硬件设计了如指掌,通过软件调试,我已经基本掌握用芯片资料时序图和寄存器编程。最后阶段我用了一个多月的时间做了三个时钟,下面以我 20 / 40 做的三个时钟为例讲一下感受: 1:用定时器中断、 24C02 芯片、按键和 1602 液晶做了一个年、月、日、星期、时、份、秒都可调的时钟,充分利用 24C02掉电保护的特点,当关闭电源后再次打开,时钟会从上次停止的时间继续走。在做这个时钟时,要注意 24C02 的时序图以及寄存器的初始化。并且要注意写完时钟后,首次使用24C02,时钟可能是乱码,只需要用按键的加减键将其调为可读的时钟后,以后上电数据就可以正常走。 2:用 DS1302、 18B20 和液晶做了一个不可调节的时钟。设计这个芯片的初衷是学习 DS1302 和 18B20 这两个芯片,于是我写程序实现了一个时钟从设定的初值时间开始走,并且显示温度。在设计中, 一定要对 DS1302 寄存器初始化后他才能正常工作,在对照 18B20芯片手册写程序时,我充分体验到了邓老师说的一句话 “ 硬件设计简单,软件必然是复杂的 ” 。在对 18B20 写程序时,遇到了很多麻烦,都是时序的问题。 3:用 DS12C887、按键和液晶做了一个年、月、日、星期、时、份、秒可调节的时钟。由于 DS12C887 内部自带晶振和可充电锂电池,上电后自动充电,所以这个时钟掉电后内部21 / 40 时钟继续走,。在写这 个时钟时, DS12C887 一直用不起来,开始是由于时序不对,后来表不走,最后发现内部晶振没起振,是因为对其内部寄存器的初始化不对。总之在遇到各种奇怪的现象后不断调试,最终将三个时钟调出来了。 写完这三个时钟,我收获挺大的,现在可以比较熟练地利用时序图写程序,也对单片机的定时、中断有了进一步的了解,可以说这是 我单片机学习的又一大提高。 有时候单片机的学习很单调,比如检查电路,程序怎么也写不对,这些问题检查好多遍也没解决,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行耐心的调试,通过这种方式才能更快速的学习单片机。同 时也会从学习中体会成功的喜悦。 总之,在一学期的学习中,从硬件,软件,调试,演讲等各个方面都有了很大的收获。 注:以下是我焊的电路板照片,其电路原理图详见 PPT 22 / 40 主板 下载部分 流水灯和蜂鸣器 键盘 24C02、 DS1302、 DS12C887 数码管 锁存器 74HC573 稳压电源 MCS-51单片机课程总结 ? 1 概述 微型计算机系统包括、两大部分。 23 / 40 运算器 微处理器 控制器 存储器: ROM、 RAM 微型计算机 I/O 接口:并行接口、串行接口 总线: DB、 AB、 CB 硬件 外设:键盘、显示器、打印机等 微型计算机系统电源 系统软件:操作系统、汇编、编译等 软件应用软件 ? 1 概述 ? 计算机的硬件:由运算器、控制器、存储器、输24 / 40 入设备和输出设备五大部分组成。 ? 运算器、控制器、存储器三部分称为计算机主机,而输入设备和输出设备则称为计算机外设。 ? 运算器、控制器是计算机进行信息处理的关键部件,合称为中央处理器 CPU(Central Process Unit)。 ? 通常的微机采用三总线结构 地址总线 AB、数据总线 DB、控制总线 CB ? 1 概述 ? 单片 机的组成 CPU、存储器、 I/O接口 ? 编程语言 计算机中只能存放和处理二进制数据。无论是汇编语言程序还是高级语言程序,都必须转换成二进制代码后才能送入计算机。这种二进制代码形式的程序就是机器语言程序。 采用汇编语言或高级语言编写的程序又称为源程序,而机器语言程序则称为 目标程序。 ? 数25 / 40 制及数制转换 十进制、二进制、十六进制 计算机中带符号数的表示法 原码、反码、补码 计算机中的编码 BCD 码、 ASCII 码 ? 2 MCS-51单片机的结构和原理 ? 8051单片机的组成 8051CPU、 4KB 程序存储器、 128B 数据存储器、 4 个并行接口、 1个串行接口、 2个外部中断、 2个定时器 /计数器 MCS-5l的存储器组织 26 / 40 片内片外统一编址的程序存储器: 64KB 片内数据存储器: 128B、 256B 片外数据存储器: 0 64KB ? ? 2 MCS-51单片机的结构和原理 ? ? 2 MCS-51单片机的结构和原理 ? 程序存储器的选择和地址范围 取决于引脚 /EA 的接法 /EA 1: CPU访问内部 ROM ,地址范围 0000H0FFFH 27 / 40 /EA 0:内部 ROM 被忽略,外部 ROM 空间可达 64KB,地址范围 0000HFFFFH ? 内部数据存储器的分配 00H1FH 4 组工作寄存器 20H2FH 128 位位寻址区 30H7FH 用户 RAM 区 ? ? 2 MCS-51单片机的结构和原理 ? 特殊功能寄存器 累加器 A、 B寄存器、程序状态字 PSW、堆栈指针 SP、数据指针 DPTR、程序计数器 PC 28 / 40 并行输入 /输出端口 P0 并行口或地址总线低 8位 /数据总线 P1 并行口 P2 并行口或地址总线高 8 位 P3 并行口或控制总线 ? ? 2 MCS-51单片机的结构和原理 ? CPU 时序 振荡周期 /时钟周期、状态、机器周期、指令周期 ? 复位操作 (PC)=0000H (PSW)=00H, 当前工作寄存器区为第 0 区 29 / 40 (SP)=07H,堆栈从内部 RAM的 08H单元开始 P0P3口的内容均为 FFH 其他特殊功能寄存器都复位为 0 不影响片内 RAM 的内容。 ? 3 MCS-51单片机指令系统和汇编程序设计 ? 寻址方式 立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、基址变址寻址、相 对寻址、位寻址 指令系统 数据传送类指令 MOV 、 MOVX 、 MOVC 30 / 40 数据交换指令 SWAP 堆栈操作指令 PUSH 、 POP 算术运算类指令 ADD 、 ADDC 、 SUBB 、 INC 、 DEC 、 MUL 、 DIV ? ? 3 MCS-51单片机指令系统和汇编程序设计 ? 指令系统 逻辑运算类指令 ANL 、 ORL 对 A的逻辑运算 CLR 、 CPL 、 RL 、 RR 、 RLC 、RRC 无条件转移指令 LJMP、 SJMP 条件转移指令 JZ 、 JNZ 、 CJNE 、 DJNZ 子程序调用和返回指令 LCALL 、 RET、 RETI 31 / 40 空操作指令: NOP ? ? 3 MCS-51单片机指令系统和汇编程序设计 ? 指令系统 位操作类指令 MOV 、 CLR、 SETB、 ANL 、 ORL 、CPL 、 JC 、 JNC 、 JB 、 JNB 、 JBC ? ? ? 伪指令 32 / 40 ORG、 END DB、 DW EQU、 DATA、 BIT ? ? 3 MCS-51单片机指令系统和汇编程序设计 ? 常见程序结构或功能 顺序程序 分支程序 循环程序 查表程序 代码转换程序 33 / 40 子程序设计 掌握第三章 (含 PPT)例题 (以及作业和实验 )中出现过的指令 ? ? 4 单片机 C 语言程序设计 C51的数据类型 4 单片机 C语言程序设计 C51存储类型与 MCS-51存储空间的对应关系 ? ? 4 单片机 C 语言程序设计 34 / 40 ? 特殊功能寄存器的 C51定义 sfr P0=0x80; /* P0 口寄存器地址 80H */ sfr SCON=0x98; /* 串口控制寄存器地址 98H */ sfr TMOD=0x89; /* 定时器 /计数器方式控制寄存器地址 89H */ ? 特殊位的 C51定义 sbit OV=PSW ; /* 定义 OV位为,地址为 D2H */ sbit CY=PSW ; /* 定义 CY 位为,地址为 D7H */ sbit OV=0XD2; /* 定义 OV位地址为 D2H */ sbit CY=0XD7 ; /* 定义 CY位地址为 D7H */ ? ? 4 单片机 C 语言程序设计 ? 运算符 35 / 40 赋值运算符 = 复合赋值运算符 等 ? ? 4 单片机 C 语言程序设计 ? 程序语句 条件分支语句 if switch case 循环语句 while do.while for 转移语句 break continue 要求理解掌握第四章书中例题和 PPT第 90-107 页的程序 ? ? 36 / 40 单片机考点总结 1. 单片机由 CPU、存储器及各种 I/O接口三部分组成。 2. 单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。 3. MCS-51系列单片机为 8 位单片机,共 40个引脚, MCS-51基本类型有 8031、 8051 和 8751. I/O 引脚 8031、 8051 和 8751 的区别 : 8031片内无程序存储器 、 8051片内有 4KB程序存 储器 ROM、 8751片内有 4KB程序存储器 EPROM。 4. MCS-51 单片机共有 16 位地址总线, P2 口作为高 8 位地址输出口, P0口可分时复用 37 / 40 为低 8位地址输出口和数据口。 MCS-51单片机片外可扩展存储最大容量为 216=64KB,地址范围为 0000H FFFFH。 5. MCS-51片内有 128字节数据存储器 , 21个特殊功能寄存器。 MCS-51 片内有 128 字节数据存储器,字节地址为00H 7FH; 00H 1FH: 工作寄存器区; 00H 1FH: 可位寻址区; 00H 1FH: 用户 RAM区。 21个特殊功能寄存器 ; 当 M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025污水操作考试题库及答案
- 《大雁归来》教案 部编版语文七年级上册
- (一模)湘潭市2026届高三第一次模拟考试政治试卷(含答案解析)
- 车间作业安全知识培训课件
- 车门安全知识培训课件
- 特种车辆真神气课件
- 稻谷机械脱粒工艺考核试卷及答案
- 磷肥造粒工艺考核试卷及答案
- 平板玻璃电弧微切割自动化考核试卷及答案
- 大班上课教学课件
- 2025浙江温州永嘉县国有企业面向社会招聘25人考试参考题库附答案解析
- 烧结基础理论课件
- 《家庭教育学》全套教学课件
- 法律知识培训课件
- 2024年安康社区工作者考试真题及答案
- 业财融合与价值创造课件
- 长沙市名校小升初分班考试数学试卷(含答案)
- 肺动脉栓塞护理查房
- 农村房地产转让合同协议
- 拉链专业工艺讲解
- 2025版抵押贷款抵押物抵押权登记及变更手续协议模板
评论
0/150
提交评论