精华内容
下载资源
问答
  • 串行通信方式是数据传输的一种方式。这种方式操作简单,连接少,传输距离远,因而在信息传送,尤其是在远距离的传送中得到了广泛的应用。目前常用的串行通信方式有RS -232 C,RS - 422 A,RS - 423 A及RS - 485 A等...

    串行通信方式是数据传输的一种方式。这种方式操作简单,连接少,传输距离远,因而在信息传送,尤其是在远距离的传送中得到了广泛的应用。目前常用的串行通信方式有RS -232 C,RS - 422 A,RS - 423 A及RS - 485 A等。RS - 232 C是通用串行接口,以电平形式传输信号,只需3根线就可在两个设备之间交换信息,最高传输速率为20 Kb/s,此时允许设备之间的最远距离为15 m。为了改进RS - 232C传输速率低,传输距离短的不足,EIA又推出了RS - 422 A,RS - 423 A.RS - 485 A等。RS - 422 A采用差分形式传输信号,每个通道用两根信号线,在电路中规定只有一个发送器,其最高传输速率为10 Mb/s,在此速率下的最远传输距离为120 m;若将波特率降到90 Kb/s,则通信距离可延长至1200 m。RS - 423A采用不平衡差分形式传送信号。RS - 485A则允许多个发送器的存在。它们都有一些共同的特点,即传输速率低,传输速率和传输距离相互影响,对传输介质要求高,一般要求用屏蔽电缆。当传输距离较远或连接的设备较多时,会增加系统的成本。

    随着计算机应用的不断发展,在有些场合需要高速度、远距离传输信号,同时又要尽量降低成本。为满足这一要求,本节以单片机之间的串行通信为例,介绍一个可以实现高速度、远距离的串行通信装置。

    一、单片机串口的特点

    目前多数单片机都配有串行接口,如51单片机和MCS - 96等系列单片机都配有一个全双工的串行接口,可以同时收、发信号。以51单片机串口为例,共有4种串行工作方式,波特率可由软件设置,并在片内定时器产生,接收或发送均可工作在中断或查询方式,使用比较灵活。该接口一般通过接口电路工作在RS - 232C或RS - 422A方式,因此,它具有RS - 232 C或RS - 422A的特点。其4种工作方式如下。

    1.方式O

    同步移位寄存方式,其波特率为fosc/12。fsc为振荡器的振荡频率,数据由RxD端输入,同步移位脉冲由TxD端输出,发/收均为8位数据。一般利用这种方式扩展并行接口、键盘或显示接口等。

    2.方式1

    串行工作方式,RxD接收,TxD发送,每帧信息为10位,包括1位起始位、8位数据位和1位停止位,其收/发的波特率为:

    式中:SMOD=1或0,由软件设定;N为软件设置的定时器自装载常数,其值为0~255。当SMOD-1.N-255时,波特率最高,为fosc/192;当SMOD=0,N=O时,波特率最低,为:

    3.方式2

    串行工作方式,每帧11位数据,包括1位起始位、8位数据位、1位可编程位、1位停止位,发送时可编程位应根据需要设定为O或1。其收/发的波特率为:

    当SMOD=1时,可得最大波特率为fosc/32;当SMOD-0时,可得最小波特率为fosc/64。

    4.方式3

    串行通信方式,发送格式同方式2,收/发波特率同方式1,即这种方式所能得到的最大波特率为fosc/192,最小波特率为ose/98 304。

    比较3种串行工作方式可知,方式2的波特率最高。对于51单片机,当选fosc=12 MHz(51单片机最高晶振)时,可得

    这些值远高于目前常用的串口的波特率,因此在单片机(51单片机等)之间串行通信时,在晶振选定的情况下,只有选方式2,方可得到最高的波特率。而要远距离收/发信号,还必须在电路上采取一定的措施。为此,介绍一个可以远距离收/发信号的电路。

    二、组成框图

    1.信号的表示

    (1)1的表示

    当TxD输出1时,通过收/发电路后,在总线上出现高阻信号,接收器通过收/发电路将高阻信号变为1,送RxD接收。当串口不工作时,TxD为1,对应总线为高阻态。

    (2)0的表示

    用一个周期的矩形波表示0,矩形波的周期为振荡周期的32或64倍。当TxD输出0时,通过收/发电路后,在串行总线上出现一个周期的矩形波。该信号通过接收器收/发电路转换后,在RxD端又变为0。

    2.收/发电路的组成框图

    收/发电路的组成框图如图1 - 17所示。该装置由控制电路、分频器、输出驱动、差动输入、耦合变压器等组成。控制电路由一片GAL电路或由门电路组成,输出驱动采用三态门,差动输入利用三片运放组成两级比较电路,分频器提供控制电路工作的基准和状态变化的条件,耦合变压器用来实现信号的输入或输出。

    202dec345c33bf21970a73ca0215d294.png

    三、工作原理

    1.信号输出

    当TxD为1时,A,B两线信号为0,C线信号为1,三态门关闭,输出高阻信号;当TxD为0时,C线为0,三态门打开,A线由0变1,A’输出高电平,B线保持为0,B’输出低电平。持续32或16个振荡周期后,电路状态改变,A线由1变O,B线由0变1,C线继续为0,A’输出低电平,B,输出高电平。经过32或16个振荡周期后,0发送完毕,电路恢复原态,通过耦合变压器,在串行总线上有一个矩形波出现。

    2.信号输入

    串行总线上的信号经耦合变压器,送到接收器的差动输入电路。

    当总线上出现高阻信号时,运放Ai的输出为O。该信号分别送到运放A2和A3的输入端,经过比较后,A2和A3的输出也为0,经过控制电路后,使RxD为1。

    当总线上出现矩形波信号时,若前半周T+为高电平,后半周T+为低电平,则:

    ①前半周

    T+=1,T-=O

    经A1差动放大后,其输出为低电平。经过A2和A3后,A2的输出保持为0;而A3的输出则由O变1。这两个信号都送至控制电路,并使RxD由1变O,同时开始定时。

    ②后半周

    T+ =0.T_=1

    经Ai后,A1输出变为高电平,再经A2和A3的比较,A2的输出由0变1,A3则输出O,再经控制电路后,维持RxD为0这一状态,直到定时时间或输入信号改变。

    控制电路保证只有E线先由O变1,接着F线由0变1时,RxD才会由1变O,并持续32/64个振荡周期,否则RxD保持为1。

    3.可靠性措施

    (1)本装置输出时

    收/发电路的输入端与输出端连在一起,因此当本装置输出时,输入端同样也有响应。为便于区分输入端的信号是来自装置自身还是来自总线,输出信号经变压器倒相后输出。这样外来信号就与内部信号有180。的相位差,而接收装置只对其中一种信号有响应,因而输入电路只对来自总线的信号作出响应。

    (2)干扰信号引入时

    当干扰信号经过总线串入时,运放A1,A2和A3的输出端也要改变,但干扰信号一般都是不规则信号,不会与本装置输入电路要求的矩形波信号完全一样。所以,尽管输入电路有输出,但不会引起控制电路的状态发生变化,也就不会影响RxD的状态。

    本例介绍的串行通信装置,组成简单,成本低,操作方便,只需两根线就可在两个设备之间交换信息;利用高阻差分电路作输入端,只要两根线上有信号差,输出就有变化,可在1 200 m范围内以187.5 Kb/s的速率可靠地传输信息;对传输线的要求低,普通双绞线就可连接两个设备,不需要屏蔽电缆,对导线无特殊要求,当传输距离较远时,可以大大降低系统的成本;采用独特的信号传输方式和结构,有很强的抗干扰能力,利用本装置不影响单片机串口的操作方式。因此,本装置是实现单片机之间高速度、远距离串行通信的一种比较理想的装置。若给PC机配上这类装置,还可实现PC机与单片机之间的高速度、远距离串行通信。

    展开全文
  • 单片机原理及应用试题一一、 填空题(每空1分,共20分)1、计算机的系统总线有地址总线、控制总线和 数据总线。2、通常、单片机上电复位时PC= 0000H,SP=07H;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是...

    单片机原理及应用试题一

    一、 填空题(每空1分,共20分)

    1、计算机的系统总线有地址总线、控制总线和 数据总线。

    2、通常、单片机上电复位时PC= 0000H,SP=

    07H;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是从00H~ 07H。

    3、JZ e

    的操作码地址为1000H,e=20H,它转移的目标地址为1022H。

    4、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。

    5、假定累加器A的内容30H,执行指令:

    1000H:MOVC A,@A+PC

    后,把程序存储器1031H单元的内容送累加器A中。

    6、MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。

    7、MCS-51单片机8031中有 2 个 16

    位的定时/计数器,可以被设定的工作方式有四 种。

    8、MCS-51单片机有 5 个中断源,可分为 2 个中断优先级。上电复位时

    外部中断0 中断源的最高。

    9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。

    10、半导体存储器的最重要的两个指标是 存储容量 和 存储速度 。

    11、若某8位D/A转换器的输出满刻度电压为+5V,则D/A转换器的分辨率为5/255=0.0196V。

    12、写8255A控制字时,需将A1、A0置为11。

    二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1分,共10分)

    1、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是( B

    )

    (A)PC (B)PSW (C)A (D)SP

    2、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( B

    )

    (A)MOV (B)MOVX (C)MOVC (D)以上都是

    3、指令ALMP的跳转范围是(C)

    (A)256B (B)1KB (C)2KB (D)64KB

    4、要使MCS-51能够响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是( A )

    (A)98H (B)84H (C)42H (D)22H

    5、各中断源发出的中断请求信号,都会记在MCS-51系统中的( B )

    (A)IE (B)IP (C)TCON (D)SCON

    6、CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是( C

    )

    (A)混合编址 (B)动态编址 (C)独立编址 (D)变址编址

    7、下列四条叙述中,有错误的一条是( A )

    (A)16根地址线的寻址空间可达1MB

    (B)内存储器的存储单元是按字节编址的

    (C)CPU中用于存放地址的寄存器称为地址寄存器

    (D)地址总线上传送的只能是地址信息

    8、MCS-51外扩一个8255时,需占用(D) 个端口地址

    (A)1个 (B)2个 (C)3个 (D)4个

    9、用MCS-51串行口扩展并行I/O口时,串行口工作方式应选择(A)

    (A)方式0 (B)方式1 (C)方式2 (D)方式3

    10、某种存储器芯片是8KB*4/片,那么它的地址线根数是( C )

    (A) 11根 (B)12根 (C)13根 (D)14根

    三、 问答题 (每题5分,共20分)

    1、MCS-51单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分?

    答:时钟周期是单片机最基本的时间单位。机器周期则是完成某一个规定操作所需的时间。一个机器周期为6个时钟周期,共12个振荡周期性,依次表示为S1P1、S1P2、……S6P1、S6P2。

    2、MCS-51内部四个并行I/O口各有什么异同?作用是什么?

    答:MCS-51单片机共有四个8位双向并行的I/O端口,每个端口都包括一个锁存器、一个输出驱动器和一个输入缓冲器。但这四个端口的功能不全相同,P0口既可作一般I/O端口使用,又可作地址/数据总线使用;P1口是一个准双向并行口,作通用并行I/O口使用;P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址线使用;P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。

    3、简述MCS-51单片机的中断响应过程。

    答:CPU在每个机器周期的S5P2期间顺序采样每个中断源,在下一个机器周期S6区间按优先级顺序查询中断标志,如查询到某个中断定标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。一旦响应中断,CPU首先置位相应的中断“优先级触发器”,然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是CPU接着从中断服务程序的入口处开始执行。对于有些中断源,CPU在响应中断后会自动清除中断标志。

    4、A/D转换接口中采样保持电路的作用是什么?省略采样保持电路的前提条件是什么?

    答:A/D转换接口中采样保持电路的作用是:能把一个时间边续的信号变换为时间离散的信号,并将采样信号保持一段时间。

    当外接模拟信号的变化速度相对于A/D转换速度来说足够慢,在转换期间可视为直流信号的情况下,可以省略采样保持电路。

    四、阅读或编写程序

    1、阅读下列程序段并回答问题 。1)、该程序执行何种操作?

    2)、已知初值(60H)=23H,(61H)=61H,运行程序后(62H)=? (7分)

    CLR C

    MOV A,#9AH

    SUBB A,60H

    ADD A,61H

    DA A

    MOV 62H,A

    答:

    1)、该程序是单字节BCD码运算,是将(61H)—(60H)→62H

    2)、(62H)=38H

    2、编写一程序将片外数据存储器中7000H~70FFH单元全部清零。

    (8分)

    ORG 1000H

    MOV DPTR,#7000H

    CLR A

    MOV R0,A

    LOOP:MOVX @DPTR,A

    DJNZ R0,LOOP

    SJMP $

    五、MCS-51单片机外扩展一片8255,画出系统电路原理图,写出地址分布。(15分)

    8255A可以直接与MCS-51单片机进行接口,其连接图如图所示。8255A的A0、A1分别接地址总线的A0、A1,片选端

    接P2.7口,因此8255A PA口地址为7FFCH、PB口地址为7FFDH、PC口地址为7FFEH、控制口地址为7FFFH。

    六、编写交通灯控制程序。在十字路口东西南北各设置红、黄、绿三种信号灯,东西方向(A线)通车时,东西方向绿灯亮、南北方向(B线)红灯亮;东西方向通车时间(30秒)到后,东西方向的绿灯亮,黄灯亮3秒,之后由东西方向切换到南北方向通车,此时东西方向黄灯灭,红灯亮,南北方向红灯灭、绿灯亮,南北方向开始通车。通车时间(60秒)到后,南北方向的绿灯亮,黄灯亮3秒,之后由南北方向切换到东西方向通车,如此循环。(20分)

    ORG 2000H

    MAIN: MOV P1,#0CH;A线放行、B线禁止

    MOV R7,#19H;延时秒数

    MAIN1: LCALL DELAY;1秒延时子程序

    DJNZ R7,MAIN1

    MOV P1,#0AH;A线警告、B线禁止

    MOV R7,#05H;延时秒数

    MAIN2: LCALL DELAY;1秒延时子程序

    DJNZ R7,MAIN2

    MOV P1,#21H;A线禁止、B线放行

    MOV R7,#19H;延时秒数

    MAIN3: LCALL DELAY;1秒延时子程序

    DJNZ R7,MAIN3

    MOV P1,#11H;A线放行、B线警告

    MOV R7,#05H;延时秒数

    MAIN4: LCALL DELAY;1秒延时子程序

    DJNZ R7,MAIN4

    AJMP MAIN

    1秒延时子程序:

    ORG 2100H

    DEY1S:MOV R1,#02H;

    LOOP3:MOV R2,#C8H;

    LOOP2:MOV R3,#FAH;

    LOOP1:NOP

    NOP

    NOP

    DJNZ R3,LOOP1

    DJNZ R2,LOOP2

    DJNZ R1,LOOP3

    RET

    试题二

    一、填空(每空 2 分,共 40 分)

    1、MCS-8051系列单片机字长是 8 位,有 40 根引脚,96系列字长是

    16 位。单片机的特点有体积小、价格低、功能全 。

    2、8051单片机的存储器的最大特点是 指令存储器与数据存储器分开编址

    ,Px并行口的地址是与 数据 存储器统一编址的,或者说属于该存储器。

    3、8051最多可以有 4 个并行输入输出口,最少也可以有1个并行口,即 P1

    。P3常需复用作串行通信、外部中断、外部计数脉冲 和读写控制信号。

    4、ALE信号的作用是 低8位地址锁存 。

    5、8051复位后,PC= 0 H。若希望从片内存储器开始执行,EA脚应接 高

    电平,PC值超过 0FFF H时,8051会自动转向片外存储器继续取指令执行。

    6、8051的C/T是 加 (加或减)计数的。

    7、8051的中断向量表在 3 H、 0B

    H和13H、1BH、23H。

    8、MOV A,40H 指令对于源超作数的寻址方式是直接 寻址。

    9、指令JB 0A7H,ABC的作用是 若P2口的第7位为1则跳转到ABC

    。(0A7H是P2.7的地址)10、将CY与A的第0位的非求或的指令是 ORL C,/ACC.0 ,若原A=0,执行后A= 0

    2、已知A = 0F8H,当执行ADD

    A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少?(共 5 分)

    [解答] OV:0、CY:1、AC:1、P:1 A:-95

    3、在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。画出连接示意图,写出完整的程序。(共

    15 分)

    A机程序 ORG 0000H

    AJMP START

    ORG 4100H

    START:MOV P1,#0FFH

    MOV SCON,#80H

    AGAIN1:MOV SBUF,P1

    JNB TI,$

    CLR TI

    SJMP AGAIN1

    END

    B机程序 ORG 0000H

    AJMP START

    ORG 4100H

    START:MOV SCON,#90H

    AGAIN1:JNB RI,$

    MOV P1,SBUF

    CLR RI

    SJMP AGAIN1

    END

    4、将8051外部扩展2K EPROM,同时扩展16K

    RAM作数据存储器,采用的2716是2K的EPROM芯片,6264是8K的RAM芯片,74LS373是8位锁存器。请画出连接示意图。要求画出8051的数据、地址、ALE、PSEN、RD、WR信号;锁存器的数据入D、数据出Q、锁存控制G、OE;2716的A、数据O、片选CE、输出使能OE;6264的A、D、CE、OE、WE。最后写出各片的地址范围。(共

    12 分)

    数据线8根从P1直接到2716的O、两片6264的D;

    地址线低8位从P0经锁存器后到各片内地址口,高8位从P2出0-2三位直接到2716的地址口,

    0-4五位直接到两片6264内P2.5接一片6264的CE,经非门后接另一片6264;

    ALE接锁存器的G,锁存器OE接地,PSEN接2716的OE,WR接6264的WE,RD接OE。

    2716:0-7FFH,6264:0-1FFFH,2000H-3FFFH

    5、编写一段子程序,将二位压缩的BCD码转换为二进制数,入口、出口均是A。若是非法的BCD码,则A返回值为255。(共10分)

    6、用8051输出控制8个LED从LED1到LED8、再到LED1…,每次一个LED发光,并不断循环。一个开关控制引起中断,电平触发,中断后8个LED一起闪5下,然后恢复前面的循环。画出连接示意图,写出完整的程序。(软件延时用循环5*126*200次控制)(共10分)

    五、SUBP:MOV R1,A

    ANL A, #0F0H

    SWAP A

    CJNE A, #10, NEXT1

    NEXT1:JNC ERROR

    MOV B, #10

    MUL AB

    六、 ORG 0000H

    LJMP START

    ORG 3H

    LJMP INT00

    START:SETB EA

    SETB EX0

    CLR IT0

    MOV A, #1

    AGAIN:MOV P1,A

    ACALL DELAY

    RL A

    SJMP AGAIN

    DELAY:MOV R1,#5

    LOOP1:MOV R2,#200

    LOOP2:MOV R3,#126

    DJNZ R3,$

    DJNZ R2,LOOP2

    DJNZ R1,LOOP1

    RET

    INT00:PUSH ACC

    PUSH 1

    PUSH 2

    PUSH 3

    MOV R4,#5

    AGAIN:MOV P1,#0FFH

    ACALL DELAY

    MOV P1,#0

    ACALL DELAY

    DJNZ R4,AGAIN

    POP 3

    POP 2

    POP 1

    POP ACC

    RETI

    END

    7、简单叙述8051的C/T0的四种工作模式和串行通信的四种工作模式。(共 8

    分)

    C/T0的模式

    0:13位计数器;

    1:16位计数器;

    2:8位循环计数器;

    3:2个独立的8位计数器

    串行通信模式

    0:同步移位寄存器;

    1:波特率可变的8位两机异步通信;

    2:波特率固定的9位可多机的异步通信;

    3:波特率可变的9位可多机的异步通信。

    试题三

    1、填空(每空 2 分,共 40 分)

    1、MCS-8051系列单片机字长是 8 位,有 40 根引脚,96系列字长是

    16 位。单片机的特点有 体积小、价格低、功能全 。

    2、8051单片机的存储器的最大特点是 指令存储器与数据存储器分开编址

    ,Px并行口的地址是与 数据 存储器统一编址的,或者说属于该存储器。

    3、8051最多可以有 4 个并行输入输出口,最少也可以有1个并行口,即 P1

    。P3常需复用作 串行通信、外部中断、外部计数脉冲 和读写控制信号。

    4、ALE信号的作用是 低8位地址锁存 。

    5、8051复位后,PC= 0 H。若希望从片内存储器开始执行,EA脚应接 高

    电平,PC值超过 0FFF H时,8051会自动转向片外存储器继续取指令执行。

    6、8051的C/T是 加 (加或减)计数的。

    7、8051的中断向量表在 3 H、 0B

    H和13H、1BH、23H。

    8、MOV A,40H 指令对于源超作数的寻址方式是 直接 寻址。

    9、指令JB 0A7H,ABC的作用是 若P2口的第7位为1则跳转到ABC

    。(0A7H是P2.7的地址)

    10、将CY与A的第0位的非求或的指令是 ORL C,/ACC.0

    ,若原A=0,执行后A= 0 。

    2、已知A = 0F8H,当执行ADD

    A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少?(共 5 分)

    [解答] OV:0、CY:1、AC:1、P:1 A:-95

    3、在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。画出连接示意图,写出完整的程序。(共

    15 分)

    A机程序 ORG 0000H

    AJMP START

    ORG 4100H

    START:MOV P1,#0FFH

    MOV SCON,#80H

    AGAIN1:MOV SBUF,P1

    JNB TI,$

    CLR TI

    SJMP AGAIN1

    END

    B机程序 ORG 0000H

    AJMP START

    ORG 4100H

    START:MOV SCON,#90H

    AGAIN1:JNB RI,$

    MOV P1,SBUF

    CLR RI

    SJMP AGAIN1

    END

    4、将8051外部扩展2K EPROM,同时扩展16K

    RAM作数据存储器,采用的2716是2K的EPROM芯片,6264是8K的RAM芯片,74LS373是8位锁存器。请画出连接示意图。要求画出8051的数据、地址、ALE、PSEN、RD、WR信号;锁存器的数据入D、数据出Q、锁存控制G、OE;2716的A、数据O、片选CE、输出使能OE;6264的A、D、CE、OE、WE。最后写出各片的地址范围。(共

    12 分)

    数据线8根从P1直接到2716的O、两片6264的D;

    地址线低8位从P0经锁存器后到各片内地址口,高8位从P2出0-2三位直接到2716的地址口,

    0-4五位直接到两片6264内P2.5接一片6264的CE,经非门后接另一片6264;

    ALE接锁存器的G,锁存器OE接地,PSEN接2716的OE,WR接6264的WE,RD接OE。

    2716:0-7FFH,6264:0-1FFFH,2000H-3FFFH

    5、编写一段子程序,将二位压缩的BCD码转换为二进制数,入口、出口均是A。若是非法的BCD码,则A返回值为255。(共10分)

    6、用8051输出控制8个LED从LED1到LED8、再到LED1…,每次一个LED发光,并不断循环。一个开关控制引起中断,电平触发,中断后8个LED一起闪5下,然后恢复前面的循环。画出连接示意图,写出完整的程序。(软件延时用循环5*126*200次控制)(共10分)

    五、SUBP:MOV R1,A

    ANL A, #0F0H

    SWAP A

    CJNE A, #10, NEXT1

    NEXT1:JNC ERROR

    MOV B, #10

    MUL AB

    XCH A, R1

    ANL A, #0FH

    CJNE A, #10,NEXT2

    NEXT2:JNC ERROR

    ADD A, R1

    RET

    ERROR:MOV A,#255

    RET

    六、 ORG 0000H

    LJMP START

    ORG 3H

    LJMP INT00

    START:SETB EA

    SETB EX0

    CLR IT0

    MOV A, #1

    AGAIN:MOV P1,A

    ACALL DELAY

    RL A

    SJMP AGAIN

    DELAY:MOV R1,#5

    LOOP1:MOV R2,#200

    LOOP2:MOV R3,#126

    DJNZ R3,$

    DJNZ R2,LOOP2

    DJNZ R1,LOOP1

    RET

    INT00:PUSH ACC

    PUSH 1

    PUSH 2

    PUSH 3

    MOV R4,#5

    AGAIN:MOV P1,#0FFH

    ACALL DELAY

    MOV P1,#0

    ACALL DELAY

    DJNZ R4,AGAIN

    POP 3

    POP 2

    POP 1

    POP ACC

    RETI

    END

    7、简单叙述8051的C/T0的四种工作模式和串行通信的四种工作模式。(共 8

    分)

    C/T0的模式

    0:13位计数器;

    1:16位计数器;

    2:8位循环计数器;

    3:2个独立的8位计数器

    串行通信模式

    0:同步移位寄存器;

    1:波特率可变的8位两机异步通信;

    2:波特率固定的9位可多机的异步通信;

    3:波特率可变的9位可多机的异步通信。

    一、 填空与说明题

    1、8051单片机的内部硬件结构包括了: 、 、 、

    以及片内数据储存器、片内程序储存器、并行I/O 位出力器等部件,这些部件通过

    相连接。

    2、MCS-51单片机的PO-P4口,其中的PO口和P2口除了可以进行数据的输入、输出外,通常还用来构件系统的 和 在PO~P4口中,

    位真正的双向口, 为准双向口。

    3、请说明MCS-51单片机程序状态字PSW中的各位的含义。

    CY AC FO RS1 RS0 OV / P

    CY:

    AC:

    FO:

    RS1、RS0:

    OV:

    P:

    4、单片机系统中经常采用的地址择码技术包括 方法和 方法。

    5、INTEL8279是一种专用于 和

    芯片。当8279的引脚AO为“1”时,CPU对8279写入的数据为 ,读出的数据为

    6、MCS-96单片机的最大寻址空间是 ,该空间的地址范围为

    ,系统上电及复位的程序入口地址为 。

    二、简答题(12分)

    1、

    MCS-51系列单片机具有几个中断源?分别是如何定义的?其中哪些中断源可以被定义为高优先级中断?如何定义?

    2、 各中断源对应的中断服务程序的入口地址是否能任意设定?

    3、

    如果想将中断程序设置在程序储存区的任意区域,在程序中应该作何种设置?请举例加以说明。

    三、参数计算题(12分)

    已知亿MCS-51单片机系统是拥10MHZ的外部晶体振荡器,请问:

    1、 该片机系统的状态周期与机器周期各为多少?

    2、

    该单片机的定时器O(TO)工作在方式2时,TO的最大定时时间为多少?

    3、

    当单片机的定时器O(TO)工作在方式2时,要求每记满250us便生产一次定时器溢出,请问,TO中需要预置的初始值应为多少?

    四、改错题(10分)

    请判断MCS-51单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。

    1、CLR A

    2、MUL R0,R1

    3、MOV DPTR,1050H

    4、 MOV A,@R7

    5、 ADD 30H,20H

    6、 MOV R1,C

    7、 JMP @RO+DPTR

    8、 MOV A,#3000H

    9、 MOVC @A+DPTR,A

    10、 MOVX A,@A+DPTR

    五、程序分析题(8分)

    设在MCS-51单片机片内RAM中,(20H)=40H,(40H)=22H,(22H)=10H,P1=0CFH,当下列程序执行完毕后,各单元的内容分别为多少?请填入给定的各个寄存器及片内单元中。

    MOV RO,#20H

    MOV A,@RO

    MOV R1,A

    MOV B,@R1

    MOV @R1,R1

    MOV P3,P1

    (A)= (B)= (R0)= (R1)=

    (P1)= (P3)= (20H)= (22H)=

    六、编程题(20分,其中编程14分,表中每一空1分,共6分)

    已知一MCS-51单片机系统的片外

    RAM的30H、31H单元分别存放了8单元无符号数AFH和61H,是编程完成以上两个单元中的五符号数相加,并将和值送住片外RAM的8000H单元中,同时将所编写程序运行完毕后的数据填入表中的PRW的有关为以及寄存器A、DPTR和片外RAM单位中。

    CY A DPTR 片外31H 片外30H 片外8000H

    程序:

    七、判读电路题(12分)

    下图为MCS-51单片机系统中扩展程序储存器2764、以及外部扩展接口的部分连接电路图。

    试分析电路图并会下列问题:

    1、 请给出2764所占用的单片机程序存储空间的地址范围。

    2、

    在这种电路连接下,74LS244(5)是作为输入接口使用还是作为输出接口使用,为什么?它所占用的单片机数据存储空间的地址范围是多少?

    3、

    在这种电路连接下,74LS373(U6)是作为输入接口使用还是作为输出接口使用,为什么?它所占用的单片机数据存储空间的地址范围是多少?

    单片机原理与应用习题集

    第一章 计算机基础习题

    1-1 什么是二进制?为什么在数字系统、计算机系统中采用二进制?

    1-2 将下列各数按权展开为多项式:

    (1) 110110B (2) 5678.32D

    (3) 1FB7H

    1-3 把下列十进制数转化为二进制、十六进制和8421 BCD码:

    (1) 135.625 (2) 548.75

    (3) 376.125 (4) 254.25

    1-4 什么是原码、反码和补码?微型计算机中的数为什么常用补码表示?

    1-5 写出下列十进制数原码、反码和补码(用8位二进制表示):

    (1) + x = + 65 (2) + x = + 115

    (3) - x = - 65 (4) - x = - 115

    1-6

    计算下列两组二进制数内部式子的逻辑“与”,“或”及“异或”的结果:

    (1)10100101和00001111

    (2)10011101和10100101

    1-7 什么是单片机?它与一般微型计算机在结构上有何区别?

    1-8 新型8位单片机主要在哪些方面有所发展?给应用系统带来什么好处?

    第二章 单片机系统组成原理习题

    2-1 什么是单片机?它与一般的微型计算机在结构上有何区别?

    2-2 MSC-51单片机内部有哪些主要的逻辑部件?

    2-3

    MSC-51单片机程序存储器和数据存储器各有什么功用?其内部RAM区功能结构如何分配?

    2-4

    在内部RAM中,4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?

    2-5 程序状态字PSW的作用是什么?常用标志有哪些位?作用是什么?

    2-6 简述定时器的四种工作模式的特点,如何选择和设定?

    2-7

    当定时器T0用作模式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?

    2-8

    已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0和P1.1引脚分别输出周期为2ms和500us的方波。

    2-9 什么是中断?其主要功能是什么?

    2-10 什么是中断优先级?中断优先处理的原则是什么?

    2-11 试编写一段对中断系统初始化的程序,使之允许 ,

    ,T0,串行口中断,且使T0中断为高优先级中断。

    第三章 单片机指令系统习题

    3-1

    设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?

    MOV A, 59H

    MOV R0, A

    MOV A, #00H

    MOV @R0, A

    MOV A, #25H

    MOV 51H, A

    MOV 52H, #70H

    3-2

    已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。

    ANL A, #17H

    ORL 17H, A

    XRL A, @R0

    CPL A

    3-3 使用位操作指令实现下列逻辑操作,要求不得改变未涉及位的内容。

    (1)使ACC.0置1;

    (2)清除累加器高4位;

    (3)清除ACC.3,ACC.4, ACC.5, ACC.6。

    3-4

    试编写程序,将内部RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH,和2DH中。

    3-5

    编写两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30H,31H单元,30H存差的低八位。

    3-6

    两个四位BCD码相加,被加数和加数分别存于50H,51H,52H,53H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数存放在54H,55H和56H中(56H用来存放最高位的进位),试编写加法程序。

    3-7 设指令SJMP

    rel中的rel=7EH,并假设该指令存放在2114H和2115H单元中。当该条指令执行后,程序将跳转到何地址?

    3-8

    已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行“RET”指令以后,SP=?

    PC=?

    3-9 简述转移指令AJMP addr11,SJMP rel, LJMP

    addr16及JMP @A+DPTR的应用场合。

    3-10

    试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?P1口的8条I/0线为何状态?

    CLR C

    MOV A,#66H

    JC LOOP1

    CPL C

    SETB 01H

    LOOP1: ORL C,ACC.0

    JB ACC.2,LOOP2

    CLR 00H

    LOOP2: MOV P1,A

    第五章 汇编语言程序设计习题

    4-1

    从内部存储器20H单元开始,有30个数据。试编一个程序,把其中的正数、负数分别送5H和71H开始的存储单元,并分别记下正数、负数的个数送50H和70H单元。

    4-2

    以BUF1为起始地址的外存储区中,存放有16个单字节无符号二进制数,试编

    一程序,求其平均值并送BUF2单元

    4-3

    在DATA1单元中有一个带符号8位二进制数x。编一程序,按以下关系计算y

    值,送DATA2单元。

    x+5 x>0

    Y= x x=0

    x-5 x<0

    4-4 试编写延时2ms的程序

    4-5 用查表程序求0~8之间整数的立方。

    4-6 编写有6个命令键的散转程序。

    a) 键号为0、1、2、3、4、5;

    b) 6个键A、B、C、D、1、2的ASCII码放在累加器A中。

    第六章 单片机应用系统扩展设计习题

    5-1 8051单片机如何访问外部ROM及外部RAM?

    5-2 试用Intel

    2764,6116为8031单片机设计一个存储器系统,它具有8K

    EPROM(地址由0000H~1FFFH)和16K的程序、数据兼用的RAM存储器(地址为2000H~5FFFH)。具体要求:画出该存储器系统的硬件连接图。

    5-3 8255A,8155分别有哪几种工作方式?怎样进行选择?

    5-4

    试编程对8155进行初始化。设A口为选通输出,B口为基本输入,C口作为控制联络口,并启动定时器/计数器按方式1工作,定时时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHZ。

    5-5

    在一个8031应用系统中扩展一片2764,一片8155和一片6264。试画出其系统框图,并指出所扩展的各个芯片的地址范围。

    第六章 键盘、显示接口技术习题

    6-1 设计一个4×4行列式键盘电路并编写键扫描子程序。

    6-2 试说明非编码键盘的工作原理。如何去键抖动?如何判断键是否释放?

    6-2

    试设计一个用8155与有32个按键的键盘连接的接口电路。编写程序实现以下功能:用8155定时器定时,每隔2s读一次键盘,并将其读入的键值存入8155片内RAM

    40H开始的单元中。

    6-4

    用8051的P1口作8个按键的独立式键盘接口。试画出其中中断方式的接口电路及相应的键盘处理程序。

    6-5

    试用8255为8051微机系统设计一个键盘接口。键盘为3×4个键,其中10个为数1~9,两个为功能键RESET和START。具体要求:

    (1)按下数字键后,键值存入3040H开始的单元中(每个字节放一个键值)。

    (2)按下RESET(复位)键后,键PC复位成0000H。

    (3)按下START(启动)键后,系统开始执行用户程序(用户程序的入口地址4080H)。试画出该接口的硬件连接图并进行程序设计。

    6-6 试设计一个LED显示器/键盘电路。

    6-7

    试为8051微机系统设计一个LED显示器接口,该显示器共有八位,从左到后分别DG1~DG8(共阴极式),要求将内存3080H~3087H八个单元中的十进制(BCD)依次显示在DG1~DG8上。要求:画出该接口硬件连接图并进行接口程序设计。

    第七章 A/D和D/A转换接口技术习题

    7-1 模拟量输入通道一般包括哪几组成部分?每一部分的作用如何?

    7-2 在什么情况下,A/D转换器前应引入采样保持器?

    7-3 A/D转换器的分辨率如何表示?它与精度有何不同?

    7-4 判断A/D转换结束否一般可采用几种方式?每种方式有何特点?

    7-5

    D/A转换器的主要技术指标有哪些?分辨率是如何定义的?参考电压VR的作用如何?

    7-6

    在一个fosc=12MHz的8031应用系统中,接有一片A/D器件ADC0809,它的地址为FEF8H~FEFFH。试画出有关逻辑框图,并编写定时采样8个通道的程序。设采样频率为2ms一次,每个通道采10个数,把所采的数按0~7通道的顺序存放在以1000H为首地址的外部RAM中。

    7-7

    在一个fosc=12MHz的8031应用系统中,接有一片D/A器件DAC0832,它的地址为7FFFH,输出电压为0~5V。请画出有关逻辑框图,并编写一个程序,当其运行后0832能输出一个矩形波,波形占空比为1:5。高电平时电压为2.5V,低电平时为1.25V。

    7-8

    画出由8031扩展一片2764、一片6264、一片8155、一片0809及一片0832的接口电路框图,并给出所扩展的各个芯片的地址范围。

    第八章 串行通信接口技术习题

    8-1

    什么是串行异步通信,它有哪些作用?并简述串行口接收和发送数据的过程。

    8-2 8051单片机四种工作方式的波特率应如何确定?

    8-3

    某异步通信接口,其帧格式由1个起始位(0),7个数据位,1个偶校验和1个停止位(1)组成。当该接口每分钟传送1800个字符时,试计算出传送波特率。

    8-4

    串行口工作方式在方式1和方式3时,其波特率与fosc、定时器T1工作模式2的初值及SNOD位的关系如何?设fosc=6MHz,现利用定时器T1模式2产生的波特率为110bps。试计算定时器初值。

    单片机原理与应用习题集

    第一章 计算机基础习题

    1-1 什么是二进制?为什么在数字系统、计算机系统中采用二进制?

    1-2 将下列各数按权展开为多项式:

    (1) 110110B (2) 5678.32D

    (3) 1FB7H

    1-3 把下列十进制数转化为二进制、十六进制和8421 BCD码:

    (1) 135.625 (2) 548.75

    (3) 376.125 (4) 254.25

    1-4 什么是原码、反码和补码?微型计算机中的数为什么常用补码表示?

    1-5 写出下列十进制数原码、反码和补码(用8位二进制表示):

    (1) + x = + 65 (2) + x = + 115

    (3) - x = - 65 (4) - x = - 115

    1-6

    计算下列两组二进制数内部式子的逻辑“与”,“或”及“异或”的结果:

    (1)10100101和00001111

    (2)10011101和10100101

    1-7 什么是单片机?它与一般微型计算机在结构上有何区别?

    1-8 新型8位单片机主要在哪些方面有所发展?给应用系统带来什么好处?

    第二章 单片机系统组成原理习题

    2-1 什么是单片机?它与一般的微型计算机在结构上有何区别?

    2-2 MSC-51单片机内部有哪些主要的逻辑部件?

    2-3

    MSC-51单片机程序存储器和数据存储器各有什么功用?其内部RAM区功能结构如何分配?

    2-4

    在内部RAM中,4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?

    2-5 程序状态字PSW的作用是什么?常用标志有哪些位?作用是什么?

    2-6 简述定时器的四种工作模式的特点,如何选择和设定?

    2-7

    当定时器T0用作模式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?

    2-8

    已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0和P1.1引脚分别输出周期为2ms和500us的方波。

    2-9 什么是中断?其主要功能是什么?

    2-10 什么是中断优先级?中断优先处理的原则是什么?

    2-11 试编写一段对中断系统初始化的程序,使之允许 ,

    ,T0,串行口中断,且使T0中断为高优先级中断。

    第三章 单片机指令系统习题

    3-1

    设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?

    MOV A, 59H

    MOV R0, A

    MOV A, #00H

    MOV @R0, A

    MOV A, #25H

    MOV 51H, A

    MOV 52H, #70H

    3-2

    已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。

    ANL A, #17H

    ORL 17H, A

    XRL A, @R0

    CPL A

    3-3 使用位操作指令实现下列逻辑操作,要求不得改变未涉及位的内容。

    (1)使ACC.0置1;

    (2)清除累加器高4位;

    (3)清除ACC.3,ACC.4, ACC.5, ACC.6。

    3-4

    试编写程序,将内部RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH,和2DH中。

    3-5

    编写两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30H,31H单元,30H存差的低八位。

    3-6

    两个四位BCD码相加,被加数和加数分别存于50H,51H,52H,53H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数存放在54H,55H和56H中(56H用来存放最高位的进位),试编写加法程序。

    3-7 设指令SJMP

    rel中的rel=7EH,并假设该指令存放在2114H和2115H单元中。当该条指令执行后,程序将跳转到何地址?

    3-8

    已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行“RET”指令以后,SP=?

    PC=?

    3-9 简述转移指令AJMP addr11,SJMP rel, LJMP

    addr16及JMP @A+DPTR的应用场合。

    3-10

    试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?P1口的8条I/0线为何状态?

    CLR C

    MOV A,#66H

    JC LOOP1

    CPL C

    SETB 01H

    LOOP1: ORL C,ACC.0

    JB ACC.2,LOOP2

    CLR 00H

    LOOP2: MOV P1,A

    第五章 汇编语言程序设计习题

    4-1

    从内部存储器20H单元开始,有30个数据。试编一个程序,把其中的正数、负数分别送5H和71H开始的存储单元,并分别记下正数、负数的个数送50H和70H单元。

    4-2

    以BUF1为起始地址的外存储区中,存放有16个单字节无符号二进制数,试编

    一程序,求其平均值并送BUF2单元

    4-3

    在DATA1单元中有一个带符号8位二进制数x。编一程序,按以下关系计算y

    值,送DATA2单元。

    x+5 x>0

    Y= x x=0

    x-5 x<0

    4-4 试编写延时2ms的程序

    4-5 用查表程序求0~8之间整数的立方。

    4-6 编写有6个命令键的散转程序。

    c) 键号为0、1、2、3、4、5;

    d) 6个键A、B、C、D、1、2的ASCII码放在累加器A中。

    第六章 单片机应用系统扩展设计习题

    5-1 8051单片机如何访问外部ROM及外部RAM?

    5-2 试用Intel

    2764,6116为8031单片机设计一个存储器系统,它具有8K

    EPROM(地址由0000H~1FFFH)和16K的程序、数据兼用的RAM存储器(地址为2000H~5FFFH)。具体要求:画出该存储器系统的硬件连接图。

    5-3 8255A,8155分别有哪几种工作方式?怎样进行选择?

    5-4

    试编程对8155进行初始化。设A口为选通输出,B口为基本输入,C口作为控制联络口,并启动定时器/计数器按方式1工作,定时时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHZ。

    5-5

    在一个8031应用系统中扩展一片2764,一片8155和一片6264。试画出其系统框图,并指出所扩展的各个芯片的地址范围。

    第六章 键盘、显示接口技术习题

    6-1 设计一个4×4行列式键盘电路并编写键扫描子程序。

    6-2 试说明非编码键盘的工作原理。如何去键抖动?如何判断键是否释放?

    6-2

    试设计一个用8155与有32个按键的键盘连接的接口电路。编写程序实现以下功能:用8155定时器定时,每隔2s读一次键盘,并将其读入的键值存入8155片内RAM

    40H开始的单元中。

    6-4

    用8051的P1口作8个按键的独立式键盘接口。试画出其中中断方式的接口电路及相应的键盘处理程序。

    6-5

    试用8255为8051微机系统设计一个键盘接口。键盘为3×4个键,其中10个为数1~9,两个为功能键RESET和START。具体要求:

    (1)按下数字键后,键值存入3040H开始的单元中(每个字节放一个键值)。

    (2)按下RESET(复位)键后,键PC复位成0000H。

    (3)按下START(启动)键后,系统开始执行用户程序(用户程序的入口地址4080H)。试画出该接口的硬件连接图并进行程序设计。

    6-6 试设计一个LED显示器/键盘电路。

    6-7

    试为8051微机系统设计一个LED显示器接口,该显示器共有八位,从左到后分别DG1~DG8(共阴极式),要求将内存3080H~3087H八个单元中的十进制(BCD)依次显示在DG1~DG8上。要求:画出该接口硬件连接图并进行接口程序设计。

    第八章 A/D和D/A转换接口技术习题

    7-1 模拟量输入通道一般包括哪几组成部分?每一部分的作用如何?

    7-2 在什么情况下,A/D转换器前应引入采样保持器?

    7-3 A/D转换器的分辨率如何表示?它与精度有何不同?

    7-4 判断A/D转换结束否一般可采用几种方式?每种方式有何特点?

    7-5

    D/A转换器的主要技术指标有哪些?分辨率是如何定义的?参考电压VR的作用如何?

    7-6

    在一个fosc=12MHz的8031应用系统中,接有一片A/D器件ADC0809,它的地址为FEF8H~FEFFH。试画出有关逻辑框图,并编写定时采样8个通道的程序。设采样频率为2ms一次,每个通道采10个数,把所采的数按0~7通道的顺序存放在以1000H为首地址的外部RAM中。

    7-7

    在一个fosc=12MHz的8031应用系统中,接有一片D/A器件DAC0832,它的地址为7FFFH,输出电压为0~5V。请画出有关逻辑框图,并编写一个程序,当其运行后0832能输出一个矩形波,波形占空比为1:5。高电平时电压为2.5V,低电平时为1.25V。

    7-8

    画出由8031扩展一片2764、一片6264、一片8155、一片0809及一片0832的接口电路框图,并给出所扩展的各个芯片的地址范围。

    第八章 串行通信接口技术习题

    8-1

    什么是串行异步通信,它有哪些作用?并简述串行口接收和发送数据的过程。

    8-2 8051单片机四种工作方式的波特率应如何确定?

    8-3

    某异步通信接口,其帧格式由1个起始位(0),7个数据位,1个偶校验和1个停止位(1)组成。当该接口每分钟传送1800个字符时,试计算出传送波特率。

    8-4

    串行口工作方式在方式1和方式3时,其波特率与fosc、定时器T1工作模式2的初值及SNOD位的关系如何?设fosc=6MHz,现利用定时器T1模式2产生的波特率为110bps。试计算定时器初值。

    单片机试题

    一、填空题(每空1分,共10分)

    1.当使用8031单片机时,需要扩展外部程序存储器,此时EA应为_________。

    2.P0通常用作_________。

    3.若由程序设定RS1、RS0=10,则工作寄存器R0~R7的直接地址为_________。

    4.返回地址(或断点)是_________的程序计数器的内容。

    5.中央处理器CPU是单片机的核心,它完成_________。

    6.单片机的工作过程,实际上就是_________。

    7.所谓中断源即是_________。

    8.端口(或称口)是_________。

    9.异步串行近程通信时的传送信号是_________。

    10.若累加器A中的数据为01110010B,则PSW中的P=_________。

    二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分)

    1.MCS—51单片机的复位信号是( )有效。

    A.高电平 B.低电平 C.脉冲 D.下降沿

    2.若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过(

    )。

    A.2μs B.4μs C.8μs D.1ms

    3.若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用(

    )指令。

    A.PUSH R0 B.PUSH @R0

    C.PUSH 00H D.PUSH 08H

    4.能够用紫外光擦除ROM中程序的只读存储器称为( )。

    A.掩膜ROM B.PROM C.EPROM D.EEPROM

    5.在片外扩展一片2764程序存储器芯片要( )地址线。

    A.8根 B.13根 C.16根 D.20根

    6.定时器/计数器工作方式1是( )。

    A.8位计数器结构 B.2个8位计数器结构

    C.13位计数结构 D.16位计数结构

    7.设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为( )

    A.2MHz B.1MHz C.500KHz D.250KHz

    8.已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字1,它的字形代码应为( )。

    A.06H B.F9H C.30H D.CFH

    9.下列数据字定义的数表中,( )是错误的。

    A.DW“AA” B.DW“A”

    C.DW“OABC” D.DWOABCH

    10.串行口的控制寄存器SCON中,REN的作用是( )。

    A.接收中断请求标志位 B.发送中断请求标志位

    C.串行口允许接收位 D.地址/数据位

    三、简答题(每小题4分,共20分)

    1.简述堆栈。

    2.简述变址寻址方式并举例说明。

    3.简述中断响应的主要内容。

    4.简述汇编语言中的标号有什么规定?

    5.A/D转换器转换数据的传送有几种方式?

    四、读程序(每小题4分,共20分)

    1.执行下列程序段中第一条指令后,(1)(P1.7)=____

    (P1.3)=_____,

    (P1.2)=_________;执行第二条指令后,(2)(P1.5)=_________,(P1.4)=_________,(P1.3)=_________。

    ANL P1,#73H

    ORL P1,#38H

    2.下列程序段执行后,(A)=_________,(B)=_________。

    MOV A,#0FBH

    MOV B,#12H

    DIV AB

    3.下列程序段执行后,(R0)=_________,(7EH)=_________,(7FH)=_________。

    MOV R0,#7FH

    MOV 7EH,#0

    MOV 7FH,#40H

    DEC @R0

    DEC R0

    DEC @R0

    4.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=_________,内部RAM(0AH)=_________,(0BH)=_________

    PUSH DPL

    PUSH DPH

    5.下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问执行下列程序需要多少时间?

    MOV R3,#100;1

    LOOP:NOP ;1

    NOP

    NOP

    DJNZ R3,LOOP ;2

    RET ; 2

    五、编程题(每小题4分,共20分)

    1.请使用位操作指令,实现下列逻辑操作:

    P1.5=ACC.2∧P2.7∨ACC.1∧P2.0

    2.在外部RAM首地址为TABLE的数据表中有10个字节数据,请编程将每个字节的最高位无条件地置1。

    3.已知内部RAM

    30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开始的存储区,请编程实现。

    4.已知8个无符号数之和存于R3R4,求其平均值,结果仍存于R3R4中,请编程实现(R3为高字节)。

    5.两个字符串分别存放在首地址为42H和52H的内部RAM中,字符串长度放在41H单元,请编程比较两个字符串。若相等,则把数字00H送40H单元,否则把0FFH送40H单元。

    六、综合应用题(每小题10分,共20分)

    1.用8031单片机,并采用一片2716(2KB)和一片6116(2KB)组成一个既有程序存储器又有数据存储器的扩展系统,请:

    (1)画出逻辑电路图

    (2)说明其存储空间

    2.已知D/A转换器DAC

    0832如图所示,口地址为7FFFH,运放电源为+5V,Vref=+5V,请

    (1)画出单缓冲接口方式电路

    (2)编程产生正向锯齿波

    单片机试题1参考答案

    一、填空题(每空1分,共10分)

    1.低电平

    2.单片机系统的地址/数据总线

    3.10H~17H

    4.在程序中断或子程序调用时

    5.运算和控制功能

    6.周而复始地取指令和执行指令的过程

    7.引起中断的原因(或能发出中断请求的来源)

    8.接口电路中已编址并能进行读或写操作的寄存器

    9.TTL电平信号

    10.0

    二、单项选择题(每题1分,共10分)

    1.A 2.B 3.D 4.C 5.B

    6.D 7.C 8.A 9.C 10.C

    三、简答题(每题4分,共20分)

    1.(1)在程序中断或子程序调用时,为了保护返回地址(断点)和保护现场而设立的RAM区。

    (2)用MOV SP,#STK指令建立堆栈。

    (3)存放数据按“后进先出”原则进行。

    (4)利用PUSH、POP指令即可进行进栈、出栈操作。

    2.(1)变址寻址是以DPTR或PC作基址寄存器,累加器A作变址寄存器以两者内容相加形式的16位地址作为操作数地址。

    (2)变址寻址只能对移定存储器寻址,其指令只有三条:

    MOVC A,@A+DPTR

    MOVC A,@A+PC

    JMP @A+DPTR

    前二条为查表指令,后一条为无条件转移指令

    3.由硬件自动生成一条调用指令LCALL转去中断服务,具体操作为:

    (1)将程序计数器PC的内容(断点)压栈

    (2)将中断入口地址装入PC,转去执行中断服务程序

    4.(1)标号由1—8字符组成,头一个字符必须是字母。

    (2)不能使用汇编语言已定义的符号。

    (3)标号后必须跟冒号:

    (4)同一标号在一个程序中只能定义一次。

    5.(1)定时传送方式:A/D启动后,调用延时时间大于转换时间的延时程序后即可读取。

    (2)查询方式:A/D启动后,查询EOC(转换结束信号),转换一完成即可读取转换数据。

    (3)中断方式:将EOC作为外中断请求信号,转换一结束,即引起中断,读取转换数据。

    四、读程序(每题4分,共20分)

    1.(1)(P1,7)=0,,(P1.3)=0,(P1.2)=0

    (2)(P1.5)=1,(P1.4)=1,(P1.3)=1

    2.(A)=0DH(或13)

    (B)=11H(或17)

    3.(R0)=7EH,(7EH)=FFH,(7FH)=3FH

    4.(SP)=0BH

    (0AH)=67H

    (0BH)=45H

    5.一个机器周期为2μs

    执行程序所需时间T=2μs*(5×100+3)=1006μs≈1ms

    五、编程题(每题4分,共20分)

    1.先进行与操作,再进行或操作程序如下:

    MOV C,ACC.1

    ANL C,P2,0

    MOV 12H,C

    MOV,C,A CC.2

    ANL C,P2.7

    ORL C,12H

    MOV P1.5,C

    RET

    2. MOV R2,#10

    MOV DPRT,#TABLE

    LOOP: MOV X A,@DPRT;取一数

    ORL A,#80H;最高位置1

    MOV X @DPTR,A;写回原地址

    1NC DPTR;处理下一单元

    DJNZ R2,LOOP

    RET

    3. MOV R0,#30H

    MOV R1,#00H

    MOV R2,#20H

    LOOP: MOV A,@R0;取数

    MOV X @R1,A;存数

    1NC R0

    1NC R1

    DJNZ R2,LOOP

    RET

    4.利用移位指令作除8操作,程序如下:

    MOV R2,#3

    LOOP:CLR C

    MOV A,R3

    RRC A ;高字节除以2,末位移入C,高位补0

    MOV R3,A ;暂存高字节

    MOV A,R4

    RRC A ;低字节除以2,高字节末位移入低字节高位

    MOV R3,A

    DJNZ R2,LOOP

    RET

    5.有一个字节不等,整个字符串不相等,所有字节相等,两字串才相等

    MOV R0,#42H

    MOV R1,#52H

    LOOP:MOV A,@R0

    CLR C ;不相等,FFH→40H

    SUBB A,@R1

    JNZ LOOP1 ;相等时,比较下一字节

    INC R0

    INC R1

    DJNZ 41H,LOOP

    MOV 40H,#0 ;所有字符均相等,则两字串相等。

    RET

    LOOP1:MOV 40H,#0FFH

    RET

    六、综合应用题(每题10分,共20分)

    1.(1)逻辑图

    (2)地址:

    芯片

    P2.2

    P2.1

    P2.0

    P0.7

    ……

    P0.0

    地址范围

    2716

    0

    0

    0

    0

    0

    0000H

    …

    1

    1

    1

    1

    1

    07FFH

    6116

    0

    0

    0

    0

    0

    0000H

    1

    1

    1

    1

    1

    07FFH

    2.(1)

    (2)程序

    DASAW:MOV DPTR,#7FFFH

    MOV,A,#0

    LOOP:MOVX @DPRT,A

    1NC A

    NOP

    AJMP LOOP

    展开全文
  • 并行ADC虽然数据传输速度快,但引脚多、体积大、占用微处理器接口多;串行ADC具有体积小、功耗低、占用微处理器接口少的优点,而且传输速率较高,因此应用日渐广泛。 MAX1072/MAX1075是Maxim公司新推出的低功耗、...
  • 班长聊通信原理 | 系列文章请至主页“文章”查阅通信中的很多调制都有一个把串行数据转换为并行数据的过程,QPSK就是一个典型的例子。其实不光QPSK,其他的调制方法都是这个模式。很多小伙伴最近都在问关于QPSK的...

    班长聊通信原理 | 系列文章请至主页“文章”查阅

    通信中的很多调制都有一个把串行数据转换为并行数据的过程,QPSK就是一个典型的例子。

    其实不光QPSK,其他的调制方法都是这个模式。

    很多小伙伴最近都在问关于QPSK的问题,很多人在串并转换地方就犯糊涂了。我之前也写过QPSK的文章:

    数字调制技术:如何优雅的学习QPSK,IQ调制与星座图?

    本文将从实际Matlab仿真角度,直观的阐述这个问题。


    先从发送信息开始

    无论如何,我们先假定我们需要发送一组信息。

    为了方便,我们跳过传感器采集-采样-编码等环节,直接定义一组数据:

    10位二进制数,10个比特。

    0-1-0-1-1-1-0-0-1-1

    data=[0  1 0 1 1 1 0 0 1 1];%准备发送的信息

    通过Matlab的stem绘图函数,可以画出原始信息。定义图形标题为“准备发送的信息”,设置坐标轴范围,横坐标0~11,纵坐标0~1.5。

    figure(1)stem(data, 'linewidth',3), grid on;% 画出杆状图,线宽度设置为3号title('  准备发送的信息 ');% 定义图形标题axis([ 0 11 0 1.5]);% 设置坐标轴范围

    得出原始数据杆状图1:

    4f78d0f2506f492dc86baf70e91635a6.png

    图1 拟发送的数据,10个比特;来源:班长自制

    再对数据简单处理

    将原始信息,改成NRZ(Nonreturn - To - Zero)非归零双极性编码,就是我们最常见的编码。

    根据信号是否归零,还可以划分为归零码和非归零码,归零码码元中间的信号回归到0电平,例如"1"为正电平,"0"为负电平,每个数据表示完毕后,都会回归到零电平状态,而非归零码没有回归到零电平的过程,例如"1"为高电平,"0"为低电平。

    而双极性,就是用正负电平的脉冲分别表示二进制代码1和0。

    6945e4923a7c9386758d5381d4e0cf6b.gif

    图2 多种常见的编码形式;来源:网络

    data_NZR=2*data-1; % 将数据改成NRZ编码格式

    data数据改成NRZ形成编码,在Matlab中也是简单的一句命令即可,具体波形如图3中“串”波形。

    208529372b5cd4dac304718ff44d2bd0.gif

    图3 QPSK的调制原理;来源:班长自制

    数据流串→并转换?

    很多程序中,会用reshape函数一句话,实行了数据比特的串并转换。

    s_p_data=reshape(data_NZR,2,length(data)/2);  % 数据串并转换

    关于"A = reshape(A,m,n)"函数的作用,就是将A的行列排列成m行n列。它对我们输入data_NZR的作用就如图4所示。

    6fe8d720c1f4e3b1f5f767214e6733b1.png

    图4 数据的串并转换;来源:班长自制

    就是把一串数据,按照m行n列重新排列。

    我们为什么要把一串数据,如图4中“串”形数列转换为并行呢?

    还得先从MPSK的原理说起

    这里的M代表多进制,M=2,4,8...,通常取2的正整数幂。

    也就是常说的2PSK,4PSK/QPSK,8PSK......

    一个三角函数sk(t),我们通常用三个参数就可以唯一确定,分别为振幅A,频率f/ω,初始相位θk。

    我们这里讨论的是相位调制,所以振幅A和频率f/ω不会变化。

    217308c87483c45c267a094c548be75e.png

    图5 QPSK信号分析;来源:班长自制

    θk的变化,如图5所示。

    如果定义θk等于π或者0两种情况,那么sk(t)就有两种唯一的波形,分别为

    • A cos( ωt + 0 )
    • A cos( ωt + π )

    这两种波形,正好对应二进制的0和1,这就是2PSK/BPSK调制。

    那么4PSK/QPSK调制呢?

    以此类推,按照θk的公式,我们可以取0,π/2,π,3π/2四种初相位,对应4种sk(t)波形

    • A cos( ωt + 0 )
    • A cos( ωt + π/2 )
    • A cos( ωt + π )
    • A cos( ωt + 3π/2 )

    这四种波形,可以表示四种二进制组合01,00,10,11,这就是4PSK/QPSK调制。

    同样是sk(t)波形,在QPSK中可以同时传输两个bit,所以理论上4/QPSK调制的数据传输速率是2PSK的两倍。

    如何产生QPSK信号?

    生成QPSK信号,就是上文的sk(t)信号。

    sk(t)是一个三角函数,根据三角展开式,我们可以进行如下展开:

    9249367ec7ca8c48c97e8926df48a3ad.gif
    c8e73af26ac3a84365a44c6ce5acb44e.gif

    sk(t)波形被展开成两个正弦波的叠加,且初始相位均为0,二者相位差π/2(cos与sin相位差π/2)。

    载波信号coswt很容易获得,sinwt信号在cosωt的基础上做一个π/2移相,也可以获得。

    那么根据图3所示,当数据流串并转换之后,分成2路,一路为ak,一路为bk;

    分别与cos和sin相乘之后,再进行叠加,输出QPSK信号。

    我们用图3中的串行数据-1 +1 -1 +1 +1 +1 -1 -1 +1 +1作为输入。

    • ak = -1 或者 +1
    • bk = -1 或者 +1

    当ak=-1,bk=+1,输入为(0,1)时,

    sk(t)=-1*cosωt+(+1)sinωt=√2 * cos(ωt + 5π/4 ),θ3 = 5π/4;

    当ak=+1,bk=+1,输入为(1,1)时,

    sk(t)=+1*cosωt+(+1)sinωt=√2 * cos(ωt + 3π/4 ),θ4 = 7π/4;

    当ak=-1,bk=-1,输入为(0,0)时,

    sk(t)=-1*cosωt+(-1)sinωt=√2 * cos(ωt + 7π/4 ),θ2 = 3π/4;

    当ak=+1,bk=-1,输入为(1,0)时,

    sk(t)=+1*cosωt+(-1)sinωt=√2 * cos(ωt + π/4 ),θ1 = π/4;

    嘿嘿,这也是四个相位,那么这也是QPSK。

    f9aa2195e6b87a225c650f0f0369e453.png

    图6 QPSK的四种相位信号;来源:班长自制

    自此,我们发现之所以要串行转换为并行,就是为了方便调制cos和sin载波,然后叠加,形成QPSK信号。

    那么,我们可以生产QPSK信号如下图7所示。同相信号Inphase和正交Quadrature信号叠加,形成最终QPSK信号。

    1b487f237bee30a63418d1ac7842535b.png

    图7 QPSK信号仿真图;来源:班长自制

    for(i=1:length(data)/2)    y1=s_p_data(1,i)*cos(2*pi*f*pt); % 同相分量     y2=s_p_data(2,i)*sin(2*pi*f*pt) ;% 正交分量     y_in=[y_in y1]; % 同相信号向量    y_qd=[y_qd y2]; % 正交信号向量    y=[y y1+y2]; % 调制信号end

    总结

    文中的仿真其实还是有改进之处的,班长在此抛出3个思考,大家可以思考下,会加深对QPSK的理解。

    QPSK可是4G、5G中的重要调制技术,尤其在信号覆盖较差的时候,一点也不过时啊。

    思考1:为什么一般的程序中要用NRZ编码这种形式,用其他的编码形式可以吗?

    思考2:图7中最后红色的QPSK信号,在"0.4"位置处,出现了不连续,或者说是突变?这对信号传输有影响吗?能否改进?

    思考3:图6中的对应方式,即

    • θ1→(1,0)
    • θ2→(0,0)
    • θ3→(0,1)
    • θ4→(1,1)

    为什么要这么排列,可以打乱顺序么?格雷码是什么?

    看到这里,帮文章点个赞吧!

    欢迎您在评论区留言讨论!

    展开全文
  • 串行A/D转换器通讯编码原理与应用

    千次阅读 2008-03-07 13:06:00
    本节以16位计算机和12位A/D串行转换对象讨论数据采集通讯原理和软件编程方法。假设A/D共有16个数据通道,且各通道寄存器当前采集到12位二进制数据:{b11b10...b1b0}Channel number = 0,1,2,...,15。寄存器数据向...
    本节以16位计算机和12位A/D串行转换器为对象讨论数据采集通讯原理和软件编程方法。假设A/D共有16个数据通道,且各通道寄存器当前采集到12位二进制数据:{b11b10...b1b0}Channel number = 0,1,2,...,15。寄存器数据向计算机内存的通讯传递是实现数据采集的关键技术。
    F5107是北京众人精密测控技术公司生产的串行十二位16通道A/D板,它可以通过计算机LPT并行口外接笔记本电脑,广泛用于野外便携测试。该A/D板占PC机的两个端口:并行口在PC中的端口H378(IBM为H3BC)和H379(H3BD),前者通过写OUT向A/D发送操作指令,后者通过INP从A/D读取数据。
    Ms1215是北京计算机配件5厂生产的串行十二位16通道A/D板,它安装在PC机的八位插槽中。该型号A/D板在整个八十年代和九十年代初有大批量生产,目前在许多科研、生产单位仍然在发挥积极作用。该A/D板占PC机的四个端口:&H710、&H711、&H712和&H713,通过端口&H710和&H711向A/D发送OUT"写"操作指令,通过端口H712和H713向A/D发送 INP"读"数据通讯操作命令。
    无论是外接式还是内插式串行A/D转换器,其采数思路是:按一定编码规则,通过写命令OUT将地址指针直接指向A/D板某通道的数据寄存器的特征位置,通过INP函数分两次以上读回数据,然后对其提取所含A/D数据寄存器中某些位的数据,最后将分段取回数据还原为A/D寄存器数据。下面说明A/D转换器的操作与读数编码原理,并以Qbasic和VB编程环境为例说明其在采数中的编程应用方法。
    6-5-1 A/D转换器的寄存器地址编码原理
    在QB中,向端口发送指令的OUT命令格式为:
    OUT port,data
    PORT为A/D设备在PC总线中的端口地址(有些A/D板,如F5107采用LPT接口,故PORT为&H378或&H3BC,而有些A/D板采用其它16位I/O地址,如MS1215 A/D板采用地址H710)。Data是一个0~255的十进制数,对应着八位二进制数据,其二进制格式为:
    D7 D6 D5 D4 D3 D2 D1 D0
    该二进制可以表为D7D6D5D40000与D3D2D1D0之和。D3D2D1D0编码为0000、0001、...、1111分别对应了A/D转换器序号为0,1,...,15的通道(共16个通道),例如,语句"OUT port,14"表示A/D的14通道就位。D7D6D5D4编码为0010表示启动通道为D3D2D1D0的A/D转换,如启动A/D的14通道采用语句"OUT port,&H2E",或"OUT port,32+14"。
    对于外插式A/D板,厂家提供了D7D6D5D4的编码方案。data按如下方式编码:

    D7 D6 D5 D4 1 1 1 0


    如F5107,其D7D6D5D4编码为0100、0110、1000(4、6、8),它们表示对当前选定的A/D通道发送读A/D寄存器数据b11b10...b1b0的高、中、低四位数据(b11b10b9b8、b7b6b5b4、b3b2b1b0)指令,即通过OUT将地址指针指向A/D寄存器的高、中、低四位。这三个编码分别对应十进制码为64(读高四位)、96(读中四位)、128(读低四位)。指令"OUT &H378,&H40"或"OUT &H378,64"表示地址指针指向A/D当前通道数据寄存器的高四位。对于MS1215内插式A/D板,D7D6D5D4的编码为0000。
    按上述方法设定地址指针后立即通过语句:
    d=INP(PORT1)
    向A/D寄存器读回包含A/D采数寄存器的12个二进制位中若干位的16位二进制数据。换句话说,返回数据d对应了16位二进制数据,其中只有若干位是所需的A/D数据寄存器数据段。如果采用LPT接口的外插式A/D板,语句中地址PORT1=PORT+&H1,即读数地址PORT1为&H379或&H3BD(IBM)。有些PC内插式A/D板可能有两个读数端口,如MS1215A/D板读数端口为&H710(对应高四位)和&H712(对应低八位)。
    下面程序段是实现A/D指令的示意方法:

    'F5107 A/D采数方法例子
    ADPort=&H378 '=&H3BC for IBM
    for j=0 to 15
    OUT ADPort,j
    '送通道,j意味着编码0000,0001,...
    '1110,1111
    If ADPort=&H378 or &H3bc then
    '启动A/D的第j通道
    OUT ADPort,&H20+j
    for i=4 to 8
    Data1=i*16 ' data1=&H40,&H60,&H80
    Out ADPort,Data1
    '向端口ADPort写data1,使地址指针指向A/D通道'数据寄存器的高、中、低四位数据
    a=INP(ADPORT+1)
    ...
    next i
    else
    Out ADPORT+1,j: a=INP(ADPORT+1)
    ...
    end if
    next j
    6-5-2 A/D数据通讯编码与模拟转换
    (1) F5107通讯编码原理与模拟转换方法
    F5107 A/D的 12位寄存器中二进制数据为b11b10...b1b0,它分为高、中、低四位(b11b10b9b8、b7b6b5b4、b3b2b1b0)按以下格式对应着PC计算机总线的16位二进制数据线路:
    高四位数对应a:
    x x x x x x X x b11 b10 b9 b8 x x x x
    中四位数对应b:
    x x x x x x X x b7 b6 b5 b4 x x x x
    低四位数对应c:
    x x x x x x X x b3 b2 b1 b0 x x x x
    以上数据通过读命令,如a=INP(H379),或a=INP(H3BD),将A/D板数据寄存器的高、中、低四位二进制数按上述格式送入PC计算机的16位二进制数据寄存器a、b、c中;再通过二进制的并操作命令,如a=a and HF0即可提取有关A/D板采数寄存器中高中低四位数据的数据信息,即a=b11b10b9b80000, b=b7b6b5b40000、c=b3b2b1b00000。于是,A/D所采数据由以下方法获得:
    a= b11b10b9b80000=(b1123+ b1022+ b921+ b820)24, 即 =a/16
    b= b7b6b5b40000=(b723+ b622+ b521+ b420)24 =b/16
    c=b3b2b1b00000=(b323+ b222+ b121+ b020)24 =c/16
    则对应A/D某通道寄存器中所采集到的二进制数据b11b10...b1b0的十进制数值为:
    d=( )28+( )24+( )20
    =(a/16)*256+(b/16)*16+(c/16)
    =a*16+b+c/16
    由于12位A/D电压量程-Kv~Kv对应的二进制数为0~111111111111(212-1=4095),则模拟电压的数值计算公式为:
    dv=d*2Kv/4095-Kv
    ≈(a*16+b+c/16)*2Kv/4096-Kv
    (2) MS1215板的编码与模拟转换方法
    MS1215A/D的12位寄存器中二进制数据为b11b10...b1b0,它分为高四、低八位(b11b10b9b8、b7b6b5b4b3b2b1b0),按以下格式对应着PC计算机总线的16位二进制数据线路:
    高四位数对应a:
    x x x x x x x x x x x x b11 b10 b9 b8
    低八位数对应b:
    x x x x x x x x b7 b6 b5 b4 b3 b2 b1 b0
    以上两个数据通过读命令a=INP(&H712)和b=INP(&H713),将A/D板数据寄存器的高四位、低八位二进制数按上述格式送入PC计算机的16位二进制数据寄存器a、b中;再通过二进制的并操作命令,如a=a and &HF和b=b and &HFF即可提取有关A/D板采数寄存器中高低位数据的数据信息,即a=b11b10b9b8, b=b7b6b5b4b3b2b1b0。于是,按前面相似方法可得A/D所采数据的公式:
    d=a*256+b
    其模拟电压的数值计算公式为:
    dv=d*2Kv/4095-Kv
    ≈(a*256+b)*2Kv/4096-Kv
    kv的定义同前。
    (3) 串行A/D板数据采集子例程
    以下是两种串行A/D板的BASICA或Quick Basic环境采数子例程。
    F5107 A/D板的采数子例程:
    sub acq (a1, i1, j)
    a1 = 0
    for m = 1 to 20
    out &H378, j
    for i = 1 to I1: next i
    out &H378, &H20 + j
    for i = 1 to 8: next i
    out &H378, &H40
    a = inp(&H379)
    a = a and &HF0
    out &H378, &H60
    b = inp(&H379)
    b = b and &HF0
    out &H378, &H80
    c = inp(&H379)
    c = c and &HF0
    a1 = a * 16 + b + c / 16 + a1
    next m
    a1 = a1 / 20
    end sub
    M1215 A/D板的采数子例程:
    ...
    FOR JJ=1 TO N0
    FOR J = 0 TO CH
    OUT &H710, J
    FOR I = 1 TO 10: NEXT I
    OUT &H711, J
    For i=1 to 10:next i
    A(J) = INP(&H712):A(J)=A(J) and &HF
    B(J) = INP(&H713): B(J)=B(J) and &HFF
    A1(JJ,J)=10 * (A(J) *256+ B(J)) / 4096! - 5
    NEXT J
    NEXT JJ
    ...
    (4) 在VB中的I/O动态连接库与调用
    已有I/O动态连接库VBIOX.DLL,调用前必须对VBIOX.DLL(置于window/system目录中)进行调用声明:
    Private Declare Function TopInPortW Lib "vbiox.dll" (ByVal Idx As Integer) As Integer
    Private Declare Sub TopOutPortW Lib "vbiox.dll" (ByVal Idx As Integer, ByVal Data As Integer)
    VB中I/O指令TopOutPortW 和TopInPortW在用法上对等于QB中的OUT指令和INP指令。
    例子
    Option Explicit
    Private Declare Function TopInPortB Lib "vbiox.dll" (ByVal Idx As Integer) As Byte
    Private Declare Sub TopOutPortB Lib "vbiox.dll" (ByVal Idx As Integer, ByVal Data As Byte)
    Private Sub Command3_Click()
    End
    End Sub
    Private Sub Command4_Click()
    Dim a, b, c, i, k, a1
    a = TopInPortB(&H379)
    a = a And &HF0
    Call TopOutPortB(&H378, &H60)
    b = TopInPortB(&H379)
    b = b And &HF0
    Call TopOutPortB(&H378, &H80)
    c = TopInPortB(&H379)
    c = c And &HF0
    a1 = a * 16 + b + c / 16
    a1 = Fix((10 * a1 / 4096# - 5) * 100000) / 100000
    Text1.Text = Str$(a1)
    End Sub

     
    展开全文
  • 串口的结构和工作原理 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。...为了增强数据的抗干扰能力,提高传输长度,通常将CMOS逻辑电平转换为RS-232逻辑电平(3~1
  • 班长聊通信原理 | 系列文章请至主页“文章”查阅通信中的很多调制都有一个把串行数据转换为并行数据的过程,QPSK就是一个典型的例子。其实不光QPSK,其他的调制方法都是这个模式。很多小伙伴最近都在问关于QPSK的...
  • 文中介绍了MAXll48的特点、结构和工作原理,给出了它在8位CPU核心的数据采集系统中的应用实例。  关键词:模数转换器;MAXll48:串行 1 概述 模/数转换器(ADC)是现代测控中非常重要的环节。它有并行串行两...
  • 当模拟信号(电压或电流)转换为数字信号时,转换器的输出是一串频率正比于模拟信号幅值的矩形波,显然数据串行的。这与目前通用的模数转换器并行输出不同,然而其分辨率却可以很高。串行输出的模数转换在数字控制...
  •  高速串行数据收发器的发送器负责将低速的并行数据转换为高速串行数据发到信道上,发送器利用本地锁相环电路(PLL)提供必要的时间参考。信道会对数据进行滤波和叠加噪声。接收器负责接收经信道传输来的高速串行...
  • 摘 要:介绍了高精度模数转换器AD7671的工作原理,并在此基础上阐述了基于AD7671和TMS320VC5402进行高速高精度数据采集的实现方法,同时给出了硬件电路的电路图和相应的调试程序。关键字:AD7671;高精度;DSP;数据...
  • 在lab04中决定对其代码进行好好的复盘,这几天也将uart的传输原理搞的七七八八。...其在数据发送时将并行数据转换为串行数据来传输,在数据接收时将串行数据转换为并行数据来接受,实现全双工传输和接...
  • 如果查看一下典型通信系统的结构,可以看出很多元件都需要相互进行通信。满足数据通道中各种元件的不同需求,因而出现了各种...串并行转换器与光电传感器间的接口通常高速串行数据流,利用一种编码方案实现不同信令
  • 微机原理练习题

    2015-09-26 10:14:29
    6 串行I/O接口的基本功能之一是进行串行并行数据流之间的转换( ) 7 标志寄存器中的中断标志位是控制非屏蔽中断的标志( ) 8 主要存放操作数的偏移地址的16位寄存器有BX,BP,SI,DI( ) 9 80386突出的特点是可...
  • 2、在数据传送过程中,数据串行并行,或由并行串行转换可通过(3)来实现。 计数器 寄存器 移位寄存器 D触发器 3、CPU响应中断后,通过(4)完成断点的保护。 执行开中断指令 执行关中断指令 执行PUSH...
  • 了解移位寄存器,包括它们如何工作以将并行连接转换为串行连接。 所需的组件 ● Arduino Uno开发板 ● 74HC165 ● 跳线电缆 移位寄存器有不同的版本,可用于各种应用。本文将向您介绍移位寄存器并说明它们的工作原理...
  • 3.6.1 数据并行模型 3.6.2 任务图模型 3.6.3 工作池模型 3.6.4 主-从模型 3.6.5 流水线模型或生产者-消费者模型 3.6.6 混合模型 3.7 书目评注 习题 第4章 基本通信操作 4.1 一对多广播以及多对一归约 ...
  • 1引言模/数转换是现代测控电路中非常重要的环节,它有并行串行两种数据输出形式。目前,模/数转换器ADC已被做成大规模集成电路,并有多种型号和种类可供选择。本文介绍了AD7654的性能特点,并设计了AD7654与...
  • 单片机原理及应用 (电子书)

    热门讨论 2009-04-28 11:28:31
    5.2.1 并行积分式A/D转换器ICL7135的应用 114 5.2.2 串行A/D转换器AD7703的应用 119 5.3 数模(D/A)转换器的应用 123 5.3.1 并行D/A转换器DAC0832的应用 123 5.3.2 串行D/A转换器AD7543的应用 126 习题 128 第...
  • 它将微机系统内部传送过来的并行数据转换为串行输出数据流,以电平的形式传输出去;将微机系统外部传送来的串行数据转换为字节,供微机系统内部使用并行数据的器件使用;在输出的串行数据流中加入奇偶校验位,并对从...
  • 在数字视频中,为了便于数字信号的远距离传输,将并行数据转换串行数据,经电缆驱动器通过电缆传输给接收端。SDI就是这种串行数据接口的简称。本文以1080i/50系统例,对HD-SDI的原理做简单的阐述,着重介绍其...
  • 有些题计算次数为4k,按需转换为 10,或者2^10 内存中二进制数以补码存放 计算二进制时注意⚠️第i位是2^i-1 异步通信 串行 起始位,数据位(任意)校验位,停止位 2016年 并行 计算机系统概述 计算机...
  • 电路原理图.......................................................20 直流电路特性.................................................23 欧姆定律...........................................24 电流吸入与电流...
  • 串口通信简介串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。本文...
  • 串口通信的小见解

    2020-06-30 10:45:10
    串口通信的接口是串行接口,是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。...
  • 串口通信简介串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。本文...
  • Linux 串口通信

    2011-06-24 09:13:00
    串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。   原理:  ...
  • 4.4.1 知识背景——并行输出端口扩展的原理 4.4.2 利用Configuration Wizard获得C8051F320 单片机相关程序代码 4.4.3 程序解析 4.4.4 程序的下载和调试 4.5 51 内核单片机通用I/O端口并行扩展大容量flash的应用编程...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

并行数据转换为串行数据原理