单片机习题解答
单片机课后习题答案

第一章单片机的概述【1 】1.除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器).2.单片机与通俗微型盘算机的不合之处在于其将(CPU).(存储器)和(I/O口)三部分,经由过程内部(总线)衔接在一路,集成于一块芯片上.3.在家用电器中运用单片机应属于微型盘算机的( B).A. 帮助设计运用B. 测量.控制运用C. 数值盘算运用D. 数据处理运用4.微处理器.微盘算机.微处理机.CPU.单片机.嵌入式处理器它们之间有何差别?答:微处理器.微处理机和CPU它们都是中心处理器的不合称谓,微处理器芯片本身不是盘算机.而微盘算机.单片机它们都是一个完全的盘算机体系,单片机是集成在一个芯片上的用于测控目标的单片微盘算机.嵌入式处理器一般意义上讲,是指嵌入体系的单片机.DSP.嵌入式微处理器.今朝多把嵌入式处理器多指嵌入式微处理器,例如ARM7.ARM9等.嵌入式微处理器相当于通用盘算机中的CPU.与单片机比拟,单片机本身(或稍加扩大)就是一个小的盘算机体系,可自力运行,具有完全的功效.而嵌入式微处理器仅仅相当于单片机中的中心处理器.为了知足嵌入式运用的特别请求,嵌入式微处理器固然在功效上和尺度微处理器根本是一样的,但在工作温度.抗电磁干扰.靠得住性等方面一般都做了各类加强.5.MCS-51系列单片机的根本型芯片分离为哪几种?它们的不同是什么?答:MCS-51系列单片机的根本型芯片分离为:8031.8051和8751.它们的不同是在片内程序存储器上.8031无片内程序存储器.8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM.6.为什么不应当把8051单片机称为MCS-51系列单片机?答:因为MCS-51系列单片机中的“MCS”是Intel公司临盆的单片机的系列符号,而51系列单片机是指世界各个厂家临盆的所有与8051的内核构造.指令体系兼容的单片机.7.AT89S51单片机相当于MCS-51系列单片机中哪一种型号的产品?“s”的寄义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器代替了87C51片内的4K字节的EPROM.“s”暗示含有串行下载的Flash存储器.8.什么是嵌入式体系?答:广义上讲,凡是体系中嵌入了“嵌入式处理器”,如单片机.DSP.嵌入式微处理器,都称其为“嵌入式体系”.但多半人把“嵌入”嵌入式微处理器的体系,称为“嵌入式体系”. 今朝“嵌入式体系”还没有一个严厉和威望的界说.今朝人们所说的“嵌入式体系”,多指后者.9.嵌入式处理器家族中的单片机.DSP.嵌入式微处理器各有何特色?它们的运用范畴有何不合?答:单片机体积小.价钱低且易于控制和普及,很轻易嵌入到各类通用目标的体系中,实现各类方法的检测和控制.单片机在嵌入式处理器市场占领率最高,最大特色是价钱低,体积小. DSP是一种异常善于于高速实现各类数字旌旗灯号处理运算(如数字滤波.FFT.频谱剖析等)的嵌入式处理器.因为对其硬件构造和指令进行了特别设计,使其可以或许高速完成各类庞杂的数字旌旗灯号处理算法.普遍地用于通信.收集通信.数字图像处理,电机控制体系,生物信息辨认终端,及时语音压解体系等.这类智能化算法一般都是运算量较大,特别是向量运算.指针线性寻址等较多,而这些恰是DSP的长处地点.与单片机比拟,DSP具有的实现高速运算的硬件构造及指令和多总线,DSP处理的算法的庞杂度和大的数据处理流量以及片内集成的多种功效部件更是单片机不成企及的.嵌入式微处理器的基本是通用盘算机中的CPU,它的地址总线数量较多能扩大较大的存储器空间,所以可设置装备摆设及时多义务操纵体系(RTOS).RTOS是嵌入式运用软件的基本和开辟平台.正因为嵌入式微处理器能运行及时多义务操纵体系,所以可以或许处理庞杂的体系治理义务和处理工作.是以,普遍地运用在移动盘算平台.媒体手机.工业控制和贸易范畴(例如,智能工控装备.ATM机等).电子商务平台.信息家电(机顶盒.数字电视)以及军事上的运用.第二章 AT89S511.在AT89S51单片机中,假如采取6MHz 晶振,一个机械周期为( 2µs ).2.AT89S51的机械周期等于(1个机械周期等于12)个时钟振荡周期.3. 内部RAM 中,位地址为40H.88H 的位,该位地点字节的字节地址分离为(28H )和(88H ).4.片内字节地址为2AH 单元最低位的位地址是(50H ;片内字节地址为88H 单元的最低位的位地址为88H.5.若A 中的内容为63H,那么,P 标记位的值为(0).6.AT89S51单片机复位后,R4所对应的存储单元的地址为(04H ),因上电时PSW=(00H .这时当前的工作存放器区是( 0 )组工作存放器区.7.内部RAM 中,可作为工作存放器区的单元地址为( 00H-1FH ).8.经由过程客栈操纵实现子程序挪用时,起首把( PC )的内容入栈,以进行断点呵护.挪用子程序返回时,再进行出栈呵护,把呵护的断点送回到( PC ),先弹出来的是本来( )中的内容.9.AT89S51单片机程序存储器的寻址规模是由程序计数器PC 的位数所决议的,因为AT89S51的PC 是16位的,是以其寻址的规模为(64)KB. 10.下列说法(C.D )是准确的.A.运用AT89S51且引脚1 EA 时,仍可外扩64KB 的程序存储器.( × )B.区分片外程序存储器和片外数据存储器的最靠得住的办法是看其位于地址规模的低端照样高端.( × )C.在AT89S51中,为使准双向的I ∕O 口工作在输入方法,必须事先预置为1.( √ )D.PC 可以算作是程序存储器的地址指针.( √ ) 11.下列说法(A )是准确的.A.AT89S51中特别功效存放器(SFR )占用片内RAM 的部分地址.( √ )B.片内RAM的位寻址区,只能供位寻址运用,而不克不及进行字节寻址.(×)C.AT89S51共有26个特别功效存放器,它们的位都是可用软件设置的,是以,是可以进行位寻址的.(×)D.SP称之为客栈指针,客栈是单片机内部的一个特别区域,与RAM无关.(×).12.在程序运行中,PC的值是:( C )A.当前正在履行指令的前一条指令的地址.B.当前正在履行指令的地址.C.当前正在履行指令的下一条指令的首地址.D.控制器中指令存放器的地址.13. 下列说法(A.B)是准确的.A.PC是一个不成寻址的特别功效存放器.(√)B.单片机的主频越高,其运算速度越快.(√)C.在AT89S51单片机中,1个机械周期等于1μs.(×)D.特别功效存放器SP内存放的是栈顶首地址单元的内容.(×)14. 下列说法(A.B.C)是准确的.A.AT89S51单片机进入余暇模式,CPU停滞工作.片内的外围电路仍将持续工作.(√)B.AT89S51单片机不管是进入余暇模式照样失落电运行模式后,片内RAM和SFR中的内容均保持本来的状况.(√)C.AT89S51单片机进入失落电运行模式,CPU和片内的外围电路(如中止体系.串行口和准时器)均停滞工作.(√)D.AT89S51单片机失落电运行模式可采取响应中止方法来退出.(×)15.AT89S51单片机的片内都集成了哪些功效部件?答:AT89S51单片机的片内都集成了如下功效部件:①1个微处理器(CPU);②128个数据存储器(RAM)单元 ;③4K Flash程序存储器;④4个8位可编程并行I/O口(P0口.P1口.P2口.P3口)⑤1个全双工串行口;⑥2个16位准时器/计数器;⑦1个看门狗准时器;⑧一个中止体系,5个中止源,2个优先级;⑨26个特别功效存放器(SFR),⑩1个看门狗准时器.16.解释AT89S51单片机的EA引脚接高电平或低电平的差别.答:当EA脚为高电日常平凡,单片机读片内程序存储器(4K 字节Flash)中的内容,但在PC值超出0FFFH(即超出4K字节地址规模)时,将主动转向读外部程序存储器内的程序;当EA脚为低电日常平凡,单片机只对外部程序存储器的地址为0000H~FFFFH中的内容进行读操纵,单片机不睬会片内的4K字节的Flash程序存储器.17. 64K程序存储器空间中有5个单元地址对应AT89S51单片机5个中止源的中止进口地址,请写出这些单元的进口地址及对应的中止源.答:64K程序存储器空间中有5个特别单元分离对应于5个中止源的中止办事程序进口地址,见下表:表 5个中止源的中止进口地址18.当AT89S51单片机运行出错或程序陷入逝世轮回时,若何摆脱困境?答:按下复位按钮.第三章 C511.C51在尺度C的基本上,扩大了哪几种数据类型?答:bit sbit sfr .2.C51有哪几种数据存储类型?个中“idata,code,xdata,pdata”各对应AT89C51单片机的哪些存储空间?答: (1). C51数据存储类型有: bdata, data, idata, pdata, xdata,code.(2). “idata,code,xdata,pdata”各对应的存储空间数据存储类型对应单片机存储器idata 片内RAM 00H~FFH,共256字节code ROM 0000H~FFFFH ,共64K字节xdata 片外RAM 0000H~FFFFH,共64K字节pdata 片外RAM 00H~FFH,共256字节3.bit与sbit界说的位变量有什么差别?(答案非尺度,网上凑起来的)答:bit : 编译时分派空间;sbit 只能在外部界说全局变量.bit和sbit都是C51扩大的变量类型.sbit 要在最外面界说,就是说必须界说成外部变量.sbit界说的是SFR(特别功效存放器)的bit.sbit: 指导解释性解释;bit 可以在外部或内部界说. 4.解释3中数据存储模式(1)small模式(2)compact模式(3)large模式之间的不同.答:若声明char varl,则在运用SMALL存储模式下,varl被定位在data 存储区,在运用COMPACT模式下,varl被定位在idata存储区;在LARGE模式下,varl被定位在xdata存储区中.5.编写C51程序,将片外2000H为首址的持续10个单元的内容,读入到片内部40H到49H单元中.答:程序设计思绪——采取指针的办法.选用指针px, px指向char型数据位于xdata, 赋值px=2000H 选用指针px1, px1指向char型数据位于data,赋值px1=40H 在for轮回中,*px1=*px; 并且当i++时,px++, px1++,.采取数组的办法.xdata uchar buf1[10] _at_ 0x2000data uchar buf2[10] _at_ 0x40;在for轮回中, buf2[i] = buf1[i] ;采取指针的办法参考程序如下:#define uchar unsigned charvoid main( ) // 主函数{ data uchar i;uchar xdata *px ; // 指针px,指向char型数据位于xdatauchar data *px1 ; // 指针px1,指向char型数据位于datapx=0x2000;px1=0x40;for(i=0; i<10; i++,px++,px1++)*px1=*px;while(1);}采取数组的办法参考程序如下:#define uchar unsigned charxdata uchar buf1[10] _at_ 0x2000; //位于xdata数组buf1[0]地址2000Hdata uchar buf2[10] _at_ 0x40; //位于data数组buf2[0]地址40Hvoid main( ) // 主函数{ data uchar i;for(i=0; i<10; i++)buf2[i] = buf1[i];while(1);}6.do-while组成的轮回与do-while轮回的差别是什么?答:重要差别是:while轮回的控制出如今轮回体之前,只有当while后面表达式的值非0时,才可能履行轮回体,是以有可能一次都不履行轮回体;在do-while组成的轮回中,老是先履行一次轮回体,然后再断定表达式的值,是以无论若何,轮回体至少要被履行一次.第四章运用题无答案第五章1.2.双向口和准双向口有什么差别?答:双向口与准双向口的差别主如果:准双向口I/O口操纵时做数据输入时须要对其置1,不然若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错.而双向口则不须要做此动作,因为双向口有悬浮态.准双向口就是做输入用的时刻要有向锁存器写1的这个预备动作,所以叫准双向口.真正的双向口不须要任何预操纵可直接读入读出.1:准双向一般只能用于数字输入输出,输入时为弱上拉状况(约50K上拉),端口只有两种状况:高或低.2:双向除用于数字输入输出外还可用于模仿输入输出,模仿输入时端口经由过程偏向控制设置成为高阻输入状况.双向端口有三种状况:高.低或高阻.3:初始状况和复位状况下准双向口为1,双向口为高阻状况第六章1.若存放器(IP)= 00010100B,则优先级最高者为(外部中止1),最低者为(准时器T1).2.下列说法准确的是( D ).A.各中止源发出的中止请求旌旗灯号,都邑标识表记标帜在AT89S51的IE存放器中B.各中止源发出的中止请求旌旗灯号,都邑标识表记标帜在AT89S51的TMOD存放器中C.各中止源发出的中止请求旌旗灯号,都邑标识表记标帜在AT89S51的IP存放器中D.各中止源发出的中止请求旌旗灯号,都邑标识表记标帜在A T89S51的TCON与SCON存放器中3.在AT89S51的中止请求源中,须要外加电路实现中止撤消的是( A ).A.电平方法的外部中止请求B.下跳沿触发的外部中止请求C.外部串行中止D.准时中止4.下列说法准确的是( A.C.D ).A.同一级此外中止请求按时光的先后次序响应B.同一时光同一级此外多中止请求,将形成壅塞,体系无法响应C.低优先级中止请求不克不及中止高优先级中止请求,但是高优先级中止请求能中止低优先级中止请求D.同级中止不克不及嵌套5.中止响应须要知足哪些前提?答:一个中止源的中止请求被响应,必须知足以下须要前提:(1)总中止许可开关接通,即IE存放器中的中止总许可位EA=1.(2)该中止源发出中止请求,即该中止源对应的中止请求标记为“1”.(3)该中止源的中止许可位=1,即该中止被许可.(4)无同级或更高等中止正在被办事.第七章1.假如采取的晶振频率为24MHz,准时器计数器工作在方法0.1.2下,其最大准不时光各为若干?答:方法0最长可准时16.384ms;方法1最长可准时131.072ms;方法2最长可准时512us.2.准时器.计数器作计数器模式运用时,对外界计数器频率有何限制?答:对于12振荡周期为1个机械周期的51单片机,外界旌旗灯号频率必须小于晶振频率的1/24.对于单振荡周期为1个机械周期的51单片机,外界旌旗灯号频率必须小于晶振频率(或体系时钟频率)的1/4.3.准时器.计数器的工作方法2有什么特色?实用于哪些场合?打:准时器.计数器的工作方法2具有主动答复初值的特色,实用于准确准时,比方波特率的产生.第八章1.帧格局为1个肇端位,8个数据位和1个停滞位的异步串行通信方法是方法( 1 ).2.下列选项中,( ABDE )是准确的.(A) 串行口通信的第9数据位的功效可由用户界说.(对)(B) 发送数据的第9数据位的内容在SCON 存放器的TB8位中预先预备好的.(对)(C) 串行通信帧发送时,指令把TB8位的状况送入发送SBUF 中.(错) (D )串行通信吸收到的第9位数据送SCON 存放器的RB8中保管.(对) (E )串行口方法1的波特率是可变的,经由过程准时器/计数器T1的溢出率设定.(对)3.串行口工作方法1的波特率是: (C)(A )固定的,为fosc/32. (B )固定的,为fosc/16.(C )可变的,经由过程准时器/计数器T1的溢出率设定.(D )固定的,为fosc/64. 4.在异步串行通信中,吸收方是若何知道发送方开端发送数据的?答:当吸收方检测到RXD 端从1到0的跳变时就启动检测器,吸收的值是3次持续采样,取个中2次雷同的值,以确认是否是真正的肇端位的开端,如许能较好地清除干扰引起的影响,以包管靠得住无误的开端接收数据.5.为什么准时器/计数器T1用作串行口波特率产生器时,常采取方法2?若已知时钟频率,串行通信的波特率,若何盘算装入T1的初值? 参P128答:因为准时器/计数器在方法2下,初值可以主动重装,如许在做串口波特率产生器设置时,就防止了履行重装参数的指令所带来的时光误差.设准时器T1方法2的初值为X,盘算初值X 可采取如下公式:波特率 = =的溢出率定时器1322T SMOD SMODosc 23212(256)f X ⨯- 准时器T1的溢出率=计数速度/(256-X)=fosc/[(256-X)*12] 故计数器初值为256-X = 2SMOD ×fosc/[12×32×波特率]6. 若晶体振荡器为11.0592MHZ,串行口工作于方法1,波特率为4800b/s,写出用T1作为波特率产生器的方法控制字和计数初值.答:方法1的波特率 =)256(12322X f osc SMOD-⨯= 4800 bit/s (T1工作于方法2)X=250=FAH经盘算,计数初值为FAH,初始化程序如下:ANL TMOD,#0F0H ;屏障低4位ORL TMOD,#20H ;T1准时模式工作方法2MOV TH1,#0FAH ;写入计数初值,波特率为4800b/sMOV TL1,#0FAHMOV SCON,#40H ;串行口工作于方法1解法2:由4800655361232213221=-⨯=⨯=XfToscSMODSMOD的溢出率定时器的波特率方式(T1工作于方法2)得HFFFX4655241265536480038420592.1165536==-=⨯⨯-=初始化程序如下:ORG 0000HANL TMOD,#0F0H ;屏障低4位ORL TMOD,#10H ;T1准时模式方法1MOV TH1,#0FFH ;写入计数初值,为4800b/sMOV TL1,#0F4HMOV SCON,#40H ;串行口工作于方法1 MOV PCON,#80H ;串行通信波特率加倍7.为什么AT89S51单片机串行口的方法0帧格局没有肇端位(0)和停滞位(1)?答:串行口的方法0为同步移位存放器输入输出方法,经常运用于外接移位存放器,以扩大并行I/O口,一般不必于两个MCS-51之间的串行通信.该方法以fosc/12的固定波特率从低位到高位发送或吸收数据.8.直接以TTL电平串行传输数据的方法有什么缺陷?为什么在串行传输距离较远时,常采取RS-232C.RS-422A和RS-485尺度串行接口,来进行串行数据传输.比较RS-232C.RS-422A和RS-485尺度串行接口各自的优缺陷.答:直接以TTL电平串行传输数据的方法的缺陷是传输距离短,抗干扰才能差.是以在串行传输距离较远时,常采取RS-232C.RS-422A和RS-485尺度串行接口.主如果对传输的电旌旗灯号不竭改良,如RS-232C传输距离只有几十米远,与直接以TTL电平串行传输比拟,采取了负逻辑,增大“0”.“1”旌旗灯号的电平差.而RS-422A和RS-485都采取了差分旌旗灯号传输,抗干扰才能强,距离可达1000多米.RS-422A为全双工,RS-485为半双工.第九章1.单片机存储器的重要功效是存储(程序)和(数据).2.在存储器扩大中,无论是线选法照样译码法,最终都是为了扩大芯片的片选端供给(片选)控制.3.起止规模为0000H-3FFFH的存储器的容量是(16)KB.4.在AT89S51单片机中,PC和DPTR都用于供给地址,但PC是为拜访(程序)存储器供给地址,而DPTR是为拜访(数据)存储器供给地址.5.11根地址线可选(2KB)个存储单元,16KB存储单元须要(14)根地址线.6.4KB RAM存储器的首地址若为0000H,则末地址为( 0FFF)H7.试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按次序拼装后的单字节数放入2002H.解:本题重要考核准确运用MOVX指令对外部存储器的读.写操纵.编程思绪:起首读取2001H的值,保管在存放器A中,将存放器A的高四位和低四位交换,再屏障失落低四位,然后将存放器A的值保管到30H中,然后再读取2002H的值,保管在存放器A中,屏障失落高四位,然后将存放器A的值与30H进行或运算,将运算后的成果保管在2002H中.ORG 1000HMAIN:MOV DPTR,#2001H ;设置数据指针的初值MOVX A,@DPTR ;读取2001H的值SWAP A ;A的高四位和低四位交换ANL A,#0F0H ;屏障失落低四位MOV 30H,A ;保管AINC DPTR ;指针指向下一个MOVX A,@DPTR ;读取2002H的值ANL A,#0FH ;屏障失落高四位ORL A,30H ;进行拼合MOVX @DPTR,A ;保管到2002HEND8.编写程序,将外部数据存储器中的4000H~40FFH单元全体清零.答:本题重要考核对外部数据块的写操纵;编程时要留意轮回次数和MOVX 指令的运用.ORG 1000HMAIN:MOV A,#0 ;送预置数给AMOV R0,#00H ;设置轮回次数MOV DPTR,#4000H ;设置数据指针的初值LOOP:MOVX @DPTR,A ;当前单元清零INC DPTR ;指向下一个单元DJNZ R0,LOOP ;是否停滞END9.在AT89S51单片机体系中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会产生冲突?参P159答:因为控制旌旗灯号线的不合:外扩的RAM芯片既能读出又能写入,所以平日都有读写控制引脚,记为和.外扩RAM的读.写控制引脚分离与AT89S51的和引脚相连.外扩的EPROM在正常运用中只能读出,不克不及写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为,该引脚与AT89S51单片机的相连.10.11.断定下列说法是否准确,为什么?A.因为82C55不具有地址锁存功效,是以在与AT89S51的接口电路中必须加地址锁存器B.在82C55芯片中,决议各端口编址的引脚是PA1和PA0C.82C55具有三态缓冲器,是以可以直接挂在体系的数据总线上D.82C55的PB口可以设置成方法2答:(A)错;(B)错;(C)错,82C55不具有三态缓冲器;(D)错,82C55的B口只可以设置成方法0和方法1.12.I/O接口和I/O 端口有什么差别?I/O接口的功效是什么?答:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的存放器或缓冲器.I/O 接口是指单片机与外设间的I/O接口芯片;I/O接口功效:(1) 实现和不合外设的速度匹配;(2) 输出数据缓存;(3) 输入数据三态缓冲.一个I/O 接口芯片可以有多个I/O 端口,传送数据的称为数据口,传送敕令的称为敕令口,传送状况的称为状况口.当然,其实不是所有的外设都须要三种接口齐备的I/O接口.13.I/O 数据传送有哪几种方法?分离在哪些场合下运用?答:3种传送方法: (1) 同步传送方法:同步传送又称为有前提传送.当外设速度可与单片机速度比拟较时,经常采取同步传送方法.(2) 查询传送方法:查询传送方法又称为有前提传送,也称异步传送.单片机经由过程查询得知外设预备好后,再进行数据传送.异步传送的长处是通用性好,硬件连线和查询程序十分简略,但是效力不高. (3) 中止传送方法:中止传送方法是运用AT89S51本身的中止功效和I/O接口的中止功效来实现I/O数据的传送.单片机只有在外设预备好后,发出数据传送请求,才中止主程序,而进入与外设进行数据传送的中止办事程序,进行数据的传送.中止办事完成后又返回主程序持续履行.是以,中止方法可大大进步工作效力.14.经常运用的I/O端口编址有哪两种方法?他们各有什么特色?MCS—51的I/O 端口编址采取的是哪种方法?答:两种.(1) 自力编址方法:自力编址方法就是I/O地址空间和存储器地址空间离开编址.自力编址的长处是I/O地址空间和存储器地址空间互相自力,界线分明.但却须要设置一套专门的读写I/O的指令和控制旌旗灯号.(2) 同一编址方法:这种方法是把I/O端口的存放器与数据存储器单元一致看待,同一进行编址.同一编址的长处是不须要专门的I/O指令,直接运用拜访数据存储器的指令进行I/O操纵.AT89S51单片机运用的是I/O和外部数据存储器RAM同一编址的方法.15.82C55的“方法控制字”和“PC按地位位∕复位控制字”都可以写入82C55的同一个控制存放器,82C55是若何来区分这两个控制字的?答:82C55经由过程写入控制字存放器的控制字的最高位来进行断定,最高位为1时,为方法控制字,最高位为0时,为C口的按地位位/复位控制字.第十章1.对于电流输出的D/A转换器,为了得到电压输出,应运用(由运算放大器组成的电流/电压转换电路).2.运用双缓冲同步方法的D/A转换器,可以实现多路模仿旌旗灯号的(同步)输出.3.断定下列说法是否准确?A.“转换速度”这一指标仅实用于A/D转换器,D/A转换器不必斟酌转换速度这一问题(错)B. ADC0809可以运用转换停滞旌旗灯号EOC向AT89S51发出中止请求(对)C.输出模仿量的最小变更量称为A/D转换器的分辩率(错)D. 对于周期性的干扰电压,可运用双积分型A/D转换器,并选择适合的积分元件,可以将周期性的干扰电压带来的转换误差清除.(对)4.D/A 转换器的重要机能指标有哪些?设某DAC 为二进制12 位,满量程输出电压为 5V,试问它的分辩率是若干?答:D/A转换器的重要技巧指标如下:分辩率:D/A转换器的分辩率指输入的单位数字量变更引起的模仿量输出的变更,是对输入量变更迟钝程度的描写.树立时光:树立时光是描写D/A转换速度快慢的一个参数,用于标明转换速度.其值为从输入数字量到输出达到终位误差±(1/2)GB(最低有用位)时所需的时光.转换精度:幻想情形下,精度与分辩率根本一致,位数越多精度越高.严厉讲精度与分辩率其实不完全一致.只要位数雷同,分辩率则雷同.但雷同位数的不合转换器精度会有所不合.当DAC为二进制12位,满量程输出电压为5V时,分辩率为5÷212=1.22 mV 5.A/D转换器的两个最重要指标是什么?答:A/D转换器的两个最重要指标:(1) 转换时光和转换速度——转换时光A /D完成一次转换所须要的时光.转换时光的倒数为转换速度.(2) 分辩率——A/D转换器的分辩率习惯上用输出二进制位数或BCD码位数暗示.6.剖析A/D 转换器产生量化误差的原因,一个8 位的A/D 转换器,当输入电压为0~5V 时,其最大的量化误差是若干?答:量化误差是因为有限位数字且对模仿量进行量化而引起的;最大的量化误差为0.195%;(△=+LSB/2=+1/2*5/28 =+9.77mv)7.今朝运用较普遍的A/D转换器重要有以下几种类型?它们各有什么特色?答:今朝运用较普遍的重要有以下几种类型:逐次逼近式转换器.双积分式转换器.∑-△式A/D转换器.逐次逼近型A/D转换器:在精度.速度和价钱上都适中,是最经常运用的A/D转换器件.双积分A/D转换器:具有精度高.抗干扰性好.价钱低廉等长处,但转换速度慢,近年来在单片机运用范畴中也得到普遍运用.∑-△式A/D转换器:具有积分式与逐次逼近式ADC的双重长处,它对工业现场的串模干扰具有较强的克制才能,不亚于双积分ADC,它比双积分ADC有较高的。
单片机专业试题及答案详解

单片机专业试题及答案详解一、单选题1. 单片机中的“单片”指的是什么?A. 单片存储器B. 单片处理器C. 单片集成电路D. 单片输入设备答案:C2. 下列哪个不是单片机的典型应用?A. 家用电器控制B. 汽车电子C. 个人电脑D. 工业自动化答案:C3. 8051单片机的内部RAM地址空间是多少字节?A. 128B. 256C. 512D. 1024答案:B4. 下列哪个不是单片机的I/O端口?A. P0B. P1C. P2D. P3答案:D5. 单片机的时钟频率与机器周期的关系是什么?A. 时钟频率是机器周期的12倍B. 机器周期是时钟频率的12倍C. 时钟频率是机器周期的1/12D. 机器周期是时钟频率的1/12答案:D二、多选题6. 单片机的中断系统通常包括哪些部分?A. 中断源B. 中断向量表C. 中断优先级D. 中断服务程序答案:A, B, C, D7. 单片机的串行通信中,同步方式与异步方式的区别是什么?A. 同步方式需要时钟信号B. 异步方式不需要时钟信号C. 同步方式传输速率慢D. 异步方式传输速率快答案:A, B8. 下列哪些因素会影响单片机的功耗?A. 时钟频率B. 工作电压C. 温度D. 负载电流答案:A, B, D三、简答题9. 简述单片机的最小系统包含哪些基本组件?答案:单片机的最小系统通常包括:单片机本身、时钟电路、复位电路、电源电路、以及必要的输入输出接口。
10. 描述单片机的程序存储器和数据存储器的区别。
答案:程序存储器用于存储单片机执行的程序代码,通常是只读的。
数据存储器则用于存储程序运行过程中产生的数据,包括变量、常量等,通常是可读写的。
四、计算题11. 假设一个单片机的时钟频率为12MHz,计算其一个机器周期的时间长度。
答案:机器周期时间长度 = 时钟周期× 机器周期倍数。
对于大多数单片机,一个机器周期是12个时钟周期,所以机器周期时间长度= 1/12M Hz × 12 = 1μs。
单片机复习题库(含答案)

单片机复习题库(含答案)单片机复习题库(含答案)一、单选题1. 下面哪个不是单片机的特点?A. 集成度高B. 执行速度快C. 操作简便D. 存储容量大答案:D2. 在单片机的复位电路中,常用的复位方式是:A. 程序复位B. 硬件复位C. 软件复位D. 手动复位答案:B3. 单片机中断的触发方式有以下哪几种?A. 内部触发B. 外部触发C. 软件触发D. 手动触发答案:A、B、C4. 单片机中的位操作指令是指对数据的哪一部分进行操作?A. 高字节B. 低字节C. 位D. 字节答案:C5. 单片机工作模式中,可以通过设置谁来控制单片机工作状态?A. 硬件B. 软件C. 中断D. 外部信号答案:B二、判断题1. 单片机的外部中断一般需要使用外部中断触发器。
答案:错2. 单片机的I/O口可以设置为输入、输出或者双向。
答案:对3. 单片机的Flash存储器是一种非易失性存储器。
答案:对4. 单片机的片内RAM存储器可以直接运行程序。
答案:对5. 单片机的位操作指令是指对数据的整个字节进行操作。
答案:错三、填空题1. 单片机的中断向量表一般存储在()中。
答案:ROM2. 单片机的外部中断触发方式可以选择为()或者()。
答案:上升沿触发、下降沿触发3. 单片机的位操作指令是通过()实现对数据位的读、写或者置位等操作。
答案:位地址4. 单片机的运算指令可以对()进行算术运算或者逻辑运算。
答案:寄存器中的数据5. 单片机的GPIO口是指()。
答案:通用输入输出口四、简答题1. 请简要解释单片机的中断工作原理。
答案:单片机在执行程序的过程中,可以根据外部或者内部的中断请求来暂停当前的工作,转而执行中断服务程序。
当中断请求触发时,单片机会保存当前的程序计数器和其它寄存器的状态,然后跳转到对应的中断服务程序。
该程序处理完中断事件后,再返回到原来的程序继续执行。
通过中断,可以提高单片机的响应速度和处理能力。
2. 请简要说明单片机的I/O口使用方法。
单片机习题及参考答案

习题及参考答案一、填空题1、指令格式是由操作码和操作数所组成,也可能仅由操作码组成。
2、若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC 。
3、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为MOV 。
4、若访问MCS-51的片外数据存储器,它的操作码助记符应为MOVX 。
5、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。
6、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。
7、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为1022H 。
8、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H 。
9、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。
10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。
11、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H →PC。
12、MOVX A,@DPTR源操作数寻址方式为寄存器间接寻址。
13、ORL A,#0F0H是将A的高4位置1,而低4位保持不变。
14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。
15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为2080H 。
16、MOV C,20H源寻址方式为位寻址。
17、在直接寻址方式中,只能使用8 位二进制数作为直接地址,因此其寻址对象只限于片内RAM 。
18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
19、在变址寻址方式中,以 A 作变址寄存器,以PC 或DPTR 作基址寄存器。
20、假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H 单元的内容送入累加器A中。
单片机课后习题答案

第一章计算机基础知识1-1微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3什么叫单片机?其主要由哪几部分组成?答:单片机是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或FlashROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5写出下列各数的另两种数制的表达形式(二、十、十六进制)1100010100111001000111100100100111111101101100111011011101011119862H200394E47H585249H162363F6CH291D14955D71-6写出下列各数的BCD参与:59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010389.41:001110001001.01000001第二章MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答:8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
单片机习题答案

第1章单片机概述1.除了单片机这一名称之外,单片机还可称为和 ;答:微控制器,嵌入式控制器;2.单片机与普通微型计算机的不同之处在于其将、、和 3部分集成于一块芯片上;答:CPU、存储器、I/O口;3.8051与8751的区别是 ;A.内部数据存储单元数目不同B.内部数据存储器的类型不同C.内部程序存储器的类型不同D.内部寄存器的数目不同答:C;4.在家用电器中使用单片机应属于微计算机的 ;A.辅助设计应用;B.测量、控制应用;C.数值计算应用;D.数据处理应用答:B;5.微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别答:微处理器、微处理机和CPU都是中央处理器的不同称谓;而微计算机、单片机都是一个完整的计算机系统,单片机特指集成在一个芯片上的用于测控目的的单片微计算机; 6.MCS-51系列单片机的基本型芯片分别为哪几种它们的差别是什么答:MCS-51系列单片机的基本型芯片分别是8031、8051和8751;它们的差别是在片内程序存储器上;8031无片内程序存储器,8051片内有4KB的程序存储器ROM,而8751片内集成有4KB的程序存储器EPROM;7.为什么不应当把51系列单片机称为MCS-51系列单片机答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机; 8.AT89C51单片机相当于MCS-51系列单片机中的哪一种型号的产品答:相当于MCS-51系列中的87C51,只不过是AT89C51芯片内的4KB Flash存储器取代了87C51片内的4KB的EPROM;第2章 AT89C51单片机片内硬件结构1.在AT89C51单片机中,如果采用6MHz晶振,一个机器周期为 ;答:2μs2.AT89C51单片机的机器周期等于个时钟振荡周期;答:12;3.内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为和 ;答:28H;88H;4.片内字节地址为2AH单元的最低位的位地址是;片内字节地址为88H单元的最低位的位地址是 ;答:50H;88H;5.若A中的内容为63H,那么,P标志位的值为 ;答:P标志位的值为0;6.AT89C51单片机复位后,R4所对应的存储单元的地址为,因上电时PSW= ;这时当前的工作寄存器区是组工作寄存器区;答:04H;00H;0;7.内部RAM中,可作为工作寄存器区的单元地址为 H~ H;答:00H;1FH;8.通过堆栈操作实现子程序调用,首先要把的内容入栈,以进行断点保护;调用返回时,再进行出栈保护,把保护的断点送回到 ;答:PC;PC;9.AT89C51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89C51单片机的PC是16位的,因此其寻址的范围为 KB;答:64KB;10.判断下列项说法是正确的;A.AT89C51单片机的CPU是由RAM和EPROM组成的B.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端C.在AT89C51单片机中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1D.PC可以看成是程序存储器的地址指针答: A. 错; B. 错;C. 对;D. 对;11.判断以下有关PC和DPTR的结论是正确的;A.DPTR是可以访问的,而PC不能访问B.它们都是16位寄存器C.在单片机运行时,它们都具有自动加“1”的功能D.DPTR可以分为2个8位的寄存器使用,但PC不能答:A. 对; B. 对;C. 错;D. 对;12.判断下列说法项是正确的;A.程序计数器PC不能为用户编程时直接访问,因为它没有地址B.内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用C.AT89C51单片机共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的;答:A. 对; B. 错;C. 错;13.PC的值是 ;A.当前正在执行指令的前一条指令的地址B.当前正在执行指令的地址C.当前正在执行指令的下一条指令的地址D.控制器中指令寄存器的地址答:A. 错;B. 错;C. 对;D. 错;14.判断下列说法项是正确的;A.PC是一个不可寻址的特殊功能寄存器B.单片机的主频越高,其运算速度越快C.在AT89C51单片机中,一个机器周期等于1sD.特殊功能寄存器内存放的是栈顶首地址单元的内容答:A. 对;B. 对;C. 错;D.错;15.AT89C51单片机的片内都集成了哪些功能部件各个功能部件的最主要的功能是什么11个微处理器CPU;2128个数据存储器RAM单元;34KB Flash程序存储器;44个8位可编程并行I/O口P0口、P1口、P2口、P3口;51个全双工串行口;62个16位定时器/计数器;7一个中断系统,5个中断源,2个优先级;821个特殊功能寄存器SFR;16.说明AT89C51单片机的引脚EA的作用,该引脚接高电平和低电平时各有何种功能答:当EA脚为高电平时,单片机读片内程序存储器4KB Flash,但在PC值超过0FFFH即超出4KB地址范围时,将自动转向读外部程序存储器内的程序;当EA脚为低电平时,对程序存储器的读操作只限定在外部程序存储器,地址为0000H~FFFFH,片内的4KB Flash程序存储器不起作用;17.64KB程序存储器空间有5个单元地址对应AT89C51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源;答:64KB程序存储器空间中有5个特殊单元分别对应于5个中断源的中断服务程序的入口地址,见下表;18.当AT89C51答:按下复位按钮;第3章 AT89C51单片机的指令系统1.在基址加变址寻址方式中,以作为变址寄存器,以或作为基址寄存器;答:A,PC,DPTR;2.指令格式是由和组成,也可仅由组成;答:操作码,操作数,操作码;3.假定累加器A中的内容为30H,执行指令1000H:MOVC A,A+PC后,把程序存储器单元的内容送入累加器A中;答:1031H;4.在AT89C51单片机中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址,而DPTR是为访问存储器提供地址;答:程序,数据;5.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的 ;答:地址;6.已知程序执行前有A=02H,SP=52H,51H=FFH,52H=FFH;下述程序执行后,A= ,SP= ,51H= ,52H= ,PC= ;POP DPHPOP DPLMOV DPTR,4000HRL AMOV B,AMOVC A,A+DPTRPUSH AccMOV A,BINC AMOVC A,A+DPTRPUSH AccRETORG 4000HDB 10H,80H,30H,50H,30H,50H答:A=50H,SP=50H,51H=30H,52H=50H,PC=5030H;7.假定A=83H,R0=17H,17H=34H,执行以下指令后,A= ;ANL A,17HORL 17H,AXRL A,R0CPL A答:A=0CBH;8.假设A=55H,R3=0AAH,在执行指令“ANL A,R5”后,A= ,R3= ;答:A=00H,R3=0AAH;9.如果DPTR=507BH,SP=32H,30H=50H,31H=5FH,32H=3CH,则执行下列指令后,DPH= ,DPL= ,SP= ;POP DPHPOP DPLPOP SP答:DPH=3CH,DPL=5FH,SP=50H;10.假定,SP=60H,A=30H,B=70H,执行下列指令后,SP的内容为 ,61H单元的内容为 ,62H单元的内容为 ;PUSH AccPUSH B答:SP=62H,61H=30H,62H=70H;11.判断下列说法项是正确的;A.立即寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中B.指令周期是执行一条指令的时间C.指令中直接给出的操作数称为直接寻址答:A.对;B.对; C.错;12.判断以下指令的正误;1MOV 28H,R2 2DEC DPTR 3INC DPTR 4CLR R05CPL R5 6MOV R0,R1 7PHSH DPTR 8MOV F0,C9MOV F0, 10MOVX A,R1 11MOV C,30H 12RLC R0答:1错2错3对4错5错6错7错8对9错10对11对12错;13.访问SFR,可使用哪些寻址方式答:只能使用直接寻址方式;14.下列程序段的功能是什么PUSH AccPUSH BPOP AccPOP B答:A的内容与B的内容互换;15.写出完成如下要求的指令,但是不能改变未涉及位的内容;1把,,和清“0”;2把累加器A的中间4位清“0”;3使和置“1”;答:1ANL A,87H2ANL A,0C3H3ORL A,0CH16.借助本书中的表3-2指令表,对如下指令代码十六进制进行手工反汇编;FF C0 E0 E5 F0 F0答:MOV R7,APUSH AMOV A ,BMOVX DPTR,A第4章 AT89C51单片机汇编语言程序设计1.已知程序执行前有A=02H,SP=42H,41H=FFH,42H=FFH;下述程序执行后,A= ;SP= ;41H= ;42H= ;PC= ;POP DPHPOP DPLMOV DPTR,3000HRL AMOV B,AMOVC A,A+DPTRPUSH AccMOV A,BINC AMOVC A,A+DPTRPUSH AccRETORG 3000HDB 10H,80H,30H,80H,50H,80H答: A=80H,SP=40H,51H=50H,52H=80H ,PC=8050H;2.说明伪指令的作用;“伪”的含义是什么常用伪指令的功能如何答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的控制命令;只有在汇编前的源程序中才有伪指令;所以“伪”体现在汇编后,伪指令没有相应的机器代码产生;3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念;答:1手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表“翻译”指令的方法称为手工汇编;2机器汇编:是借助于微型计算机上的软件汇编程序来代替手工汇编,完成把助记符指令“翻译”成机器代码的工作;3交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是在另一台计算机这里是单片机上运行,称这种机器汇编为交叉汇编;4反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程;4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么ORG 1000HTAB1 EQU 1234HTAB2 EQU 3000HDB "MAIN"DW TAB1,TAB2,70H答:4D 41 49 4E 12 34 30 00 00 705.设计子程序时应注意哪些问题答:在编写子程序时应注意以下问题;1子程序的第一条指令前必须有标号;2使用子程序调用指令时,有两条调用指令可供使用;①使用绝对调用指令ACALL addr11要注意,被调用的子程序的首地址与本绝对调用指令的下一条指令的高5位地址相同,即只能在同一2KB程序存储区内;②使用长调用指令LCALL addr16时,addr16为直接调用的子程序的目标地址,也就是说,被调用的子程序可放置在64KB程序存储器区的任意位置;3子程序结构中必须用到堆栈,堆栈通常用来保护断点和现场保护;4子程序返回主程序时,最后一条指令必须是RET指令;5子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的子程序;6.试编写一个程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”;答:参考程序如下:MOV A,45HANL A,0FHORL A,0FHMOV 45H,A7.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据;若有,则将51H 单元置为“01H”;若未找到,则将51H单元置为“00H”;答:参考程序如下:START: MOV R0,30HMOV R2,20HLOOP: MOV A,R0CJNE A,0AAH,NEXTMOV 51H,01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,00HEXIT: RET8.试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数,并将查找到的结果存入41H单元;答:参考程序如下:START: MOV 41H,0MOV R0,20HMOV R2,20HLOOP: MOV A,R0JNZ NEXTINC 41HNEXT: INC R0DJNZ R2,LOOPRET9.在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序,要求找出最大数存入MAX单元;答:略:10.若SP=60H,标号LABEL所在的地址为3456H;LCALL指令的地址为2000H,执行如下指令2000H LCALL LABEL后,堆栈指针SP和堆栈内容发生了哪些变化PC的值等于什么如果将指令LCALL直接换成ACALL是否可以如果换成ACALL指令,可调用的地址范围是什么答: 1SP=SP+1=61H 61H=PC的低字节=03HSP=SP+1=62H 62H=PC的高字节=20H2PC=3456H3可以42KB=2048 Byte第5章 AT89C51单片机的中断系统1.外部中断1的中断入口地址为 ;定时器1的中断入口地址为 ;答:0013H;001BH;2.若IP=00010100B,则优先级最高者为 ,最低者为 ;答:外部中断1;定时器T1;3.AT89C51单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 ,使程序执行转向中的中断地址区;答:PC、PC、程序存储器;4.判断AT89C51单片机对外中断请求源响应的最快响应时间为3个机器周期 ; 答:对;5.下列说法正确的是 ;A.各中断源发出的中断请求信号,都会标记在AT89C51单片机的IE寄存器中B.各中断源发出的中断请求信号,都会标记在AT89C51单片机的TMOD寄存器中C.各中断源发出的中断请求信号,都会标记在AT89C51单片机的IP寄存器中D.各中断源发出的中断请求信号,都会标记在AT89C51单片机的TCON与SCON寄存器中答:D;6.中断查询确认后,在下列各种AT89C51单片机运行情况下,能立即进行响应的是 ;A.当前正在进行高优先级中断处理B.当前正在执行RETI指令C.当前指令是DIV指令,且正处于取指令的机器周期D.当前指令是MOV A,R3答:D;7.在AT89C51单片机的中断请求源中,需要外加电路实现中断撤销的是 ; A.电平方式的外部中断B.脉冲方式的外部中断C.外部串行中断D.定时中断答:A;8.下列说法正确的是 ;A.同一级别的中断请求按时间的先后顺序响应B.同一时间同一级别的多中断请求将形成阻塞,系统无法响应C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D.同级中断不能嵌套答:A、C、D;9.中断服务子程序与普通子程序有哪些相同和不同之处答:RETI指令在返回时,同时清除中断系统中相应的优先级触发器,以允许下次中断,而RET指令则没有这个操作;除了这一点两条指令不同外,其他操作都相同;10.AT89C51单片机响应外部中断的典型时间是多少在哪些情况下,CPU将推迟对外部中断请求的响应答:略;11.编写外部中断1为跳沿触发的中断初始化程序段;答:SETB IT1SETB EX1SETB EA12.中断响应的条件是什么答:略;13.某系统有3个外部中断源1、2、3,当某一中断源发出的中断请求使INT1引脚变为低电平时见图5-10,便要求CPU进行处理,它们的优先处理次序由高到低为3、2、1,中断处理程序的入口地址分别为1000H、1100H、1200H;试编写主程序及中断服务子程序转至相应的中断处理程序的入口即可;答:参见电路如图5-10所示,参考程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INT_EX1ORG 0030HMAIN: CLR IT0 ;采用电平触发,低电平有效中断SETB EX1 ;允许外部中断1SETB EAWAIT: LJMP WAIT ;用原地跳转代替一段用户程序;以下为外部中断1服务子程序INT_EX1: JNB ,NEXT1 ;=0,不是3号中断,跳转NEXT1LJMP INT_IR3 ;是3号中断,跳转到对应的中断处理程序NEXT1: JNB ,NEXT2 ;=0,不是2号中断,跳转NEXT2LJMP INT_IR2 ;跳转到2号中断处理程序NEXT2: LJMP INT_IR1 ;跳转到1号中断处理程序ORG 1000HINT_IR3: 插入相应中断处理程序RETI ;中断返回ORG 1100HINT_IR2: 插入相应中断处理程序RETI ;中断返回ORG 1200HINT_IR1: 插入相应中断处理程序RETI ;中断返回第6章 AT89C51单片机的定时器/计数器1.下列项说法是正确的;A.特殊功能寄存器SCON,与定时器/计数器的控制无关B.特殊功能寄存器TCON,与定时器/计数器的控制无关C.特殊功能寄存器IE,与定时器/计数器的控制无关D.特殊功能寄存器TMOD,与定时器/计数器的控制无关答:A.对;B.;错C.错;D.错;2.如果采用的晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少答:因为机器周期所以定时器/计数器工作方式0下,其最大定时时间为同样可以求得,方式1下的最大定时时间为;方式2下的最大定时时间为1024ms; 3.定时器/计数器用作定时器模式时,其计数脉冲由谁提供定时时间与哪些因素有关答:定时器/计数器用作定时器时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供;定时时间与时钟频率和定时初值有关;4.定时器/计数器用作计数器模式时,对外界计数频率有何限制答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24;5.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式;定时1ms后,又转为计数工作方式,如此循环不止;假定AT89C51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写程序;答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作;除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,06H ;定时器/计数器T0为计数方式2MOV TL0,156 ;计数100个脉冲的初值赋值MOV TH0,156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;CPU关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,00H ;定时器/计数器T0为定时方式0MOV TH0,0FEH ;定时1ms初值赋值MOV TL0,0CHSETB EARETICOUNT: MOV TMOD,06HMOV TL0,156SETB EARETI6.定时器/计数器的工作方式2有什么特点适用于哪些应用场合答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,如波特率的产生;7.编写程序,要求使用T0,采用方式2定时,在输出周期为400μs,占空比为10∶1的矩形脉冲;答:根据题意,从输出的矩形脉冲的高低电平的时间为10∶1,则高低电平的时间分别为μs和μs;如果系统采用6MHz晶振,Tcy=2μs,因此高低电平输出取整,则约为364μs 和36μs;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,02H ;定时器/计数器T0为定时方式2MOV TL0,4AH ;定时364s初值赋值SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断SETBWAIT: AJMP WAITIT0P: CLR EACLR ;关中断MOV R0,9DLY: DJNZ R0,DLY ;延时36sMOV TL0,4AH ;定时364s初值赋值SETBSETB EARETI8.一个定时器的定时时间有限,如何用两个定时器的串行定时来实现较长时间的定时答:方法1,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器;这种方式的定时时间为两个定时器定时时间的和;方法2,一个作为定时器,在定时中断后产生一个外部计数脉冲比如由接INT0产生,另一个定时器工作在计数方式;这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值;9.当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭答:由T1口控制定时器T1的启动和关闭;10.定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少答:采用方式1定时工作方式;最大脉冲宽度为;11.编写一段程序,功能要求:当引脚的电平正跳变时,对的输入脉冲进行计数;当引脚的电平负跳变时,停止计数,并将计数值写入R0、R1高位存R1,低位存R0;答:将的输入脉冲接入INT0,即使用T0计数器完成对口的脉冲计数;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: JNB ,MAINMOV TMOD,05H ;定时器/计数器T0为计数方式1SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断WAIT: JB ,WAITCLR EACLR TR0MOV R1,TH0MOV R0,TL0AJMP $IT0P: INC R2RETI12.TH x与TL xx=0,1是普通寄存器还是计数器其内容可以随时用指令更改吗更改后的新值是立即刷新还是等当前计数器计满后才能刷新答:THx与TLxx=0,1是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值立即刷新;但在读THx、TLx值时,应该先读THx值,后读TLx,再读THx值;若两次读得THx值相同,则可确定读得的内容正确;若前后两次读得的THx值有变化,再重复上述过程;第7章 AT89C51单片机的串行口1.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式 ; 答:1;2.在串行通信中,收发双方对波特率的设定应该是的;答:相等;3.下列选项中, 是正确的;A.串行口通信的第9数据位的功能可由用户定义B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定答:A对B对C错D对E对;4.通过串行口发送或接收数据时,在程序中应使用 ;A.MOVC指令 B.MOVX指令C.MOV指令D.XCHD指令答:CMOV指令;5.串行口工作方式1的波特率是 ;A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64答:C;6.在异步串行通信中,接收方是如何知道发送方开始发送数据的答:当接收方检测到RXD引脚上的有效的负跳变时,即可知道发送方开始发送数据; 7.串行口有几种工作方式有几种帧格式各种工作方式的波特率如何确定答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率;方式1的波特率=2SMOD/32×定时器T1的溢出率;方式2的波特率=2SMOD/64×fosc;方式3的波特率=2SMOD/32×定时器T1的溢出率;8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”42H的帧格式;答:传送的字符“B”的帧格式如图所示先低位后高位;起始位 0 1 0 0 0 0 1 0 校验位停止位图9.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2若已知时钟频率、通信波特率,如何计算其初值答:1因为定时器/计数器在方式2下,初值可以自动重装,这样在进行串口波特率发生器设置时,就避免了重装参数的操作,且减少了重装参数的误差;2已知时钟频率、通信波特率,根据公式7-3,即可计算出初值;10.若晶体振荡器为,串行口工作于方式1,波特率为4 800bit/s,写出用T1作为波特率发生器的方式控制字和计数初值;答:经计算,初值为FAH;控制字: ANL TMOD,0F0HORL MOD,20HMOV TH1,0FAHMOV TL1,0FAHMOV SCON,40H11.简述利用串行口进行多机通信的原理;答:以方式1为例;发送过程:数据位由TXD端输出,发送1帧信息为10位,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送;发送开始时,内部发送控制信号SEND变为有效,将起始位向TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位;8位数据位全部输出完毕后,置1中断标志位TI,然后SEND信号失效;接收过程:当检测到起始位的负跳变时,则开始接收;接收时,定时控制信号有2种;其中一种是位检测器采样脉冲,它的频率是RX时钟的16倍;也就是在1位数据期间,有16个采样脉冲,以波特率的16倍速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误地开始接收数据;12.使用AT89C51的串行口按工作方式1进行串行数据通信,假定波特率为2 400bit/s,以中断方式传送数据,请编写全双工通信程序;答:请参考教材的P115-P117程序,并作适当改动;13.某AT89C51单片机串行口,传送数据的帧格式由1个起始位0、7个数据位、1个偶校验和1个停止位1组成;当该串行口每分钟传送1800个字符时,试计算出它的波特率; 答:串口每秒钟传送的字符为1800/60=30个字符/秒,所以波特率为30个字符/秒×10位1个字符=300b/s;14.为什么AT89C51单片机串行口的方式0帧格式没有起始位0和停止位1答:串行口的方式0为同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个89C51之间的串行通信;该方式以fosc/12的固定波特率从低位到高位发送或接收数据;15.直接以TTL电平串行传输数据的方式有什么缺点答:优点是连线简单,缺点是抗干扰性能差,传输距离短;第8章 AT89C51单片机扩展存储器的接口设计1.单片机存储器的主要功能是存储和 ;答:程序,数据;2.假设外部数据存储器2000H单元的内容为80H,执行下列指令后累加器A中的内容为 ;MOV P2,20HMOV R0,00HMOVX A,R0答:80H;3.在存储器扩展中,无论是线选法还是译码法最终都是为扩展芯片的片选端提供控制信号;答:片选;4.起止范围为0000H~3FFFH的存储器的容量是 KB;答:16KB5.在AT89C51单片机中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址,而DPTR是为访问存储器提供地址;答:程序,数据;6.11条地址线可选个存储单元,16KB存储单元需要条地址线;答:2KB,14;7.4KB RAM存储器的首地址若为0000H,则末地址为 H;答:0FFFH;8.区分AT89C51单片机片外程序存储器和片外数据存储器的最可靠方法是 ; A.看其位于地址范围的低端还是高端B.看其离AT89C51单片机芯片的远近C.看其芯片的型号是ROM还是RAMD.看其是与RD信号连接还是与PSEN信号连接答:D;9.试编写一个程序如将05H和06H拼为56H,设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H;答:本题主要考察对外部存储器的读、写操作的编程,只要正确使用MOVX指令就可以了;编程思路:首先读取2001H的值,保存在寄存器A中,将寄存器A的高4位和低4位互换,再屏蔽掉低4位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高4位,然后将寄存器A的值与30H进行“或运算”,将运算后的结果保存在2002H中;ORG 0000HMAIN: MOV DPTR,2001H ;设置数据指针的初值MOVX A,DPTR ;读取2001H的值SWAP AANL A,0F0H ;屏蔽掉低4位MOV 30H,A ;保存AINC DPTR ;指针指向下一个片外RAM单元MOVX A,DPTR ;读取2002H的值ANL A,0FH ;屏蔽掉高4位ORL A,30H ;进行拼装MOVX DPTR,A ;保存到2002H片外RAM单元END10.编写程序,将外部数据存储器中的4000H~40FFH单元全部清“0”;答:本题主要考察对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了;ORG 0000HMAIN: MOV A,0 ;0给AMOV 0,0FFH ;设置循环次数MOV DPTR,4000H ;设置数据指针的初值LOOP: MOVX DPTR,A ;当前单元清“0”INC DPTR ;指向下一个单元DJNZ R0,LOOP ;是否结束END11.在AT89C51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突答:因为控制信号线的不同;外扩的RAM芯片既能读出又能写入,所以通常都有读、写控制引脚,记为OE和WE,它们分别与89C51的RD和WR引脚相连;外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与89C51单片机的PSEN相连;12.请写出图8-14中4片程序存储器27128各自所占的地址空间;答:图中采用了译码法;4片地址分别为0000H~3FFFH、4000H~7FFFH、8000H~BFFFH、C000H~FFFFH;。
单片机考试题及答案

单片机考试题及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是:A. CPUB. MCUC. ROMD. RAM答案:B2. 下列哪个不是单片机的组成部分?A. 中央处理器B. 存储器C. 输入/输出接口D. 显示器答案:D3. 8051单片机的内部RAM是:A. 128字节B. 256字节C. 512字节D. 1024字节答案:B4. 单片机的程序存储器通常使用的是:A. RAMB. ROMC. EPROMD. EEPROM答案:C5. 单片机的I/O口可以配置为:A. 只读B. 只写C. 推挽输出D. 开漏输出答案:D6. 下列哪个不是单片机的中断源?A. 定时器溢出B. 外部中断C. 串行通信D. 显示器答案:D7. 8051单片机的定时器/计数器的计数范围是:A. 0到255B. 0到511C. 0到1023D. 0到2047答案:A8. 单片机的看门狗定时器的主要作用是:A. 计时B. 计数C. 监视程序运行D. 控制I/O口答案:C9. 下列哪个不是单片机的常用编程语言?A. C语言B. 汇编语言C. Java语言D. C++语言答案:C10. 单片机的I/O口的模式设置通常包括:A. 推挽输出B. 开漏输出C. 上拉输入D. 以上都是答案:D二、填空题(每题2分,共20分)1. 单片机的CPU主要由______、______和______组成。
答案:算术逻辑单元、控制单元、寄存器组2. 单片机的______存储器用于存储程序代码。
答案:程序3. 8051单片机的定时器/计数器有______个。
答案:24. 单片机的中断优先级可以通过______寄存器来设置。
答案:IP5. 单片机的______模式可以减少功耗。
答案:睡眠6. 单片机的______接口允许单片机与外部设备进行数据交换。
答案:I/O7. 单片机的______寄存器用于存储程序计数器的值。
答案:PC8. 单片机的______功能可以防止程序死循环。
单片机原理及应用试题含参考答案

单片机原理及应用试题含参考答案一、单选题(共54题,每题1分,共54分)1.用8051的定时器T1作定时方式,用模式1,则工作方式控制字为A、05HB、50HC、01HD、10H正确答案:D2.用8051的定时器,若用软启动,应使TOMD中的A、GATE位置1B、C/T位置1C、GATE位置0D、C/T位置0正确答案:C3.4K程序存储器常用的芯片是EPROM是():A、2716B、2732C、2764D、27128E、27256F、27512正确答案:B4.已知(A)=59H,(SP)=32H,(32H)=6CH,执行指令POPACC后SP的内容为():A、59HB、32HC、6CHD、31H正确答案:D5.执行中断处理程序最后一句指令RETI后,A、程序返回到ACALL的下一句B、程序返回到LCALL的下一句C、程序返回到主程序开始处D、程序返回到响应中断时一句的下一句正确答案:D6.8051单片机的定时器T1用作定时方式时是A、由内部时钟频率定时,一个机器周期加1B、由外部时钟频率定时,一个时钟周期加1C、由内部时钟频率定时,一个时钟周期加1D、由外部时钟频率定时,一个机器周期加1正确答案:A7.型号为2764的EPROM容量是():A、2KBB、4KBC、8KBD、16KB正确答案:C8.已知(A)=7FH,(PSW)=00H,当执行RRCA指令后A的内容为():A、FEHB、FFHC、3FHD、BFH正确答案:C9.MOVC,bit是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令正确答案:E10.A7H和5BH两个立即数相加后,和为(),(CY)是()。
A、1CH,0B、C1H,0C、02H,1D、C1H,1正确答案:C11.DJNZdirect,rel是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令正确答案:D12.执行程序:MOVDPTR,#8000HMOVXA,@DPTRADDA,20HMOVR0,#00HMOVx@R0,AINCR0CLRAADDCA,#00HMOVx@R0,ARET之后则CY 是()A、0B、1C、-1D、2正确答案:A13.MCS-51指令系统中,指令ADDA,R0执行前(A)=86H,(R0)=7AH,(C)=0执行后,其结果为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H
;采用中断方式的程序
LJMP MAIN
ORG 000BH AJMP T0ISR ORG 0030H MAIN:MOV SP,#30H
;跳转至主程序
;T0中断向量地址
;调整堆栈指针 ;设置T0工作于模式1 ;T0定时初值(-25的补码) ;打开全局中断和T0中断 ;启动T0
MOV TMOD,#01H MOV TH0,#0FFH MOV TL0,#0E7H MOV IE,#82H SETB TR0 SETB P1.0
500ms 2ms 255
MOV DPTR,#7FFFH ;指向0832 端口地址 MOV A,#00H ;第一个波形的起始值为0V LP1: MOVX @DPTR,A ;输出前半周期 ACALL DELAY2 ;调2ms 延时子程序 INC A ;修改输出值,即幅值增加0.2V JNZ LP1 LP2: DEC A; 输出后半周期 MOVX @DPTR,A ;输出数据到DAC 0832 ACALL DELAY2 ;调2ms 延时子程序 JNZ LP2 SJMP LP1
12.10 已知51系列单片机系统的晶振频率为6MHz,请 编写程序,使用T0定时,在P1.0输出连续矩形波, ORG 0000H ;采用查询方式的程序 MAIN:MOV TMOD,#01H ;设置T0工作于模式1 SETB TR0 ;启动T0 WAIT0:SETB P1.0 MOV TH0,#0FFH ;T0计数初值(计数25,定时50us) MOV TL0,#0E7H WAIT1:JNB TF0,WAIT1 CLR TF0 CLR P1.0 MOV TH0,#0FFH ;T0计数初值(计数75,定时150us) MOV TL0,#0B5H WAIT2:JNB TF0,WAIT2 CLB F0
平)
;“输出电平标志”置1(输出高电
ORG 0100H T0ISR: JNB F0,L1 MOV TH1,#0FFH
;定时器T0中断服务程序 ; T0计数初值(-75的补码)
MOV TL1,#0B5H
CLR P1.0 CLR F0
;“输出电平标志”置1(输出低电平) ;T0定时初值(-25的补码)
10.3 判断下列说法是否正确。
(1)DPTR可以分为2个8位的寄存器使用,但PC不行。( 对 ) (2)片内RAM的位寻址区,只能供位寻址使用,不能供字节寻址 使用。 (3)为使8051单片机的准双向I/O口工作在输入方式,必须将它预 先设置为1。 ( 对 ) (4)在8051单片机中,一个机器周期等于1µ s。 (5)串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。 (6)特殊功能寄存器IE,与定时器/计数器的控制无关。 (7)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 (8)8051单片机的CPU是由RAM和EPROM组成的。 (9)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出 率设定。 ( 对 ) (10)在8051的中断请求中,需外加电路实现中断请求撤销的是外 部串行中断。
MOV R0,A ANL A,#0F0H ANL P2,#0FH ORL P2,A MOV A,R0
11.14
编写程序实现十进制减法,计算65-32
ORG 0100H CLR C
MOV A,#9AH
SUBB A , #32H
ADD A , #65H
DA A
CPL C
11.15 试编写程序,将内部RAM以BK为起始 地址的10个单元中的数据求和,并将结果送入 SUM单元。设和不大于255 MOV R0,#BK MOV R7,#0AH CLR A LOOP:ADD A,@R0 INC R0 DJNZ R7,LOOP MOV SUM,A SJMP $
MOV IE,#96H SETB PX1 CLR IT1 CLR PT0 SETB PS
13.8 欲利用DAC 0832 和8031 组成的单片机应用系统 产生一个等腰三角形的波形,要求周期为1 秒、幅值 为+5V,试画出DAC 0832 与8031 的接口电路,并编 写相关的程序。(参考P339 例13.8)
无关的地址线取1,则DAC0832对应的端口地址为7FFFH,
将A内容送DAC 0832即可启动转换。
利用图示电路,产生等腰三角波,因数字量00~FFH对应 的模拟量为0V~5V,则每一步对应的模拟量为: 5V - 0V = 0. 0196 0. 02V /步 255
而等腰三角波的半周期为500ms,每一步上升的时间为:
SJMP L2
L1:MOV TH0,#0FFH MOV TL0,#0E7H
SETB P1.0
SETB F0 L2:RETI END
;“输出电平标志”置1(输出高电平)
12.11 编写中断初始化程序,将 INT1设为高优 先级中断、电平触发方式;T0溢出中断设为低优 先级中断,串行口中断为高优先级中断,其余中 断源设为禁止状态。
;被减数起始地址送R0 ;减数起始地址送R1 ;字长送R2
;被减数送A ;相减,形成Cy ;存差 ;修改被减数地址指针 ;修改减数地址指针 ;若未完,则转LOOP
12.8 片内RAM 20H单元开始存放着8个无符号数,编
写子程序找出其中的最大值送入片内RAM的30H单元 MOV R0,#20H MOV A,@R0 MOV R7,#07H LOOP:INC R0 MOV 30H,@R0 CJNE A,30H,CHK CHK:JNC LOOP1 MOV A,@R0 LOOP1:DJNZ R7,LOOP MOV 30H,A RET ;数据区首地址送R0 ;取第一个数做基准数送A ;比较次数送计数器R7 ;指向下一个单元 ;要比较的数暂存30H ;两数作比较 ;A大,则转移 ;A小,则大数送A ;计数器减1,不为零,继续 ;比较完,存结果
12.7 已知片内RAM 20H和30H为起始地址的存储区中分别有8 字节无符号被减数和减数(低字节在前,高字节在后)。编写子程序 完成减法运算,并把差放入以20H为起始地址的存储单元中
BUBTR: MOV R0,#20H MOV R1,#30H MOV R2,#08H CLR C LOOP:MOV A,@R0 SUBB A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP RET
11.7 已知:40H单元中有一个正数X,试写出 对X求补的程序。
答:对一个8位带符号二进制机器数的求补 可以定义为“求反加1”。相应程序为: MOV A,40H 亦可: CLR A CPL A CLR C INC A SUBB A,40H MOV 40H,A MOV 40H,A
11.8 试编程将A中的高四位送入P2口的高四 位,P2口低四位不变。
(3) RLC A JC NEG
比较A,B中两个带符号数大小的子程序COMPAB 入口:两个要比较大小的带符号数分别送入A,B 出口:A-B后,若A>B,则01H→A; A=B,则00H→A ; A<B,则80H→A COMPAB:CLR C SUBB A, B JZ L3 ;A=B,则转L3 JB OV,L0 ;若溢出则转L0 JB A.7,L1 ;未溢出,且结果为负数(A<B)转L1 SJMP L2 ;未溢出, 且结果为正数(A>B)转L2 L0: JB A.7,L2 ;溢出且结果为负数,(A>B)转L2 L1:MOV A, #80H ;溢出且结果为正,置A<B的标志 SJMP L3 L2:MOV A, #01H ; 置A>B的标志 L3:RET
一、判断一个数(例如:累加器A)是否为零:
(1)JZ ZERO (2) CJNE A , #00H , NZERO
二、判断一个数(例如:累加器A)是否为负数: (1) JB A· 7,NEG (2) CJNE A , #80H , NEXT NEXT:JNC NEG (4) ANL A, #80H JNZ NEG
12.2 已知一个补码形式的16位二进制数(低8位在 NUM单元,高8位在NUM+1单元),试编程求出该16位 二进制数的绝对值,并存放在原单元中。 MOV A,NUM+1 JNB ACC.7,DONE MOV R0,#NUM MOV A,@R0 CPL A ADD A,#01H MOV @R0,A INC R0 MOV A,@R0 CPL A ADDC A,#00H MOV @R0 A DONE:SJMP $
10.10 系统复位后执行下述指令,试问T0的定时 时间为多长? MOV TH0, #06H MOV TL0, #00H SETB TR0
答: 系统复位后,TMOD=00H,此时T0工作为方 式0、定时器初值为:TH0=06H,TL0=00H, 因为采用方式0工作,丢掉TL0的高3位,则 THL0中的二进制数为:0,0000,110 0,0000即变为 00C0H,则有: T0的定时时间为: (213-C0H)*Tcy = (8192-192)*Tcy = 8000*Tcy µ S。
10.12 若单片机系统的晶振频率为11.0592MHz, 串行口工作于方式1,波特率为4800b/s,请写出
T1作为波特率发生器的方式控制字和计数初值。
答:串行口工作于方式1,晶振频率为11.0592MHz,
由教材P.256的公式计算,或由表10.8查阅可知, TH1=FAH。即:
方式控制字 :TMOD=20H, 计数初值:TH1=TL1=FAH (SMOD=0); 。 或: TH1=TL1=F4H (SMOD=1)。