版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选文档习题答案习题0单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。什么叫单片机?其主要特点有哪些?将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。单片机有哪几个发展阶段?(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个中断源。片外寻址范围可达64KB,芯片引脚为40个。代表产品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。(4)第四阶段(1983年至今):16位单片机和8位高性能单片机并行发展的时代。16位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了16位的CPU,8KB的ROM,232B的RAM,具有串/并行接口,4个16位的定时器/计数器,有8个中断源,具有看门狗(Watchdog),总线控制部件,增加了D/A和A/D转换电路,片外寻址范围可达64KB。代表产品有Intel公司的MCS-96系歹寸,Motorola公司的MC68HC16系列,TI公司的TMS9900系歹寸,NEC公司的783XX系列和NS公司的HPC16040等。然而,由于16位单片机价格比较贵,销售量不大,大量应用领域需要的是高性能、大容量和多功能的新型8位单片机。近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola公司的M68300系列和Hitachi(日立)公司的SH系列、ARM等。在实际应用中,如何选择单片机的类型?选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。MCS-51为主流产品。Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声精选文档精选文档低,抗干扰能力强,比较适合于工控领域及恶劣的环境。Microchip单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。在嵌入式系统低端的单片机领域,Intel公司的MCS-51形成了既具有经典性又不乏生命力的一个单片机系列。许多半导体厂家、电器公司以MCS-51系列中的8051为基核,推出了许多兼容性的CHMOS单片机----80C51系列。此外,还有Zilog、EM78、Senix、NEC、Epson、NS、三星、富士通、华邦、Philips、ARM等单片机。试比较MCS-51,MSP430,EM78,PIC,M6800及AVR等系列单片机的特点。MCS-51为主流产品。MSP430的功能较强。是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能.I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。PIC系列8位单片机是Microchip公司的产品。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动能力较强。举例说明生活中应用单片机的例子。生活中单片机无处不在:如洗衣机的控制主板、太阳能的温度控制器,电动车的控制器,电磁炉、(高级)电冰箱的控制系统、手机、电视遥控器、空调、洗衣机、微波炉、冰箱、热水器、电子称、电子表、计算器、汽车钥匙、可视门禁、公交车报站器、公交车刷卡器、红绿灯控制器等等。欧美日等国家,一个家庭中所拥有的单片机数量平均到100-120颗。单片机有着广泛的应用领域:单片机在智能仪器仪表中的应用;单片机在工业测控中的应用;单片机在计算机网络和通讯技术中的应用;单片机在日常生活及家电中的应用;单片机在办公自动化万面。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物、自动控制领域的机器人、
智能仪表、医疗器械等等MCS51单片机是基于(Harvard(哈佛))结构的,其特点是(程序存储器和数据存储器是分开的))CPU由(运算器)和(控制器)组成。若不使用MCS-51片内程序存储器,引脚MCS51单片机是基于(Harvard(哈佛))结构的,其特点是(程序存储器和数据存储器是分开的))CPU由(运算器)和(控制器)组成。若不使用MCS-51片内程序存储器,引脚(EA)必须接地.。在MCS-51单片机中,如果采用6MHz晶振,一个机器周期为(2us)。8051内部RAM位寻址区的单元地址范围为(20H〜2FH),其位地址范围为(00H〜7FH)。8051芯片的引脚可以分为三类:(电源线)、(端口线)和(控制线)。若A中的内容为63H,那么,P标志位的值为(0)。8031单片机复位后,R4所对应的存储单元的地址为时当前的工作寄存器区是(0)组工作寄存器区。8051型单片机内部有(A)的ROM。A:4KBB:6KBC:MCS-51上电复位后,SP的内容应是(C:(04H),因上电时PSW=(OOH)。这A:00HB:07HPC用来存放(C)。A:指令C:下一条的指令地址采用8031单片机必须扩展(256BB6OH)。D:8KBD:70HB:D:B上一条的指令地址正在执行的指令地址)。C:I/O接口
)。C:I/O接口
)。D:3组A:14.MCS-51什么?MCS-51D:显示接口A:数据存储器 B:D:显示接口PSW=18H时,则当前工作寄存器是(D0组B:1组C:2组系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口、中断系统等几大单元。CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器PC(ProgramCounter)、指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)、定时控制逻辑和振荡器OSC等电路组成。CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。程序存储器(ROM)用于存储程序、常数、表格等。数据存储器(RAM)用于存储数据。8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。可用于定时和对外部输入脉冲的计数。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。中断系统用于处理中断过程。MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0〜P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0〜P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。对外可寻址空间为64KB。8051单片机的控制总线信号有哪些?各有何作用?控制线一共有6条:ale/prog:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7-P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7〜P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。PSEN:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSEN上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。RST/VpD:复位/备用电源线,可以使8051处于复位工作状态。什么是指令?什么是程序?简述程序在单片机中的执行过程。指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。程序:一系列指令的有序集合称为程序。程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。8051单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点?80C51在结构上的特点80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为Harvard结构。在物理和逻辑上的地址空间存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。访问格式访问片内RAM采用MOV格式访问片外RAM采用MOVX格式8051片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?片内RAM低128单元划分及主要功能如下:(1)工作寄存器组(00H—1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4精选文档精选文档个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0—R7。(2) 位寻址区(20H—2FH)16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。(3) 堆栈与数据缓冲区(30H—7FH)用于设置堆栈、存储数据。8051单片机的片内、片外存储器如何选择?程序存储器通过EA/Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。何为堆栈指针?堆栈操作有何规定?堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照“先进后出”的存取数据。堆栈指针SP是一个8位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的物理位置。8051单片机有多少个特殊功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊功能寄存器中的哪些寄存器可以进行位寻址?8051有21个特殊功能寄存器(PC除外),它们被离散地分布在内部RAM的80H〜FFH地址单元中,共占据了128个存储单元,其中有83位可以位寻址。特殊功能寄存器SFR的分布和功能见下表。特殊功能寄存器功能名称物理地址可否位寻址B寄存器BF0H可以A(ACC)累加器E0H可以PSW程序状态字(标志寄存器)D0H可以IP中断优先级控制寄存器B8H可以P3P3口数据寄存器B0H可以IE中断允许控制寄存器A8H可以P2P2口数据寄存器A0H可以SBUF串行口发送/接收数据缓冲寄存器99H不可以SCON串行口控制寄存器98H可以P1P1口数据寄存器90H可以TH1T1计数器高8位寄存器8DH不可以TH0T0计数器高8位寄存器8CH不可以TL1T1计数器低8位寄存器8BH不可以TL0T0计数器低8位寄存器8AH不可以TMOD定时器/计数器方式控制寄存器89H不可以TCON定时器控制寄存器88H可以PCON电源控制寄存器87H不可以DPH数据指针寄存器高8位83H不可以DPL数据指针寄存器低8位82H不可以SP堆栈指针寄存器81H不可以P0P0口数据寄存器80H可以DPTR是什么寄存器?它的作用是什么?数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)ODPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用,8051单片机的PSW寄存器各位标志的意义如何?程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(C):进位标志位。yPSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1和RS0):寄存器组选择位。PSW.2(OV):溢出标志位。PSW.1(空缺位):此位未定义。PSW.O(P):奇偶校验位。开机复位后,CPU使用的是哪组工作寄存器(R-R)?它们的地址是什么?CPU如何0n确定和改变当前工作寄存器组(R-R)?0n开机复位后,CPU使用的是第。组工作寄存器。它们的地址是00H-07HoCPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。8051单片机的片内、片外存储器如何选择?程序存储器通过 /Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1〜4个不等的机器周期。当MCS-51的主频为12MHz时,一个机器周期为1s。执行一条指令需要的最长时间为4s。8051单片机复位后,各寄存器的初始状态如何?复位方法有几种?8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:寄存器复位时内容寄存器复位时内容PC0000HTCON0X000000BACCOOHTL000HB00HTH000HPSW00HTH100HSP07HTH100HDPTR0000HSCON00HP0—P3FFHSBUF不确定TMODXX000000BPCON0XXX0000B单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。在MCS—51中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。在变址寻址方式中,以(A)作变址寄存器,以(DPTR)或(PC)作基址寄存器。假定累加器A中的内容为30H,执行指令1000H:MOVCA,@A+PC后,把程序存储器(1031H)单元的内容送入累加器A中。8051执行完MOVA,#08H后,PSW的(D)位被置位。A:CB:F0 C:OVD:P6.指出下列指令中的源操作数的寻址方式(1)MOVR0,#30H立即寻址(2)MOVA,30H直接寻址(3)MOVA,@R0寄存器间接寻址(4)MOVXA,@DPTR寄存器间接寻址(5)MOVCA,@A+DPTR变址寻址(6)MOVP1,P2直接寻址(7)MOVC,30H位寻址(8)MULAB寄存器寻址(9)MOVDPTR,#1234H立即寻址(10POPACC寄存器间接寻址指出下列各指令在程序存储器中所占的字节数(1) MOV DPTR,#1234H 3 字节(2) MOVXA,@DPTR 1 字节(3) LJMP LOOP 3 字节(4) MOV R0,A 1 字节(5) AJMP LOOP 2 字节(6) MOV A,30H 2 字节(7) SJMP LOOP 2 字节(8) MOV B,#30H 2 字节8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何?MCS-51单片机指令系统按功能可分为5类:(1) 数据传送指令(2) 算术运算指令(3) 逻辑运算和移位指令(4) 控制转移指令(5) 位操作指令MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:
寻址方式使用的变量寻址范围立即寻址立即数直接寻址程序存储器ROM;内部RAM低128个字节;特殊功能寄存器SFR位地址空间寄存器寻址R0〜R7;A、B、DPTR、C四组通用寄存器,A、B、DPTR、C寄存器间接寻址@R0、@R1、SP内部RAM@R0、@R1、@DPTR外部RAM变址寻址@A+PC、@A+DPTR程序存储器相对寻址PC+偏移量程序存储器位寻址内部RAM低128B位寻址区可位寻址的特殊功能寄存器SFR位9.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应采用寄存器间接寻址方式。在0〜255B范围内,可用寄存器R0、R1间接寻址:MOVXA,@R0或MOVXA,@R1MOVX@R0,A或MOVX@R1,A在0〜64KB范围内,可用16位寄存器DPTR间接寻址:MOVXA,@DPTRMOVX@DPTR,A“DAA”指令的作用是什么?怎样使用?这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DAA”指令即可。片内RAM20H-2FH单元中的128个位地址与直接地址00H〜7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?位寻址是直接寻址方式的一种。虽然内部RAM位寻址区的位地址范围00H〜7FH与低128个单元的单元地址范围00H〜7FH形式完全相同,但是在应用中可以通过以下的方法区分:1.通过指令操作码(指令的类型)区分:位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOVC,bitCPLbit(C)JBbit,relMOVbit,CORLC,bit(/bit)JNBbit,relCLRbit(C)ANLC,bit(/bit)JCrelSETBbit(C)JBCbit,relJNCrel位操作只有MOV、CLR、SETB、CPL、ORL、ANL、JB、JNB、JBC、JC、JNC几种操作码,其中:JB、JNB、JBC、JC、JNC是位寻址特有的。2.当指令操作码一样时,可通过操作数的表现形式来区分。直接位地址的表示方法有:(1) 直接使用位地址形式。如:MOV00H,C(2) 字节地址加位序号的形式。如:MOV20H.0,C(3) 位的符号地址(位名称)的形式。如:ANLC,P精选文档精选文档字节符号地址(字节名称)加位序号的形式。如:CPLPSW.63.可通过指令中的累加器区分:位操作中的累加器为C,单元操作中的累加器为A。12.SJMP,AJMP和LJMP指令在功能上有何不同?指令的转移范围不同。SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。13.在“MOVCA,@A+DPTR”和“MOVCA,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。设片内RAM中的(40H)=50H,写出当执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?MOVA,40HMOVR0,AMOVA,#00MOV@R0,AMOVA,#30HMOV51H,A结果为:(A)=30H(R0)=50H(50H)=00H (51H)=30H设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH30HPUSH31HPOP DPLPOP DPHMOV30H,#00HMOV31H,#0FFH解:结果为:61H、62H单元为堆栈单元,其内容已被弹出栈。(30H)=00H(31H)=0FFH (DPTR)=2410H (SP)=60H在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。MOVA,40HMOVR0,AMOVP1,#0F0HMOV@R0,20HMOV50H,R0MOVA,@R0MOVP2,P1解:指令源操作数的寻址方式执行指令后的结果指令源操作数的寻址方式执行指令后的结果MOVA,40H直接寻址(A)=50HMOVR0,A寄存器寻址(R0)=50HMOVP1,#80H立即寻址(P1)=80HMOV@R0,20H寄存器间接寻址(50H)=30HMOVDPTR,#2000H立即寻址(DPTR)=2000HMOV40H,30H直接寻址(40H)=40HMOVR0,30H直接寻址(R0)=40HMOVD0H,R0直接寻址(D0H)=40HMOV10H,#10H立即寻址(10H)=10HMOVA,@R0寄存器间接寻址(A)=50HMOVP2,P1直接寻址(P2)=80H17.完成以下的数据传送过程(1)R1的内容传送到R0。(2)片外RAM20H单元的内容送R0。(3)片外RAM20H单元的内容送片内RAM20H单元。(4)片外RAM1000H单元的内容送片内RAM20H单元。(5)ROM2000H单元的内容送R0。(6)ROM2000H单元的内容送片内RAM20H单元。(7)ROM2000H单元的内容送片外RAM20H单元。解:R1的内容传送到R0;TOC\o"1-5"\h\zMOV A, R1MOV R0, A片外RAM20H单元内容送R0;MOV R1, #20HMOVXA,@R1MOV R0, A片外RAM20H单元的内容送片内RAM20H单元;MOV R0, #20HMOVX A,@R0MOV 20H,A片外RAM1000H单元的内容送片内RAM20H单元;MOVDPTR,#1000HMOVXA,@DPTRMOV 20H, AROM2000H单元的内容送R0单元;CLR AMOV DPTR,#2000HMOVCA,@A+DPTRMOV R0, AROM2000H单元的内容送片内RAM20H单元;CLRAMOV DPTR, #2000HMOVCA,@A+DPTRMOV 20H, A(7)ROM2000H单元的内容送片外RAM20H单元。CLRAMOV DPTR, #2000HMOVC A,@A+DPTRMOV R0, #20HMOVX @R0, A18.设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位在低字节,高位在高字节)。解: ORG0000HLJMPSTARTORG0030HSTART:MOVA,22HADDA,32HDAAMOV42H,AMOVA,23HADDCA,33HDAAMOV43H,ASJMP$END19.编程将片内RAM的40H〜60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。解:ORG0000HMOVX@DPTR,ALJMPMAINCLRAORG0030HMOV@R1,AMAIN:MOVSP,#60HINCR1MOVR7,#21HINCDPTRMOVR1,#40HDJNZR7,LOOPMOVDPTR,#3000HSJMP$LOOP:MOVA,@R1END20.编程计算片内RAM区30H〜37H的8个单元中数的算术平均值,结果存放在3AH单元中。解:ORG0000HLP1: INCR0LJMPMAINDJNZR3,LP2ORG0030HMOVR3,#03HMAIN:MOVR0,#30HCLRCMOVR1,#00HLP3:MOVA,R1MOVR2,#00HRRCAMOVR3,#08HMOVR1,ALP2: MOVA,@R0MOVA,R2ADDA,R2RRCAMOVR2,AMOVR2,AJNCLP1DJNZR3,LP3INCR1MOV3AH,R2
ENDSJMP$END21.编写计算下式的程序,设乘积的结果均小于255°A,B值分别存放在片外RAM的2001H和2002H单元中,结果存于2000H单元中。(A+B)X(A+B)+10若(A+B)X(A+B)<10Y=J(A+B)X(A+B)若(A+B)X(A+B)=10(A+B)X(A+B)—10若(A+B)X(A+B)>10解:JORG0000HSJMPNET3LJMPSTARTNET1:JNCNET2ORG0030HCLRCSTART:MOVDPTR,#2001HMOVA,R1MOVXA,@DPTRSUBBA,#10MOV30H,AMOVDPTR,#2000HMOVDPTR,#2002HMOVX@DPTR,AMOVXA,@DPTRSJMPNET3ADDA,30HNET2:MOVA,R1MOVB,AADDA,#10MULABMOVDPTR,#2000HMOVR1,AMOVX@DPTR,ACJNEA,#10,NET1NET3:SJMP$MOVDPTR,#2000HENDMOVX@DPTR,A22.设有两个长度均为15的数组,分别存放在片外RAM以2000H和2100H开始的存储区中,试编程求其对应项之和,结果存放在以2200H为首地址的存储区中。解: ORG0000HMOVDPTR,#2000HLJMPMAINMOVR1,#30HORG0030hMOVR2,#15MAIN:MOVDPTR,#2000HLOOP:MOVXA,@DPTRMOVA,#OFFHMOV@R1,AMOVX@DPTR,AINCDPTRMOVDPTR,#2100HINCR1MOVA,#34HDJNZR2,LOOPMOVX@DPTR,AMOVR1,#30HMOVDPTR,#2008HMOVDPTR,#2100HMOVA,#33HMOVR2,#15MOVX@DPTR,AMOVR0,#40HMOVDPTR,#2108HLOOP1:MOVA,#44HMOVXA,@DPTRMOVX@DPTR,ACLRCMOVDPTR,#200EHADDCA,@R1MOVA,#0EEHMOV@R0,AMOVX@DPTR,AINCDPTRMOVDPTR,#210EHINCR1MOVA,#32HINCR0MOVX@DPTR,ADJNZR2,LOOP1精选文档精选文档MOVDPTR,#2200HINCR0MOVR2,#15INCDPTRMOVR0,#40HDJNZR2,LOOP2LOOP2:MOVA,@R0SJMP$MOVX@DPTR,AEND23.设有100个有符号数,连续存放在片外RAM以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。解:计其中正数、负数、零的个数。解:ORG0000HLJMPMAINORG0030HMAIN:MOVR2,#100MOVR3,#00HMOVR4,#00HMOVR5,#00HMOVDPTR,#2000HLOOP:MOVXA,@DPTRCJNEA,#00H,NET1INCR324.试编一查表程序,从外部RAM首地址为NET1:JBACC.7NET2INCR4SJMPNET3NET2:INCR5NET3:INCDPTRDJNZR2,LOOPSJMP$ENDASCII码A,将其地址送到20A0H和20A1H单元中。解: ORG0000HMOVA,R2LJMPMAINMOVX@DPTR,AORG0030HINCDPTRMAIN:MOVSP,#60HMOVA,R3MOVDPTR,#2000HMOVX@DPTR,AMOVR7,#9FHSJMPLP2LP0:MOVXA,@DPTRLP1:INCDPTRCJNEA,#41H,LP1DJNZR7,LP0MOVR2,DPLLP2:RETMOVR3,DPHENDMOVDPTR,#20A0H25.编程把片外RAM中以2040H为首地址的连续50个单元中的无符号数按降序排列,存放到以3000H为首地址的存储区中。解: ORG0000HMOVA,20HLJMPMAINCJNEA,21H,LOOPORG0100HLOOP:JNCLOOP1MAIN: MOVDPTR,#2040HMOVA,20HMOVR2,#50MOVX@DPTR,ACLR7FHDECDPTRDECR2MOVA,21HLS: MOVXA,@DPTRMOVX@DPTR,AMOV20H,AINCDPTRINCDPTRSETB7FHMOVXA,@DPTRLOOP1:DJNZR2,LSMOV21H,AJB7FH,MAIN2000H、长度为9FH的数据块中找出第一个
SJMP$END26.在片外RAM以2000H为首地址的存储区中,存放着20个用ASCII码表示的0〜9之间的数,试编程将它们转换成BCD码,并以压缩BCD码(即一个单元存放两位BCD码)的形式存放在以3000H开始的单元中。解:ORG0000HMOVA,41HLJMPMAINXCHDA,@R1ORG0030HMOV@R1,AMAINMOVR2,#0AHINCR1MOVR1,#30HINCDPTRMOVDPTR,#2000HDJNZR2,TTTT:MOVXA,@DPTRMOVDPTR,#3000HCLRCMOVR1,#30HSUBBA,#30HMOVR2,#0AHSWAPATT1:MOVA,@R1MOV41H,AMOVX@DPTR,AINCDPTRINCR1MOVXA,@DPTRINCDPTRCLRCDJNZR2,TT1SUBBA,#30HSJMP$MOV@R1,AEND27.编程实现将片外RAM中2400H〜2450H单元中的数传送到2500H〜2550H单元中。解:ORG0000HMOVR2,#51HLJMPMAINLOOP:ORG0030HMOVDPH,30HMAIN:MOVDPL,31HMOVDPTR,#2400HMOVXA,@DPTRMOVA,#07HMOVDPH,32HMOVX@DPTR,AMOVDPL,33HMOVDPTR,@2450HMOVX@DPTR,AMOVA,#06HINC31HMOVX@DPTR,AINC33HMOV30H,#24HDJNZR2,LOOPMOV31H,#00HAJMP$MOV32H,#25HENDMOV33H,#00H28.在片外RAM的2030H和2031H单元中各有一个小于16的数,编程求这两个数的平方和,结果存放在2040H单元。要求用调用子程序方法实现。MAIN:ORG0000HLJMPMAINORG0030HMOVDPTR,#2030HMAIN:ORG0000HLJMPMAINORG0030HMOVDPTR,#2030HMOVA,#03HMOVX@DPTR,AMOVDPTR,#2031HMOVA,#05HMOVX@DPTR,AMOVDPTR,#2030HMOVXA,@DPTRLCALLSQRMOVR1,AMOVDPTR,#2031HMOVXA,@DPTRLCALLSQRMOVR1,AMOVDPTR,#2031HMOVXA,@DPTRLCALLSQRADDA,R1MOVDPTR,#2040HMOVX@DPTR,AAJMP$SQR:TAB:INCAMOVCA,@A+PCRETDB0,1,4,9,16,25DB36,49,64,81,100DB121,144,169,196,225END习题3MCS-51的P0口作为输出端口时,每位能驱动(8)个,丄型TTL负载。MCS-51有(4 )个并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入(1 )。MCS-51有(5)个中断源,有(2 )个中断优先级,优先级由软件填写特殊功能寄存器(IP)加以选择。外部中断1所对应的中断入口地址为(0013H)H。当定时器T0工作在方式(3)时,要占定时器T1的TR1和TF1两个控制位。设(TMOD)=0A5H,则定时器T0的状态是(方式1计数),定时器T1的状态是(方式2定时)。定时器T0溢出标志位是(TF0),定时器T1溢出标志位是(TF1)。在数据通信中,有数据传送方式有(单工)、(半双工)、(全双工)、(多工)四种方式。设置串行口为10位UART,则其工作方式应选用为(工作方式1)。单片机串行通信时,若要发送数据,就必须将要发送的数据送至(SBUF)寄存器,若要接收数据也要到该寄存器取数。异步串行数据通信的桢格式由(起始位)位,(数据位)位,(奇偶较验)位和(停止位)位组成。在中断服务程序中,至少应有一条( D)。A:传送指令 B:转移指令 C:加法指法D:中断返回指令8031单片机中断查询确认后,在下列各种运行情况中,能立即进行响应的是( D)。A:当前正在执行高优先级中断处理B:当前正在执行RETI指令C:当前指令是DIV指令,且正处于取指令的机器周期D:当前指令是MOVA,R3要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是(A)A:98H B:84H C:42 D:22H使用定时器T1时,有几种工作模式(D)A:1种B:2种C:3种D:4种当定时器工作在方式1,系统采用6MHz晶振时,若要定时器定时0.5ms,则定时器的初始值为(A)。A:FF06HB:F006HC:0006HD:06FFH定时器T1的溢出标志为TF1,采用中断方式,当定时器溢出时,若CPU响应中断后,
该标志(B)。A:由软件清零B:由硬件清零C:随机状态 D:AB都可以在异步通信中每个字符由9位组成,串行口每分钟传25000个字符,则对应的波特率为(D)b/s。C:3000C)。C:SCONDC:3000C)。C:SCOND:3750D:TMOD控制串行接口工作方式的寄存器是(A:TCON B:PCON什么是中断和中断系统?其主要功能是什么?解:所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程采用中断技术可以提高CPU效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(CPU)。中断系统:能够实现中断功能的硬件电路和软件程序。中断系统的功能:能够实现中断优先权排队、中断嵌套、自动响应中断和中断返回等功能。什么是中断优先级?中断优先处理的原则是什么?解:中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:⑴先响应优先级高的中断请求,再响应优先级低的中断请求。(2) 如果一个中断请求己被响应,同级的其他中断请求将被禁止。(3) 如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。单片机内部自然优先级顺序(由高到低)为:外部中断0—定时器0中断T外部中断1—定时器1中断T串行接口中断。8051有哪些中断源?如何对各中断请求进行控制?解:(1) 80C51有以下中断源:外部中断0(INTO)请求,低电平有效。外部中断1(iNTi)请求,低电平有效。T0:定时器/计数器0溢出中断请求。T1:定时器/计数器1溢出中断请求。TI/RI:串行接口中断请求。(2) 通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。简述中断系统的初始化步骤。解:中断系统的初始化步骤如下:(1) 开相应中断源的中断允许;(2) 设定所用中断源的中断优先级;(3) 若为外部中断,则应规定中断触发方式(低电平或负边沿触发)。简述MCS-51单片机的中断响应过程。精选文档精选文档解:单片机一旦响应中断请求,就由硬件完成以下功能:根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源;清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。中断返回,程序返回断点处继续执行。8051单片机怎样管理中断?怎样开放和禁止中断?怎样设置优先级?解:由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0T定时器0中断T外部中断1T定时器1中断T串行接口中断)响应中断。CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置。即可。由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PT1(0)为定时中断1(0)优先级,PX1(0)外部中断1(0)优先级。8051在什么条件下可响应中断?解:⑴有中断源发出中断请求。⑵中断总允许控制位EA=1,CPU开放总中断。申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。无同级或更高级中断正在服务。当前指令周期已经结束。若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。满足以上条件,则CPU响应响应中断元的中断请求。请写出INT1为低电平触发的中断系统初始化程序。解:INT1为低电平触发的中断系统初始化程序如下:ORG0000HLJMPMAINORG0013HLJMPINTN1ORG0100HMAIN:MOVSP,#60HSETBEASETBEX1 ;开INT1中断CLRPX1 ;令INT1为低优先级CLRIT1 ;令INT1为电平触发SJMP$END说明MCS-51单片机响应中断后,中断服务的入口地址。解:中断服务程序的入口地址如下表:中断源中断矢量外部中断0(INTO)0003H定时器T0中断000BH外部中断1(INT1)0013H定时器T1中断001BH串行口中断0023H在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?解:⑴符合以下6个条件可响应新的中断请求:有中断源发出中断请求。中断总允许控制位EA=l,CPU开放总中断。申请中断的中断源的中断允许位为1,即中断没有被屏蔽。无同级或更高级中断正在被服务。当前的指令周期已结束。若现行指令为RETI或访问IE或1P指令时,该指令以及紧接着的另一条指令已执行完。⑵如果新的中断请求"优先级"低于正在执行的中断请求或与其同级,则不能被响应。8051单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?解:有两种方式:电平触发和边沿触发。电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输人电平。若为低电平,便置IEl(IEO)为“1”,申请中断;若外部中断引脚为高电平,则IEl(IEO)清零。边沿触发方式:CPU在每个机器周期的S5P2期间采样外部中断请求引脚的输人电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IEl(IEO)置1,申请中断;否则,IE1(1E0)置0。MCS-51的中断服务程序能否存放在64KB程序存储器的任意区域?如何实现?解:可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMPAdd16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。8051单片机内部有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?解:80C51单片机片内设有2个定时器/计数器:定时器/计数器T0和定时器/计数器T1,T0由TH0、TL0组成,T1由TH1、TLl组成。T0、T1由特殊功能寄存器TMOD、TCON控制。8051单片机定时器/计数器作定时和计数使用时,其计数脉冲分别由谁提供?解:作定时器用时,计数脉冲来自单片机内部,其频率为振荡频率的1/12。作计数器用时,计数脉冲来自单片机的外部,即P3.4(TO)和P3.5(T1)两个引脚的输入脉冲。定时器/计数器作定时器使用时,其定时时间与哪些因素有关?作计数器时,对外界计数频率有何限制?解:作定时器用时,其定时时间与定时器的工作模式、定时器的定时初值以及单片机的晶振频率有关。作计数器用时,外界计数脉冲的频率不能高于振荡脉冲频率的1/24。定时器/计数器的4种工作方式各有何特点?如何选择、设定?解:(1)工作方式。:13位定时器/计数器工作方式。工作方式0由THO的全部8位和TLO的低5位构成13位加1计数器,此时TLO的高3位未用。在计数过程中,当TLO的低5位溢出时,都会向THO进位,而全部13位计数器溢出时,则计数器溢出标志位TFO置位。⑵工作方式1:16位的定时器/计数器方式。工作方式1由TH0作为高8位,TLO为低8位,在计数过程中,当全部16位计数器溢出时,则计数器溢出标志位TFO置位。工作方式2:自动重新装入计数初值的8位定时器/计数器工作方式。工作方式2的16位定时器/计数器被拆成两个8位寄存器THO和TLO,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TLO按8位加1计数器计数,当TLO计数溢出时,置位TFO的同时又从预置寄存器THO中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。工作方式3:两个8位定时器/计数器(仅适用于TO)。在工作方式3时,定时器/计数器0被拆成两个独立的8位计数器TLO和THO。其中,TLO既可以作计数器使用,也可以作为定时器使用,定时器/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同°TH0只能作为简单的定时器使用,只能借用定时器/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。一般情况下,只有在T1以工作方式2运行(当波特率发生器用)时,才允许T0工作于方式3。TMOD用于控制定时器/计数器T0和T1的工作方式,M1M0为工作方式选择位。M1M0=00方式0,13位定时器/计数器;M1M0=01 方式1,16位定时器/计数器;M1M0=10 方式2,自动重新装入计数初值的8位定时器/计数器;M1M0=11方式3,两个8位定时器/计数器(仅适用于T0)。C/T为定时方式/计数方式选择位。若设定C/T=0,则选择定时器工作方式;若设定C/T=1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数用,不能同时既作定时又作计数用。GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于TR0还是取决于TR0和INTO引脚两个条件的组合。若GATE=0,则只由TCON中的启/停控制位TR0控制定时器/计数器的启/停。此时,只要TRO=1,则接通模拟开关,使计数器进行加法计数,定时器/计数器启动工作。而如果TRO=O,则断开模拟开关,定时器/计数器停止工作。若GATE=1,由外部中断请求信号INTO和TCON中的启/停控制位TR0组合状态控制定时器/计数器的启/停。只有TRO=1,且INTO引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/计数器停止工作。定时器/计数器的定时器/计数器范围为:工作方式0:13位定时器/计数器方式,因此,最多可以计到213,也就是8192次。工作方式1:16位定时器/计数器方式,因此,最多可以计到216,也就是65536次。工作方式2和工作方式3:都是8位的定时器/计数器方式,因此,最多可以计到28,也说是256次。使用一个定时器,如何通过软硬结合方法实现较长时间的定时?解:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。利用定时器输出周期为2ms的方波,设单片机晶振频率为6MHz。试编程实现之。解:选用定时器/计数器TO作定时器,工作在方式1,输出为P1.0引脚,2ms的方波可由1ms的高低电平相间隔而成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。初值的计算如下:ST0=12/(6X106)=2X10-6STC=M-T/T0=2i6—lX10-3/2X10-6=65536—500=65036二FK0CH当定时器/计数器采用方式0时,初值为:TC=M-T/T0=2i3-lX10-3/2X10-6=8192-500=7692=lE0CH,则真正的16位计数初值为:F00CH(高8位,低5位)程序如下:ORG0000HLJMPSTARTORG000BHLJMPT0INT;T0中断入口ORG0030HSTART:MOVSP,#60H;初始化程序MOVTL0,#0CH;T0赋初值MOVTH0,#0FEHMOVTMOD,#01H;定时器/计数器0工作于方式1SETBTR0;启动T0SETBET0;开T0中断SETBEA;开总允许中断SJMP$T0INT:PUSHACCPUSHPSWCPLP1.0MOVTL0,#0CH精选文档精选文档MOVTHO,#0FEHSETBTRO ;启动TOPOPPSWPOPACCRETIEND当采用查询方式时:兰色字部分应该为:LP1:JBCTFO,LP2SJMPLP1LP2:CPLP1.0MOVTLO,#0CHMOVTHO,#0FEHSETBTR0SJMPLP1END已知8051单片机系统时钟频率为6MHz,请利用定时器T0和P1.2输出占空比为1:8的矩形脉冲,其波形如图3.1所示,试编程实现之。图3.1习题3.39的波形图解:程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVTMOD,#02HMOVTH0,#0E7HMOVTL0,#0E7HCLRP1.2SETBTR0HIGH0:SETBP1.2HIGH1::JBCTF0,LOW0;50rs到清TF0,转LOW0AJMPHIGH1;50rs未到,转HIGH1等待LOW0:MOVR7,#7;350rs=7X50rsCLRP1.2;P1.2=0输出350rs低电平LOW1:JBCTF0,LOW2;50rs到清TF0,LOW2AJMPLOW1LOW2:DJNZR7,LOW1;7次未到转LOW1AJMPHIGH0;7次到转HIGH0精选文档END在8051单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500s的方波。解:选择T0工作于方式1定时500rsfosc=12MHz12机器周期T=三12= =1X10-6S=1nsf12x106(216-X)X1rS=500rsX=65036=0FE0CH程序如下:ORG1000HMOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#0CHSETBTR0DEL:MOVR7,#4;2ms=4X500^sD500:JBCTF0,D2;500rs到清TF0,转移AJMPD500;50rs未到,等待D2:CPLP1.0MOVTH0,#0FEH;重装初值MOVTL0,#0CHDJNZR7,D500;4次未到,转D500CPLP1.1AJMPDEL;4次到,转DELSJMP$END利用8051单片机定时器/计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHz。编程测量脉冲宽度,并把结果转换为BCD码,顺序存放在以片内50H单元为首地址的内存单元中(50H单元存个位)。解:程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60HMOVTMOD,#09H;设丁0为方式1,GATE=1MOVTL0,#00HMOVTH0,#00HMOVR0,#4EHJBP3.2,$;等待P3.2变低SETBTR0;启动T0工作JNBP3.2,$;等待P3.2变高JBP3.2,$;等待P3.2再次变低CLRTR9;停止计数MOV@R0,TL0;存放计数的二进制数低字节入4EHINCR0精选文档精选文档MOV@R0,TH0;存放计数的二进制数高字节入4EHMOVR1,#50H;BCD码首址MOVR5,#3;BCD码字节数CLRALOOP1:MOV@R1,A;清存BCD码单元INCR1DJNZR5,LOOP1MOVR7,#10H;二进制数位数LOOP2:MOVR0,#4EH;二进制数首址MOVR6,#2;二进制数字节数CLRCLOOP3:MOVA,@R0RLCAMOV@R0,AINCR0DJNZR6,LOOP3;2字节二进制数左移1位MOVR5,#3;BCD码字节数MOVR1,#50HLOOP4:MOVA,@R1ADDCA,@R1;BCD码乘2加C运算DAAMOV@R1,AINCR1DJNZR5,LOOP4DJNZR7,LOOP2SJMP$END波特率、比特率和数据传送速率的含义是什么?解:为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的方式有3种:波特率定义为每秒传送信号的数量,单位为波特(Baud)。比特率定义为每秒传送二进制数的信号数(或每秒传送二进制码元的个数),单位是bps(bitpersecond)或写成b/s(位/秒)。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间内平均数据传移速率,单位是字符/秒。在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是描述载波信号每秒钟变化为信号的数量(又称为调制速率)。在这种情况下,波特率与比特率在数值上可能不相等。42.什么是串行异步通信?它有哪些特征?解:异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5〜8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1〜2位的停止位“1”(高电平)。异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。单片机的串行接口由哪些功能部件组成?各有什么作用?解:MCS-51单片机的串行接口由发送缓冲器SBUF、发送控制器、接收缓冲器SBUF、输入移位寄存器、接收控制器、波特率发生器等部件组成。发送缓冲器SBUF用于存放将要发送的数据,接收缓冲器SBUF用于存放接收的数据,输入位移寄存器用于接收缓冲并实现串/并转换,发送/接收控制寄存器用于控制串行口的工作,波特率发生器用于控制串行口发送/接收数据的速度。简述串行接口接收和发送数据的过程。解:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发”写”命令时(执泞'MOVSBUF,A”指令),即向发送缓冲器SBUF装载并开始由DCD引脚向外发送一帧数据,发送完使发送中断标志位口=1。在满足串行接口接收中断标志位RI(SCON.O)=0的条件下,置允许接收位REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使Rl=lo当发读SBUF命令时(执行"MOVA,SBUF”指令),便从接收缓冲器SBUF读取信息通过80C51内部总线送CPU。8051串行接口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?解:串行口有四种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5〜8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1〜2位的停止位“1”o两个字符帧之间可以有空闲位,也可以无空闲位。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率(T1溢出信号的频率)控制。各种方式的通信波特率如下:方式0的波特率固定为系统晶振频率的1/12,其值为f/12oosc其中:f——系统主机晶振频率OSC方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率二(2smod/64)XfOSC即:当SMOD=1时,波特率为f/32,当SMOD=0时,波特率为f/64OSC OSC方式1和方式3的波特率由定时器T1的溢出率控制。因而波特率是可变的。定时器T1作为波特率发生器,相应公式如下:波特率二(2smod/32)X定时器T1溢出率
T1溢出率二T1计数率/产生溢出所需的周期数二(f/12)/(2kTC)OSC式中:K一定时器T1的位数TC——定时器T1的预置初值简述单片机多机通信的原理。解:当一片80C51(主机)与多片80C51(从机)通信时,主机的SM2位置0,所有从机的SM2位置1,处于接收地址帧状态。主机发送一地址帧,其中,8位是地址,第9位为地址/数据的区分标志,该位置1精选文档精选文档表示该帧为地址帧。所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的SM2位置0(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬。从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志。主机接收数据时先判断数据接收标志(RB8),若接收帧的RB8=0,则存储数据到缓冲区,并准备接收下帧信息。若RB8=1,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号00H,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,命令该从机重发数据。主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。从机收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。在微机与单片机构成的测控网络中,提高通信的可靠性要注意哪些问题?解:在微机与单片机构成的测控网络信中,对于串行口数据传输接口的抗干扰能力,在不超过接口标准指定的适用范围时,都具有一定的抗干扰能力,以保证信号传输的可靠性。但在一些工业测控系统中,通信环境往往十分恶劣,就必须充分考虑通信的抗干扰能力,以保证通信的可靠性。(1) 选择合适的通信标准。例如:长距离传输采用RS-485标准能有效抑制功模干扰,采用20Ma电流环可以降低信号对各种电器噪声的敏感程度。(2) 在高噪声环境下使用光纤传输介质在高噪声环境下可以有效减少噪声干扰。(3) 采用光电隔离技术可以提高系统的安全性和可靠性(4) 在发送器输出接口采用限流电路或在发送器输出端外接电容器,可以有效抑制数据传输过程中的串扰。(5) 采取降低发送端数据速率的方法可以减少接收端接收数据益处的错误。某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。解:11(位)X3600(字符/分钟)=39600b/分钟=660b/s(方式3为每个字符11位)。利用8051串行口控制8位发光二极管工作,要求发光二极管每1s交替地亮、灭,画出电路图并编写程序。解:主程序框图如下:0040HSCON,#00H0040HSCON,#00HSBUF,#0FFHC00H,CDELAY00HC,00HBBSBUF,#00HCCSBUF,#0FFHAAR7,#8R6,#250R5,#250R5,D3程序如下:ORGMOVMOVSETBMOVAA:ACALLCPLMOVJCMOVSJMPBB:MOVcc:ajmpDELAY:MOVD1:MOVD2:MOVD3:DJNZDJNZR6,D2DJNZR7,D1RETEND试编写一串行通信的数据发送程序,发送片内RAM的20H〜2FH单元的16字节数据,串行接口方式设定为方式2,采用偶校验方式。设晶振频率为6MHz。解:采用查询方式编写发送程序如下:
ORG0000HSTART:LJMPSTARTORG0030HMOVSP,#60HMOVSCON,#80H;设定方式2发送MOVPCON,#80H;波特率为fOSC/32MOVR0,#20H;给待发送数据块地址指针R0置初值MOVR7,#16;给数据块长度计数器R7置初值CLRTI;清口标志位LS:MOVA,@R0;取一字节数据送AMOVC,P;A中有奇数个“T‘时,P置"1”MOVTB8,C;P-TB8,作为奇偶校验位MOVSBUF,A;启动发送JNBTI,$;查询发送标志,等待一字节发送完CLRTI;清口标志位INCR0DJNZR7,LSRETEND51.试编写一串行通信的数据接收程序,将接收到的16字节数据送入片内RAM30H-3FH单元中。串行接口设定为方式3,波特率为1200bps,晶振频率为6MHzo解:程序如下:START:ORG0000HLJMPSTARTORG0100HMOVSP,#60HMOVTMOD,#20H;设定T1为模式2定时MOVTH1,#0F3H;送时间常数MOVTL1,#0F3HSETBTR1;启动定时器T1MOVSCON,#0D0H;串行接口设定为方式3,并允许接收MOVR0,#30HMOVR7,#16JNBRI,$;查询等待接收CLRRIMOVA,SUBF;从串行接口中读取数据JN BP,PN;对该字节进行查错处理若P=RB8无错,否则有错JNBRB8,PER;若P=1,RB8=0,有错,转出错处理LJMPRIG;若P=1,RB8=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度专业石材翻新及保洁服务合同
- 成都银杏酒店管理学院《报关报检实务》2023-2024学年第一学期期末试卷
- 2024年软件许可合同软件名称与许可权限
- 2024年设备采购协议核心内容一览版B版
- 2024游乐园与运营商租赁合同
- 2024年道德行为自律协议版B版
- 2025版文化产业劳动保障监察与文化产品安全合同3篇
- 2025版救灾帐篷政府采购合同范本-专用单帐篷采购指南6篇
- 冰雪经济的产业链结构分析
- 2024年续约意向确认:个人合同续签合同版B版
- 智慧农业行业政策分析
- 氧化还原反应方程式配平练习题及答案三篇
- GB/T 10739-2023纸、纸板和纸浆试样处理和试验的标准大气条件
- 《家居颜色搭配技巧》课件
- 铁三角管理办法(试行)
- 高考小说阅读分类导练:诗化小说(知识导读+强化训练+答案解析)
- 《公司法培训》课件
- 全国教育科学规划课题申报书:83.《供需适配性理论视域下我国老年教育资源供需匹配度研究》
- 民用航空器-世界主要机型介绍
- 经验教训记录
- 【语文】江苏省苏州市星海小学小学三年级上册期末试题(含答案)
评论
0/150
提交评论