收藏 分销(赏)

单片机原理及接口技术考试必备复习资料.doc

上传人:二*** 文档编号:4575519 上传时间:2024-09-30 格式:DOC 页数:8 大小:93.50KB 下载积分:5 金币
下载 相关 举报
单片机原理及接口技术考试必备复习资料.doc_第1页
第1页 / 共8页
本文档共8页,全文阅读请下载到手机保存,查看更方便
资源描述
单片机的特点和应用 1)高集成度,体积小,高可靠性 2)控制功能强 (3)低电压,低功耗,便于生产便携式产品 (4)易扩展 (5)优异的性能价格比 。应用领域 单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1.89C51单片机内包含哪些主要逻辑功能部件?答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B (3)特殊功能寄存器:21个 (4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个。89C51的EA端有何用途?答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。 89C51的存储器分哪几个空间?如何区别不同空间的寻址?答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB) 片外RAM(MOVX)(16bits地址)(64KB) 片内RAM(MOV)(8bits地址)(256B) 简述89C51片内RAM的空间分配。答:片内RAM有256B 低128B是真正的RAM区 高128B是SFR(特殊功能寄存器)区 简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。答:片内RAM区从00H~FFH(256B) 其中20H~2FH(字节地址)是位寻址区 对应的位地址是00H~7FH 如何简捷地判断89C51正在工作?答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频 用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)因为/PSEN接外部EPROM(ROM)的/OE端子 OE=Output Enable(输出允许) 89C51 P0口用作通用I/O口输入时,若通过TTL“OC”门输入数据,应注意什么?为什么?答:要接上拉电阻,也要先置1;单片机I/O口电流太小,驱动能力弱,接上拉电阻保证电流做输入时应先置高电平然后读数。 89C51 P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么?答:P0口内部没有上拉电阻,可以用做16位地址的低8位;P3有第二功能;P2口可以用做16位地址的高8位;需要上拉电阻。OC门电路无法输出高低电平,只有靠上拉电阻才能实现。 89C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?答:(1)80C51单片机的EA信号的功能 EA为片外程序存储器访问允许信号,低电平有效;在编程时,其上施加21V的编程电压 EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。(2)在使用80C31时,EA信号引脚的处理方法。因为80C31没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,EA 信号引脚应接低电平。内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么?答:片内RAM低128单元的划分及主要功能:(l)工作寄存器组(00H~lFH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。 (2)位寻址区(20H~2FH) 从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。(3)字节寻址区(30H~7FH)从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址的方法访问。 使单片机复位有几种方法?复位后机器的初始状态如何?答:(1)单片机复位方法有:上电自动复位、按键电平复位和外部脉冲三种方式(2)复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其他一些特殊功能寄存器有影响。 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是么?CPU如何确定和改变当前工作寄存器组?答:一般开机复位后都是选择第一组通用工作寄存器作为工作寄存器的,一共有4组,分别为0.1.2.3连续位于00h到1FH地址,然后在机器中有个程序状态字PSW,它的第四和第三位RS1,RS0是用来选择工作寄存器组的,可能不同机器地址稍有不同。他们俩的值和寄存器组的关系: RS1/RS0 0/0 0/1 1/0 1/1 使用的工作寄存器 0 1 2 3 地址 00-07 08-0F 10-17 18-1F 写程序的时候就是通过定义程序状态字来选择使用不同的寄存器组。也可以直接对RS1和RS0赋值。 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?答:用不同的寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低128字节单元用字节寻址和间接寻址。具体地址为2F的第五位,即为7C。 89C51有几种低功耗方式?如何实现?答:空闲方式和掉电方式。 空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。 汇编指令格式 操作码 [目的操作数][,源操作数]寻址方式与空间    寻址方式 寻址空间 立即数寻址 程序存储器ROM 直接寻址 片内RAM低128B、特殊功能寄存器 寄存器寻址 工作寄存器R0-R7、A、B、C、DPTR 寄存器间接寻址 片内RAM低128B、片外RAM 变址寻址 程序存储器(@A+PC,@A+DPTR) 相对寻址 程序存储器256B范围(PC+偏移量) 位寻址 片内RAM的20H-2FH字节地址、部分SFR 10、访问SFR使用直接寻址,位寻址,寄存器寻址方式.访问片外RAM单元只能采用寄存器间接寻址(用MOVX指令).访问片内RAM单元低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7),高128字节:直接寻址,位寻址,寄存器寻址.访问片内外程序存储器采用变址寻址(用MOVC指令).十进制调整的原因与方法?压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H)。试编写程序,查找在内部RAM的20H~50H单元中出现0H的次数,并将查找的结果存入51H单元 MOV R2,#31H ;数据块长度→R2 MOV R0,#20H ;数据块首地址→R0 LOOP:MOV A,@R0 ;待查找的数据→A JNZ L1 ;不为0,转L1 INC 51H ;为0,00H个数增1 L1:INC R0 ;地址增1,指向下一个待查数据 DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找 RET 30、 MOV R2,#04H ;字节长度→R2 MOV R0,#30H ;一个加数首地址→R0 MOV R1,#40H ;另一个加数首地址→R1 CLR C ;清进位位 LOOP:MOV A,@R0 ;取一个加数 ADDC A,@R1 ;两个加数带进位位相加 DA A ;十进制调整 MOV @R0,A ;存放结果 INC R0 ;指向下一个字节 INC R1 ; DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找 RET 36、MOV R0,#40H ;40H→R0 MOV A,@R0 ;98H→A INC R0 ;41H→R0 ADD A,@R0 ;98H+(41H)=47H→A INC R0 MOV @R0,A ;结果存入42H单元 CLR A ;清A ADDC A,#0 ;进位位存入A INC R0 MOV @R0,A ;进位位存入43H 功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H 37 MOV A,61H ;F2H→A MOV B,#02H ;02H→B MUL AB ;F2H×O2H=E4H→A ADD A,62H ;积的低8位加上CCH→A MOV 63H,A ;结果送62H CLR A ;清A ADDC A,B ;积的高8位加进位位→A MOV 64H,A ;结果送64H 功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H 什么是中断和中断系统?其主要功能是什么?答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能的部件称为中断系统。功能:(1 使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理(2完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率(3)实现实时控制。查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断。说明外部中断请求的查询和响应过程。答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。CPU在每个S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如果查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。中断服务完毕后,CPU返回到主程序第K+1条指令继续执行。在89C51内存中,应如何安排程序区?答:主程序一般从0030H开始,主程序后一般是子程序及中断服务程序。在这个大家还要清除各个中断的中断矢量地址。89C51单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?答:有两种方式:电平触发和边沿触发。电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输入电平。若为低电平,使IE1(IE0)置“1”,申请中断;若为高电平,则IE1(IE0)清零。边沿触发方式:CPU在每个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IE1(IE0)置“1”申请中断;否则,IE1(IE0)置0。单片机内部定时方式产生频率为100KHZ等宽矩形波,假定单片机的晶振频率为12MHZ,请编程实现。答: T0低5位:1BH T0高8位:FFH MOV TMOD,#00H ;设置定时器T0工作于模式0 MOV TL0,#1BH ;设置5ms定时初值 MOV TH0,#0FFH SETB TR0 ;启动T0 LOOP:JBC TF0,L1;查询到定时时间到?时间到转L1 SJMP LOOP ;时间未到转LOOP,继续查询 L1:MOV TL0,#1BH;重新置入定时初值 MOV TH0,#0FFH CPL P1.0 ;输出取反,形成等宽矩形波 SJMP LOOP ;重复循环 89C51内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?答:89C51单片机内有两个16位定时器/计数器,即T0和T1。 T0由两个8位特殊功能寄存器TH0和TL0组成;T1由TH1和TL1组成。当T0用作模式3时,由于TR1已被T0占用,如何控制T1的开启和关闭?答:用T1控制位C/T切换定时器或计数器工作方式就可以使T1运行。定时器T1无工作模式3,将T1设置为工作模式3,就会使T1立即停止计数,关闭。以定时器/计数器1进行外部时间计数,每计数1000个脉冲后,定时器/计数器1转为定时工作方式,定时10ms后又转为计数方式,如此循环不止。假定 为6WHZ,用模式1编程。 解:T1为定时器时初值: T1为计数器时初值: 所以: L1:MOV TMOD,#50H ;设置T1为计数方式且工作模式为1 MOV TH1,#0FCH ;置入计数初值 MOV TL1,#18H SETB TR1 ;启动T1计数器 LOOP1:JBC TF1,L2 ;查询计数溢出?有溢出(计数满1000个)转L2 SJMP LOOP1 ;无溢出转LOOP1,继续查询 L2:CLR TR1 ;关闭T1 MOV TMOD,#10H ;设置T1为定时方式且工作与模式1 MOV TH1,#0ECH ;置入定时10ms初值 MOV TL1,#78H SETB TR1 ;启动T1定时 LOOP2:JBC TF1,L1;查询10ms时间到?时间到,转L1 SJMP LOOP2 ;时间未到,转LOOP2,继续查询 使用一个定时器,如何通过软硬件结合方法实现较长时间的定时答:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。已知89C51单片机的fosc=6MHz, 请利用T0和P1.0输出矩形波。矩形波高电平宽50μs,低电平宽300μs。 解:T0采用模式2作为50μs定时时的初值: 所以 作300μs定时时的初值: MOV TMOD,#02H ;设置定时器T0工作于模式2 L2:CLR P1.0 ;P1.0输出低电平 MOV TH0,#6AH ;置入定时300μs初值 MOV TL0,#6AH SETB TR0 ;启动T0 LOOP1:JBC TF0,L1;查询300μs时间到?时间到,转L1 SJMP LOOP1 ;时间未到,转LOOP1,继续查询 L1:SETB P1.0 ;P1.0输出高电平 CLR TR0 ;关闭T0 MOV TH0,#0E7H ;置入定时300μs初值 MOV TL0,# 0E7H SETB TR0 ; 启动T0 LOOP2:JBC TF0,L2 ;查询50μs时间到?时间到,转L2 SJMP LOOP2 ;时间未到,转LOOP2,继续查询 已知89C51单片机的fosc=12MHz, 用T1定时。试编程由P1.0和P1.1引脚分别输出周期为 2ms和500μs的方波。解:采用模式0作 定时初值: MOV R2,#04H ;R2为“250μs”计数器,置入初值4 CLR P1.0 ;P1.0输出低电平 CLR P1.1 ;P1.1输出低电平 MOV TMOD,#00H L2:MOV TH1,#0F8H ;置入定时250μs初值 MOV TL1,#06H SETB TR1 ;启动T1 LOOP:JBC TF1,L1 ;查询250μs时间到?时间到,转L1 SJMP LOOP ;时间未到,转LOOP,继续查询 L1:CPL P1.1;P1.1输出取反,形成周期为500μs CLR TR1 ;关闭T1 DJNZ R2,L2;“250μs”计数器减1,到1ms吗?未到转L2 CPL P1.0 ;P1.0输出取反,形成周期为2ms方波 MOV R2,#04H ;重置“250μs”计数器初值4 LJMP L2 ;重复循环  15、单片机8031的时钟频率为6MHz,若要求定时值分别为0.1ms,1ms,10ms,定时器0工作在模式0、模式1和模式2时,其定时器初值各应是多少? 解: (1)   0.1ms 模式0: T0低5位01110B=0EH T0高8位:11111110B=FEH 模式1: 模式2: (2)   1ms 模式0: T0低5位01100B=0CH T0高8位:11110000B=F0H 模式1: 模式2: 在此情况下最长定时为512μs,无法一次实现定时1ms,可用0.1ms循环10次 (3)   10ms 模式0: T0低5位11000B=18H T0高8位:01100011B=63H 模式1: 模式2:在此情况下最长定时为512μs,无法一次实现定时10ms,可用0.1ms循环100次  16、89C51单片机的定时器在何种设置下可提供三个8位计数器定时器?这时,定时器1可作为串行口波特率发生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s来考虑,则此时可选用的波特率是多少(允许存在一定误差)?设fosc=12MHz。 解:当T0为模式3,T1为模式2时,可提供3个8位定时器。 可选100b/s 、试编制一段程序,功能为:当P1.2引脚的电平上跳时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平下跳时,停止计数,并将计数值写入R6,R7。 解: MOV TMOD,#05H ;T0为计数方式且工作于模式1 JNB P1.2,$ ;等待P1.2引脚电平上跳 MOV TH0,#00H ; P1.2电平上跳,置入计数初值 MOV TL0,#00H SETB TR0 ;启动T0 JB P1.2,$ ;等待P1.2引脚电平下跳 CLR TR0 ;电平下跳,关闭T0 MOV R7,TH0 ;计数初值写入R7,R6 MOV R6,TL0 6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多机通信控制位,主要用于方式2和方式3.若置SM2=1,则允许多机通信。TB8是发送数据的第9位,在方式2或方式3中,根据发送数据的需要由软件置位或复位。它在许多通信协议中可用作奇偶校验位;在多机通信中作为发送地址帧或数据帧的标志位。RB8是接收数据的第9位,在方式2或方式3中接收到的第9位数据放在RB8位。它或是约定的奇偶校验位,或是约定的地址/数据标示位。设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工作与方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。 START:MOV SCON,#40H ;串行接口工作于方式1 MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E8H ;赋定时器计数初值 MOV TL1,#0E8H SETB TR1 ;启动定时器T1 MOV A,SBUF ;读出接收缓冲器数据 MOV SBUF,A ;启动发送过程 JNB TI,$ ;等待发送完 CLR TI ;清TI标志 SJMP $ ;结束 8、若晶振为11.0592MHz,串行口工作与方式1,波特率为4800b/s。写出用T1作为波特率发生器的方式字和计数初值。 MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0FAH ;赋定时器计数初值 MOV TL1,#0FAH 9、为什么定时器T1用作串行口波特率发生器时,常选用工作模式2?若已知系统时钟频率和通信用的波特率,如何计算其初值?答:因为工作模式2是自动重装初值定时器,编程时无需重装时间参数(计数初值),比较使用。若选用工作模式0或工作模式1,当定时器T1溢出时,需在中断服务程序中重装初值。1.微处理器,RAM,ROM,以及I/O口,定时器,构成的微型计算机称为单片机。.指令寄存器(IR)保存当前正在执行的一条指令;指令译码器(ID)对操作码进行译码。程序计数器(PC)指示出将要执行的下一条指令地址,由两个8位计数器PCH及PCL组成。2.80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器,87C51是将80C51片内的ROM换成EPROM,89C51则换成4KB的闪存FLASHROM,51增强型的程序存储器容量是普通型的2倍。89C51的组成:一个8位的80C51的微处理器,片内256字节数据存储器RAM/SFR用来存放可以读/写的数据,片内4KB程序存储器FLASHROM用存放程序、数据、表格,4个8位并行I/O端口P0-P3,两个16位的定时器/计数器,5个中断源、两个中断个优先级的中断控制系统, 一个全双工UART的串行口I/O口,片内振荡器和时钟产生电路,休闲方式和掉电方式。689C51片内程序存储器容量为4KB,地址从0000-0FFFH开始,存放程序和表格常数,片外最多可扩展64KBROM地址1000-FFFFH,片内外统一编址。单片机的内部存储空间分为数据存储器和程序存储器。7.内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)存放中间结果,数据暂存及数据缓冲。高128字节是供给特殊功能寄存器(SFR)使用的,因此称之为特殊功能寄存器区(80H~FFH),访问它只能用直接寻址。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。8. 引脚是片内外程序存储器的选择信号。当 端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当 端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于8031片内没有程序存储器,所以在使用8031时, 引脚必须接低电平。9.RST复位信号输入端,高电平有效。保持两个机器周期(24个时钟振荡周期)的高电平有效,完成复位,复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。10.ALE/ :ALE输出正脉冲,频率为振荡周期的1/6,CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号,看芯片好坏可以用示波器看ALE端是否有脉冲信号输出。PSEN程序存储允许输出信号端,也可以检查芯片好坏,有效即能读出片外ROM的指令,引脚信号RD/WR有效时可读/写片外RAM或片外I/O接口。10.P0作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。P1口有上拉电阻,对FLASHROM编程和校验是P1接收低八位地址;只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用时访问外部程序存储器和16位地址的外部数据存储器。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。P0,P1,P2,P3准双向口。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。普林斯顿结构:一个地址对应唯一的存储单元,用同类访问指令。哈佛结构:程序存储器和数据存储器分开的结构。CPU访问片内外ROM用MOVC,访问片外RAM用MOVX,访问片内RAM用MOV. RS1 RS0 当前寄存器组 片内RAM地址 0 0 第0组工作寄存器 00H~07H 0 1 第1组工作寄存器 08H~0FH 1 0 第2组工作寄存器 10H~17H 1 1 第3组工作寄存器 18H~1FH SP总是初始化到内部RAM地址07H,堆栈的操作;PUSH、POP。DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对64KB片外RAM作间接寻址。DPTR由高位字节DPH和低位字节DPL组成。 复位操作有:电自动,按键手动,看门狗。 15.空闲方式是CPU停止工作而RAM,定时器/计数器,串行口及中断系统都工作。掉电一切功能都暂停,保存RAM中内容。退出空闲方式;硬件将PCON.0清0,硬件复位。当CPU执行PCON.1为1,系统进入掉电方式。推出掉电只有硬件复位。 16.保留的存储单元 存储单元 保留目的 0000H~0002H 复位后初始化引导程序地址 0003H~000AH 外部中断0 000BH~0012H 定时器0溢出中断 0013H~001AH 外部中断1 001BH~0022H 定时器1溢出中断 0023H~002AH 串行端口中断 002BH 定时器2中断 18.AJMP和SJMP的区别有: (1) 跳转范围不同。 AJMP addr1 ;短跳转范围:2KB 。SJMP rel ;相对跳转范围:-128~+127 (2) 指令长度不同。(3) 指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。 不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC值指向的地址会不同,导致程序出现错误。在89c51片内RAM中30H)=38H,38H=40H,40H=48H,48H=90H。情分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果? MOV A,40H ;直接寻址 (40H)→A MOV R0,A ;寄存器寻址 (A)→R0 MOV P1,#0F0H ;立即数寻址 0F0→P1 MOV @R0,30H ;直接寻址 (30H) →(R0) MOV DPTR,#3848H ;立即数寻址 3848H→DPTR MOV 40H,38H ;直接寻址 (38H) →40H MOV R0,30H ;直接寻址 (30H) →R0 MOV P0,R0 ;寄存器寻址 ( R0 )→P0 MOV 18H,#30H ;立即数寻址 30H→18H MOV A,@R0 ;寄存器间接寻址 ((R0)) →A MOV P2,P1 ;直接寻址 (P1)→P2 最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:→左边是内容,右边是单元 已知R3和R4中存放有一个16位的二进制数,高位在R3中,地位在R4中,请编程将其求补,并存回原处。 MOV A,R3 ;取该数高8位→A ANL A,#80H ;取出该数符号判断 JZ L1 ;是正数,转L1 MOV A,R4 ;是负数,将该数低8位→A CPL A ;低8位取反 ADD A,#01H ;加1 MOV R4,A ;低8位取反加1后→R4 MOV A,R3 ;将该数高8位→A CPL A ;高8位取反 ADDC A,#00H;加上低8位加1时可能产生的进位 MOV R3,A ;高8位取反加1后→R3 L1: RET 已知30H和31H中村有一个16位的二进制数,高位在前,低位在后,请编程将他们乘以2,在存回原单元中。 CLR C ;清进位位C MOV A,31H ;取该数低8位→A RLC A ;带进位位左移1位 MOV 31H,A ;结果存回31H MOV A,30H ;取该数高8位→A RLC A ;带进位位左移1位 MOV 30H,A ;结果存回30H
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服