《微机原理》课程重点易错点知识.doc

上传人:scccc 文档编号:13990154 上传时间:2022-01-29 格式:DOC 页数:5 大小:32.50KB
返回 下载 相关 举报
《微机原理》课程重点易错点知识.doc_第1页
第1页 / 共5页
《微机原理》课程重点易错点知识.doc_第2页
第2页 / 共5页
《微机原理》课程重点易错点知识.doc_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《微机原理》课程重点易错点知识.doc》由会员分享,可在线阅读,更多相关《《微机原理》课程重点易错点知识.doc(5页珍藏版)》请在三一文库上搜索。

1、微机原理课程重点/易错点知识为电气12级编写,吴老师,20150304前言为让同学们更好进入接口技术课程学习,我对微机原理课程的一些重要、 易错的内容进行扼要提示,请同学们务必认真看一遍。对照自己原来的认识,如 有问题,需要解答,请学习委员汇总后交给老师。计算机系统扩展与接口应用依赖开发者的知识与能力。 本文列出的主要是知 识中的部分要点,并不全面。至于能力方面涉及的:动手制作能力,开放与收敛 的思维能力,程序方法与编程能力以及纠错查错调试能力等, 完全没有涉及,需 要同学们自己通过锻炼来获得。重点/易错点的扼要提示数字(Digital ):计算机中所说的“数字”,不是阿拉伯数字,而是以两极化

2、 的观点来抽象表达客观世界信息的一种信息表示方法,如:男-女,高-矮,正-反等等。用二进制可以方便表示数字信息及其数学与逻辑关系。仅有二进制数可以表示和处理逻辑关系。模拟(An alog):非数字的信息表达就是模拟的,它可以取无限多种值,也可以 是有限种的状态。(百度百科或其他教科书的说法排除有限种状态,不全面) 处理器/微处理器:也称为CPU俗称“计算机”,“电脑”,是具有“主动/自 动取指令,执行指令”能力的器件。严格来说,CPU除 了前述能力外,还具有通过总线管理其他IC的能力。计算机中的数与数学的数:计算机用CPL处理的数仅限于在某种位数(如 8位) 和某种代码(如原码)范围内正确,它

3、不等于数学的数,让计算机处理的数符合 数学规律是软件的任务。计算机单元中的数:存的是一种状态,不是“东西”,可以无限次的读取,不会 移走;一存入就变成新值,不是罐子可以叠加存放。多字节数:不是用来表示一个很大的数,而是用来表示信息的总状态,或用来表 示取值范围较大的数。多字节数没有多个地址,它通常用最低字节的地址作为多 字节数的单元地址。“空”或“没有”:计算机中没有自然的“空”或“没有”的状态,0不是“空”, 对未编程的存储器其位往往都为1, 1也不是“空”,0或1或数字都是状态之 一,地位平等。CPU仍然可以访问物理器件不存在的地址空间,CPU读取到的值 不是“空”,是0/1的组合,只是不

4、能事先确定而已。如果程序中要表示“空” / “不存在”或“有”/ “存在”,可以人为定义。原码:是计算机用最基本(原始)的,用“位-权”关系表达的无符号数,它不 是正数,正数是带符号数。“位-权”关系是用多位数字表示数的方法,每一位 的数值为该位的数字乘上该位的权,权等于进制基数的位置系数次方,如2A0=1o 代码:用人为规定的方法让计算机中的数来表示某种信息。计算机数与信息代码 形成“1对多”的关系,代码的正确表示与处理代码的程序相关联。带符号数:有补码表示、原码表示、移码表示、反码表示等,不同的表示方法各 有其的优缺点。要注意区别“某种代码”与“某种代码表示”的不同。补码与补码表示:“补码

5、”与“补码表示”的概念不同,“补码”是一对数,相 加刚好超出所处理的单元范围,丢掉进位后自动变为 0;“补码表示”是“补码 表示的带符号数”的简称,它规定补码中一对数的较小数为正数,较大数为负数, 来表示带符号数。补码表示的数适合进行加减运算,是计算机中除了原码之外的 基本数值代码。补码表示的数的最咼位:当该位为1时,表示一个负数。该位不是符号位,但可 以用它来辨认该数的正负。(这点,多数省内高校教师与部分教科书都误解了) 溢出:加减运算指令执行后同时给出了 Cy与Ov的值,Cy可以用来判断原码数 是否超出了范围(Carry ) ; Ov可以用来判断补码表示的带符号数是否超出了范 围(Ovef

6、low )。不论原码或补码表示的数,都可以用 Cy来建立多字节数中各 字节间的联系。Cy和Ov在其他指令中有另外的含义,如 MUL指令中Ov表示乘 积的高字节非0,不是带符号数移出与否的标志。符号代码:一般讲的符号代码,如ASCII码与中文代码,指的是信息代码,用于 在标准设备间传递字符与某些动作的信息。表示符号代码样子的形状代码(如: 宋体、黑体、斜体、点阵大小,数码管字模等等)是由实现设备中的软硬件实现。计算机家族:指令集相同或兼容的处理器。如:Intel的8051, AT89C51 STC12C5A60S等都属于MCS-5傢族,其不同点在于硬件功能与速度能力等不同。 信息的逻辑与物理关系

7、:指令中的信息为逻辑值,它对应的引脚或电路中的电压 为物理值。在+5V的TTL逻辑中,逻辑值0对应0约1V的电压(低电平);1 对应约2.5V+5V的电压(高电平)。不能认为负电压与高于 VCC的电压分别对 应数字值0,1,它们对系统往往有破坏作用。在硬件设计中,逻辑值 0/1与电 压范围的对应关系在输入、输出、TTL、CMOS不同场合都有差别,应认真考虑。 I/O (输入/输出):计算机中的I/O ,物理量转变为逻辑值为输入;逻辑值转变 为物理量为输出,它们与电路中的输入/输出不同,不是内外电路间电流的流动。 端口 Port :实现I/O的器件。传统的8051端口仅能进行数字量(0/1 )的

8、传递, 通过程序,利用高/低电平宽度、频率,还可以进行模拟量的转换。STC等扩展的单片机已经可以直接进行 A/D与D/A ( PWM的转换。端口与端口其他功能:当端口的锁存器与引脚间建立联系时,端口为其原本的 I/O功能,即作为端口使用;CPU还借用某些端口的引脚作为其他功能传递物理 量时使用,如:串口、中断、总线、A/D等等,一旦将端口引脚作为其他功能使 用时,其锁存器与引脚间的关系不能全都存在,此时一般不宜再作为端口使用。 端口锁存器与引脚:指令中,凡作为目的的或执行“读取-修改-存回”功能的均 为针对锁存器操作;“ XCH A,并口”指令特殊,作为源的并口为引脚;作为目 的并口为锁存器;

9、端口作为“源”的都是作为引脚。地(GND :计算机中各IC的数字值都是以电压来表示的,电压都是参照 GND 来测量的,因此,各IC的地的电压都应当尽量相同(公共端),因此, PCB板 中的GND布线都尽量宽,以便减少电阻造成各IC之间的电压差。晶振:外接的晶振可以让CPU具有可选的不同速度。CPU执行指令、CTC串口 等工作速度均与晶振相关。传统的8051机器周期为12/晶振频率;STC等扩展单 片机的机器周期、指令周期与 8051不同,应查相应的PDF资料。STC单片机可 以不用外接晶振,但工作频率不精确和不稳定。复位:复位让CPU内部的寄存器初始化。复位可以用外部电路施加在 RST引脚上

10、的一定长时间的高(复位)到低电平(工作)来实现, STC单片机可以省去外部 复位电路,用内部的复位电路实现,腾出来的 RST引脚作为P4扩展端口引脚使 用。WDOG看门狗)电路控制着内部的复位电路,可以用于CPU死机后自动复位, 提高系统可靠性。电源:单片机与一般数字电路使用的都是直流电压源。直流电源的指标除了电压外,还有:功率或提供电流的能力,稳定性(电泳、波纹等)。电源的波纹对 IC的工作是有害的,IC工作时也会导致电源产生波纹。消除电源的波纹是硬件 设计中必须考虑的事。单片机一般采用 +5V或+3V电源,STC等单片机中某些类 型为“宽电压型”,可以在26V电压下工作。电源可以用 AC-

11、DC或 DC-DC电路 来实现。USB与多数手机充电电源都是+5V电源,可以供实验的单片机系统使用。 硬件研发:硬件具有空间与时间复杂性。应当运用相关知识(电路,电子技术, 集成电路,系统扩展与接口技术等)并参考别人的电路,必要时应当做模块的制 作与测试,通过计算机辅助电子设计软件(Protel,Proteus,Altium Design, OrCAD PADS Can de nee等)设计原理图和PCB图,发到工厂进行制板,再通过 元件焊接,测试,改进与完善。硬件研发也要编写较简单的测试软件,以判断制 作的硬件功能。存储器与寄存器:存储器的基本单元为字节,它用地址作为其访问(即读 /写) 的

12、唯一标识,程序员可以在源程序中赋予存储器有意义的名称和所设定的功能; 寄存器有厂家规定的功能和名字,CPU的寄存器与CPU勺某种功能相关,通过寄 存器可以使用CPU的该功能。扩展的单片机功能是通过扩展对应的 SFR单元来实 现的。51单片机的所有存储器都有间址寻址能力。存储器与寄存器的区别:不是在于是否在CPU的内部还是在外部(百度百科说在 CPU内部的是寄存器,而在内部的 RAM或 CACH却是存储器)。一般不能将 SFR 当作存储器单元使用,如连续执行: Mov SFR,A 与Mov A ,SFR不能保 证A不改变。内部RAM与 SFR内部RAM地址空间为00HFFH (某些类型的单片机

13、80H- FFH 为“有空间无单元”);SFR地址空间为80HFFH (不充满)。80H- FFH的空 间依照指令寻址方式来区分RAM与 SFR间接寻址的访问RAM直接寻址的访问 SFR注意:很多书上讲的“内部 RAM80HFFH作为SFR是错误的!位单元:MCS-51的位单元必属于某个字节单元,00H7FH位单元属于20H- 2FH 字节单元;80HFFH位单元(不充满)属于地址能被8整除的SFR自定义位单 元时,凡将位单元定义到某字节单元后,该字节单元就要作为位单元的集合单元 使用。自定义的RAM中的位单元可以作为程序中的状态标志或控制标志使用。工作寄存器R0R7:是由“内部RAM中可作为

14、工作寄存器区00H-仆H的4个 区之一担任,有PSW中的RSQ RS1确定。它们是寄存器,不是存储器(尽管它 们与某片存储区的单元内容相同),某些指令规定不允许使用它们,如PUSH/POP 指令。堆栈:由CPU通过SP来自动操作,确保FILO的嵌套顺序。MCS-51的堆栈在内 部RAM中,堆栈隐含从08H开始(SP=07H。对于有高端RAM的 CPU宜将堆栈 放到高端RAM中。单片机的堆栈主要是用于子程序与中断调用 -返回的,也可以 用于不必指定RAM单元地址的数据传送与其他特殊功能。 MCS-51程序中要限定 堆栈用于数据传送的使用,并且要严格注意堆栈操作的合理性,防止死机。XRAM不能狭义

15、认为是“外部扩展的 RAM,实际上它是通过并行总线扩展的单 元空间,可以用于扩展外部的工作IC,在80X86 (PC微机中,对应的是“扩展端口”。STC单片机中有的型号内部含有数 KB的XRAMPROM硬件上没有“写”信号,为只读性质。内容可以为机器指令代码,常数和 垃圾(没有用到的空间),0000H处不论存放什么都作为指令。MCS-51规定:无 法识别的指令都作为NOP处理。STC单片机有数十KB的内部EEPRQM复位与中 断子程序的入口地址是 PROM中的重要知识,STC扩展了几个中断(如A/D,电源 管理等),相隔8个字节,排在002BH之后。指令:指令是程序员的“武器”,用于指挥计算机

16、和与其相连的IC工作。不同的指令可以实现相同的功能,但效率(存储与执行)不同、副作用有大小。应当 选择最优的指令来编程。指令由操作码和操作数构成,分开来学习有助于提高学 习效率。指令中的寻址方式:用于提示程序员正确使用指令,并不等于指令的实际寻址方 式,如:RET/Push 等。寻址方式:立即寻址的数在指令中,不可改;直接寻址 /寄存器寻址(SFR位, 部分RAM的数在单元中,可以改,但单元不可改,以便对相同单元使用不同的 数;间接寻址(所有存储区)的单元地址在寄存器中,可以修改,以便程序访问 不同的单元。间接寻址标志,之后寄存器或寄存器之和中存的是地址, 有R0R1Dptr, A+Dpt,A

17、+P。要防止用Ri修改自身或访问不存在的空间或破坏其他单元内 容。CPU执行指令过程:1.依PC值取指令2修改PC为相邻的下一条指令地址3. 执行取到的指令所要求的任务。注意:最后一步执行指令时, PC 不在本指令的 地址处,已经移到相邻的下一条指令地址了, 这是为了连续执行指令与子程序调 用指令而设计的。第3步执行指令时可能再次修改PC的一类指令归于“控制转 移类指令”传送:数据的传送或Mov或移动,都没有修改源单元,仅是复制 Copy而已。通 过SFR的传送类指令可以实现诸多 CPU内部提供的功能。运算:运算改变数值并一定伴随着传送。 注意运算指令与标志的关系,如“带C” 运算;结果对标志

18、的影响等。多字节运算可以用 Cy来建立联系,也可以用其他 关系来建立联系。转移类指令:某些转移类指令包含了运算,如 CJNE DJNZ JBC等。注意条件转 移指令执行之前要先产生相应条件,要注意防止互串(条件成立与不成立下执行 的程序互串)。注意转子程序使用 Call类指令,子程序结束用RET注意中断 子程序结束必须用RETI指令。源程序:由纯文本的符号代码表示的文件,用于程序员编写/阅读交流/汇编后产 生目标代码/存档。CPU不能执行源程序,只能执行经过汇编/编译之后产生的目 标代码(机器语言)程序。MCS-51的程序可以用汇编语言或 C等咼级语言来编 写源程序。使用汇编语言编写的源程序可

19、以产生最精确和最高效的目标代码。C等高级语言编写的源程序可以调用程序库, 具有减少错误,便于阅读,移植性强, 编程效率高,易于实现数值计算等优点。C语言中可以嵌入汇编助记符指令。软件:程序,数据,相关说明等文档。伪指令:指挥汇编程序工作的指令,它在 CPU的程序中不存在。数值单元定义伪指令:EQU DATA BIT等,将标识名赋予数值,区别在于附加的属性,可用于区别与汇编程序的检查。DB/DW伪指令:可以在程序中安排单元与常数,或直接编写机器语言程序。ORG伪指令:告诉汇编程序,以下程序或数据从此地址开始存放。$ :源程序指令中用于表示“本处地址”。END伪指令:告诉汇编程序:源程序到此结束,

20、它不是结束指令,不表示程序到 此结束。上电复位后,CPU不会“停止”程序的执行,更不能用 END伪指令来停 止/结束程序。局部变量与全局变量(这里借用高级语言的“变量”说法):凡仅在某个子程序 中或子程序入口和出口传递数据中其含义固定的为局部变量;变量含义跨子程序不变的为全局变量。应当规定用通用寄存器(A, B, R0R7, C, Dptr)作为局 部变量,而全局变量应当用定义的 RAM单元。语法与语义:语法(格式)错可以由汇编程序检查出来;语义(逻辑)错不能由 汇编程序检查出来,只能通过调试(观察单元数值,物理效果等)检查。查错/排错:可以在仿真环境中,将子程序或程序段单独调试,赋予边界值(

21、最 大,最小)、典型值与异常值等,设置断点,观察执行效果,与正确值(效果) 比较,判断与思考是否正确,找到错误之处加以改正。典型小程序编写:通过典型小程序的编写培养编程能力,增加编程经验,累积程 序“组合拳”与模块。需要编写与锻炼的程序模块有:条件与多分支;运算;时 序控制;循环;查表;子程序,模块化编程等等。程序方法:计算方法+数据方法。单片机中常用数据表的方法。软件研发:程序具有时间复杂性,应当先明确涉及对象的性质,做必要的实验, 研究程序方法,最后再编写源程序并通过调试完善之。完整的程序:接管复位入口,没有开放的出口(即程序运行路线是封闭的)。通 常由:初始化,主循环与各种中断子程序组成。程序片段与子程序:程序片段=程序中的一部分,用来学习、锻炼、测试与调试; 子程序二具有可供调用的入口标号和从堆栈中取出返回地址返回主程序特点的程 序。非完整的程序片段与子程序调试时可以在末尾用“ SJmp$ ”将其转为完整程 序,但作为书本举例或考试就不能添加。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1