单片机习题_完成程序
单片机原理及应用习题及参考答案

单⽚机原理及应⽤习题及参考答案《单⽚机原理及应⽤》复习题⼀、选择题1、MCS-51响应中断时,下⾯哪⼀个条件不是必须的()(A)当前指令执⾏完毕(B)中断是开放的(C)没有同级或⾼级中断服务(D)必须有RETI2、执⾏PUSH ACC指令,MCS-51完成的操作是()(A)SP+1→SP,(ACC)→(SP);(B)(ACC)→(SP),SP-1→SP(C)SP-1→SP,(ACC)→(SP);(D)(ACC)→(SP),SP+1→SP3、89C51是()(A)CPU (B)微处理器(C)单⽚微机(D)控制器4、关于MCS-51的堆栈操作,正确的说法是()(A)先⼊栈,再修改栈指针(B)先修改栈指针,再出栈(C)先修改栈指针,再⼊栈(D)以上都不对5、MOV C,#00H的寻址⽅式是()(A)位寻址(B)直接寻址(C)⽴即寻址(D)寄存器寻址6、必须进⾏⼗进制调整的⼗进制运算()(A)有加法和减法(B)有乘法和除法(C)只有加法(D)只有减法7、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H 当执⾏完左边的程序后,PC的值是()(A)0040H (B)0041H (C)0042H (D)0043H 8、MCS-51复位时,下述说法正确的是()(A)(20H)=00H (B)SP=00H (C)SBUF=00H (D)TH0=00H9、可以为访问程序存储器提供或构成地址的有()(A)只有程序计数器PC (B)只有PC和累加器A(C)只有PC、A和数据指针DPTR (D)PC、A、DPTR和SP10、对程序存储器的读操作,只能使⽤()(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令11、下⾯哪种设备不是输⼊设备()(A)A/D转换器(B)键盘(C)打印机(D)扫描仪12、要访问MCS-51的特殊功能寄存器应使⽤的寻址⽅式是()(A)直接寻址(B)寄存器间接寻址(C)变址寻址(D)相对寻址13、执⾏MOVX A,@DPTR指令时,MCS-51产⽣的控制信号()(A)/PSEN (B)ALE (C)/RD (D)/WR14、下⾯哪种指令将MCS-51的⼯作寄存器置成3区()(A)MOV PSW,#13H (B)MOV PSW,#18H(C)SETB PSW.4 CLR PSW.3 (D)SETB PSW.3 CLR PSW.415、各中断源发出的中断请求信号,都会标记在MCS-51系统的()(A)TMOD (B)TCON/SCON (C)IE (D)IP16、在中断服务程序中,⾄少应有⼀条()(A)传送指令(B)转移指令(C)加法指令(D)中断返回指令17、ORG 2000HLCALL 3000H0RG 3000HRET 左边程序执⾏完RET指令后,PC= ()(A)2000H (B)3000H (C)2003H (D)3003H18、下⾯哪种外设是输出设备()(A)打印机(B)纸带读出机(C)键盘(D)A/D转换器19、下⾯哪⼀个部件不是CPU的指令部件()(A)PC (B)IR (C)PSW (D)ID20、以下运算中对溢出标志OV没有影响或不受OV影响的运算是()(A)逻辑运算(B)符号数加减法运算(C)乘法运算(D)除法运算21、以下指令中,属于单纯读引脚的指令是()(A)MOV P1,A (B)ORL P1,#0FH(C)MOV C,P1.5 (D)DJNZ P1,short-lable⼆、填空题1、⼀个机器周期= 时钟周期,⼀个时钟周期= 振荡周期,⼀个振荡周期= 节拍。
单片机习题及参考答案

习题及参考答案一、填空题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、关于MCS-51的堆栈操作,正确的说法是( )A、先入栈,再修改栈指针B、先修改栈指针,再出栈C、先修改栈指针,在入栈D、以上都不对答案:C2、已知(A)=59H,(R0)=30H,(30H)=6CH,执行指令XCHD A,@R0后,R0的内容为():A、59HB、30HC、6CHD、5CH答案:D3、当RS1RS0=10时,Rn的地址是():A、08H~0FHB、00H~07HC、18H~1FHD、10H~17H答案:D4、单片机应用程序一般存放在()。
A、RAMB、ROMC、CPUD、寄存器答案:B5、OV(PSW.2)的定义是()A、溢出标志位B、用户标志位C、进位标志位D、寄存器组选择位E、辅助进位标志位F、奇偶标志位答案:A6、RST引脚功能是()A、外部程序存储器读选通信号B、访问程序存储控制信号C、+5 V电源D、复位信号答案:D7、汇编结束指令是():A、ENDB、EQUC、ORGD、BIT答案:A8、执行下面一段程序; MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B A , B的内容是:(A)= (B)=A、(A)=00H (B)=10HB、(A)=01H (B)=10HC、(A)=01H (B)=12HD、(A)=00H (B)=13H答案:B9、INTEL 8051 CPU是()位的单片机.A、16B、4C、8D、32答案:C10、ANL C, bit 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:E11、下列指令能使累加器A低4位不变,高4位置F的是()A、ANL A,#OFHB、ANL A,#OFOHC、ORL A,#OFHD、ORL A,#OF0H答案:D12、指令MOVC A,@A+DPTR 源操作数的寻址方式是():A、寄存器寻址B、直接寻址C、立即数寻址D、寄存器间接寻址E、变址寻址F、相对寻址G、位寻址答案:E13、8031单片机的内部主要组成部分不包含():A、CPUB、I/O接口C、ROMD、定时计数器答案:C14、已知(A)=50H,(R0)=30H,(30H)=6CH,执行指令MOV A,@R0后,A的内容为():A、50HB、30HC、6CHD、00H答案:C15、一个具有4K字节的程序放在首地址为5000H的存贮区,则末地址为():A、5F00HB、5FFFHC、6000HD、6FFFH答案:B16、INC direct 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:B17、已知(A)=88H,(PSW)=80H,执行指令SUBB A,#66H后PSW的内容为():A、C4HB、04HC、C0HD、00H答案:B18、哪个不是常用的晶振频率():A、11.0592MHzB、12MHzC、3MHzD、6MHz答案:C19、( )指令是MCS-51指令系统中执行时间最长且长达8 us的。
2021年单片机程序题库

1.实现片外数据存储器数据传送(H)-->(2100H)MOV DPTR,#HMOVX A,@DPTRMOV DPTR,#2100HMOVX @DPTR,A2.查表法求Y=X2。
设X(0≤X≤15)在片内RAM20H单元中,规定查表求Y,存入片内RAM 21H单元。
1) ORG 1000HSQU: MOV DPTR,#3000H ;拟定表首地址(基地址)MOV A,20H ;取X(变量:偏移量)MOVC A,@A+DPTR ;查表求Y=X2MOV 21H,A ;保存Y(成果)RET ;子程序结束…;其他程序段ORG 3000H ;常数表格首地址TAB:DB 00,01,04,09,…,225 ;平方表END2)ORG 1000H ;程序起始地址SQU: MOV A,20H ;取XADD A,#3 ;修正偏移量MOVC A,@A+PC ;查表求Y=X2 (PC=1005H)MOV 21H,A ;存成果RET ;子程序结束TAB: DB 00,01,04 …;平方表DB 09,…,2253.分析下面程序MOV R0,#0C8H;(R0)=200CLR P1.7;P1.7为低电平LOOP:CPL P1.7;P1.7变反(1 µs )NOP;(1 µs )NOP;(1 µs )DJNZ R0,LOOP;(R0)≠0 则转(2µs)4.设计一种延时10ms延时子程序,已知单片机使用晶振为6MHZ。
机器周期数ORG 0020H1 MOV R0,#0AH ;外循环10次1 DL2:MOV R1,#MT ;内循环MT次1 DL1:NOP1 NOP ;空操作指令2 DJNZ R1,DL12 DJNZ R0,DL2RET内循环DL1到指令DJNZ R1,DL1 计算:(1+1+2)ⅹ2μsⅹMT=1000μs MT=125=7DH 总延时时间:{1+[1+(1+1+2)ⅹ125+2]ⅹ10}ⅹ2μs=10.062ms 5.试计算延时程序执行时间DELAY:MOV R6,#64H (=100) 1I1:MOV R7,#0FFH(=255)1I2:DJNZ R7,I2 2DJNZ R6,I1 2RET 2延时时间计算:(设时钟fOSC=12MHz)T=1ust=(1×1+1×100+2×100×255+2×100+2×1)×T= 51.303 ms6. DELAY:MOV R6,#100 1D1:MOV R7,#10 1D2:NOP 1DJNZ R7,D2 2 t=6.606 msDJNZ R6,D1 2RET 2计算延时程序执行时间(设时钟fOSC=6MHz,T=2us)。
80c51单片机习题与解答

80c51单片机习题与解答单片机作为一种嵌入式计算机芯片,具有体积小、功耗低、性能高的特点,被广泛应用于各个领域。
本文将针对80C51单片机进行一些常见的习题及其解答,旨在帮助读者更好地理解和掌握该单片机的应用。
1. 习题一:如何将80C51的IO口设为输入模式?解答:在80C51的寄存器中,P1是一个8位的数据口,可以通过以下操作将其设为输入模式:```assemblyMOV P1, #0FFH ;将P1口设置为输入模式```2. 习题二:如何用80C51实现定时器功能?解答:80C51具有一个可编程的定时器/计数器,可以通过以下步骤实现定时器功能:- 配置定时器的控制寄存器,选择定时器模式和工作方式;- 设置定时器的初始值;- 启动定时器;- 在定时器溢出时中断或轮询检测。
3. 习题三:如何使用80C51的串口通信功能?解答:80C51具有一个串行通信口(UART),可以通过以下步骤使用串口通信功能:- 配置串口控制寄存器,设置通信参数,如波特率、数据位数、停止位等;- 发送数据时,将要发送的数据写入SBUF寄存器;- 接收数据时,通过中断或轮询的方式读取SBUF寄存器中的数据。
4. 习题四:80C51的中断优先级如何设置?解答:80C51的中断有两级优先级:高优先级和低优先级。
优先级高的中断在发生时会立即被响应,而优先级低的中断则需要等待高优先级中断完成后才能响应。
中断优先级可通过设置中断控制寄存器来实现。
5. 习题五:如何通过80C51实现脉冲宽度调制(PWM)输出?解答:通过80C51的定时器功能和IO控制,可以实现脉冲宽度调制输出。
具体步骤如下:- 配置定时器为PWM模式;- 设置定时器的初始值和占空比;- 配置IO口,将其设为输出模式;- 当定时器计数值超过设定的脉冲宽度时,将IO口置1,否则置0。
6. 习题六:如何在80C51上实现ADC功能?解答:80C51本身没有ADC模块,但可以通过外部ADC芯片来实现模数转换功能。
单片机编程练习题(含部分答案)

单片机编程练习题(含部分答案)编程练习题1. 编一程序将片内存储单元20H~3FH单元的内容复制到40H~5FH单元。
MOV R0,#20H MOV R1,#40H MOV R7,#32LOOP: MOV A,@R0MOV @R1,A INC R0 INC R1DJNZ R7,LOOP SJMP $2. 编一程序将片内存储器40H单元的内容与41H单元的内容进行比较,若相等将50H置00H,若不等将50H置0FFH。
3. 在片内数据存储单元30H~4FH中存有32个同学的数学成绩,编一程序计算有多少同学成绩不及格(成绩低于60为不及格)。
若20H作为计数存储单元MOV R0,#30H MOV 20H,#0 MOV R0,#30H MOV R7,#32 MOV 20H,#0LOOP: MOV A,@R0 MOV R7,#32 SUBB A,#60 LOOP: CJNE @R0,#60,NE JNC GE NE: JNC GE INC 20H INC 20H GE: INC R0 GE: INC R0DJNZ R7,LOOP DJNZ R7,LOOPSJMP $ SJMP $4. 内部RAM中分别以地址20H和30H开始的连续16个单元,按顺序依次将两组中相应单元的内容相加(不考虑溢出),并将和存入外部RAM 2000H开始的单元中。
MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R7,#16LOPP: MOV A,@R0ADD A,@R1 MOVX @DPTR,A INC R0 INC R1 INC DPTRDJNZ R7,LOOP SJMP $5. 设内部RAM 20H单元为数据块的起始地址,数据块长度为10H,数据为8位无符号数,试编程找出数据块中的最小值,并将其存入40H单元。
MOV R0,#20H MOV 40H,#255 MOV R7,#10HLOOP: MOV A,@R0SUBB A,40H JNC NJWMOV 40H,@R0NCW: INC R0DJNZ R7,LOOP SJMP $6. 比较两个ASCII码字符串是否相等。
单片机编程习题

单片机编程习题张建荣江西应用技术职业学院1、某温度控制系统,采集的温度值(Ta)放在累加器A中。
此外,在内部RAM54H单元存放控制温度下限制(T54),在55H单元存放控制温度上限制(T55)。
若Ta >T55,程序转向JW(降温处理程序);若Ta<T54,则程序转向SW(升温处理程序);T55≥Ta≥T54,则程序转向FH(返回主程序)。
2、已知有10个单字节数,依次存放在内部RAM 40H单元开始的数据存储区中,求和并将结果存人寄存器R2、R3中(高位存R2,低位存R3)。
3、假设从内存RAM的50H单元,连续存放一串字符,以回车符(其ASCII码为0DH)作为结束标志,要求测出该字符串的长度。
测试方法可采用将该字符串的每一个字符与回车符依次相比,若不相等,则将统计字符串长度的计数器加l,继续比较;若比较相等,则表示该字符串结束,这时计数器中的值就是字节符串的长度。
4、编制用软件方法延时1S的程序5、假设在片内RAM中,起始地址为40H的10个单元中存放有10个无符号数。
试进行升序排序。
6、求两个无符号数据块中的最大值。
数据块的首地址分别为60H和70H,每个数据块的第一个字节都存放数据块的长度,结果存人5FH单元。
7、设变量x 以补码的形式存放在片内RAM的30H单元,变量y 与x 的关系是:当x 大于0时,y =x;当x =0时,y =20H;当x 小于0时,y =x+5。
编制程序,根据x 的大小求y并送回原单元。
8、根据R7的内容转向相应的处理程序。
设R7的内容为0~N,对应的处理程序的入口地址分别为PP0~PPN。
9、50ms延时程序。
若晶振频率为12MHz,则一个机器周期为1μs。
执行一条DJNZ指令需要2个机器周期,即2μs。
采用循环计数法实现延时,循环次数可以通过计算获得,并选择先执行后判断的循环结构。
10、将内部RAM中起始地址为data的数据串传送到外部RAM中起始地址为buffer的存储区域内,直到发现‘$ ’字符停止传送。
单片机课后习题与答案

第1部分答案1-1 简述冯·诺依曼型计算机的主要特征。
1、采用二进制代替十进制运算2、存储程序工作方法3、计算机硬件系统的构成1-2 计算机硬件系统由哪些部件组成?计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。
1-3 填空:(1)100D=01100100=64H(2)03CH=00111100B=60D1-4 写出下列各数的原码、反码和补码(用二进制数表示)。
21 -21 59 -59 127 -127 1 -121 原码:00010101反码:00010101补码:00010101 -21 原码:10010101 反码:11101010补码:1111101159原码:00111011反码:00111011补码:00111011-59原码:10111011反码:11000100补码:11000101127原码:01111111反码:01111111补码:01111111-127 原码:11111111反码:10000000补码:100000011原码:00000001反码:00000001补码:00000001-1原码:1000001反码:11111110补码:111111111-5 用十进制数写出下列补码的真值:1FH 69H 89H FCH 97H CDH B3H 10H1FH的真值:31D69H的真值:105D89H的真值:-119DFCH的真值:-4D97H的真值:-105DCDH的真值:-51DB3H的真值:-77D10H的真值:16D1-6 已知X和Y,求(X+Y)补。
(1)X=31D,Y=55D (X+Y)补= 01010000B(2)X=46D,Y=-81D (X+Y)补=11010001B(3)X=-54D,Y=93D (X+Y)补=00100111B(4)X=-23D,Y=-67D (X+Y)补=10100110B(5)X=75D,Y=89D (X+Y)补=10100100B1-7 写出下列各数的8421BCD码。
单片机习题参考答案4章

第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.设计子程序时应注意哪些问题?答:在编写子程序时应注意以下问题。
51单片机练习题 附解答

第一、二章单片机概述与结构一、填空题1.单片机复位后,SP、PC和I/O口的内容分别为07H\000H\FFH 。
2.单片机有四个工作寄存器区,由PSW状态字中的RS1和RS0两位的状态来决定。
单片机复位后,若执行SETB RS0指令,此时只能使用 1 区的工作寄存器,地址范围是08H---0FH 。
3.51单片机驱动能力最强的并行端口为P0端口。
4.51单片机PC的长度为16位,SP的长度为___8____位,DPTR的长度为_16__位。
5.访问51单片机程序存储器地址空间、片内数据存储器地址、片外数据存储器地址的指令分别为__movc_____,MOV和_movx______。
6.若A中的内容为63H,那么P标志位的值为1 。
7.当扩展外部存储器或I/O口时,P2口用作高八位地址总线。
8.51单片机内部RAM区有 4 个工作寄存器区。
9.51单片机内部RAM区有128 个位地址。
10.外部中断1()的中断入口地址为0013 ;定时器1的中断入口地址为001B 。
11.51单片机有 4 个并行I/O口,P0~P3是准双向口,所以由输出转输入时必须先写入 1 。
12.51单片机的堆栈建立在内部RAM 内开辟的区域。
二、选择题1.访问片外部数据存储器时,不起作用的信号是(C)。
A./RD B./WE C./PSEN D.ALE2.51单片机P0口用作输出时,应外接(A )。
A.上拉电阻B.二极管C.三极管D.下拉电阻3.进位标志CY在( C )中。
A.累加器B.算逻运算部件ALU C.程序状态字寄存器PSW D.DPTR4.堆栈数据的进出原则是(D )。
A.先进先出B.进入不出C.后进后出D.先进后出5.51单片机系统中,若晶振频率为6MHz,一个机器周期等于(D )μs。
A.1.5 B.3 C.1 D.26.在家用电器中使用单片机应属于微计算机的( B )。
A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用7.PC的值是(C )。
《单片机》课后习题及答案

习题答案习题01.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
3. 单片机有哪几个发展阶段?(1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。
典型的代表产品有Fairchild公司的F8系列。
其特点是:片内只包括了8位CPU,64B的RAM 和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。
(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。
典型的产品有Intel 公司的MCS-48系列。
其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。
片外寻址范围为4KB,芯片引脚为40个。
(3)第三阶段(1979—1982年):8位单片机成熟的阶段。
其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。
在指令系统方面增设了乘除法、位操作和比较指令。
其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。
单片机课后习题及答案(1-13章)

《单片机原理及接口技术》(第2版)人民邮电出版社第1章单片机概述思考题及习题11.除了单片机这一名称之外,单片机还可称为和。
答:微控制器,嵌入式控制器.2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于一块芯片上。
答:CPU、存储器、I/O口、总线3.在家用电器中使用单片机应属于微计算机的。
答: BA.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用4.微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
5.AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。
6.什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”? 答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。
但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。
目前“嵌入式系统”还没有一个严格和权威的定义。
目前人们所说的“嵌入式系统”,多指后者。
7.嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何不同?答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小,应用广泛。
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。
能够高速完成各种复杂的数字信号处理算法。
51单片机期末习题及答案

C51单片机习题及答案第一章1-1选择1.计算机中最常用的字符信息编码是(A)A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于(A) μsA 1.5B 3C 1D 0.53.MCS-51的时钟最高频率是( A ).A 12MHzB 6 MHzC 8 MHzD 10 MHz4.以下不是构成的控制器部件(D ):A程序计数器、B指令寄存器、C指令译码器、D存储器5.以下不是构成单片机的部件( D )A微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是( D )A地址总线 B 控制总线 C 数据总线 D 输出总线7.-49D的二进制补码为.( B )A 11101111B 11101101C 0001000D 111011008.十进制29的二进制表示为原码(C )A 11100010B 10101111C 00011101D 000011119. 十进制0.625转换成二进制数是(A)A 0.101B 0.111C 0.110D 0.10010 选出不是计算机中常作的码制是( D )A原码 B 反码C补码 D ASCII1-2填空1.计算机中常作的码制有原码、反码和补码2.十进制29的二进制表示为000111013.十进制数-29的8位补码表示为.111000114.单片微型机CPU、存储器和I\O接口三部分组成.5.若不使用MCS-51片内存器引脚EA必须接地.6.输入输出设备是计算机与外部世界交换信息的载体.7.十进制数-47用8位二进制补码表示为.110100018.-49D的二进制补码为.111011019.计算机中最常用的字符信息编码是ASCII10.计算机中的数称为机器数,它的实际值叫真值。
1-3判断1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。
(√)2.MCS-51上电复位时,SBUF=00H。
单片机复习题(含答案)

四、程序分析题1、已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后:ANL A ,#17HORL 17H ,AXRL A ,@R0CPL A问:(A)= CBH ,(R0)= 17H ,(17H)= 37H 。
2、已知(10H)=5AH,(2EH)=1FH,(40H)=2EH,(60H)=3DH ,执行下列程序段后:MOV 20H ,60HMOV R1 ,20HMOV A ,40HXCH A ,R1XCH A ,60HXCH A ,@R1MOV R0 ,#10HXCHD A ,@R0问:(A)= 5AH (10H)=1FH (2EH)= 3DH(40H)= 2EH (60H)= 3DH 3、执行下列程序段:MOV A ,#00HMOV R7 ,#0FFHMOV PSW, #80HADDC A ,R7问:(CY )= 1 (AC )= 1(P)= 0(ACC)= 00H (R7 )= 0FFH4、写出执行每条指令后的结果。
MOV A,#25HCLR A; (A)=00HCPL A; (A)=0DAH5、写出下列指令执行后的结果。
MOV A,#37HMOV R0,#20HMOV @R0,AANL A,#0FH(A)=__07H___ (R0)=__ 20H __ (20H)=__37H __6、执行如下三条指令后,30H单元的内容是___0EHMOV R1,#30HMOV 40H,#0EHMOV ﹫R1,40H7、请分析下面程序执行后的操作结果,(A)=__40H_ ,(R0)=__60H_。
MOV A,#60HMOV R0,#40HMOV @R0 ,AMOV 41H,R0XCH A,R08、已知:(R0)=00H,写出执行指令后的结果。
ORG 0000HMOV A,R0JZ L1MOV R1,#00HAJMP L2L1: MOV R1,#0FFHL2: SJMP L2END执行完整段程序后,(A)= __00H __ (R1)= __0FFH __。
单片机练习题(含答案)

1.单片机还可称为(微控制器)。
2. 单片机与普通计算机的不同之处在于其将(CPU)、(存储器)、和(I/O接口电路)三部分集成于一块芯片上。
3. MCS-51系列单片机芯片间主要差别是什么?主要差别在于片内是否带有程序存储器4. 在家用电器中使用单片机应属于微计算机的(B)A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用5. MCS-51单片机的引脚EA接高电平和接低电平时各有何种功能?接高电平,则使用片内程序存储器,否则使用片外程序存储器。
6. 什么是机器周期?一个机器周期的时序是如何来划分的?如果采用12MHz晶振,一个机器周期为多长时间?1个机器周期等于12个时钟振荡周期,而时钟振荡周期即晶振频率的倒数。
如果采用12MHz晶振,一个机器周期为1us。
7.存储器的空间里,有5个单元是特殊的,这5个单元对应MCS-51单片机5个中断源的中断入口地址,请写出这些单元的地址以及对应的中断源。
8.(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
错(C)在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。
对(D)PC可以看成是程序存储器的地址指针。
对9. 8051 单片机复位后,R4所对应的存储单元的地址为(04H),因上电时PSW=(00H)。
这时当前的工作寄存器区是(0)组工作寄存器区。
10.判断以下有关PC和DPTR的结论是否正确?(A) DPTR是可以访问的,而PC不能访问。
对(B) 它们都是16位的寄存器。
对(C) 它们都具有加“1”的功能。
错(D) DPTR可以分为2个8位的寄存器使用,但PC不能。
对11.内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?写出其地址范围。
答:字节地址为00H-1FH的单元可以作为工作寄存器区;字节地址为20H-2FH的单元可以进行位寻址。
12.使用8031单片机时,需将EA引脚接(低)电平,因为其片内无(程序)存储器。
单片机C51程序设计课后习题答案(复习专用)

单⽚机C51程序设计课后习题答案(复习专⽤)第⼀章1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。
+45 -89 -6 +112答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101【-89】原=11011001,【-89】反=10100110,【-89】补=10100111【-6】原=10000110,【-6】反=11111001,【-6】补=11111010【+112】原=01110000,【+45】反=01110000,【+45】补=01110000 2. 指明下列字符在计算机内部的表⽰形式。
AsENdfJFmdsv120答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H3. 什么是单⽚机?答:单⽚机是把微型计算机中的微处理器、存储器、I/O接⼝、定时器/计数器、串⾏接⼝、中断系统等电路集成到⼀个集成电路芯⽚上形成的微型计算机。
因⽽被称为单⽚微型计算机,简称为单⽚机。
4. 单⽚机的主要特点是什么?答:主要特点如下:1) 在存储器结构上,单⽚机的存储器采⽤哈佛(Harvard)结构2) 在芯⽚引脚上,⼤部分采⽤分时复⽤技术3) 在内部资源访问上,采⽤特殊功能寄存器(SFR)的形式4) 在指令系统上,采⽤⾯向控制的指令系统5) 内部⼀般都集成⼀个全双⼯的串⾏接⼝6) 单⽚机有很强的外部扩展能⼒5. 指明单⽚机的主要应⽤领域。
答:单机应⽤:1) ⼯业⾃动化控制;2) 智能仪器仪表;3) 计算机外部设备和智能接⼝;4) 家⽤电器多机应⽤:功能弥散系统、并⾏多机处理系统和局部⽹络系统。
第⼆章1. MCS-51单⽚机由哪⼏个部分组成?答:MCS-51单⽚机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并⾏接⼝、串⾏接⼝、中断系统及⼀些特殊功能寄存器(SFR)。
单片机编程练习题(含部分答案)

单片机编程练习题(含部分答案)单片机编程练习题(含部分答案)在单片机编程的学习过程中,练习题是非常重要的一部分。
通过完成各种编程练习,我们可以提高自己的编程能力,掌握单片机的各种功能和应用。
本文将介绍一些常见的单片机编程练习题,并提供部分答案,帮助读者更好地理解相关知识。
一、LED亮灯顺序控制题目描述:使用单片机控制4个LED灯按指定的顺序依次亮起。
解答思路:首先,我们需要定义4个LED灯的引脚,使用宏定义的方式可以方便地修改引脚号码。
然后,在主函数中通过设置引脚输出高电平或低电平的方式控制LED灯的亮灭状态。
可以使用延时函数来控制每个LED灯亮起的时间。
代码示例:```#include <reg51.h>#define LED1 P1_0#define LED2 P1_1#define LED3 P1_2#define LED4 P1_3void delay(unsigned int time) // 延时函数{unsigned int i, j;for (i = time; i > 0; i--)for (j = 110; j > 0; j--);}void main(){LED1 = 0; // LED1灭LED2 = 0; // LED2灭LED3 = 0; // LED3灭LED4 = 0; // LED4灭while (1){LED1 = 1; // LED1亮delay(1000); // 延时1秒LED1 = 0; // LED1灭LED2 = 1; // LED2亮delay(1000); // 延时1秒LED2 = 0; // LED2灭LED3 = 1; // LED3亮delay(1000); // 延时1秒LED3 = 0; // LED3灭LED4 = 1; // LED4亮delay(1000); // 延时1秒LED4 = 0; // LED4灭}}```二、数码管计数器题目描述:使用单片机控制数码管显示一个0~9的计数器。
单片机练习题及例题

单片机课堂练习题/例题总结习题和思考题一1、一个完整的单片微机芯片内至少有哪些部件?2、根据程序存储器的差别单片机可以分为那些类型?3、单片机的主要特性是什么?它适宜于构成一个通用微机系统还是专用微机系统?为什么?习题与思考题二1、8051单片机内包含哪些主要逻辑功能部件?2、MCS-51单片机结构上有哪些主要特点?习题和思考题三1、详细描绘MCS-51单片机的存储器配置图。
2、MCS-51单片机是通过哪些方法将程序存储器和数据存储器严格分开的?3、什么是单片机的特殊功能寄存器?8051/8052各有几个特殊功能寄存器?这些特殊功能寄存器占有的地址范围?4、MCS—51单片机有哪些可直接寻址的位?5、什么是堆栈?8031的堆栈区可以设在什么地方?一般应设在什么区域?如何实现?试举例说明。
习题和思考题四1、试根据P1口和P3口的结构特性,指出它们作为输入口或第二功能输入/输出的条件。
2、MCS-51中无ROM型单片机在应用中P2口和P0口能否直接作为输入/输出连接开关、指示灯之类的外围设备?为什么?3、画出MCS-51系列单片机进行系统扩展时的三总线结构图。
课堂练习一1、8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行SETB RS1 指令,此时只能使用()区的工作寄存器。
A、0区B、1区C、2区D、3区2. 09H位所在的单元地址是()A.02H B.21H C.08H D.20H3.单片机在进行取指令操作时,指令的地址是由()的内容决定。
A.SP B.PC C.DPTR D.PSEN和ALE4. P1口作输入用途之前必须( )。
A.外接高电平B.外接上拉电阻C.相应端口先置0 D.相应端口先置15.程序计数器PC用来( )。
A.存放指令B.存放上一条的指令地址C.存放下一条的指令地址D.存放正在执行的指令地址思考题1. 数123可能是( )。
A. 二进制数B. 八进制数C. 十六进制数D.四进制数 E.十进制数2. 8031单片机内部RAM包括( ) 。
单片机原理及应用练习题含答案

单片机原理及应用练习题含答案一、单选题(共100题,每题1分,共100分)1、51单片机定时器T0的益处标志TF0,若计数产生溢出时,其值为()A、00HB、1C、FFHD、计数值正确答案:B2、8501单片机的最高工作频率是()MHz。
A、12B、8C、10D、6正确答案:A3、在编写程序的时候,若遇到重复出现多次的一段语句,最好的方法是()A、定义一个自定义函数B、复制粘贴C、直接手写D、在网上查找正确答案:A4、十进制43转换成二进制数是()。
A、111011B、101011C、101111D、101101正确答案:B5、T0的两个特殊功能寄存器为()A、TH0,TL1B、TH1,TL0C、TH1,TL1D、TH0,TL0正确答案:D6、MC51单片机中有()个16位的定时器/计数器A、1B、2C、3D、4正确答案:B7、80C51单片机的中断服务程序入口地址是指()A、中断服务程序的首句地址B、中断服务程序的返回地址C、中断向量地址D、主程序调用时的断点地址正确答案:C8、属于51单片机用于串行通信控制寄存器的是()A、SUBNB、HUNAC、SCOND、PCOM正确答案:C9、共阳极七段数码管显示器的驱动信号有何特色?()A、低电平点亮B、低电平不亮C、高电平点亮D、以上皆非正确答案:A10、蜂鸣器的声调由信号的()决定A、电压B、频率C、幅值D、占空比正确答案:B11、89C51单片机的RS1,RSO=11时,当前寄存器R0-R7占用内部RAM()单元。
A、00H-07HB、08H-0FHC、10H-17HD、18H-1FH正确答案:D12、C51数据类型中关键词“sfr”用于定义()A、位变量B、字节变量C、无符号变量D、特殊功能寄存器变量正确答案:D13、()为定时/计数器控制寄存器。
A、IEB、TCONC、SCOND、IP正确答案:B14、蜂鸣器可以分为()和无源A、有旋B、震荡C、有源D、无旋正确答案:C15、欲访问8051单片机的内部程序存储器,则EA引脚必须为()A、高电平B、低电平C、高低电平D、与PC值有关正确答案:A16、单片机程序代码一般存放在()A、RAMB、ROMC、CPUD、寄存器正确答案:B17、在微型计算机中,负数常用()表示。
单片机课后练习题及答案

第9、10章习题一、问答题1.ALE端的作用是什么?答:ALE是地址锁存允许信号端/编程脉冲输入端。
当89C51上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率的六分之一。
CPU访问片外存储器时,会丢失一个脉冲。
当对片外RAM进行读/写时,ALE 信号不是周期性的。
在其他情况下,ALE 信号是一种周期信号,可以用做其他外部设备的时钟信号。
2.总线接口部件的用途是什么?答:总线接口部件负责CPU与存储器、I/O接口之间的数据传送,即从内存单元或者外设端口中取数据,传送给执行部件。
或者把执行部件的操作结果传送到指定的内存单元或外设端口中。
这样的功能部件叫做总线接口部件。
3.为什么在存储系统中要进行片选控制?答:一个存储系统往往需要一定数量的存储芯片。
CPU每次只能对其中的一片存储器进行访问,因此CPU首先要选择的是访问那些芯片,这就需要进行片选控制。
一般用空出的高位地址或地址译码器输出的控制信号形成片选信号。
只有片选信号有效时,才能对所连芯片的存储单元进行读写。
4。
5.芯片74LS373、74LS164、74LS138、8255、27512、62128的基本功能以及通常使用在MCS-51系统中的作用。
答:74LS373为地址锁存器,通常用作扩展外部Rom、Ram或IO口用;74LS164为串行输入并行输出转换器,常用在将串口扩展为并口;74LS138为3选8译码器,常用来做地址译码器;8255为可编程并行IO口扩展芯片,常用来扩展IO口;27512为64k的EPROM程序存储器;62128为16k的RAM,数据存储器。
6.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,会不会发生冲突,并说明为什么?答:不会,因为控制信号线的不同:外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。
外扩RAM 的读、写控制引脚分别与MCS-51的RD和WR引脚相连。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
while(1)
{
}
}
题14:请根据电路图完成程序,用数码管动态扫描显示数字"1234"(直接调用延迟函数delay10ms())。
#include<reg51.h>
void main(void)
{ while(1)
{
}
}
题15:请根据电路图完成程序,使得数码管静态显示数字“59”。
TF0=0;
P2=0xff;
while(1)
{while(TF0==0)
;
TF0=0;
P2=~P2;
TH0=________________;
TL0=________________;
}
}
题11:请根据电路图解释下列代码的作用或描述运行结果。
#include<reg51.h>
sbit D1据电路图完成程序使得LED数码显示数字0~9。(延迟直接调用delay10ms())
#include<reg51.h>
void main(void)
{ unsigned char i;
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
#include<reg51.h>
函数功能:主函数
void main(void)
{
}
题16:请根据电路完成程序,使得按S1时点亮或灭D1。
#include<reg51.h>
sbit S1=__________;
sbit LED0=_________;
void main(void)
{ LED0=0;
while(1)
main()
{
while(1){
P3=0xFF;
if(S1==0)
{ ________________________};
if(S2==0)
{ ________________________};
if(S3==0)
{ ________________________};
if(S4==0)
{ ________________________};
#include<reg51.h>
void main(void)
{ unsigned char i;
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
while(1)
{
}
}
题10:请根据电路图解释下列代码的作用或描述运行结果。
#include<reg51.h>
void main(void)
{ while(1)
{
}
}
题3:先分别点亮D2,D4,D6,D8再点亮D1,D3,D5,D7,请根据电路图补充代码(可以直接调用延迟函数Delay20ms())。
#include<reg51.h>
void main(void)
{
Unsigned char DD[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
#include<reg51.h>
void main(void)
{ EA=1;
ET0=1;
//使用定时器T0的模式1
TMOD=_______________;
//定时50ms
TH0=________________;
TL0=________________;
//启动定时器T0
__________________;
unsigned char code Tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
while(1)
{for(_________________)
{;
__________________
delay60ms();
}
}
}
题9:根据电路图完成程序,使得先D1开始点亮到D8,然后从D8开始点亮到D1,不停的循环点亮。
题5:通过对P3口地址的操作流水点亮8位LED,请根据电路图补充代码(可以直接调用延迟函数Delay20ms())。
#include<reg51.h>
sfr x=0xb0;
void main(void)
{ while(1)
{
}
}
题6:请根据电路完成程序,使得D1和D2灯闪烁时间不同
#include<reg51.h>
void main(void)
{ EA=1;
//定时器T0中断允许
________________;
//使用定时器T0的模式2
TMOD=___________;
//定时50ms
TH0=_______________;
TL0=_______________;
//启动定时器T0
__________________;
代码或要求
电路图
题1:以下程序的作用是用单片机控制一个灯闪烁,请根据电路图补充代码(可以直接调用延迟函数Delay20ms())。
#include<reg51.h>
void main(void)
{ while(1)
{
}
}
题2:使用P3口流水点亮8位LED,请根据电路图补充代码(可以直接调用延迟函数Delay10ms())
void main(void)
{ while(1)
{
if(S1==0)
____________;
if(S2==0)
______________;
}
}
题8:根据电路图完成程序,使得从D8开始流水点亮到D1。
#include<reg51.h>
void main(void)
{ unsigned char i;
while(1)
;
}
void Time0(void) interrupt 1 using 0
{ D1=~D1;
TH0=_________________;
TL0=__________________;
}
题12:请根据电路图完成程序使得LED数码显示数字5。
#include<reg51.h>
void main(void)
{
}
}
题17:请根据电路图完成程序,使得按S1点亮D8,D7,按S2点亮D6,D5,按S3点亮D4,D3,按S4点亮D1,D2。
#include<reg51.h>
sbit S1=_________;
sbit S2=_________;
sbit S3=__________;
sbit S4=___________;
Unsigned char I;
while(1)
{
}
}
题4:使得D1至D8,先同时点亮D2,D4,D6,D8再同时点亮D1,D3,D5,D7,请根据电路图补充代码(可以直接调用延迟函数Delay20ms());。#include<reg51.h>
void main(void)
{
while(1)
{
}
}
}
void main(void)
{ unsigned char i;
while(1)
{
}
}
题7::如果s1被按下,让D5,D6,D7,D8亮,S2被安县D1,D2,D3,D4亮,请根据电路图完成程序。
#include<reg51.h>
sbit S1=________;
sbit S2=________;
P2=0xfe;
while(1)
{
}
}
题13:请根据电路图完成程序使得数码管上循环显示A~F。(直接调用用Delay10ms函数延迟)。
#include<reg51.h>
void main(void)
{ unsigned char i;
unsigned char code Tab[10]={ 0x88, };