单片机.docx

上传人:b****5 文档编号:8050868 上传时间:2023-01-28 格式:DOCX 页数:8 大小:79.46KB
下载 相关 举报
单片机.docx_第1页
第1页 / 共8页
单片机.docx_第2页
第2页 / 共8页
单片机.docx_第3页
第3页 / 共8页
单片机.docx_第4页
第4页 / 共8页
单片机.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

单片机.docx

《单片机.docx》由会员分享,可在线阅读,更多相关《单片机.docx(8页珍藏版)》请在冰豆网上搜索。

单片机.docx

单片机

1、片内RAM低128个单元划分为哪3个主要部分?

各部分的主要功能是什么?

2、答:

工作寄存器区、位寻址区、数据缓冲区.

3、如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作?

3、答:

ALE引脚

3、若SP=60H,标号LABEL所在的地址为3456H。

LCALL指令的地址为2000H,执行指令如下:

             2000H  LCALL LABEL

      后,堆栈指针SP和堆栈内容发生了什么变化?

PC的值等于什么?

如果将指令LCALL   直接换成ACALL是否可以?

如果换成ACALL指令,可调用的地址范围是什么?

答:

1)SP=SP+1=61H      (61H)=PC的低字节=03H

       SP=SP+1=62H    (62H)=PC的高字节=20H

      2)PC=3456H

      3)可以

      4)2KB=2048Byte

4、定时/计数器用作定时器时,其计数脉冲由谁提供?

定时时间与哪些因素有关?

答:

定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。

定时时间与时钟频率和定时初值有关。

5、常用的I/O接口编址有哪两种方式?

它们各有什么特点?

MCS-51的I/O端口编址采用的是哪种方式?

解:

一.独立编址方式:

独立编址方式就是I/O地址空间和存储器地址空间分开编址。

独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。

但是,却需要设置一套专门的读写I/O的指令和控制信号。

二.统一编址方式:

这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。

统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。

MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。

6、当MCS-51单片机运行出错或程序陷入死循环时,如何来摆脱困境?

答:

软件陷阱、复位

7、下列程序段的功能是什么?

             PUSH     A

             PUSH     B

             POP       A

             POP       B

答:

交换A、B的内容

8、中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?

答:

RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断

9、THX与TLX(X=0,1)是普通寄存器还是计数器?

其内容可以随时用指令更改吗?

更改后的新值是立即刷新还是等当前计数器计满后才能刷新?

答:

THX与TLX(X=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。

但在读THX、TLX的值时,应该先读THX值,后读TLX,再读THX。

若两次读得THX相同,则可确定读得的内容正确。

若前后两次读得的THX有变化,再重复上述过程。

10、I/O接口和I/O端口有什么区别?

I/O接口的功能是什么?

I/O接口和I/O端口有什么区别?

I/O接口的功能是什么?

答:

I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。

I/O接口是指单片机与外设间的I/O接口芯片。

I/O接口功能:

一.实现和不同外设的速度匹配;二.输出数据缓存;三.输入数据三态缓冲。

11、MCS-51与DAC0832接口时,有哪两种连接方式?

各有什么特点?

各适合在什么场合使用?

答:

单缓冲方式。

其特点是DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受MCS—51控制的锁存方式。

适用于只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下。

(2)双缓冲方式。

其特点是数字量的输入锁存和D/A转换输出是分两步完成的。

适用于在多路D/A转换中,要求同步进行D/A转换输出的情况下。

(二)编程题

1、试编写程序,查找在内部RAM的40H~60H单元中是否有0FFH这一数据。

若有,则将51H单元置为“00H”;若未找到,则将51H单元置为“01H”。

答:

START:

MOVR0,#40H

             MOVR2,#20H

      LOOP:

 MOVA,@R0

             CJNE  A,#0FFH,NEXT

             MOV51H,#00H

             LJMP  EXIT

      NEXT:

 INC   R0 

DJNZ  R2,LOOP

             MOV51H,#01H

      EXIT:

 RET

2、编写出外部中断1为跳沿触发的中断初始化程序。

答:

SETB  IT1

      SETB  EX1

      SETB  EA

3、编写一段程序,功能要求为:

当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。

ORG0000H

      LJMP  MAIN

      ORG000BH

      LJMP  IT0P

MAIN:

 JNB   P1.0,MAIN

MOVTMOD,#05H ;定时器/计数器T0为计数方式1

      SETB  TR0       ;启动T0,开始计数

      SETB  ET0       ;允许T0中断

      SETB  EA        ;CPU开中断

WAIT:

 JB    P1.2,WAIT

      CLR   EA

      CLR   TR0

      MOVR1,TH0

      MOVR0,TL0

   AJMP  $

IT0P:

 INC   R2        ;在电平负跳变前,如果计数器溢出,则进位存入R2

      RETI

4、根据硬件图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM40H~47H中。

(15分)

解:

根据电路连接图可计算出ADC0809的8个模拟量输入通道的地址为:

          7F00H~7F07H      

循环采集的程序设计如下:

      ORG  0000H

      AJMP MAIN

      ORG  0030H

MAIN:

 

      MOV  DPTR,#7F00H

      MOV  R0,#40H

      MOV  R7,#8

LOOP:

      MOVX @DPTR,A

      JNB  P3.2,$

      MOVX A,@DPTR

      MOV  @R0,A

      INC  DPTR

      INC  R0

      DJNZ R7,LOOP

      MOV  DPTR,#7F00H

      MOV  R0,#40H

      MOV  R7,#8

      AJMP LOOP

      END         

1、编制中断初始化程序,外部中断0(边沿触发)、定时器0开中断(中断允许);外部中断1、定时器1关中断(不允许中断)。

解:

SETBEX0

         SETBIT0

             SETBET0

             CLR ET1

             CLREX1

             SETBEA

2、编程将片内RAM40H单元开始的16个数传送到片外RAM2000H开始的单元中。

解:

     MOVR0,#40H

          MOVR7,#16

         MOVDPTR,#2000H

    LOOP:

  MOVA,@R0

                    MOVX@DPTR,A

                    INCR0

                    INCDPTR

                    DJNZR7,LOOP

                    NOP

                    END

3、使用定时器中断方式编程实现从P1.0引脚上输出一个周期为1s的方波。

(系统时钟为6MHz)

解:

使用定时器T0产生50ms的定时,然后在计数10次,从而500ms的定时。

ORG     0000H

                    AJMP MAIN

                    ORG   000BH

                    LJMP  TMR0_INT

                    ORG   0030H

MAIN:

                    MOV  TMOD,#01H

                    MOV  TH0,#9EH

                    MOV  TL0,#58H

                    MOV  R7,#10

                    SETB  ET0

                    SETB  EA

                    SETB  TR0

  SJMP  $

TMR0_INT:

 CLR    TR0

DJNZ  R7,LOOP

MOV  R7,#10

CPL    P1.0

LOOP:

         MOV  TH0,#9EH

                    MOV  TL0,#58H

                    SETB  TR0

                    RETI

1、计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为6MHz)。

             MOV     R3,#15          ;1个机器周期

      DL1:

MOV     R4,#200        ;1个机器周期

      DL2:

MOV     P1,R3           ;2个机器周期

             DJNZ     R4,DL2         ;2个机器周期

             DJNZ     R3,DL1         ;2个机器周期

             RET                            ;2个机器周期

答:

24096us

析:

[((2+2)×200+1+2)×15+1+2]×2us=24096us

2、试编写程序,查找在内部RAM的30H~60H单元中出现“0FFH”这一数据的次数。

并将查找到的结果存入61H单元。

2、试编写程序,查找在内部RAM的30H~60H单元中出现“0FFH”这一数据的次数。

并将查找到的结果存入61H单元。

答:

      START:

 MOV     61H,#0

                      MOV     R0,#30H

                      MOV     R2,#30H

             LOOP:

  MOV     A,@R0

                      CJNE     A,#0FFH,NEXT

                      INC       61H

             NEXT:

  INC       R0

                     DJNZ     R2,LOOP

                      RET

3、如果采用晶振的频率为6MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?

3、如果采用晶振的频率为6MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?

答:

因为机器周期

所以定时器/计数器工作方式0下,其最大定时时间为

同样可以求得方式1下的最大定时时间为

方式2下的最大定时时间为512

4、编写程序,将外部数据存储器中的4000H—40FFH单元全部置“1”。

4、编写程序,将外部数据存储器中的4000H—40FFH单元全部置“1”。

     ORG          0000H

       MAIN:

    MOV

#0FFH                ;送预置数给A

                  MOV           R0,#0FFH                   ;设置循环次数

                  MOV           DPTR,#4000H             ;设置数据指针的初值

       LOOP:

    MOVX         @DPTR,A                    ;当前单元清零

                 INC          DPTR                       ;指向下一个单元

                 DJNZ          R0,LOOP              ;是否结束      

                 END

5、分析A/D转换器产生量化误差的原因,1个8位的A/D转换器,当输入电压为0~5V时,其最大的量化误差是多少?

5、分析A/D转换器产生量化误差的原因,1个8位的A/D转换器,当输入电压为0~5V时,其最大的量化误差是多少?

答:

量化误差是由于有限位数字且对模拟量进行量化而引起的;1.95%;

 

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1