51单片机重点总结_第1页
51单片机重点总结_第2页
51单片机重点总结_第3页
51单片机重点总结_第4页
51单片机重点总结_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 66 51单片机重点总结 51单片机知识点总结 第二章: 存储器空间组成,各区间特点及访问方式,工作寄存器区的设定,程序状态字的位结构及其功能,堆栈的操作, P0-P3各端口的功能,特点,使用方法,单片机复位信号的产生及复位之后的状态,振荡周期、状态周期、机器周期及指令周期的关系及计算方法。 第三章: 寻址方式,各类指令,简单程序的编写与 识读,包括简单 C语言程序的识读。 第四章: 中断系统:包括中断源有哪些,如何进行中断允许控制,中断优先级控制,各自的中断入口地址是多少,中断得到 CPU2 / 66 服务的基本条件,中断响应延迟的原因。 定时器:定时器的各种工作方式及其使用方法,定时器的初始化,如何使用定时器实现周期信号的输出。以及相应的简单编程。 串行口:串行口的各工作方式及其使用,接收如何使能,多机通信 第五章: 三总线结构及其实现,片外扩展芯片的编址方式及其特点,片外程序及数据存储器的扩展实现并分析其地址区间,片外IO扩展的实现及其器件编址,简单编程。 第六章: 键盘,主要是行列式编码键盘的实现方法,识别方法,扫描法的工作原理,按键去抖动。 LED 段码实现方法, 动态 LED显示与静态 LED显示的比较。 51单片机初学知识点总结 3 / 66 经过这半个月的学习,我对于单片机的定时器、对 I/O口的随意操作、输入检测、中断、串口通信等几大学习 模块有了一定了解和掌握。 1. 软件。我主要是在 keil uvision3 实现用 C 语言进行编程和调试。使用 keil 时,新建或者打开已有文件,按步骤一步步来,漏掉哪一步都会影响最后程序是否能顺利写入单片机中。其中应注意保存 C文档、添加文件到工程中和建立hex文档这几个关键步骤。 2. 发光二极管和数码管的显示。发光二极管的静态显示是学习单片机的入门路标。分析相关模块的电路图,弄清楚引脚连接情况,根据电路图直接控制 LED引脚电位的高低就能实现对相应 LED亮灭的控制。了解后完成走马灯或更多其他规则的 LED显示。数码管的显示较 LED稍微复杂一点点,它分位选和段选,位选控制整个数码管的亮灭,段选控制各数码管以何种形式亮或灭。数码管的显示分三步: .全部数码管显示一样的字符; .选定的数码管以规定的形式亮; .数码管的动态显示。其中利用定时器或者延时程序控制数码管动态显示的频率,以调节其显示亮度和视觉稳 定度。 4 / 66 用延时函数完成动态扫描: while(1) D1=nn/100; D2=nn%100/10; D3=nn%10; P1=0x01; P0=tabD1; delay(10); P1=0x02; P0=tabD2; delay(10); P1=0x04; P0=tabD3; delay(10); 延时子程序: void delay(x) / 延时 1ms子程序 unsigned char y; while(x-) for(y=110;y0;y-); 3. ? ? 5 / 66 GATEGATE=1,用软件使 TR0 或 TR1 为 1,同事外部中断引脚也为高,启动。我们一般置 GATE=0。 C/T=0,位定时器; C/T=1,位计数器。 ? 对于定时时间的计算: t?计数值 N?机器周期T?N?12? 1 focs 或:要定时时间 t=*(12/晶振频率 ) ? 定时 /计数器初始化步骤: 根据上面的信息,对 TMOD赋初值,确定 T0、 T1的工作方式。 计算初值,将其写入 TH0、 TL0 或 TH1、 TL1。 为中断方式时,对 IE 赋值,开放中断。 使 TR0 或 TR1 置高,启动定时 /计数器。 例 : TMOD=0x01;/T0 处于工作方式 1,为十六位定时 /计数器 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1; 6 / 66 TR0=1; /T0 初始化完毕 定时子程序: void timer0() interrupt 1 / 定 时 子 程 序 TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa+; if(aa=10) aa=0; ? 4. 键盘。单片机键盘分独立键盘和矩阵 键盘两类,矩阵键盘涉及键盘扫描程序。而与键盘按下有关的程序就要注意到消除抖动和松手检测两个重要的细节。松手检测原理是,当键按下时, key2 为低,! key2=1,此时程序一直在 while 语句里面循环,无法跳出来,一旦松手, key2 为高,程序即可跳出 while循环,执行下面接下来的语句。 7 / 66 if(key2=0) delay(5);/延时 5ms if(key2=0) /确定 key2键的确按下,消抖 while(!key2);/松手检测 ? 5. 串口通信。串行通信的传输速率用波特率表示。波特率定义为:每秒发送二进制数码的位数,单位为 “bps” 。波特率的计算公式: 方式 0的波特率 = SMOD 方式 1的波特率 = ) ?fosc ) SMOD2方式 3的波特率 =51 单片机串行口工 作方式0 实质是并行的工作方式,为同步的移位输出和输入,但要实现工作方式 0必须要借助外接移位寄存芯片,实际应用中常用作并行 I/O口得扩展。 8 / 66 它的波特率固定,且数据传送是以 8 位数为一帧,没有起始和停止位。 我主要研究学习了串行口工作方式 1,它的数据格式是:一个起始位, 8 个数据位和一个停止位。设 fosc=,波特率为9600,则根据上面的公式, SMOD=0 时, TH1=TL1=0xfd; SMOD=1时, TH1=TL1=0xfa。 工作方式 2和 3的帧格式一样,与工作方式 1的类似,只是在原基础上多加了一位内容由用户决定的数据位。工作方式2 的波特率与 PCON 个 SMOD位有关。 SMOD=1时,波特率为 fosc , SMOD=0 时,波特率为 fosc 。 ? 9 / 66 SMOD 为波特率倍增位。 SMOD=1 时,波特率增加一倍;复位时, SMOD=0。 ? REN 是允许接收控制位: REN=1时允许接收数据;REN=0时禁止接收数据。 TI是发送中断标志位:当发送完一帧数据后,该位由单片机自动置 1,向 CPU 发送中断请求信号。在中断服务程序中,必须用软件将其清 0. RI 是接收中断标志位:与 TI 类似,接收完一帧后自动被置1,需由软件置 0. 6. 液晶显示。常见的单片液晶显示屏分16引脚和 20引脚两种,我使用的是 16引脚的 YJD1602A-2。安装 LCD 时按如下三步走:关闭开发板电源。下载一个关闭数码管个流水灯的程序进单片机。顺时针旋转相应电位器以调节 LCD 的对比度,知道看到 5*7 这四种功能里面,读状态与读数据实用性不大,我们学习单片机时主要联系写指令和写数据,所以我们对 RW置高,给 E高脉冲, 5 引脚直接接地。 ? 关于数据指针: 10 / 66 显示开关及光标: 00001DCB 清屏:指令代码 0x01。执行此指令, HD44780将 DDRAM的数据全部写入 “ 空白 ” (来自 : 海达 范文 网 :51 单片机重点总结 ) 的代码,清除所显示的内容,同事光标移到左上角。 光标归位:指令代码 0x02 或 0x03。 AC 的值被清 “0” ,但是 DDRAM 的逐句不变,光标移到左上角。 移动光标: 写指令函数: void write_com(uchar com) rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; 写数据函数: 11 / 66 void write_date(uchar date) 51单片机的学习经验 OFweek 工控网讯:作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科 需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。此外,学习单片机还需要投入一定的学习成本,随着你学习知识的扩展成本还会增加。 单片机作为一种简单的控制器在生活中有这广泛的应用,当然在工业型单片机在生产中也扮演着很重要的角色,所以对于一个学习自动化的工控人来说,学习单片机是非常有必要的。 单片机的学习经验 1、学习电子技术基础知识,如电路、模拟电路和数字电路。这是学习电类相关专业的基础。 12 / 66 2、学习计算机硬件知识,如计算机的简单组成原理,当然要知道 CPU是什么?总线是什么?一些相关概念。 3、程序编写的相关知识,主要是汇编语言和 C 语言。了解结构化语言的程序设计方法,也就是三种结构 (顺序结构、分支结构、循环结构 ),会一些常用的算法。 4、以上是基础,有了这些基础,学习 51单片机就只要花几周的时间就能上手。但学习单片机时,主要从单片机的存储器开始,其中特殊功能寄存器是重点,学会之后,就可以 学习单片机的基础部分了,主要是四个部分: 51单片机 I/O 口的使用、中断的使用、定时器的使用、外部器件的扩展。这些部分都可以用软件仿真。 5、可以买一两块廉价的单片机开发板,用廉价的方法仿制一些更简单的实验功能板,开始做板时千万不做得太复杂,我带过的很多学生中,有少部分人总是觉得太简单了,做个复杂的,结果做了个把星期,没有成功,最后只有放弃。还有一点很重要,就是用 PROTEUS仿真时,最好只做单一 功能的仿真,否则可能与实际在硬件上做的结果不一样。 13 / 66 6、从网上下载一些实例进行研究学习,不断提高。 学习单片机的步骤 学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,提出笔者的学习方法和步骤。 第一步:基础理论知识学习 基础理论知识包括模拟电路、数字电路和 C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。有些同学觉得单片机很难,越学越复杂,最后学不下去了。有的同学 看书时似乎明白了,可是14 / 66 动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困惑了。 单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步,自信心也会树立起来。相反,基础不好,这个看不懂那个也弄不明白,越学问题越多,越学越没有信心。如果你觉得单片机很难,那就应该先放下单片机教材, 去重温数字电路,搞清楚触发器、寄存器、门电路、 COMS电路、时序逻辑和时序图、进制转换等理论知识。理解了这些知识之后再去看看单片机的结构和原理,我想你会大彻大悟,信心倍增。 模拟电路是电子技术最基础的学科,她让你知道什么是电阻、电容、电感、二极管、三极管、场效应管、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须掌握的基础知识。一般是先学习模拟电路再去学习数字电路。扎实的模拟电 路基础不仅让你容易看懂别人设计的电路,而且让你的设计的电路更可靠,提高产品质量。 C语言知识并不难,没有任何编程基础的人都可以学,在我看来,初中生、高中生、中专生、大学生都能学会。当然,数学基础好、逻辑思维好的人学起来相对轻松一些。 C 语言需要掌15 / 66 握的知识就那么 3 个条件判断语句、 3 个循环语句、 3 个跳转语句和 1 个开关语句。别小看这 10 个语句,用他们组合形成的逻辑要多复杂有多复杂。学习时要一条语句一条语句的学,学一条活用一条,全部学过用过这些关键语句后,相信你的 C 基础建立了。 当基础打好以后,你会感觉到单片机不再难学了,而且越学越起劲。当单片机乖乖的依照你的逻辑思维和算法去执行指令,实现预期控制效果的时候,成就感会让你信心十足、 夜以续日、废寝忘食的投入到单片机的世界里。可以这么说,扎实的电子技术基础和 C 语言基础能增强学习单片机信心,较快掌握单片机技术。 第二步:单片机实践 这是真正学习单片机的过程,既让人兴奋又让人疲惫,既让人无奈又让人不服,既让人孤独又让人充实,既让人气愤又让人欣慰,既有失落感又有成就感。其中的酸甜苦辣只有学过的人深有体会。思想上要有刻苦 学习的决心,硬件上要有一套完整的学习开发工具,软件上要注重理论和实践相结合。 16 / 66 1.有刻苦学习的决心 首先,明确学习目的。先认真回答两个问题:我学单片机来做什么?需要多长时间把它学会?这是你学单片机的动力。没有动力,我想你坚持不了多久。其次,端正学习心态。单片机学习过程是枯燥乏味、孤独 寂寞的过程。要知道,学习知识没有捷径,只有循序渐进,脚踏实地,一步一个脚印,才能学到真功夫。再次,要多动脑勤动手。单片机的学习具有很强的实践性,是一门很注重实际动手操作的技术学科。不动手实践你是学不会单片机的。最后,虚心交流。在单片机学习过程中每个人都会遇到无数不能解决的问题,需要你向有经验的过来人虚心求教,否则,一味的自己埋头摸索会走许多弯路,浪费很多时间。 2.有一套完整的学习开发工具 学习单片机是需要成本的。必须有一台电脑、一块单片机开发板、一套视频教程、一本单片机教材和一本 C语言教材。电脑是用来编写和编译程序,并将程序代码下载到单片机上;开发板用来运行单片机程序,验证实际效果;视频教程就是手把手教你单片机开发环境的使用、单片机编程和调17 / 66 试。对于单片机初学者来说,视频教程必须看,要不然,哪怕把教材看了几遍,还是不知道如何下手,尤其是院校里的单片机教材,学了之后,面对真正的单片机时可 能还是束手无策;单片机教材和 C语言教材是理论学习资料,备忘备查。不要为了节约成本不用开发板而光用 Protur软件仿真调试,这和纸上谈兵没什么区别。 3.要注重理论和实践相结合 单片机 C 语言编程理论知识并不深奥,光看书不动手也能明白。但在实际编程的时候就没那么简单了。一个程序的形成不仅 需要有 C语言知识,更多需要融入你个人的编程思路和算法。编程思路和算法决定一个程序的优劣,是单片机编程的大问题,只有在实际动手编写的时候才会有深切的感悟。一个程序能否按照你的意愿正常运行就要看你的思路和算法是否正确、合理。如果程序不正常则要反复调试 (检查、修改思路和算法 ),直到成功。这个过程耗时、费脑、疲精神,意志不坚强者往往被绊倒在这里半途而废。 学习编写程序应该按照以下过程学习,效果会更好。看到例程题目先试着构思自己的编程思路,然后再看教材或视频教程里的代码,研究人家的编程思路,注意与自己思路的差异;18 / 66 接下来就照搬人家的思路亲自动手编写这个程序,领会其中每一条语句的作用;对有疑问的地方试着按照自己的思路修改程序,比较程序运行效果,领会其中的奥妙。每一个例程都坚持按照这个过程学习,你很快会找到编程的感觉,取其精华去其糟粕,久而久之会形成你独特的编程思想。 当然,刚开始,看别人的程序源代码就像看天书一样,只要硬着头皮看,看到不懂的关键字和语句就翻书查阅、对照。只要能坚持下来,学习收获会事半功倍。在实践过程中不仅要学会别人的例程,还要在别人的程序上改进和拓展,让程序产生更强大的功能。同时,还要懂得通过查阅芯片数据手册里有关芯片命令和数据的读写时序来核对别人例程的可靠性,如果你觉得例程不可靠就把它修改过来,成为是你自己的程序。不仅如此,自己应该经常找些项目来做,以巩固所学的知识和积累更多的 经验。 第三步:单片机硬件设计 当编写自己的程序信手拈来、阅读别人的程序能够发现问题的时候,说明你的单片机编程水平相当不错了。接下来就应该研究的硬件了。硬件设计包括电路原理设计和 PCB板设计。学习做硬件要比学习做软件麻烦,成本更高,周期更长。但是,学习单片机的最终目的是做产品开发 -软件和硬件相19 / 66 结合形成完整的控制系统。所以,做硬件也是学习单片机技术的一个必学内容。 电路原理设计涉及到各种芯片的应用,而这些芯片外围电路的设计、典型应用电路和与单片机的连接等在芯片数据手册都能找到答案,前提是要看得懂全英文的数据手册。否则,照搬别人的设计永远落在别人的后面,你做的产品就没有创意。电子技术领域的第一手资料都是英文,从第一手资料里你所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。 虽然有些资料也都是在 DATASHEET 的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。当然,阅读DATASHEET 需要具备一定的英文阅读能力,这也是阻碍单片机学习者晋级的绊脚石。良好的英文阅读能力能让你在单片机技术知识的海洋里自由遨游。 做 PCB 板就比较简单了。只要懂得使用 Protel 软件或AltimDesigner 软件就没问题了。但要想做的板子布局美观、布线合理还 得费一番功夫了。 娴熟的单片机 C 语言编程、会使用 Protel 软件或20 / 66 AltimDesigner软件设计 PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了。 学习单片机的内容 第一步:数字 I/O 的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字 I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具 备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 IO 口的使用,最简单的就是点亮流水灯啦 Comeon!为了让没有单片机的同学也能顺利学习,我们可以用仿真软件来做,有视频喔,学习更简单,麻麻再也不用担心了,哈哈。请看:帖子链接 第二步:定时器和按键的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电21 / 66 路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮 3 分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过 2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器 (PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非 常重要的,逻辑加时间控制是单片机使用的基础。按键,就不用说了吧,应用很广泛的,不多说,参见帖子,注意,按键扫描程序是用 if还是 while喔 最近在某论坛发现了一种新型按键识别思路 (利用 AD),也可以看看 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定 的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时22 / 66 候不允许中断发生 (屏蔽中断 )、什么时候允许中断发生 (开中断 ),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等 。 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。 第四步:与 PC机进行 RS232通信 第 1 章 1、微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入 /输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算23 / 66 器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入 /输出接口电路完成 CPU 与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 2、单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器 ROM和 RAM和 I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 3、单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、 I/O 口、速度、工作电压、功耗和温度。 4、单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能 化测控系统、智能化接口等方面。 5、单片机的特点 24 / 66 存储器 ROM和 RAM 严格分工;采用面向控制的指令系统;输入 /输出端口引脚具有复用功能;品种规格的系列化;硬件功能具有广泛的通用性 6、水塔水位的控制原理 (1)当水位上升达到上限时, B、 C棒与 A棒导电,从而与 +5V电源连通。 b、 c两端均呈高电平状态,这时应使电机和水泵停止工作,不再给水塔供水。 (2)当水位降到下限以下时, B、C 棒不与 A 棒导电,从而断开与 +5 V电源的连通。 b、 c两端均呈低电平状态。这时应启动电机,带动水泵工作给水塔供水。 (3)当水位处于上下限之间时, B 棒与 A 棒导电,而 C棒不与 A 棒导电。 b 端呈高电平状态, c 端呈低电平状态。这时无论是电机已在运转还是停止,都应维持电机和水泵的现有工作状态,直到水位上升到水位上限或 下降到水位下限。 第 2 章 1、 MCS-51 单片机内部包含哪些主要功能部件?它们的作用是什么? 25 / 66 答: MCS-51单片机在一块芯片中集成了 CPU、 RAM、 ROM、定时 /计数器、多功能 I/O口和中断控制等基本功能部件。 1)单片机的核心部分是 CPU, CPU是单片机的大脑和心脏。 2)程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 3)定时 /计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 4)I/O 接口的主要功能包括:缓冲与锁存数据、地址译码、信息格 式转换、传递状态和发布命令等。 5)中断控制可以解决 CPU 与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2 、 MCS-51 单片机的 EA 、 ALE 和 PSEN 端的功能是什么? 答: ALE ALE为地址锁存允许信号,在访问外部存储器时,ALE用来锁存 P0送出的低 8位地址信号。 PSEN 外部程序存储器的读选通信号。当访问外部 ROM 时, PSEN 产生负脉冲作为外部 ROM 的选通信号;在访问外部 RAM 或片内 ROM26 / 66 时,不会产生有效的 PSEN 信号。 PSEN 可驱动 8 个 LSTTL 门输入端。 EA 访问外部程序存储器控制信号。对 8051和 8751,它们的片内有 4KB的程序存储器。当 EA 为高电平时, CPU 访问程序存储器有两种情况:一是访问的地址空间在 0 4K 范围内, CPU 访问片内程序存储器;二是访问的地址超出 4K 时, CPU 将自动执行外部程序存储器的程序。对于 8031, EA 必须接地,只能访问外部 ROM。 3 、 MCS-51单片机的核心器件是 CPU。它由运算器、控制器和布尔处理器组成。 4、运算器是用于对数据进行算术运算和逻辑操作的执行部件。它包括:算术逻辑单元累加器程序状态 字暂存器 B寄存器等部件 5、程序状态字寄存器 PSW 是一个 8 位寄存器,用来存放运算结果的一些特征。 Cy:进位标志位。 AC:半进位标志位。F0:用户自定义标志位。 RS1 和 RS0:工作寄存器组选择位OV:溢出标志位 P:奇偶校验标志位。 6、控制器是 CPU 的大脑中枢,它的功能是逐条对指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令规定的 操作。 7、程序存储器中特殊地址的功能 27 / 66 7、工作寄存器地址为 00H 1FH 的 32 个单元,并分成 4 个工作寄存器组,每个组有 8 个工作寄存器,名称为 R0R7。工作寄存器和 RAM 地址的对应关系如表所示。 11、单片机的外部复位电路有上电自动复位和按键手动复位两种。作用是使 CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。 上电复位上电复位利用电容器的充电实现。在时钟电路工作后,在 RST端连续给出 2 个机器周期的高电平就可完成复位操作。 上电加按键复位,当复位按键按下后,复位端通过 51 的小电阻与 +5V 电源接通,迅速放电,使 RST 引脚为高电平;当复位按键弹起后, +5V电源通过 2K电阻对 22F 电容重新充电, RST引脚端出现复位正脉冲。其持续时间取决于 RC电路的时间常数。 12、 MCS-51单片机的基本工作方式是程序执行方式,它分 为连续执行工作方式和单步执行工作方式。 13、电源控制寄存器 PCON待机方式和掉电方式由专用寄存器 PCON中的有关28 / 66 位控制, PCON 字节地址为 87H 14、终止待机方式的方法有以下两种: 1)通过硬件复位通过中断方法 15、单片机的内部结构:一个 8位 CPU; 4 KB 程序存储器,采用 ROM或 EPROM;128 B通用数据存储器; 21个特殊功能寄存器;一个可编程全双工串行口;具有 5个中断源,两个优先级嵌套结构;两个 16位定时 /计数器;一个片内振荡器与时钟电路。 8、并行 I/O 口特点 4 个并行 I/O口都是双向的。 P0口为漏极开路驱动; P1、 P2、P3口均具有内部上拉电阻驱动,它们有时称为准双向口。 32根端口线都可用做输入或输出,还可进行位操作。 当并行 I/O口作为输入时,该口的锁存 器必须先写入 “1” ,这是一个重要条件。否则,该口不能读入正确数据。 9、 I/O口功能 Pl 口只有一种功能,即通用输入 /输出接口。; P2 口有两种用途:通用 I/O 口或高 8 位地址总线。; P3 口是双功能口,默认为第一功能,通过编程可设定为第二功能。; P0 口有两种功能:地址 /数据分时复用总线;通用 I/O口 29 / 66 16 、 4 个 8 位并行口,其中 P0、 P2、 P3 是复用口; P0 端口:第一功能:是一个 8 位漏极开路型的双向 I/O 口,这时P0口可看成用户数据总线;第二功能:是在访问外部存储器时,分时提供低 8 位地址和 8位双向数据总线,这时先用做地址总线再用做数据总线。 P1 口:内部带上拉电阻的 8 位准双向 I/O 口。 P2 口:第一功能:一个内部带上拉电阻的8 位准双向 I/O 口。第二功能:在访问外部存储器时,输出高 8 位地址。 P3 口:第一功能:内部带上拉电阻的 8 位准双向 I/O 口。在系统中,这 8个引脚都有各自的第二功能。 18 P0、 P1、 P2、 P3并行端口使用注意事项 如果单片机内部有程序存贮器,不需要扩展外部存贮器和 I/O 接口,单片机的 4 个口均可作为 I/O 口使用; 4 个口在作为输入口使用时,均应先对其写 “1” ,以避免误读; P0口作为 I/O 口使用时应外接 10K 的上拉电阻,其它口则可不必; P2口某几根口线作地址使用时,剩下的口线不能作为I/O口线使用; P3 口的某些口线作第二功能时,剩下的口线可以单独作为 I/O 口线使用。 19 第 3 章 30 / 66 1、什么是寻址方式? MCS-51 指令系统有哪些寻址方式?相应的寻址空间在何处? 答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。 MCS-51 指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻 址、基址加变址寻址、相对寻址和位寻址等七种。 8 存储空间对应的寻址方式 在 MCS-51 单片机的指令系统中,指令对哪一个存储器空间进行操作,是由指令的操作码和寻址方式确定的。 1)对程序存储器只能采用立即寻址和基址加变址寻址方式; 2)对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址; 3)对 8032/8052 等单片机内部 RAM 的高 128 个字节,只能采31 / 66 用寄存器间接寻址,不能使用直接寻址方式; 4)对位操作指令只能对位寻址区操作; 5)外部扩 展的数据存储器只能用 MOVX指令访问; 6)内部 RAM的低 128个字节既能用直接寻址,也能用间接寻址。 4 加法和减法指令影响哪些标志位?怎么影响的? 答:在带进位的加法运算中,会影 响进位位 Cy,最终要将 A 中的值和其后面的值以及进位位 Cy中的值相加,最终结果存在 A。 在带进位减法指令中,要将累加器 A 的内容与第二操作数及进位标志相减,结果送回到累加器 A 中。在执行减法过程中,如果位 7 有借位,则进位标志 Cy 置 “1” ,否则清 “0” ;如果位 3有借位,则辅助进位标志 AC置 “1” ,否则清 “0” ;如位 6 有借位而位 7 没有借位,或位 7 有借位而位 6 没有借位,则溢出标志 OV 置 “1” ,否则清 “0” 。若要进行不带借位的减法操作,则必须先将 Cy 清 “0” 。 32 / 66 7MCS-51单片机能够识别并执行的指令共有 111条。 (2)按指令所占字节数、指令执行时间和指令功能进行分类。 (3)指令由操作码和操作数组成。 (4)指令的基本格式 符号地址 : 操作码 操作数 1 ,操作数 2 ,操作数 3 ;注释 第 4 章 1、 MCS-51系列单片机汇编语言进行程序设计的步骤如何? 答:单片机汇编语言进行程序设计的步骤: (1)分析题意,明确要求; (2)确定算法; (3)画程 序流程图,用图解来描述和说明解题步骤; (4)分配内存工作单元,确定程序与数据区的 存放地址; (5)编写源程序; (6)程序优化; (7)上机调 试、修改和最后确定源程序。 2、程序设计的方法 1模块化程序设计 2尽量采用循环及子程序结构 3自上而下的程序设计 3、常用的程序结构有哪几种?特点如何? 33 / 66 答:常用的 程序结构有顺序、分支、循环、查表及子程序结构;特点是程序的结构清晰、易 于读写和验证、可靠性高。 4、子程序调用时,参数的传递方法有哪几种? 答:传递方法有传递数据、传送地址和通过堆栈传递参数。 5、伪指令 伪指令是便于程序阅读和编写的指令,它即不控制机器的操作也不能被汇编成机器代码,只是为汇编程序所识别的常用符号,并指导汇编如何进行,故称为伪指令。 6子程序调用 在子程序调用过程中须解决以下两个方面的问题: 1) 保护现场和恢复现场。 2) 调用程序与被调用程序之间的参数传递。 保护现场和恢复现场:方法就是在进入子程序时,将需要保护的数据推入堆栈,而空出这些数据所占用的工作单元,供子程序中使用。在返回调用程序之前,再将推入堆栈的数据弹出到原有的工作单元,恢复其原来的状态,使调用程序可以继续往下执行。 34 / 66 参数传递:子程序调用时,要特别注意主程序与子程序之间的信息交换问题。在调用一个子程序时,主程序应先把有关参数放到某些约定的位置,子程序在运行时 ,可以从约定的位置得到有关参数。同样子程序结束前,也应把处理结果送到约定位置。返回后,主程序便可从这些位置得到需要的结果,这就是参数传递。 7 参数传递大致可分为以下几种方法: 1) 传递数据 2) 传送地址 3) 通过堆栈传递参数 第 6章 1、试分析以下几种中断优先级的排 列顺序是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。 (1) 定时器 T0 中断,定时 T1 中断,外中断 1NT0,外中断INT1,串行口中断; (2) 串行口中断,外中断 1NT0,定时器 T0中断,外中断 INT1,定时器 T1中断; (3) 外中断 INT0、定时器 T1中断,外中断 INT1,定时器 T0中断,串行口中断。 答: 可以,将定时器 T0中断,定时35 / 66 T1 设置为高优先级中断,将外中断 1NT0,外中断 INT1,串行口中断 可以,将串行口中断设置为高优先级中断,将外中断 1NT0,定时器 T0 中断,外中断 INT1,定时器 T1中断设置为低优先级中断; 不行,因 为 MCS-51 单片机有 2 级中断优先级别,同级中断还存在按次序决定的第二优先级结构,由高到低依次为外中断 1NT0、定时器 T0 中断、外中断 INT1、定时器 T1中断、串行口中断。 3 、中断系统的内部结构: MCS-51单片机的中断系统由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路组成。 4、中断源:把向 CPU提出中断申请的设备称为中断源。 MCS-51单片机的 中断系统提供了 5个中断源。 5、 MCS-51 中断系统在 4 个特殊功能寄存器控制下工作。这4 个特殊功能寄存器是定时 /计数器控制寄存器、串行口控制寄存器、中断允许控制寄存器和中断优先级控制寄存器。通过对这 4 个特殊功能寄存器的各位进行置位或复位操作,可实现各种中断控制功能。中断请求控制、中断允许控制、中断优先级控制。 6 36 / 66 7 中断响应过程流程图 8、中断响应的过程 1) 检测中断 2) 保护现场 3) 中断服务 4) 清除中断标志位5) 恢复现场 6) 中断返回 9、在实际应用中有以下几种情况可采取中断方式工作。 (1) I/O设备。 (2) 硬件故障。 (3) 实时时钟。 (4) 为调试程序而设置的中断源。 10、中断优先级控制 8051 有 2 个中断优先级,每一个 中断请求源均可编程为高优先级中断或低优先级中断,从而实现2 级中断嵌套。 11、中断优先级控制 3条基本规则: 1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后, CPU 才响应新的中断请求。2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。 3) CPU 同时接收到几个中断37 / 66 请求时 ,首先响应优先级最高的中断请求。 第 7章 1、定时 /计数器有哪些专用寄存器,它们有几种工作模式?如何设置? 答:有定时控制寄存器和工作方式寄存器 ,具有四种工作方式:方式 0、方式 1、方式 2和方式 3,四种方式由工作方式寄存器的 M1 和 M0 两位决定。 2、如果采用晶振的频率为 3MHz, 定时 /计数器工作方式 0、 1、 2 下,其最大的定时时间 为多少? 答:内部定时脉冲周期 =机器周期 =12/3Mhz=4us 工作方式0: Tmax=8192*4us= 工作方式 1: Tmax=65536*4us= 工作方式 2: Tmax=256*4us= 3、帧格式为 1 个起始位, 8 个数据位和 1 个停止位的异步串行通信方式是方式几?。 答:是异步串行通信方式 1。 4、简述串行口通信的第 9 数据位的功能。 答:在工作方式 2 和 3 下,才有第 9 数据位,既可作为奇偶校验位使用,也可作为控制位使用。 38 / 66 5 为什么定时 /计数器 T1 用做串行口波特率发生器时,应采用方式 2?若已知时钟频率、通信波特率,如何计算其初值? 答:因为方式 2是有自动重装载计数值的功能,从而可以产生精确的波特率。串行工作方式 0和方式 2波特率是固定的,所以不用设初值;串行工作方式 1 和方式 3 时: 波特率:BR = (2SMODTd)/32 溢出一次的时间: 1/Td = (256-TH1)*12/fosc 溢出率:Td = fosc/12(256 -TH1) 初值: TH1 = 256- fosc/ 6 MCS-51串行通信接口与特殊功能寄存器:发送缓冲寄存器 (SBUF);发送控制器;发送控制门;接收缓冲寄存器 (SBUF);接收控制寄存器;移位寄存器;中断 7 与串行通信有关的控制寄存器共有 4 个:接收 /发送缓冲器 SBUF、串行控制寄存器 SCON、电源控制寄存器 PCON 和中断允许控制寄存器 IE。 39 / 66 8 波特率及时钟频率:波特率 (BR):单位时间传输的数据位数。 单位: bps (bit per second), 1 bps=1 bit/s。波特率的倒数即为每位传输所需的时间。 fT/R=nBRT/R 式中, fT/R为发 /收时钟频率,单位: Hz; BRT/R 为发 /收波特率,单位:bps; n 为波特率因子。同步通信 n=1。 异步通信 n 可取 1、16 或 64。 9、数据通信的传输方式有:单工方式:数据仅按一个固定方向传送。半双工方式:数据可实现双向传送,但不能同时进行。全双工方式:允许双方同时进行数据双向传送。 10、串、并行通信方式对比? 并行通信:是数据的每位被同时传输出去或接收进来。串行通信:数据传输是逐位传输的。 在相同条件下,串行通信比并行通信传输速度慢。采用串行通信,不管发送或接收的数据是多少,最多只用两根导线,其工程实现上造价要低得多。串行通信已被越来越广泛地采用 11MCS-51单片机内有 2 个 16位可编程的定时 /计数器,即定40 / 66 时器 0 和定时器 1。 两个定时 /计数器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等应用。受特殊功能寄存器 TMOD 和 TCON 控制。 12定时 /计数器 T0、 T1可以有四种不同的工作方式:方式 0、方式 1、方式 2 和 方式 3 4 种工作方式由 TMOD 中的 M1、 M0两位决定,见表 7-3 所示。 第 8 章 1、画图说明单片机系统总线扩展方法。 答:单片机系统扩展总线原理如下图所示,扩展后由 P0 口经锁存器形成低 8 位地址, P2口形成高 8 位地址,共同形成16 位地址总线; P0 口形成 8 位数据线, /WR、 /RD 及 /PSEN形成控制总线。 41 / 66 2、说明程序存储器扩展的一般原理。 答:程序程序存储器扩展原理如下图所示,从图中可以看出,程序存储器扩展实际上是将程序存储器挂在单片机扩展的系统总线上,需要注意的是,单片机的 /PSEN 引脚连接至程序存储器的 /OE 端,保证 /PSEN 有效时能读出程序存储器中数据 ,而程序存储器的 /CS 端直接接地,即始终有效,保证始终可以取指令。 3、说明单片机应用系统中 LED显示器的两种显示方式? 答:常用 LED 显示方式有两种,即动态显示方式和静态显示方式。 动态显示方式是指将待显示数据分时送到各显示位并保持一定时 间,任何时刻只能有一位显示器通电,其它显示位靠余辉维持发光,因而动态显示方式需不断进行刷新。静态显示方式是指将待显示数据分别送到显示器的各位,各显示位同时通电,因单片机的数据端口不能一直 被占用,因而要求显示器与单片机数据端口之间有具有数据锁存功能的单元电路,即42 / 66 每一位 LED 输入端加一个锁存器,因而硬件电路比动态显示方式复杂,但不需要刷新,可以节省 CPU 时间,显示数据可以一直维持到下一次更新。 4、说明 LCD 显示器件的工作原理? 答: LCD 是一种被动式的显示器, 由于功耗低、抗干扰能力强,在低功耗单片机系统中得到广泛应用。 LCD 本身不发光,通过调节光的亮度进行显示。 LCD工作过程如下: 在玻璃电极上加上电压之后,在电场的作用下,液晶的扭曲结构消失,其旋光作用也消失,偏振光便可以直接通过。去掉电场之后,液晶分子又恢复其扭曲结构,把这样的液晶置于两个偏振片之间,改变偏振片的相对位置,就可以得到白底黑字或黑底白字的显示形式。 5、单片机应用系统中为什么要进行系统扩展? 答: 8031、 8032 等单片机不提供用户程序存储器,必须进行程序存储器的扩展,以存放控制程序、数据表格等; 8751等单片机虽然向用户提供 EPROM程序存储器,但程序存储器空间容量不大,程序存储空间不足时,还必须扩展外部程序存储器。 MCS-51 系列单片机内部通常有 128B 至 256B 的片内数据存储器,用于一般的控制及运算是足够的,但若用于43 / 66 数据存储,其容量是不足的,在这种情况下,必须扩展数据存储 器。 MCS-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论