《单片机》编程题题库答案
(完整版)单片机题库分章节答案(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. ASCIIB.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.5V7.堆栈是内部数据RAM区中,数据按先进后出的原则出入栈的。
8.MSC-51系列单片机具有 4 个并行输入/输出端口,其中_P0_口是一个两用接口,它可分时输出外部存储器的低八位地址和传送数据,而_P1__口是一个专供用户使用的I/O口,常用于第二功能的是P3 口。
单片机考试题目及答案
单片机考试题目及答案一、选择题(每题2分,共20分)1. 单片机是一种集成了CPU、存储器、I/O接口等功能的微型计算机,其英文缩写是:A. CPUB. RAMC. ROMD. MCU答案:D2. 下列哪个是51系列单片机的特有寄存器?A. ACCB. PSWC. SPD. PC答案:B3. 在8051单片机中,以下哪个指令是用于将累加器A的内容与外部数据存储器中的数据进行交换?A. MOV A, @DPTRB. MOVX A, @DPTRC. MOV DPTR, #20HD. MOV A, #20H答案:B4. 8051单片机的定时器/计数器0和1,其定时器模式下的工作方式有:A. 1种B. 2种C. 3种D. 4种答案:C5. 下列哪个中断源在8051单片机中具有最高优先级?A. 定时器0中断B. 外部中断0C. 定时器1中断D. 串行中断答案:B二、填空题(每空2分,共20分)1. 单片机的最小系统通常包括________、________和________。
答案:时钟电路、复位电路、电源电路2. 8051单片机的P0口是________位的双向I/O口。
答案:83. 8051单片机的中断向量地址是固定的,其中外部中断0的中断向量地址是________。
答案:03H4. 8051单片机的定时器0和定时器1都可以被配置为________模式,用于计数外部事件。
答案:计数器5. 在8051单片机中,使用MOV指令可以实现寄存器之间的数据传输,例如MOV A, R0,表示将________的数据传送到________。
答案:R0寄存器;累加器A三、简答题(每题10分,共30分)1. 请简述单片机的中断系统的作用及其重要性。
答案:单片机的中断系统允许单片机在执行程序的过程中,对外部事件或内部条件做出快速响应。
中断系统的重要性在于它能够实现多任务处理,提高系统的实时性和效率。
2. 描述8051单片机的串行通信方式及其特点。
单片机 11道编程例题及答案
1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕。
试编程实现。
ORG 0030H MOV R0,#inbuf MOV R1,#outbuf MOV R4,#10HLOOP:MOV A,@R0 ; 从内部RAM取数 CJNE A,#0DH,LL ;是否为回车符CRSJMP STOP ;是转停止传送 LL: MOVX @R1,A ;不是则传送到外部RAMINC R0 INC R1 DJNZ R4,LL;沒传送完则循环 STOP: SJMP $2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。
编程实现在表中找出最小数。
(3AH存放在运行程序时的最小的数)ORG 0030HMOV R0,#listMOV A,@R0 ;取第一个正数LOOP: INC R0 ;指向下一个正数MOV 3AH,@R0CJNE A,3AH,CHK ;前一个数与后一个数比较CHK: JC LOOP1 ;前一个数小,则转MOV A,@R0 ;前一个数大,取后一个数LOOP1: XCH A,3AHCJNE A,#0FFH,LOOPXCH A,3AH ;取最小数MOV 3BH,A SJMP $3.内部RAM的X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。
若X为正奇数,Z =X+Y;若X为正偶数,Z =X∨Y;若X为负奇数,Z =X∧Y;若X为负偶数,Z =X⊕Y。
分析:负数:第7位为1,正数:第7位为0 奇数:第0位为1,偶数:第0位为0 ORG 0000H MOV A,20H CLR C RL A JC FS ;移到负数处处理RR A RR A ;第0位移到C 再判定一下是不是1 JC ZJS ;到正奇数处MOV A,20H ORL A,21H MOV 22H,A SJMP OKZJS: MOV A,20H ADD A,21H MOV 22H,A SJMP OKFS: MOV A,20H CLR C RR A JC FJS ;第0位是1,移到正奇数处理MOV A,20H XRL A,21H MOV 22H,A SJMP OKFJS: MOV A,20H ANL A,21H MOV 22H,A OK: END4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。
单片机部分编程题参考答案
单片机部分编程题参考答案2-23.求补:直接取反加一CLR CMOV A,R4CPL AADDC A,#01HMOV R4,AMOV A,R3CPL AADDC A,#00HMOV R3,A2-24采用移位乘2时,先移低位较好法一:CLR CMOV A,31HRLC AMOV 31H,AMOV A,30HRLC AMOV 30H,A法二:MOV R0,#02HMOV A,31HMOV B,R0MUL ABMOV 31H,A;存积的低八位MOV R3,B;高8位暂存R3MOV A,30HMOV B,R0MUL ABADD A,R3JNC NEXT;积没有超出两个字节转存NEXT:MOV 31H,A3-1 . 字符CR 的ASCII码是0DH,注意区别内部和外部RAM MOV R0,#INBUFMOV DPTR,#OUTBUFMOV R7,#10HLOOP:CJNE @R0,#0DH,NEXTSJMP LASTNEXT:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,LOOPLAST:NOP3-3.假设数据存在内部RAM中MOV R0,#TABLEMOV R7,#07HMOV A,@R0CLR CLOOP:INC R0ADDC A,@R0DJNZ R7,LOOPMOV B,#08HDIV ABMOV 30H,A3-4.MOV DPTR,#BUFMOV R0,#BYTEMOV R7,#08HMOV A,@R0LOOP:RLC AMOV R1,AJC NEXTMOV A,#30HMOVX @DPTR,AMOV A,R1INC DPTRDJNZ R7,LOOPSJMP $NEXT:MOV R1,AMOV A,#31HMOVX @DPTR,AINC DPTRMOV A,R1DJNZ R7,LOOPSJMP $3-14:设DATA存高8位,搞清补码的求法(正数的补码即是其原码,负数的补码符号位不变,数值位取反加一)MOV R0,#DATAMOV R1,#DATA+1MOV A,@R0ANL A,#80HJZ ENDCLR CMOV A,@R1CPL AADD A,#01HMOV @R1,AMOV A,@R0XRL A,#7FADDC A,#00HMOV @R0,AEND:3-16,考虑到借位,先减低八位:CLR CMOV A,#5DHSUBB A,#B4HMOV 30H,AMOV A,#6FHSUBB A,#13HMOV 31H,A3-21:1000H 53H1001H 54H1002H 41H1003H 52H1004H 31H1005H 12H1006H 34H1007H 30H1008H 00H1009H 00H100AH 70H4-13:利用定时计数器T1工作在方式1,并且采用中断方式ORG 0000HAJMP MAINORG 00IBHAJMP SUBPORG 0030HMAIN:MOV 30H,#20MOV 31H,#60MOV TMOD,#10HSETB ET1SETB EAMOV TL1,#0B0HMOV TH1,#3CHLOOP:SETB TR1SJMP $SUBP:MOV TL1,#0B0HMOV TH1,#3CHDJNZ 30H,LOOPSETB P1.0NOPCLR P1.0MOV 30H,#20DJNZ 31H,LOOPSETB P1.1NOPCLR P1.1MOV 31H,#60RETI5-8:选用T0方式一X=8187初值:FF1BHMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#1BHMOV IE,#00HSETB TR0LOOP:JBC TF0,LOOP1SJMP LOOPLOOP1:MOV TH0,#0FFHMOV TL0,#1BHCPL P1.0AJMP LOOP5-9:说明:占空比0.1,即高电平占的时间是40微秒用T0方式2 则:40=(256-X1)*2X1=ECH360=(256-X2)*2X2=4CHSTART:MOV TMOD,#02HMOV TH0,#0ECHMOV TL0,#0ECHMOV IE,#00HSETB P1.0SETB TR0LOOP1:JBC TF0,LLSSJMP LOOP1LLS:CLR TR0CPL P1.0MOV TH0,#4CHMOV TL0,#4CHSETB TR0LOOP2:JBC TF0,LLTSJMP LOOP2LLT:CLR TR0CPL P1.0AJMP START5-14:采用两个定时器T0、T1各自定时50毫秒(方式1)50000=2*(65536-x)X=9E58HMOV DPTR.#DATAMOV R7,#64HSTART:MOV TMOD,#11HMOV TH0,#9EHMOV TL0,#59HMOV IE,#00HSETB TR0LOOP:JBC TF0,LOOP1SJMP LOOPLOOP1:MOV TH1,#9EHMOV TL1,#58HSETB TR1LOOP2:JBC TF1,LOOP3SJMP LOOP2LOOP3:MOVC A,@DPTRINC DPTRMOV P1,ADJNZ R7,START。
51单片机c语言考试题目及答案
51单片机c语言考试题目及答案一、选择题(每题2分,共10分)1. 下列关于51单片机的描述,错误的是()。
A. 51单片机是一种8位微控制器B. 51单片机具有丰富的I/O端口C. 51单片机的内部RAM是256字节D. 51单片机的时钟频率不能超过12MHz答案:D2. 在51单片机中,下列哪个寄存器用于存储当前正在执行的指令的地址?()A. SPB. PCC. DPTRD. PSW答案:B3. 51单片机的定时器/计数器可以工作在以下哪种模式?()A. 定时模式B. 计数模式C. 定时和计数模式D. 以上都是答案:D4. 51单片机的中断向量表中,外部中断0的中断向量地址是()。
A. 0003HB. 000BHC. 0013HD. 001BH答案:B5. 在51单片机的C语言编程中,下列哪个关键字用于定义一个函数?()A. intB. voidC. functionD. define答案:A二、填空题(每题2分,共10分)1. 51单片机的内部RAM分为______区和______区。
答案:工作寄存器;位寻址2. 51单片机的定时器/计数器0和定时器/计数器1的中断优先级分别是______和______。
答案:低;高3. 在51单片机的C语言编程中,使用______关键字可以定义一个全局变量。
答案:extern4. 51单片机的EA位是______位,它控制着______中断的总开关。
答案:总中断;所有5. 51单片机的定时器/计数器溢出时,会自动向______寄存器写入______。
答案:计数器;1三、简答题(每题5分,共20分)1. 简述51单片机的中断系统是如何工作的?答案:51单片机的中断系统由中断向量表、中断优先级和中断服务程序组成。
当一个中断事件发生时,单片机会自动将当前程序的地址存入堆栈,然后跳转到中断向量表中对应的中断服务程序地址执行中断服务程序。
中断服务程序执行完毕后,单片机会从堆栈中恢复程序的地址,继续执行被中断的程序。
51单片机c语言考试题和答案
51单片机c语言考试题和答案一、单项选择题(每题2分,共20分)1. 51单片机中,以下哪个寄存器是用于存储程序计数器(PC)的值?A. DPTRB. SPC. PCD. ACC答案:C2. 在51单片机中,以下哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOV A, @R0B. MOV @R0, AC. MOV A, #dataD. MOV DPTR, #address答案:B3. 51单片机的定时器/计数器有几种工作模式?A. 2种B. 3种C. 4种D. 5种答案:C4. 51单片机中,以下哪个指令用于将立即数传送到累加器A?A. MOV A, #dataB. MOV A, @R0C. MOV A, R0D. MOV A, DPTR答案:A5. 51单片机的串行通信中,以下哪个寄存器用于存储串行数据?A. TCONB. SCONC. PCOND. IE答案:B6. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行异或操作?A. XOR A, R0B. ORL A, R0C. ANL A, R0D. CPL A答案:A进行逻辑与操作?A. ANL A, #dataB. ORL A, #dataC. XRL A, #dataD. CPL A答案:A8. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑或操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:AR0的内容进行逻辑异或操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:C10. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑非操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:D二、填空题(每题2分,共20分)1. 51单片机的外部中断有______个,分别是INT0和INT1。
单片机考试题库及答案
单片机考试题库及答案一、选择题1. 单片机的英文简称是:A. CPUB. MCUC. RAMD. ROM答案:B2. 下列哪个不是单片机的组成部分:A. 中央处理器B. 存储器C. 输入/输出接口D. 显示器答案:D3. 8051单片机的系统时钟频率为12MHz时,机器周期的时钟周期数是:A. 1B. 2C. 3D. 12答案:B4. 单片机中,用于存储程序指令的存储器类型是:A. RAMB. ROMC. EPROMD. EEPROM答案:B5. 8051单片机的定时器/计数器有:A. 1个B. 2个C. 3个D. 4个答案:B二、填空题6. 单片机的最小系统包括________、________和________。
答案:时钟电路、复位电路、电源电路7. 单片机的中断系统包括________、________和________。
答案:中断请求、中断响应、中断服务8. 8051单片机的P0口是________位的双向I/O口。
答案:89. 单片机的I/O口通常具有________、________和________功能。
答案:输入、输出、高阻抗状态10. 单片机的串行通信方式有________和________两种。
答案:同步通信、异步通信三、简答题11. 简述单片机的中断优先级是如何确定的?答案:单片机的中断优先级通常由硬件或软件设置。
在硬件上,可以通过设置中断向量表来确定优先级;在软件上,可以通过编程设置中断优先级的寄存器来确定。
12. 单片机的定时器/计数器有什么作用?答案:单片机的定时器/计数器主要用于测量时间间隔或对外部事件进行计数。
它们可以用于产生定时中断、测量外部信号的持续时间、计数外部事件的发生次数等。
四、计算题13. 如果8051单片机的系统时钟频率为6MHz,计算一个机器周期的时钟周期数。
答案:由于8051单片机的机器周期是12个时钟周期,所以当系统时钟频率为6MHz时,一个机器周期的时钟周期数为12。
c语言单片机期末试题及答案
c语言单片机期末试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcmp答案:A3. 下列关于单片机的描述,哪一项是不正确的?A. 单片机是一种集成了CPU、存储器和I/O接口的微控制器。
B. 单片机通常用于嵌入式系统。
C. 单片机的编程语言只能是汇编语言。
D. 单片机的运行速度通常高于个人计算机。
答案:C4. 在C语言中,下列哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 在单片机编程中,下列哪种方式用于控制单片机的I/O端口?A. 直接操作内存地址B. 使用中断C. 通过操作系统调用D. 通过串口通信答案:A二、填空题(每题2分,共20分)1. C语言中,表示逻辑与的运算符是____。
答案:&&2. 在单片机中,用于定义变量存储类型的关键字是____。
答案:volatile3. C语言中,用于定义数组的关键字是____。
答案:数组4. 在单片机编程中,用于控制定时器的函数是____。
答案:定时器函数5. C语言中,用于定义函数的关键字是____。
答案:函数三、简答题(每题5分,共30分)1. 请简述C语言中指针的概念。
答案:指针是一种变量,其值是另一个变量的内存地址。
2. 描述单片机的中断系统是如何工作的。
答案:单片机的中断系统允许外部或内部事件打断CPU当前的执行流程,以处理紧急任务。
3. 解释C语言中函数的原型声明和定义的区别。
答案:函数原型声明只包含函数的返回类型、名称和参数列表,而定义则包括函数原型和函数体。
4. 在单片机编程中,如何使用循环结构?答案:循环结构用于重复执行一段代码,直到满足特定条件。
单片机编程练习题(含部分答案)
单片机编程练习题(含部分答案)编程练习题1. 编一程序将片内存储单元20H~3FH单元的内容复制到40H~5FH单元。
MOV R0,#20H MOV R1,#40H MOV R7,#32LOOP: MOV A,@R0MOV @R1,A INC R0 INC R1DJNZ R7,LOOP SJMP $2. 编一程序将片内存储器40H单元的内容与41H单元的内容进行比较,若相等将50H置00H,若不等将50H置0FFH。
3. 在片内数据存储单元30H~4FH中存有32个同学的数学成绩,编一程序计算有多少同学成绩不及格(成绩低于60为不及格)。
若20H作为计数存储单元MOV R0,#30H MOV 20H,#0 MOV R0,#30H MOV R7,#32 MOV 20H,#0LOOP: MOV A,@R0 MOV R7,#32 SUBB A,#60 LOOP: CJNE @R0,#60,NE JNC GE NE: JNC GE INC 20H INC 20H GE: INC R0 GE: INC R0DJNZ R7,LOOP DJNZ R7,LOOPSJMP $ SJMP $4. 内部RAM中分别以地址20H和30H开始的连续16个单元,按顺序依次将两组中相应单元的内容相加(不考虑溢出),并将和存入外部RAM 2000H开始的单元中。
MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R7,#16LOPP: MOV A,@R0ADD A,@R1 MOVX @DPTR,A INC R0 INC R1 INC DPTRDJNZ R7,LOOP SJMP $5. 设内部RAM 20H单元为数据块的起始地址,数据块长度为10H,数据为8位无符号数,试编程找出数据块中的最小值,并将其存入40H单元。
MOV R0,#20H MOV 40H,#255 MOV R7,#10HLOOP: MOV A,@R0SUBB A,40H JNC NJWMOV 40H,@R0NCW: INC R0DJNZ R7,LOOP SJMP $6. 比较两个ASCII码字符串是否相等。
单片机考试试题及答案
单片机考试试题及答案一、选择题(每题2分,共20分)1. 单片机中,CPU的主要功能是()。
A. 存储数据B. 处理数据C. 传输数据D. 显示数据答案:B2. 在8051单片机中,下列哪个寄存器是用于存储程序计数器的地址?A. SPB. PCC. DPTRD. ACC答案:B3. 下列哪项不是单片机的I/O接口?A. 定时器/计数器B. 串行通信接口C. 模数转换器D. 键盘答案:C4. 单片机的中断系统通常由哪两部分组成?A. 中断源和中断服务程序B. 中断向量表和中断服务程序C. 中断向量表和中断源D. 中断源和中断向量表答案:B5. 在8051单片机中,下列哪个指令用于将累加器的内容传送到外部数据存储器?A. MOVXB. MOVC. MOVCD. MUL答案:A二、填空题(每题2分,共20分)1. 单片机的______是单片机的核心部件,负责执行程序。
答案:CPU2. 8051单片机的定时器/计数器共有______个。
答案:23. 在8051单片机中,______指令用于将内部RAM的某个单元的内容传送到累加器。
答案:MOV4. 单片机的______接口用于实现单片机与外部设备的通信。
答案:串行通信5. 单片机的______功能允许它在执行当前任务的同时响应外部事件。
答案:中断三、简答题(每题10分,共30分)1. 请简述单片机的中断优先级是如何工作的?答案:单片机的中断优先级是指在多个中断请求同时发生时,单片机根据中断源的重要性来决定先响应哪一个中断请求。
通常,中断优先级由中断向量表中的地址顺序决定,优先级高的中断源对应的中断向量地址在表中靠前。
2. 描述单片机的I/O接口的作用。
答案:单片机的I/O接口是单片机与外部设备进行数据交换的通道。
它允许单片机接收外部设备的数据输入,并将处理后的数据输出到外部设备。
3. 简述单片机的定时器/计数器的作用。
答案:单片机的定时器/计数器用于提供精确的时间控制和事件计数。
(完整word版)《单片机》编程题题库答案
《单片机原理及应用》编程题题库参考答案六、编程(每题10分)1、内部RAM 30H和31H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD 码(高位在前)并存入外部RAM 2300H单元中。
解: ORG 0HLJMP STARTORG 30HSTART: MOV A,30HANL A,#0FHSWAP AMOV R0,AMOV A,31HANL A,#0FHORL A,R0MOV DPTR,#2300HMOVX @DPTR,AEND评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
2、将存放在内部RAM 30H-35H单元的压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM 2100H开始的单元区中。
ORG 0HLJMP STARTORG 30HSTART:MOV R0,#30HMOV R2,#06HMOV DPTR,#2100HLOOP:MOV A,@R0SWAP AANL A,#0FHORL A,#30HMOVX @DPTR,AINC DPTRMOV A,@R0ANL A,#0FHORL A,#30HMOVX @DPTR,AINC DPTRINC R0DJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
3、内部RAM 20H和30H开始的单元分别存放着16个16进制数,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM 2000H开始的单元中。
解:ORG 0LJMP STARTORG 30HSTART: MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08H ;每个单元存放2个16进制数,故16个16进制数占用8个单元 LOOP: MOV A,@R0ADD A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
单片机考试题目及答案
单片机考试题目及答案一、单项选择题(每题2分,共20分)1. 单片机中,以下哪个寄存器用于存储程序计数器(PC)的值?A. SPB. PCC. DPTRD. SCON答案:B2. 在8051单片机中,下列哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOV A, @R0B. MOVX A, @DPTRC. MOV A, #dataD. MOV A, R0答案:B3. 下列哪个指令是8051单片机的无条件跳转指令?A. SJMPB. CJNEC. DJNZD. JZ答案:A4. 在8051单片机中,以下哪个中断源的中断优先级最高?A. 外部中断0B. 定时器0中断C. 外部中断1D. 串行通讯中断答案:C5. 8051单片机的定时器/计数器工作在方式1时,其计数器的计数范围是多少?A. 0到255B. 0到65535C. 0到32767D. 0到65536答案:C6. 8051单片机中,哪个指令用于将累加器A的内容与立即数进行逻辑“或”操作?A. ORL A, #dataB. ORL A, directC. ORL A, @R0D. ORL direct, #data答案:A器R0的内容进行逻辑“与”操作?A. ANL A, R0B. ANL R0, AC. ANL A, #dataD. ANL direct, A答案:A8. 8051单片机中,哪个指令用于将累加器A的内容与直接地址中的数据进行逻辑“异或”操作?A. XRL A, #dataB. XRL A, directC. XRL direct, AD. XRL A, @R0答案:B器R0的内容进行逻辑“异或”操作?A. XRL A, R0B. XRL R0, AC. XRL A, #dataD. XRL direct, A答案:A10. 8051单片机中,哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑“与”操作后,结果存回R0?A. ANL A, R0B. ANL R0, AC. ANL A, #dataD. ANL direct, A答案:B二、填空题(每题2分,共20分)1. 8051单片机的内部RAM分为______和______两部分。
c语言单片机考试题及答案详解
c语言单片机考试题及答案详解一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在单片机编程中,以下哪个寄存器用于存储程序计数器的值?A. PCB. SPC. ACCD. B答案:A3. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable-nameC. variable$nameD. variable_name答案:D4. 在单片机中,若要将一个8位二进制数扩展为16位,应使用哪种指令?A. MOVB. CLRC. SWAPD. EXT答案:D5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A二、填空题1. 在C语言中,用于定义一个无符号字符型变量的关键字是________。
答案:unsigned char2. 单片机的I/O口可以被配置为________模式,用于接收外部信号。
答案:输入3. 在C语言中,若要声明一个指向整型的指针变量,应使用________。
答案:int*4. 单片机编程中,使用________指令可以将累加器A的内容传送到外部数据存储器。
答案:MOVX5. C语言中,________运算符用于计算两个数的差,并更新累加器A的值。
答案:-三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储相同类型的多个元素,而指针是一种变量,它存储了另一个变量的内存地址。
数组名可以被用来访问数组的第一个元素的地址,但数组本身不能被赋值;指针变量可以被赋值,指向不同的内存地址。
2. 描述单片机中断服务程序的执行流程。
答案:当单片机检测到一个中断请求时,它会保存当前程序的状态(如程序计数器和寄存器的值),然后跳转到中断向量指定的地址执行中断服务程序。
单片机原理c语言试题及答案
单片机原理c语言试题及答案一、选择题(每题2分,共10分)1. 在C语言中,下列哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于单片机中断处理的描述,不正确的是?A. 中断服务程序必须使用中断服务函数来实现B. 中断服务程序可以嵌套C. 中断服务程序执行完毕后,CPU会自动返回到被中断的程序继续执行D. 中断服务程序的执行时间应尽可能短答案:B3. 在8051单片机中,下列哪个寄存器用于存储当前正在执行的中断服务程序的地址?A. SPB. PCC. PSWD. DPTR答案:B4. 下列关于C语言中指针的描述,正确的是?A. 指针变量不能被赋值B. 指针变量可以存储任意类型的数据C. 指针变量的值是它所指向的变量的地址D. 指针变量不能作为函数的参数答案:C5. 在8051单片机中,下列哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOVX A, @DPTRB. MOV A, @R0C. MOV A, #dataD. MOV A, direct答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个全局变量。
答案:extern2. 在8051单片机中,定时器/计数器的控制寄存器是________。
答案:TCON3. C语言中,函数的返回值类型定义在函数定义的________部分。
答案:首部4. 在8051单片机中,使用________指令可以设置定时器的模式。
答案:TMOD5. 在C语言中,使用________运算符可以获取一个变量的地址。
答案:&三、简答题(每题5分,共10分)1. 简述单片机中断系统的作用。
答案:单片机中断系统的作用是允许单片机在执行当前任务的同时,能够响应外部事件或内部事件的请求,从而实现多任务处理。
2. 描述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指向数组首元素的指针使用。
单片机考试题目及答案
单片机考试题目及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是()。
A. CPUB. MCUC. RAMD. ROM2. 下列哪个不是51单片机的内部存储器类型?()A. ROMB. RAMC. EPROMD. EEPROM3. 单片机的I/O口在默认情况下是()。
A. 推挽输出B. 开漏输出C. 高阻态D. 悬浮态4. 单片机的中断系统具有()个优先级。
A. 1B. 2C. 3D. 45. 单片机的定时器/计数器可以用于()。
A. 定时B. 计数C. 脉冲宽度测量D. 所有以上6. 下列哪个指令不是51单片机的指令类型?()。
A. MOVB. ADDC. JUMPD. CALL7. 51单片机的外部中断INT0和INT1的触发方式分别是()。
A. 电平触发,边沿触发B. 边沿触发,电平触发C. 边沿触发,边沿触发D. 电平触发,电平触发8. 下列哪个不是单片机的串行通信协议?()。
A. UARTB. SPIC. I2CD. USB9. 单片机的看门狗定时器主要功能是()。
A. 定时复位B. 定时唤醒C. 定时计数D. 定时中断10. 51单片机的定时器0和定时器1的计数方式分别是()。
A. 8位计数器,16位计数器B. 13位计数器,16位计数器C. 16位计数器,8位计数器D. 13位计数器,13位计数器答案:1. B 2. D 3. C 4. B 5. D 6. C 7. A 8. D 9. A 10. A二、填空题(每题2分,共10分)1. 单片机的最小系统包括_____、_____和_____。
答案:时钟电路,复位电路,电源电路2. 51单片机的P0口作为I/O口使用时,需要外接_____。
答案:上拉电阻3. 单片机的中断服务程序结束后,需要通过_____指令返回。
答案:RETI4. 单片机的I2C通信协议中,主设备通过_____来控制从设备。
答案:时钟信号5. 单片机的看门狗定时器如果未在预定时间内重置,将会导致_____。
单片机练习题含答案
单片机练习题含答案一、单选题(共107题,每题1分,共107分)1.可编程接口芯片8155内部的定时/计数器是 ( ) 计数器。
A、加法B、可逆C、减法D、加减法正确答案:C2.累加器A的内容是85H,执行RL A 指令后累加器的内容变为( )。
A、42B、43C、0AD、0BH正确答案:D3.可编程接口芯片8155内部的定时/计数器是 ( ) 计数器。
A、加法B、减法C、加减法D、可逆正确答案:B4.下列设备中属于嵌入式系统的是 ( )A、MP4播放器B、服务器C、台式计算机D、笔记本电脑正确答案:A5.AT89C1051单片机的字长是 ( ) 位。
A、4B、8C、16D、32正确答案:B6.89C51单片机的字长是( )位。
A、32B、16C、8D、4正确答案:C7.下列特殊功能寄存器中可以位寻址的是 ( ) 。
A、IE(0A8B、DPH(83C、TH1(8DD、SP(81正确答案:A8.8031单片机的堆栈位于 ( ) 中。
A、内部RAMB、外部RAMC、程序存储器D、特殊功能寄存器正确答案:A9.MCS-51单片机复位后堆栈指针SP= ( ) 。
A、07B、0FC、7FD、0FF正确答案:A10.累加器A的内容是73H,执行SWAP A 指令后累加器的内容变为( )。
A、70B、37C、30D、0A0H正确答案:B11.累加器A的内容是73H,执行RR A 指令后累加器的内容变为( )。
A、0B9B、0C2C、39D、38H正确答案:A12.下列产品中属于嵌入式系统的是 ( ) 。
A、服务器B、笔记本计算机C、MP3D、Tablet正确答案:C13.MCS-51系列单片机的P0口除做为输入/输出接口使用外,还可以作为 ( ) 使用。
A、低8位地址总线和数据总线B、高8位地址总线C、控制总线D、读写控制线正确答案:A14.UART的中文含义是( )。
A、通用异步接收/发送器B、串行接口C、RS-232接口D、USB接口正确答案:A15.累加器A的内容是67H,执行RR A 指令后累加器的内容变为( ) 。
单片机编程练习题(含部分答案)
单片机编程练习题(含部分答案)单片机编程练习题(含部分答案)在单片机编程的学习过程中,练习题是非常重要的一部分。
通过完成各种编程练习,我们可以提高自己的编程能力,掌握单片机的各种功能和应用。
本文将介绍一些常见的单片机编程练习题,并提供部分答案,帮助读者更好地理解相关知识。
一、LED亮灯顺序控制题目描述:使用单片机控制4个LED灯按指定的顺序依次亮起。
解答思路:首先,我们需要定义4个LED灯的引脚,使用宏定义的方式可以方便地修改引脚号码。
然后,在主函数中通过设置引脚输出高电平或低电平的方式控制LED灯的亮灭状态。
可以使用延时函数来控制每个LED灯亮起的时间。
代码示例:```#include <reg51.h>#define LED1 P1_0#define LED2 P1_1#define LED3 P1_2#define LED4 P1_3void delay(unsigned int time) // 延时函数{unsigned int i, j;for (i = time; i > 0; i--)for (j = 110; j > 0; j--);}void main(){LED1 = 0; // LED1灭LED2 = 0; // LED2灭LED3 = 0; // LED3灭LED4 = 0; // LED4灭while (1){LED1 = 1; // LED1亮delay(1000); // 延时1秒LED1 = 0; // LED1灭LED2 = 1; // LED2亮delay(1000); // 延时1秒LED2 = 0; // LED2灭LED3 = 1; // LED3亮delay(1000); // 延时1秒LED3 = 0; // LED3灭LED4 = 1; // LED4亮delay(1000); // 延时1秒LED4 = 0; // LED4灭}}```二、数码管计数器题目描述:使用单片机控制数码管显示一个0~9的计数器。
单片机练习题库(含参考答案)
单片机练习题库(含参考答案)一、单选题(共107题,每题1分,共107分)1.ALU的中文含义是()。
A、静态随机存储器B、加法器C、算术单元D、算术逻辑单元正确答案:D2.当T1向51系列单片机的CPU发出中断请求时,若CPU允许并接受中断时,程序计数器PC的内容将被自动修改为()。
A、0003B、000BC、0013D、001BH正确答案:D3.对于MCS-51系列单片机来说,变址间接寻址可寻址的空间是()。
A、程序存储器B、内部RAMC、外部RAMD、特殊功能寄存器正确答案:A4.MCS—51系列单片机扩展存储器芯片时,4个I/O口中做为地址总线的是()。
A、P0口和P2口B、仅P0口C、P2口和P3口D、仅P2口正确答案:A5.8051单片机有()个中断源。
A、3B、4C、6D、5正确答案:D6.当8051单片机系统的振荡晶体频率为6MHz时,其一个机器周期的时间是()。
A、0.5μSB、2μSC、1μSD、4μS正确答案:B7.对于MCS-51系列单片机来说,基址加变址寻址可寻址的空间是()。
A、内部RAM中0-7FH的空间和SFRB、内部RAM和外部RAMC、程序存储器D、外部RAM正确答案:C8.下列单片机中具有4KEPROM的是()。
A、89C51B、8031C、8052D、8751正确答案:D9.AT89C2051是()位的单片机。
A、4B、8C、准16D、16正确答案:B10.MCS-51系列单片机内部计数器可实现的最大计数值是()。
A、128B、256D、65536正确答案:D11.下列单片机中没有片内程序存储器的是()。
A、8052B、8051C、8751D、8031正确答案:D12.AT89C52单片机有()个中断源。
A、3B、4C、5D、6正确答案:D13.当AT89C52单片机系统的振荡晶体频率为24MHz时,其一个机器周期的时间是()。
A、0.5μSB、1μSC、2μSD、4μS正确答案:A14.MCS-51单片机的串行口有()种工作方式。
c语言单片机考试题及答案
c语言单片机考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:B2. 在C语言中,以下哪个符号用于数组的声明?A. {B. [C. (D. {答案:B3. 若有定义:int a=5; 则表达式 a++ 的值是多少?A. 4B. 5C. 6D. 0答案:B4. C语言中,以下哪个关键字用于定义指针?A. intB. charC. *D. float5. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C6. C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. putsD. getchar答案:C7. 若有定义:int a=3, b=4; 则表达式 a+b 的值是多少?A. 7B. 34C. 43D. 3+4答案:A8. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A9. C语言中,以下哪个函数用于输入一个字符?B. getcharC. getsD. printf答案:B10. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 0X1aC. 0x1A3D. 0x1AG答案:A二、填空题(每题2分,共20分)1. 在C语言中,用来定义单片机I/O端口的关键字是______。
答案:sbit2. 若定义了指针变量 int *p; 则 p 指向的变量的值可以通过______ 来改变。
答案:*p3. C语言中,用于定义一个无返回值的函数的关键字是 ______ 。
答案:void4. 若有数组定义 int arr[5] = {1, 2, 3, 4, 5}; 则 arr[2] 的值是 ______ 。
答案:35. 在C语言中,用于定义一个字符数组的关键字是 ______ 。
c语言单片机试题及答案
c语言单片机试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 单片机的内部RAM中,哪个区域用于存储位地址?A. 直接地址区B. 间接地址区C. 位寻址区D. 扩展RAM区答案:C3. 下列哪个选项是C语言中正确的字符串定义方式?A. char str[] = "Hello";B. char str[5] = "Hello";C. char str[] = {"Hello"};D. char str[6] = {"Hello"};答案:A4. 在8051单片机中,哪个寄存器用于存储当前正在执行的程序的地址?A. ACCB. BC. PCD. SP答案:C5. C语言中,以下哪个选项是正确的数组定义?A. int a[] = {1, 2, 3};B. int a[3] = {1, 2, 3};C. int a = {1, 2, 3};D. int a[3] = {1};答案:A二、填空题(每题4分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
答案:int2. 8051单片机的外部中断0的中断向量地址是________。
答案:0003H3. 单片机的I/O口通常可以被配置为________或输出模式。
答案:输入4. 在C语言中,用于定义一个字符型数组的关键字是________。
答案:char5. 8051单片机的定时器/计数器0的控制寄存器是________。
答案:TMOD三、简答题(每题10分,共20分)1. 简述C语言中如何实现函数的递归调用。
答案:在C语言中,函数的递归调用是指一个函数在其定义中调用自身。
递归函数通常包含一个结束递归的条件,以防止无限递归。
例如,计算阶乘的函数可以定义为:```cint factorial(int n) {if (n == 0) return 1; // 递归结束条件return n * factorial(n - 1); // 递归调用}```2. 解释8051单片机的定时器/计数器的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用》编程题题库参考答案六、编程(每题10分)1、内部RAM 30H和31H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD 码(高位在前)并存入外部RAM 2300H单元中。
解: ORG 0HLJMP STARTORG 30HSTART: MOV A,30HANL A,#0FHSWAP AMOV R0,AMOV A,31HANL A,#0FHORL A,R0MOV DPTR,#2300HMOVX @DPTR,AEND评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
2、将存放在内部RAM 30H-35H单元的压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM 2100H开始的单元区中。
ORG 0HLJMP STARTORG 30HSTART:MOV R0,#30HMOV R2,#06HMOV DPTR,#2100HLOOP:MOV A,@R0SWAP AANL A,#0FHORL A,#30HMOVX @DPTR,AINC DPTRMOV A,@R0ANL A,#0FHORL A,#30HMOVX @DPTR,AINC DPTRINC R0DJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
3、内部RAM 20H和30H开始的单元分别存放着16个16进制数,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM 2000H开始的单元中。
解:ORG 0LJMP STARTORG 30HSTART: MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08H ;每个单元存放2个16进制数,故16个16进制数占用8个单元 LOOP: MOV A,@R0ADD A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
4、请编写多字节无符号数减法程序。
被减数存放在内部RAM 20H开始的8个单元中,减数存放在内部RAM 30H开始的8个单元,请将差存放到外部RAM 2000H开始的8个单元中,借位存放到OV标志中。
注意:所有数据均按照从低字节到高字节的顺序存放。
ORG 0LJMP STARTORG 30HSTART: MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08HCLR CLOOP: MOV A,@R0SUBB A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPMOV OV,CSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
5、内部RAM 40H和41H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD 码(高位在前)并存入外部RAM 2000H单元中。
解: ORG 0HLJMP STARTORG 30HSTART: MOV A,40HANL A,#0FHSWAP AMOV R0,AMOV A,41HANL A,#0FHORL A,R0 MOV DPTR,#2000HMOVX @DPTR,AEND评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
6、将存放在内部RAM 20H-2FH单元的压缩型BCD码(高位在前)转换成相应的ASCII码,依次存放到外部RAM 1000H开始的单元区中。
ORG 0HLJMP STARTORG 30HSTART: MOV R0,#20HMOV R2,#10HMOV DPTR,#1000HLOOP: MOV A,@R0SWAP AANL A,#0FHORL A,#30H (或 ADD A,#30H)MOVX @DPTR,AINC DPTRMOV A,@R0ANL A,#0FHORL A,#30H (或 ADD A,#30H)MOVX @DPTR,AINC DPTRINC R0DJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
7、内部RAM 30H和38H开始的单元分别存放着8个压缩BCD码,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM 1000H开始的单元中。
解:ORG 0LJMP STARTORG 30HSTART: MOV R0,#30HMOV R1,#38HMOV DPTR,#1000HMOV R2,#08LOOP: MOV A,@R0ADD A,@R1DA AMOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
8、请编写多字节无符号数加法程序。
被加数存放在内部RAM 20H开始的8个单元中,加数存放在内部RAM 30H开始的8个单元,请将和存放到外部RAM 2000H开始的8个单元中,进位存放到F0标志中。
注意:所有数据均按照从低字节到高字节的顺序存放。
ORG 0LJMP STARTORG 30HSTART: MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08HCLR CLOOP: MOV A,@R0ADDC A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOP MOV F0,CSJMP $END评分办法:不要求写出程序的注释。
程序设计思路正确可得5分,指令完全写对可得10分。
若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。
9、两个8字节压缩BCD码分别存放在内部RAM 30H和40H开始的连续单元中(低位字节在前),请将二者求和(不考虑溢出情况),并将和存入外部RAM 1000H开始的单元中。
解: ORG 0MOV R0,#30HMOV R1,#40HMOV DPTR,#1000HMOV R2,#8CLR CLOOP: MOV A,@R0ADDC A,@R1DA AMOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPSJMP $END评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。
10、将存放在内部RAM 20H-2FH单元的十六进制数转换成ASCII码,依次存放到外部RAM 2000H开始的单元中。
解: MOV R0,#20HMOV R2,#16MOV DPTR,#2000HMOV R3, DPHMOV R4, DPLLOOP: MOV A,@R0ANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV DPH,R3MOV DPL,R4MOVX @DPTR,AINC DPTRMOV R3,DPHMOV R4,DPLMOV A,@R0SWAP AANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV DPH,R3MOV DPL,R4MOVX @DPTR,AINC DPTRMOV R3,DPHMOV R4,DPLINC R0DJNZ R2,LOOPSJMP $TAB: DB ‘0123456789ABCDEF’END评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。
11、内部RAM 30H和外部RAM 2200H开始的单元分别存放着两个8字节十六进制数(低位字节存放在前),请将二者相加(不考虑溢出情况),并将和存入内部RAM 40H开始的单元中。
解: ORG 0MOV R0,#30HMOV R1,#40HMOV DPTR,#2200HMOV R2,#8CLR CLOOP: MOVX A,@DPTRADDC A,@R0MOV @R1,AINC R0INC R1INC DPTRDJNZ R2,LOOPSJMP $评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。
12、请编写多字节无符号数减法程序。
被减数存放在内部RAM 30H开始的8个单元中,减数存放在内部RAM 38H开始的8个单元,请将差存放到外部RAM 1000H开始的8个单元中,借位存放到F0标志中。
注意:所有数据均按照从低字节到高字节的顺序存放。
解: ORG 0LJMP STARTORG 30HSTART: MOV R0,#30HMOV R1,#38HMOV DPTR,#1000HMOV R2,#8CLR CLOOP: MOV A,@R0SUBB A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPMOV C,F0SJMP $评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。
13、请编写多字节无符号数减法程序。
被减数存放在内部RAM 20H开始的16个单元中,减数存放在内部RAM 30H开始的16个单元,请将差存放到外部RAM 2000H开始的16个单元中,借位存放到OV标志中。
注意:所有数据均按照从低字节到高字节的顺序存放。
解: ADDR1 EQU 20HADDR2 EQU 30HLEN EQU 16ADDR3 EQU 2000HORG 0LJMP STARTORG 30HSTART: MOV R0,#ADDR1MOV R1,#ADDR2MOV DPTR,#ADDR3MOV R2,#LENCLR CLOOP: MOV A,@R0SUBB A,@R1MOVX @DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPMOV OV,CSJMP $END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。