当前位置:文档之家› cc1101的详解及单片机程序

cc1101的详解及单片机程序

cc1101的详解及单片机程序
cc1101的详解及单片机程序

cc1101的详解及单片机程序

1.初始化SPI,MCU各引脚。

当有数据接收或发送状态声明时,有中断和查询两种方式。GDO0与GDO2引脚输出至MCU引脚,若要用中断则要接至MCU外部中断引脚,查询时则可用GPIO。

2.复位CC1101。

3.初始化CC1101。(写操作时可从SO中读出CC1101状态)

初始化后CC1100为IDLE状态.

4.状态机转换,写/读FIFO数据。

每次写操作时SO返回的值为写操作前的CC1100状态值,具体值见Table20;读状态命令为当前CC1100状态

1 / 28

值,具体值见寄存器0X35说明;注意两者区别。

快速认识Cc1100

Cc1100可以工作在同步模式下,代价是:MCU自己控制前导码。本系统中,Cc1100将工作在异步模式下。

知识点

Head Byte:在引脚 Cc1100.Csn 有效后,通过SPI 总线写入 Cc1100的第一个字节。

Status Byte:在写入 HeadByte 的同时,MCU 得到Status Byte。

Burst Bit:在 Head Byte 中的一个 Bit, 有效值=="1",无效值=="0"

GDO0:

GDO0可用作FIFO状态输出,载波感应(CS),时钟输出,GDO0 脚也能用作集成于芯片的模拟温度传感器(未用).配置寄存器为IOCFG0(0X02),现在配置为RX模式

2 / 28

下数据状态反应输出.

GDO1:

GDO1与SPI的SO共用引脚,默认状态下为3态,当CSn为低电平时,此引脚SPI的SO功能生效。配置寄存器为IOCFG0(0X01),现在配置为空闲状态下3态,SPI 模式下SO.

GDO2:

GDO2可用作FIFO状态输出,载波感应(CS),时钟输出,配置寄存器为IOCFG0(0X00),现在配置为载波感应(CS)输出.

TXOFF_MODE/RXOFF_MODE:

注意,此配置为在数据包被发送/接收后状态机状态决定位,仅是在发生发送或者接收后动作;当为IDLE时发SRX/STX后状态机不按此配置运行。TX/RX后要校准。功率放大控制(PATABLE):

0X3E为功率写入地址,0X22为为功率配置寄存器。PATABLE 是一个8字节表,定义了8个PA 功率值。这个

3 / 28

表从最低位(0)到最高位(7)可读和写,一次一位。一个索引计数器用来控制对这个表的访问。

每读出或写入表中的一个字节,计数器就加 1。当CSn 为高时,计数值置为最小值。当达到最大值时,计数器由零重新开始计数。

FREND0.PA_POWER(2:0)从8个功率值中选择1个,且振幅为相应数等级。

异步模式:

在此模式下,CC1101中的MCU的若干支持机制会停用,包括数据包硬件处理,FIFO 缓冲,数据白化,交错(interleaver)和前向纠错(FEC) ,曼彻斯特编码(Manchester encoding);

MSK不支持异步模式;

PKTCTRL0.PKT_FORMAT == 3 使能异步模式,GDO0为input,GDO0, GDO1或GDO2为output 相应配置位为

4 / 28

IOCFG0.GDO0_CFG, IOCFG1.GDO1_CFG IOCFG2.GDO2_CFG; 电磁波激活(WOR):

在WOR滤波使用之前RC振荡器必须启用,RC振荡器

是 WOR 定时器的时钟源.在WOR下,收到信号后会自动进

入RX模式.

载波感应(CS)与RSSI:

因此两配置相互有连系,所以一起论述.

RSSI 只能在RX模式下才能有效,作用为对当前信号

质量评估,信号质量可从RSSI寄存器读出.RSSI信号强度

可从0X34取出.

RSSI(信号强度)计算公式: 注:此为433M下,结果为

负数,

RSSI_dBm=(RSSI-256)/2-74 (RSSI>;=128)

RSSI_dBm= (RSSI/2)-74

5 / 28

(RSSI.

数据FIFO:

当TX操作时,由MCU控制,溢出时CC1101出错;当RX操作时,读空时CC1101出错

RX FIFO 和 TX FIFO 中的字节数也能分别从状态寄存器 RXBYTES.NUM_RXBYTES和TXBYTES.NUM_TXBYTES 中读出

4 位 FIFOTHR.FIFO_THR 设置用来控制FIFO 门限点

读单字节时,,CSn继续保持低;。突发访问方式允许一地址字节,然后是连续的数据字节,直到通过设置CSn 为高来断访问

当写操作时,最后一个字节被传送至 SI 脚后,被SO脚接收的状态位会表明在 TX FIFO中只有一个字节是

6 / 28

空闲,

寄存器分类

Configration Registers

共47个,可读,可写

0x00~0x2E

Status Registers

共14个,只读

0x30~0x3D

Command Strobe

共14个,只写

寻址空间:0x30~0x3D

14个地址,对相应的地址进行写,就相当于激活了对应的命令

本系统是用到的Strobe:

CC1100_STROBE_RESET

CC1100_STROBE_ENTER_RX_MODE CC1100_STROBE_ENTER_TX_MODE

7 / 28

CC1100_COMMAND_STROBE_SIDLE

CC1100_COMMAND_STROBE_SFRX

TX FIFO

共64个,只写

RX FIFO

共64个,只读

Status(Command)Registers操作:

当地址为0X30~0X3D时

burst为1:对Status Registers的操作

Status Registers只可读,且只能一次读一个字节,不可写

burst为0:对Command Registers操作

寄存器的访问和一个寄存器的操作一样,但没有数据被传输.写完毕后,CC1100便执行相应操作.

读写FIFO,有两种模式:单字节读写;Burst读写。

8 / 28

单字节读写时序:

1 Cc1100.Csn有效。

2 写入Head Byte。

3 读、写一个1字节。

4 Cc1100.Csn无效。

#include ;

#include ;

#define INT8U unsigned char

#define INT16U unsigned int

#define WRITE_BURST 0x40 //连续写入

#define READ_SINGLE 0x80 //读

#define READ_BURST 0xC0 //连续读

#define BYTES_IN_RXFIFO 0x7F //接收缓冲区的有效字节数

#define CRC_OK 0x80 //CRC校验通过位标志

//***********************************************

9 / 28

******************************************

sbit GDO0 =P1^3;

sbit GDO2 =P3^2;

sbit MISO =P1^6;

sbit MOSI =P1^5;

sbit SCK =P1^7;

sbit CSN =P1^2;

//*********************************************** ******************************************

sbit LED2 =P3^4;

sbit LED1 =P3^5;

sbit KEY1 =P3^6;

sbit KEY2 =P3^7;

//*********************************************** ******************************************

sbit led3=P2^3;

sbit led2=P2^2;

sbit led1=P2^1;

sbit led0=P2^0;

//*********************************************** ******************************************

10 / 28

//INT8U PaTabel[8] =

{0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60}; INT8U PaTabel[8] =

{0xc0 ,0xc0 ,0xc0 ,0xc0 ,0xc0 ,0xc0 ,0xc0 ,0xc0};//修改发射功率

//*********************************************** ******************************************

void SpiInit(void);

void CpuInit(void);

void RESET_CC1100(void);

void POWER_UP_RESET_CC1100(void);

void halSpiWriteReg(INT8U addr, INT8U value); void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count);

void halSpiStrobe(INT8U strobe);

INT8U halSpiReadReg(INT8U addr);

void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count);

INT8U halSpiReadStatus(INT8U addr);

void halRfWriteRfSettings(void);

void halRfSendPacket(INT8U *txBuffer, INT8U size);

11 / 28

INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length);

//*********************************************** ******************************************

// CC1100 STROBE, CONTROL AND STATUS REGSITER

#define CCxxx0_IOCFG2 0x00 // GDO2 output pin configuration

#define CCxxx0_IOCFG1 0x01 // GDO1 output pin configuration

#define CCxxx0_IOCFG0 0x02 // GDO0 output pin configuration

#define CCxxx0_FIFOTHR 0x03 // RX FIFO and TX FIFO thresholds

#define CCxxx0_SYNC1 0x04 // Sync word, high INT8U

#define CCxxx0_SYNC0 0x05 // Sync word, low INT8U

#define CCxxx0_PKTLEN 0x06 // Packet length #define CCxxx0_PKTCTRL1 0x07 // Packet automation control

#define CCxxx0_PKTCTRL0 0x08 // Packet

12 / 28

automation control

#define CCxxx0_ADDR 0x09 // Device address #define CCxxx0_CHANNR 0x0A // Channel number #define CCxxx0_FSCTRL1 0x0B // Frequency synthesizer control

#define CCxxx0_FSCTRL0 0x0C // Frequency synthesizer control

#define CCxxx0_FREQ2 0x0D // Frequency control word, high INT8U

#define CCxxx0_FREQ1 0x0E // Frequency control word, middle INT8U

#define CCxxx0_FREQ0 0x0F // Frequency control word, low INT8U

#define CCxxx0_MDMCFG4 0x10 // Modem configuration

#define CCxxx0_MDMCFG3 0x11 // Modem configuration

#define CCxxx0_MDMCFG2 0x12 // Modem configuration

#define CCxxx0_MDMCFG1 0x13 // Modem configuration

13 / 28

#define CCxxx0_MDMCFG0 0x14 // Modem configuration

#define CCxxx0_DEVIATN 0x15 // Modem deviation setting

#define CCxxx0_MCSM2 0x16 // Main Radio Control State Machine configuration

#define CCxxx0_MCSM1 0x17 // Main Radio Control State Machine configuration

#define CCxxx0_MCSM0 0x18 // Main Radio Control State Machine configuration

#define CCxxx0_FOCCFG 0x19 // Frequency Offset Compensation configuration

#define CCxxx0_BSCFG 0x1A // Bit Synchronization configuration

#define CCxxx0_AGCCTRL2 0x1B // AGC control #define CCxxx0_AGCCTRL1 0x1C // AGC control #define CCxxx0_AGCCTRL0 0x1D // AGC control #define CCxxx0_WOREVT1 0x1E // High INT8U Event 0 timeout

#define CCxxx0_WOREVT0 0x1F // Low INT8U Event 0 timeout

14 / 28

#define CCxxx0_WORCTRL 0x20 // Wake On Radio control

#define CCxxx0_FREND1 0x21 // Front end RX configuration

#define CCxxx0_FREND0 0x22 // Front end TX configuration

#define CCxxx0_FSCAL3 0x23 // Frequency synthesizer calibration

#define CCxxx0_FSCAL2 0x24 // Frequency synthesizer calibration

#define CCxxx0_FSCAL1 0x25 // Frequency synthesizer calibration

#define CCxxx0_FSCAL0 0x26 // Frequency synthesizer calibration

#define CCxxx0_RCCTRL1 0x27 // RC oscillator configuration

#define CCxxx0_RCCTRL0 0x28 // RC oscillator configuration

#define CCxxx0_FSTEST 0x29 // Frequency synthesizer calibration control

#define CCxxx0_PTEST 0x2A // Production test

15 / 28

#define CCxxx0_AGCTEST 0x2B // AGC test

#define CCxxx0_TEST2 0x2C // Various test settings

#define CCxxx0_TEST1 0x2D // Various test settings

#define CCxxx0_TEST0 0x2E // Various test settings

// Strobe commands

#define CCxxx0_SRES 0x30 // Reset chip.

#define CCxxx0_SFSTXON 0x31 // Enable and calibrate frequency synthesizer (if

MCSM0.FS_AUTOCAL=1).

// If in RX/TX: Go to a wait state where only the synthesizer is

// running (for quick RX / TX turnaround). #define CCxxx0_SXOFF 0x32 // Turn off crystal oscillator.

#define CCxxx0_SCAL 0x33 // Calibrate frequency synthesizer and turn it off

// (enables quick start).

#define CCxxx0_SRX 0x34 // Enable RX. Perform

16 / 28

calibration first if coming from IDLE and

// MCSM0.FS_AUTOCAL=1.

#define CCxxx0_STX 0x35 // In IDLE state: Enable TX. Perform calibration first if

// MCSM0.FS_AUTOCAL=1. If in RX state and CCA is enabled:

// Only go to TX if channel is clear.

#define CCxxx0_SIDLE 0x36 // Exit RX / TX, turn off frequency synthesizer and exit

// Wake-On-Radio mode if applicable.

#define CCxxx0_SAFC 0x37 // Perform AFC adjustment of the frequency synthesizer

#define CCxxx0_SWOR 0x38 // Start automatic RX polling sequence (Wake-on-Radio)

#define CCxxx0_SPWD 0x39 // Enter power down mode when CSn goes high.

#define CCxxx0_SFRX 0x3A // Flush the RX FIFO buffer.

#define CCxxx0_SFTX 0x3B // Flush the TX FIFO buffer.

#define CCxxx0_SWORRST 0x3C // Reset real

17 / 28

time clock.

#define CCxxx0_SNOP 0x3D // No operation. May be used to pad strobe commands to two

// INT8Us for simpler software.

#define CCxxx0_PARTNUM 0x30

#define CCxxx0_VERSION 0x31

#define CCxxx0_FREQEST 0x32

#define CCxxx0_LQI 0x33

#define CCxxx0_RSSI 0x34

#define CCxxx0_MARCSTATE 0x35

#define CCxxx0_WORTIME1 0x36

#define CCxxx0_WORTIME0 0x37

#define CCxxx0_PKTSTATUS 0x38

#define CCxxx0_VCO_VC_DAC 0x39

#define CCxxx0_TXBYTES 0x3A

#define CCxxx0_RXBYTES 0x3B

#define CCxxx0_PATABLE 0x3E

#define CCxxx0_TXFIFO 0x3F

#define CCxxx0_RXFIFO 0x3F

// RF_SETTINGS is a data structure which contains all relevant CCxxx0 registers

18 / 28

typedef struct S_RF_SETTINGS

{

INT8U FSCTRL2; //自已加的

INT8U FSCTRL1; // Frequency synthesizer control.

INT8U FSCTRL0; // Frequency synthesizer control.

INT8U FREQ2; // Frequency control word, high INT8U.

INT8U FREQ1; // Frequency control word, middle INT8U.

INT8U FREQ0; // Frequency control word, low INT8U.

INT8U MDMCFG4; // Modem configuration.

INT8U MDMCFG3; // Modem configuration.

INT8U MDMCFG2; // Modem configuration.

INT8U MDMCFG1; // Modem configuration.

INT8U MDMCFG0; // Modem configuration.

INT8U CHANNR; // Channel number.

INT8U DEVIATN; // Modem deviation setting (when FSK modulation is enabled).

19 / 28

INT8U FREND1; // Front end RX configuration. INT8U FREND0; // Front end RX configuration. INT8U MCSM0; // Main Radio Control State Machine configuration.

INT8U FOCCFG; // Frequency Offset Compensation Configuration.

INT8U BSCFG; // Bit synchronization Configuration.

INT8U AGCCTRL2; // AGC control.

INT8U AGCCTRL1; // AGC control.

INT8U AGCCTRL0; // AGC control.

INT8U FSCAL3; // Frequency synthesizer calibration.

INT8U FSCAL2; // Frequency synthesizer calibration.

INT8U FSCAL1; // Frequency synthesizer calibration.

INT8U FSCAL0; // Frequency synthesizer calibration.

INT8U FSTEST; // Frequency synthesizer calibration control

20 / 28

单片机试题库分章节答案(C语言)

(红色是考试考过的,蓝色是老师给的习题“重点看“) 第1部分单片机概述及数学基础 一、填空题 1、十进制255的二进制是11111111 ,十六进制是FF 。 2、单片机是将CPU、存储器、特殊功能寄存器、定时/计数器和输入/输出接口电路、以及相互连接的总线等集成在一块芯片上。 3、十进制127的二进制是1111111,十六进制是7F。 4、+59的原码是00111011,-59的补码是11000101。 5、十进制数100转换为二进制数是1100100;十六进制数100转换为十进制数是256。 6、十进制数40转换为二进制数是101000;二进制数10.10转换为十进制数是 2. 5。 7、十进制99的二进制是1100 011 ,十六进制是63 。 二、判断题 (×)1、AT89S51是一种高性能的16位单片机。8位机 (×)2、有符号正数的符号位是用1表示的。 三、选择题 ()1、计算机中最常用的字符信息编码是(A) A. ASCII B.BCD码 C. 余3码 D. 循环码 四、简答题 1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点? 第2部分51单片机硬件结构、存储系统及 I/O接口 一、填空题 1、AT89S51单片机共有 4 个8位的并行I/O口,其中既可用作地址/数据口,又可用作一般的I/O口的是P0 。 2、若采用12MHz的晶振,则MCS-51单片机的振荡周期为__ 1/12 μS __ ,

机器周期为____1μS __。 3、AT89S51单片机字长是___8___位,有___40根引脚。 4.89S51单片机是8 位单片机,其PC计数器是16 位。 5.若单片机使用的晶振频率是6MHz,那么一个振荡周期是1/6 μS,一个机器周期是2μS μS。 6.89S51单片机是+5 V供电的。4.0-5.5V 7.堆栈是内部数据RAM区中,数据按先进后出的原则出入栈的。8.MSC-51系列单片机具有 4 个并行输入/输出端口,其中_P0_口是一个两用接口,它可分时输出外部存储器的低八位地址和传送数据,而_P1__口是一个专供用户使用的I/O口,常用于第二功能的是P3 口。 9.当单片机系统进行存储器扩展时,用P2口的作为地址总线的高八位,用P0作为地址总线的低八位。 10.半导体存储器分为___ROM___和__RAM__两大类,其中前者具有非易失性(即掉电后仍能保存信息),因而一般用来存放系统程序,而后者具有易失性,因而一般用来存放经常变动的用户程序.中间结果等。 11.MCS-51系列单片机对外部数据存储器是采用_DPTR___作为指针的,其字长为_16__位,因而可寻址的数据存储器的最大空间为_64K_字节。 12. 51单片机有26个特殊功能寄存器,其中11个具有位寻址功能。 13. 当单片机系统需要外扩展存储器时,P2和P0 作为地址总线。 14.AT89S51单片机上电初始化后,将自动设置一些寄存器的初始值,其中堆栈指针SP的初始值为07H ,P0口复位值是FFH。 15.单片机两种节电模式:空闲模式和掉电模式,节电模式是由特殊功能寄存器PCON中的有关位来控制的。 16. 在单片机硬件设计时,31脚一般要接___高电平___,晶振在PCB设计中应尽量___靠近51芯片___。 17.在AT89S51单片机中,RAM是数据存储器,ROM为程序存储器。 18.单片机的复位方式主要有上电复位和按键复位两种。 19.AT89S51单片机的内部RAM的寻址空间为256B,而内部ROM的寻址空间为4K。

单片机程序分析题练习B2复习过程

1.程序如下: MOV SP,#13H MOV 33H,#7FH MOV 44H,#0ABH PUSH 33H PUSH 44H POP 33H POP 44H 程序执行后,(33H)=0ABh ,(44H)=7Fh 2.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。 (1)MOV A,#48H ;寻址方式: (A)= 48H (2)ADD A,60H ;寻址方式: (A)= 4DH (3)ANL A,@R0 ;寻址方式: (A)= 10H 3.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能? MOV R1,#30H ;(R1)=30H MOV A,#64H ;(A)= 64H ADD A,#47H ;(A)=ABH ,(CY)= 0 , (AC)= 0 DA A ;(A)=31H ,(CY)=1 , (AC)= MOV @R1,A ;(R1)= 30H ,(30H)= 31H 此程序段完成的功能 4.设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=0 ORL A,#27H ANL A,28H XCHD A,@R0 CPL A 5.设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)=04H (CY)=1 (P)= 1 MUL AB (A)=08H (B)=00H (OV)=0 6.已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后( 40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2 A=20H

单片机原理及应用总结

单片机原理及应用 第一章绪论 1.什么叫单片机?其主要特点有哪些? 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性价比。 第二章80C51的结构和原理 1.80C51的基本结构 a.CPU系统 ●8位CPU,含布尔处理器; ●时钟电路; ●总线控制逻辑。 b.存储器系统 ●4K字节的程序存储器 (ROM/EPROM/FLASH,可外扩 至64KB); ●128字节的数据存储器(RAM,可 外扩至64KB); ●特殊功能寄存器SFR。 c.I/O口和其他功能单元 ●4个并行I/O口; ●2个16位定时/计数器; ●1个全双工异步串行口; ●中断系统(5个中断源,2个优先 级) 2.80C51的应用模式 a.总线型单片机应用模式 ◆总线型应用的“三总线”模式; ◆非总线型应用的“多I/O”模式 3.80C51单片机的封装和引脚 a.总线型DIP40引脚封装 ●RST/V PO:复位信号输入引脚/备用 电源输入引脚; ●ALE/PROG:地址锁存允许信号 输出引脚/编程脉冲输入引脚;●EA/V PP:内外存储器选择引脚/片 内EPROM编程电压输入引脚;●PSEN:外部程序存储器选通信号 输出引脚 b.非总线型DIP20封装的引脚 ●RST:复位信号输入引脚 4.80C51的片内存储器 增强型单片机片内数据存储器为256 字节,地址范围是00H~FFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄存器间接寻址方式询问。注意:与该地址范围重叠的特殊功能寄存器SFR 空间采用直接寻址方式询问。 5.80C51的时钟信号 晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12分频后形成机器周期。即一个机器周期包含12个晶振周期或6个时钟周期。 6.80C51单片机的复位 定义:复位是使单片机或系统中的其他部件处于某种确定的初始状态。 a.复位电路 两种形式:一种是上电复位;另一种是上电与按键均有效的复位。 b.单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器 PC=0000H,所以程序从0000H地址单元开始执行。 特殊功能寄存器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF 不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为00H.相应的意义为: ●P0~P3=FFH,相当于各口锁存器已 写入1,此时不但可用于输出,也 可以用于输入; ●SP=07H,堆栈指针指向片内RAM

单片机题库 带答案

单片机题库 一、填空题 1、当使用8031单片机时,需要扩展外部程序存储器,此时/EA应接((地)低电平)。 2.8051单片机内部有( 2 )个定时/计数器,门控制信号GATE 设置为1 时,由(TRx )和(INTx)控制定时器的启动。 3. 若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为(08H~0FH)。 4.若累加器A中的数据为01110011B,则PSW中的P=( 1 )。 5、MCS-51单片机具有4个(8 )位并行I/O口,有( 1)个全双工的串行输入输出口。 6、计算机的元件级总线有(地址总线)、(数据总线)、(控制总线) 7、MOV A,@R1指令中,源操作数的寻址方式是(寄存器间接寻址)。 8、8051单片机堆栈遵循数据先入后出的原则。 9、8051单片机使用电源为5V。 10、在立即寻址方式中,在数前使用#号来表示立即数。 11、在8051单片机中,加法指令可以分为ADD,ADC两种。 12、设8051外接12MHz的石英晶体,则一个机器周期的时间宽度为1us。 13、8051单片机的C语言源程序的扩展名为dac,Dac。 14、在设计汇编语言源程序时,可以使用顺序结构的程序,也可以使用某些指令构成分支结构或者循环结构的程序。15、当8051单片机复位后,程序的入口地址为 0000H 。

16、8051单片机中的定时器/计数器有 2个。 17、8051单片机有5 个中断源,分成 2个优先级。 18、MCS-51单片机具有8位CPU,共有 16根地址线。 19、MCS-51片内有( 128 )个字节的数据存储单元,( 21 )个 特殊功能寄存器。片内数据存储器寻址空间是( 256 )字节。 20、内部RAM低128个字节划分为( 工作寄存器区 )、( 位寻 址 )、( 数据缓冲区 )三个部分。 21、访问特殊功能寄存器和片外数据存储器分别采用( 直接寻 址 )、( 寄存器间接寻址 )寻址方式。 22、清除片内RAM 2FH单元最低位,使用的命令是( CLR 08H )。 23、在MCS-51系列单片机MCS-51单片机有4个( 8 )位的并行 I/O口,其中( P0 )口用做低8位地址线和数据线分时复用, 而 ( P2 )口用作高8位地址线。 24、MCS-51单片机有一个具有( 2 )个中断优先级,( 5 ) 个中断源的中断系统。对于每个中断源,均可通过对特殊功能寄存器 中中断优先级寄存器设置其优先级,置( 1 )为高优先级。 25、8031是( 高 )电平复位,复位后,P0-P3口为( 高 ) 电平,SP的值为( 07H ),PC的值为( 0000H ),工作寄 存器位于第( 0 )组。 26、MCS-51单片机具有( 8 )位CPU,共有( 16 )根地址线,可寻 址外部程序存储器( 64K)字节,可寻址外部数据存储器 ( 64K )字节。

单片机中断程序大全

单片机中断程序大全公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

//实例42:用定时器T0查询方式P2口8位控制L E D闪烁#include // 包含51单片机寄存器定义的头文件void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 //实例43:用定时器T1查询方式控制单片机发出1KHz音频

#include // 包含51单片机寄存器定义的头文件sbit sound=P3^7; //将sound位定义为P3.7引脚 void main(void) {// EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%256; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 TF1=0; while(1)//无限循环等待查询 { while(TF1==0); TF1=0; sound=~sound; //将P3.7引脚输出电平取反 TH1=(65536-921)/256; //定时器T0的高8位赋初值 TL1=(65536-921)%256; //定时器T0的高8位赋初值 } } //实例44:将计数器T0计数的结果送P1口8位LED显示 #include // 包含51单片机寄存器定义的头文件sbit S=P3^4; //将S位定义为P3.4引脚

单片机程序分析题练习B2

1.程序如下: MOV SP , #13H MOV 33H ,#7FH MOV 44H ,#0ABH PUSH 33H PUSH 44H POP 33H POP 44H 程序执行后, (33H)=0ABh 2.下列各条指令其源操作数的寻址方式是什么各条指令单独执行后, (60H )=35H ,(A ) =19H ,(R0)=30H ,(30H )=0FH 。 ( 1 ) MOV A , #48H ;寻址方式 A) = 48H ( 2) ADD A , 60H ;寻址方式 A) = 4DH ( 3) ANL A , @R0 ;寻址方式 A) = 10H 3.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能 MOV R1, #30H ;( R1) =30H MOV A , #64H ; ( A) = 64H ADD A , #47H ;( A) =ABH ,( CY) = 0 , ( AC) = 0 DA A ;( A) =31H ,( CY) =1 ( AC) = MOV @R1, A ; ( R1) = 30H , ( 30H) = 31H 此程序段完成的功能 4. 设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A) =0 ORL A , #27H ANL A , 28H XCHD A , @R0 CPL A 5. 设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)=04H (CY)=1 (P) 1 MUL AB (A)=08H (B)=00H (OV)=0 6. 已知( R0) =20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后 ( 40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2 A=20H ,(44H )=7Fh A 中的结果是什么设

单片机题库及答案

单片机题库及答案 【篇一:单片机试卷及答案】 填空题(每空1分,共20分) 1、+1000001的反码是。十进制数-4的8位二进制补码是。 2、计算机所能执行的指令的集合称为。指令的编码规则称为,一般由和操作数两部分组成。 3、cpu一次可以处理的二进制数的位数称为cpu的。 4、当ea为电平时,cpu总是从外部存储器中去指令。 5、89c52单片机有6个中断源,其中内部中断源有个,外部中断源有个。 6、汇编指令中,对程序存储器的访问用指令来访问,外部ram用指令来访问。 7、c51的数据类型sfr占个字节,c51中整型变量占个字节。 8、指令mov 20h,#20h中,源操作数的寻址方式是,目的操作数的寻址方式是。 9、定时器t1方式2的8位常数重装初值存放于寄存器中。定时器t0方式0,寄存器用于存放计数初值的低5位。 10、多机通信中,主机的sm2= 。 11、eprom存储器27c256内部容量是32k字节,若不考虑片选信号,则对其内部全部存储单元进行寻址共需根地址线。 12、波特率倍增位位于特殊功能寄存器中。 13、8155a内部具有1个位减法定时器/计数器。 二、单项选择题(共20题,每题1分,共20分) 1、单片机的应用程序一般存放于()中 a、ram b、rom c、寄存器 d、cpu 2、定时器0工作于计数方式,外加计数脉冲信号应接到()引脚。 a、p3.2 b、p3.3 c、p3.4 d、p3.5 3、mcs51单片机在同一优先级的中断源同时申请中断时,cpu首先响应()。 a、外部中断0 b、外部中断1 c、定时器0 d、定时器1 4、adc0809是()ad的转换器件 a、4通道8位 b、8通道8位 c、4通道12位 d、8通道12位 5、执行中断返回指令后,从堆栈弹出地址送给() a、a b、ri c、pc d、dptr 6、串行通信中,发送和接收寄存器是()

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

单片机程序分析试题与答案

六、设计题 1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。 答:图(5分) 构思(3分) MOV A,#80H (1分) UP:MOV P1,A (1分) RR A (2分) SJMP UP (1分) 2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。 答:图(5分) 构思(3分) 程序(4分) ORG 0000H LJMP MAIN ORG 0003H LJMP AINT0 ORG 0013H LJMP BINT1 MAIN: MOV IE,#83H SETB IT0 SETB IT1 MOV R0,#00H MOV DPTR,#TAB UP: MOV A,R0 MOVC A,@A+DPTR MOV P1,A SJMP UP AINT0: INC R0 CJNE R0,#10,AINT01 MOV R0,#0 AINT01: RETI BINT1: DEC R0 CJNE R0,#0FFH,BINT11 MOV R0,#9 BINT11: RETI 1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 1.SQR:1NC A MOVC A,@A+PC RET TAB:DB 0,1,4,9,16 DB 25,36,49,64,81 2.请使用位操作指令实现下列逻辑操作:BIT=(10H∨P1.0)∧(11H∨C Y) 2.ORL C,11H

MOV 12H,C MOV C,P1.0 ORL C,/10H ANL C,12H MOV BIT,C RET 3.已知变量X存于V AR单元,函数值Y存于FUNC单元,按下式编程求Y值。 Y= 10 0 1 x x x > - = 0,Y=1 MOV A,#0FFH ;x<0,Y=-1 SJMP RES POSI:MOV A,#01H RES:MOV FUNC,A RET 4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的 单元中(低位在前)。 4. MOV R0,#SUM MOV A,R2 ANL A,#OFH MOV @R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SW AP A 1NC R0 MOV @R0,A ;存高字节BCD RET 5.将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。 5. MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H LOOP:MOVX A,@DPTR ;取数 MOVX @R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP RE T

《单片机原理及应用》教学大纲

《单片机原理及应用》教学大纲 大纲说明 课程代码:3335014 总学时:48学时(讲课40学时,实验8学时) 总学分:3 课程类别:专业模块选修课 适用专业:机械设计制造及其自动化专业、电气工程及自动化专业 预修要求:数字电子技术、模拟电子技术、电路、计算机基础、微机原理、汇编语言 一、课程的性质、目的、任务: 性质:是机电一体化专业的专业必修课。是一门面向应用的、具有很强实践性与综合性的课程。 目的:通过学习利于改善学生的知识结构,使其获得利用单片机解决某些工程技术问题所需的知识,为学习后续课程及在今后工作中利用单片机实现电器控制、过程控制、信息处理和管理奠定必要的基础。 任务:通过学习要求学生掌握单片机的工作原理,了解有关单片机的基本知识,掌握该单片机的指令系统及汇编语言设计的基本方法,掌握单片机的基本功能及典型接口技术,获得相关领域内应用单片机的初步能力。 二、课程教学的基本要求: 原理部分以讲授为主;程序设计提倡多读程序、多写、多上机;硬件接口应在掌握了硬件的工作原理的基础上结合实验提高动手能力;教学手段应多样化避免单调的教学模式;实验环节重点学习单片机的硬件组成、工程应用及系统开发;课后作业的主要目的是掌握本章的学习要点,巩固前面所学的内容,为下一章学习做好准备;考试采用闭卷理论考试,结合实验和平时成绩,在内容上尽量体现单片机的基本常识性问题,结合实际,做到质、量结合。 三、大纲的使用说明: 本课程的先修课程为:《电路》《电子技术》《计算机基础》《程序设计》《微机原理》;电子机械专业学生应掌握大纲所要求的大部分内容;课程可根据总课时数而定。 大纲正文 第一章绪论学时:1学时(讲课1学时实验0学时)本章讲授要点:有关微型机的基本知识,包括分类、结构和组成,以及单片机的结构、典型产品及应用,单片机应用系统开发。 重点:单片机的特点、开发方式。 难点:单片机开发方式。 §1.1 电子计算机的发展概述 §1.2 单片机的发展过程及产品近况 §1.3 单片机的特点及应用领域

单片机试题及答案

单片机原理与接口技术习题答案 习题与思考题1 1-1 微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 1-2 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 1-3 简述计算机的工作过程。 答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。 1-4 单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。 1-5 单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 1-6 为什么说单片微型计算机有较高的性能价格比和抗干扰能力? 答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的抗干扰能力。 1-7 简述单片机嵌入式系统的定义和特点。 答:单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与各个行业的具体应用相结合、硬件和软件高效率、软件固化在存储器芯片或单片机本身和不具备自举开发能力。 习题与思考题2 2-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口和中断控制等基本功能部件。 单片机的核心部分是CPU,CPU是单片机的大脑和心脏。 程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 I/O接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外设状态)和发布命令等。 中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。 2-2 MCS-51单片机的核心器件是什么?它由哪些部分组成?各部分的主要功能是什么? 答:单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。它由运算器、控制器和布尔(位)处理器组成。 运算器是用于对数据进行算术运算和逻辑操作的执行部件。

5 STC15F2K60S2单片机的程序设计 例题

第5章STC15F2K60S2单片机的程序设计 例题 例5.1 分析ORG在下面程序段中的控制作用 ORG 1000H START: MOV R0,#60H MOV R1,#61H …… ORG 1200H NEXT: MOV DPTR,#1000H MOV R2,#70H …… 解:以START开始的程序汇编后机器码从1000H单元开始连续存放,不能超过1200H 单元;以NEXT开始程序汇编后机器码从1200H单元开始连续存放。 例5.2 分析END在下面程序段中的控制作用。 START: MOV A,#30H …… END START NEXT: …… RET 解:汇编程序对该程序进行汇编时,只将END伪指令前面的程序转换为对应的机器代码程序,而以NEXT标号为起始地址的程序将予以忽略。因此,若NEXT标号为起始地址的子程序是本程序的有效子程序的话,应将整个子程序段放到END伪指令的前面。

例5.3 分析下列程序中EQU指令的作用 AA EQU R1 ;给AA赋值R1 DA TA1 EQU 10H ;给DA TA1赋值10H DELAY EQU 2200H ;给DELAY赋值2200H ORG 2000H MOV R0,DATA1 ;R0←(10H) MOV A,AA ;A←(R1) LCALL DELAY ;调用起始地址为2200H的子程序 END 解:经EQU定义后,AA等效于R1,DATA1等效于10H,DELAY等效于2200H,该程序在汇编时,自动将程序中AA换成R1、DATA1换成10H、DELAY换成2200H,再汇编为机器代码程序。 使用赋值伪指令EQU的好处在于程序占用的资源数据符号或寄存器符号用占用源的英文或英文缩写字符名称来定义,后续编程中凡是出现该数据符号或寄存器符号就用该字符名称代替,这样,采用有意义的字符名称进行编程,更容易记忆和不容易混淆,也便于阅读。

单片机原理及应用作业答案

作业答案0-1 绪论 1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。 2.什么叫单片机其主要特点有哪些 解: 将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。 单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 第1章 MCS-51单片机的结构与原理 15. MCS-51系列单片机的引脚中有多少根I/O线它们与单片机对外的地址总线和数据总线之间有什么关系其地址总线和数据总线各有多少位对外可寻址的地址空间有多大 解: MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。 MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)它们的地址是什么CPU如何确定和改变当前工作寄存器组(R0-R n) 解: 开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。 27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的当主频为12MHz的时候,一个机器周期是多长时间执行一条最长的指令需要多长时间 解:

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个22+2×248=49820× DJNZ R7,$ 2个2×248(498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发 光二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令使端口输出低电平。 5.程序框图

单片机外部中断实验(附C语言程序)

单片机外部中断实验(附c程序) 一、实验目的 掌握外部中断的C语言和汇编语言编程方法,会用外部中断解决实际应用问题。 。 二、实验内容 8051C51单片机P2.0接一个发光二极管LED1、P2.1接一个发光二极管LED2,P3.2接一个开关、P3.3接一个开关要求实现以下功能: (1)合上、P3.3断开时LED1闪烁 (2)P3.2断开、P3.3合上时LED2闪烁 (3)P3.2合上后(不断开)再合上P3.3,LED1闪烁LED2不闪烁 (4)P3.3合上后(不断开)再合上P3.2,LED2不闪烁LED1闪烁 试编写C语言和汇编语言程序 使用自然优先级就可以 也可 XO 高级X1低级PX0=1 PX1=0 四、实验电路 五、参考程序(自己完成) C程序: Include Sbit P2_0=P2^0; Sbit P2_1=P2^1; Sbit P3_2=P3^2; Sbit P3_3=P3^3; void delay02s(void) //延时0.2秒子程序 { unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--); }

Void main { EA=1; EX0=1; EX1=1; ITO=1; IT1=1; PX0=1; PX1=0; While(1); } Void int0(void) interrupt 0 { if(!P3_2) { While(1) { P2_0=1; delay02s(); P2_0=0; delay02s(); } } } Void int1(void) interrupt 2 { if(!P3_3) { While(1) { P2_1=1; delay02s(); P2_1=0; delay02s(); } } }

单片机原理及应用(答案)

1:单片机8031的XTAL1和XTAL2引脚是()引脚。 1.外接定时器 2.外接串行口 3.外接中断 4.外接晶振 2:LU表示()。 1.累加器 2.程序状态字寄存器 3.计数器 4.算术逻辑部件 3:单片机上电复位后,PC的内容和SP的内容为()。 1.0000H,00H 2.0000H,07H 3.0003H,07H 4.0800H,08H 4:8031单片机的定时器T1用作定时方式时是()。 1.由内部时钟频率定时,一个时钟周期加1 2.由内部时钟频率定时,一个机器周期加1 3.由外部时钟频率定时,一个时钟周期加1 4.由外部时钟频率定时,一个机器周期加1 5:INTEL8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 6:当需要从MCS-51单片机程序存储器取数据时,采用的指令为() 1.MOV A, @R1 2.MOVC A, @A + DPTR 3.MOVX A, @ R0 4.MOVX A, @ DPTR 7:若PSW的RS1/RS0=10则单片机工作寄存器工作在()。 1.0区 2.1区

3.2区 4.3区 8:假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。 1.6H 2.37H 3.38H 4.39H 9:单片机上电复位后,堆栈区的最大允许范围是个单元。 1.64 2.120 3.128 4.256 10:在MCS-51指令中,下列指令中()是无条件转移指令。 1.LCALL addr16 2.DJNZ direct,rel 3.SJMP rel 4.ACALL addr11 11:INTEL 8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 12:单片机中的程序计数器PC用来()。 1.存放指令 2.存放正在执行的指令地址 3.存放下一条指令地址 4.存放上一条指令地址 13:8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是()。 1.P0 2.P1 3.P2 4.P3

单片机选择题题库

一.单项选择题(从以下四个选项中选出一个正确答案,多选,错选不给分)。 1.MCS-52子系列与MCS-51子系列相比,下列说法错误的是( ) A.片内ROM从4KB增加到8KB B.片内RAM从128位增加到256位 C.定时/计数器从2个增加到3个 D.xx源从5个增加到6个 2.若PSW.4=0,PSW.3=1,现在需要保存R1的内容,可执行( )指令。 A.PUSH R1 B.PUSH @R1 C.PUSH 01H D.PUSH 09H 3.下列指令不是变址寻址方式的是( ) A.JMP @A+DPTR B.MOVC A,@A+PC C.MOVX A,@DPTR D.MOVC A,@A+DPTR 4.MCS-51单片机有片内ROM容量( ) A. 4KB B. 8KB C. 128B

5.MCS-51单片机的位寻址区位于内部RAM的( )单元。 A. 00H—7FH B. 20H—7FH C. 00H—1FH D. 20H—2FH 6.MCS-51单片机的串行中断入口地址为( ) A. 0003H B. 0013H C. 0023H D. 0033H 7.MCS-51单片机的最小时序定时单位是( ) A.状态 B.拍节 C.机器周期 D.指令周期 8.若MCS-51单片机采用6MHz的晶振,其复位高电平脉冲时间应该超过( )。 A. 2S B. 4S C. 2mS

9.程序状态字PSW的( )位为1时,表示带符号数加减运算中,累加器A 产生了溢出。 A. CY B. ACC C. OV D. P 10.MCS-51单片机的RS1,RS0=11时,当前寄存器R0—R7占用内部 RAM( )单元。 A. 00H—07H B. 08H—0FH C. 10H—17H D. 18H—1FH 11.MCS-51单片机有片内RAM容量( )。 A. 4KB B. 8KB C. 128B D. 256B 12.MCS-51单片机的外部中断0中断入口地址为( )。 A. 0003H B. 000BH C. 0013H

单片机习题答案(1章-9章)

第2章习题参考答案 2-1 MCS-51系列单片机内部有哪些主要的逻辑部件? 答:一个8位CPU;一个片内振荡器及时钟电路;4K字节ROM程序存储器;128字节RAM数据存储器;两个16位定时器/计数器;可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;具有五个中断源、两个优先级嵌套中断结构 2-2 MCS-51设有4个8位端口(32条I/O线),实际应用中8位数据信息由哪一个端口传送?16位地址线怎样形成?P3口有何功能? 答:实际应用中8位数据信息由P1口传送。16位地址线由P0口输出低8位地址A7~A0,P2口输出高8位地址A15~A8。P3口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同P1口;当作第二功能使用时,P3.0—RXD串行输入(数据接收)口,P3.1—TXD串行输出(数据发送)口,P3.2—外部中断0输入线,P3.3—外部中断1输入线,P3.4—T0定时器0外部输入,P3.5—T1定时器1外部输入,P3.6—WR外部数据存储器写选通信号输出,P3.7—外部数据存储器读选通信号输入。 2-3 MCS-51的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何作用? 答:MCS-51存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统、控制信号和功能。 程序存储器用来存放程序和始终要保留的常数,如经汇编后所编程序的机器码。数据存储器通常用来存放程序运行中所需要的常数或变量,例如模/数转换时实时采集的数据等。2-4 MCS-51内部RAM区功能结构如何分配?4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少? 答:MCS-51系列单片机内部数据存储器:00H ~ 7FH单元组成的低128字节地址空间的RAM 区,又分为为工作寄存器区(00H~1FH)、位寻址区(20H~2FH)和数据缓冲区(30H~7FH)。80H ~ FFH(128 ~255)单元组成的高128字节地址空间的特殊功能寄存器(又称SFR)区。对于8032、8052、8752的单片机还有80H~FFH单元组成的高128字节地址空间的RAM区。 4组工作寄存区是由程序状态字PSW(特殊功能寄存器,字节地址为0D0H)中的D4、D3 位寻址区域的字节地址范围是20H~2FH(对应的位地址范围是00H~7FH)。 2-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么? 答:P0字节地址80H,TCON字节地址88H,P1字节地址90H,SCON字节地址98H,P2字节地址A0H,IE字节地址A8H,P3字节地址B0H,IP字节地址B8H,PSW字节地址D0H,ACC字节地址E0H,B字节地址F0H。 2-6 简述程序状态字PSW中各位的含义。 答:CY(PSW·7)进位标志,AC(PSW·6)辅助进位标志,F0(PSW·5)用户标志位RS1、RS0(PSW·4、PSW·3)寄存器区选择控制位,OV(PSW·2)溢出标志,P(PSW.0)奇偶标志,每个指令周期都由硬件来置位或清“0”,以表示累加器A 中1的位数的奇偶数 2-7 一个时钟频率为6MHz的单片机应用系统,它的时钟周期、机器周期、指令周期分别是

相关主题
文本预览
相关文档 最新文档