单片机试题库编程题Word文件下载.docx

上传人:b****2 文档编号:3998863 上传时间:2023-05-02 格式:DOCX 页数:39 大小:42.66KB
下载 相关 举报
单片机试题库编程题Word文件下载.docx_第1页
第1页 / 共39页
单片机试题库编程题Word文件下载.docx_第2页
第2页 / 共39页
单片机试题库编程题Word文件下载.docx_第3页
第3页 / 共39页
单片机试题库编程题Word文件下载.docx_第4页
第4页 / 共39页
单片机试题库编程题Word文件下载.docx_第5页
第5页 / 共39页
单片机试题库编程题Word文件下载.docx_第6页
第6页 / 共39页
单片机试题库编程题Word文件下载.docx_第7页
第7页 / 共39页
单片机试题库编程题Word文件下载.docx_第8页
第8页 / 共39页
单片机试题库编程题Word文件下载.docx_第9页
第9页 / 共39页
单片机试题库编程题Word文件下载.docx_第10页
第10页 / 共39页
单片机试题库编程题Word文件下载.docx_第11页
第11页 / 共39页
单片机试题库编程题Word文件下载.docx_第12页
第12页 / 共39页
单片机试题库编程题Word文件下载.docx_第13页
第13页 / 共39页
单片机试题库编程题Word文件下载.docx_第14页
第14页 / 共39页
单片机试题库编程题Word文件下载.docx_第15页
第15页 / 共39页
单片机试题库编程题Word文件下载.docx_第16页
第16页 / 共39页
单片机试题库编程题Word文件下载.docx_第17页
第17页 / 共39页
单片机试题库编程题Word文件下载.docx_第18页
第18页 / 共39页
单片机试题库编程题Word文件下载.docx_第19页
第19页 / 共39页
单片机试题库编程题Word文件下载.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机试题库编程题Word文件下载.docx

《单片机试题库编程题Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机试题库编程题Word文件下载.docx(39页珍藏版)》请在冰点文库上搜索。

单片机试题库编程题Word文件下载.docx

06

2002 

5B

2003 

4F

2004 

66

20056D

2006 

7D

2007 

07

2008 

7F

2009 

6F

23.将片外RAM空间2000H~200AH中的数据的高四位变零,低四位不变,原址存放。

24.将累加器A和状态寄存器内容压入堆栈保护,然后再恢复A和状态寄存器内容。

25.求片外RAM3000H、3001H单元数据的平均值,并传送给3002H单元。

26.分别写出实现如下功能的程序段。

(1)将片外RAM30H的中间4位,31H的低2位,32H得高2位按序拼成一个新字节,存入33H单元。

(2)将DPTR中间8位取反,其余位不变。

27.写出达到下列要求的指令(不能改变各未涉及位的内容)。

(1)使A的最低位置1。

(2)清除A得高4位。

(3)使ACC.2和ACC.3置1。

(4)清除A的中间4位。

28.有一段程序如下:

地址码机器码标号汇编助记符

200AHE8CHAR:

MOVA,R0

..........................

2010H80relSJMPCHAR

(1)计算指令“SJMPCHAR”的相对便移量rel的值(十六进制机器码形式)。

(2)支出相对偏移量值rel所在的地址单元。

29.编写程序将片内RAM30H中的2位十进制数转换为ASCII码,并存入31H和32H中。

30.编写程序段,用三种方法实现累加器A与寄存器B的内容转交换。

31.将如图11-3所示片外RAM中两个无符号数按从小到大顺序排列,编程并注释。

0000HD1

0001HD2

图11-3片外RAM数据

32.编程将一个按高低字节存放在21H、20H中的双字节数乘2后,在按高低次序将结果存放到22H、21H、20H单元。

33.编程将存放在片外RAM1000H、1001H中的两个数,按大小次序存放到片内RAM的30H、31H单元。

34.多字节减法编程,一直有两个多字节数,从高到低依次存放如下:

X1--(13H)(12H)(11H)(10H)

X2--(23H)(22H)(21H)(20H)计算X1-X2,差存放在13H、12H、11H、10H中。

35.计算下面逻辑值(用x表示逻辑乘,+表示逻辑加)。

P1.0=P1.1xP1.2+ACC.7xC+/PSW.0

36.在ROM空间建立一个10以内的平方值表,根据R0中的数查出平方值,若平方值超出表的范围则将FF装入A。

37.三字节无符号数相加,被加数在片外RAM的200H-2002H(低位在前),加数在片内RAM的20H-22H(低位在前),要求把相加之和存放在20H-22H之中,请编程。

38.将片内RAM30H-3FH中的数据按顺序传送到片外RAM2000H-200FH,请编程。

39.列举4条能使累加器A清0的指令。

40.已知A=7AH,R0=30H,片内RAM30H单元的内容为A5H,请问下列程序段执行后,(A)=?

ANLA,#17H

ORL30H,A

XRLA,@R0

CPLA

41.编程将片外RAM1000-1010H内容传入片内RAM30H开始的单元。

42.8255A控制字地址为300FH,请按:

A口方式0输入,B口方式1输出,C口高位输出、C口低位输入,确定8255A控制字并编程初始化程序。

43.复位后,跳过中断区,重新设置堆栈,并将工作寄存器切换至3区。

44.在片外RAM空间有一个数据块如图11-4所示。

(1)若该数据块为无符号数,求该数据块1000H数据块长度

中数据最小值,并存放于片内RAM20H单元。

1001HX1

(2)若该数据块是有符号数,求正数、负1002HX2

数和0的个数,并将它们的个数分别存到12H、1003HX3

11H、10H单元中。

...

图11-4数据块

45.编写一个软件延时1s和1min的子程序。

设fosc=6MHz,则1个机器周期=2us。

46.试用DAC0832芯片设计单脉冲方式的D/A转换接口电路,并编写两个程序,分别使DAC0832输出负向锯齿波和15个正向阶梯波。

47.试设计DAC0809对1路模拟信号进行转换的电路,并编制采集100个数据存入89C51的程序。

48.请编制串行通信的数据发送程序,发送片内RAM50H-5FH的16B数据,串行接口设定为方式2,采用偶校验方式。

设晶振频率为6MHz。

49.请编制串行通信数据接收程序,将接收的16B数据送入片内RAM58H-5FH单元中,串行接口设定为工作方式3,波特率为1200波特,fosc=6MHz。

50.在89C51片内RAM20H-3FH单元中有32B数据,若采用方式1进行串行通信,波特率为1200波特,

fosc=12MHz,用查询和中断两种方式编写发送/接收程序对。

51.已知当前PC值为2000H,请用两种方法将程序存储器20F0H中的常数送入累加器A中。

52.请用两种方法实现累加器A与寄存器B的内容交换。

53.请用位操作指令编写下面逻辑表达值的程序。

P1.7=ACC.0X(B.0+P2.1)+P3.2

54.编程将片内20H单元开始的30个数据送到片外RAM3000H开始的单元中。

55.在片外2000H开始的单元中有100个有符号数,试编程统计其中正数、负数和0的个数的程序。

56.在2000H-2004H单元中,存有5个压缩BCD码,编程将他们转换成ASCII码,存入2005H开始的连续单元中。

57.编程将累加器A的低4位数据送P1口的高4位,P1口的低4位保持不变。

58.编程将片内RAM40H单元的中间4位取反,其余位不变。

59.如果R0的内容0,将R1置为0,如R0内容非0,置R1为FFH,试进行编程。

60.编程将片内数据存储器20H-24H单元压缩的BCD码转换成ASCII存放在25H开始的单元。

61.片内存储单元40H中有一个ASCII字符,试编一程序给该数的最高位加上奇校验。

62.编写一段程序,将存放在自DATA单元开始的一个4B数(高位在高地址),取补后送回原单元。

63.将片内RAM的20H单元中的十六进制数变换成ASCII存入22H、21H单元,高位存入22H单元,要求用调子程序编写。

64.编写一段程序,以实现图11-5种硬件的逻辑运算功能。

图11-5逻辑运算图

65.用位操作指令实现下面的逻辑方程。

P1.2=(ACC.3XP1.4X/ACC.5)+(/B.4X/P1.5)

66.利用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。

画出电路,编出汇编语言程序。

67.利用89C51的P1口控制8个发光二极管LED。

相邻的4个LED位一组,使2组每隔0.5s交替发亮一次,周而复始。

画出电路,编写程序(设延时0.5s子程序为D05,已存在)。

68.设计一个4位数码显示电路,并用汇编语言编程使“8”从右到左显示1遍。

69.编制一个循环闪烁灯的程序。

有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。

画出电路图。

70.设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H-59H单元,画出电路图,编出

(1)延时方式;

(2)查询方式;

(3)中断方式中的一种程序。

五、编程题答案

1. 

程序如下:

STRAT:

MOVA,R0

MOVB,#10

MULAB

MOVR0,A

RET

MOVR0,#30H

START:

MOVR7,#0FH

MOVDPTR,#3000H

LOOP:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR7,LOOP

RET

3. 

MOVA,40H

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOV40H,A

TAB:

DB30H,31H,32H,33H,34H,

DB35H,36H,37H,38H,39H

4.START:

CLRC

MOVA,51H

CPLA

ADDA,#01H

MOV51H,A

MOVA,50H

ADDCA,#00H

MOV50H,A

5.ADDIO:

MOVR0,30H

MOVR7,#9H

MOVA,@R0

LOOP:

ADDA,@R0

DJNZR7,LOOP

MOV30H,A

6.RIB-AI:

MOVA,R1

ORLA,#30H

MOVDPTR,#1000H

7.SOUT:

MOVSCON,#40H

MOVTMOD,#20H

MOVTL1,#OE8H

MOVTH1,#0E8H

SETBTR1

MOVSBUF,A

JNBT1,$

CLR

8.CARY:

MOVDPTR,#2000H

MOVR0,#20H

MOVR3,#05H

NEXT:

MOVXA,@DPTR

MOV@R0,A

DJNZR3,NEXT

9.程序如下:

MAIN:

MOVA,R3

MOVR3,A

10START:

MOVR0,#40H

MOVR7,#09H

MOV30H,@R0

CJNEA,30H,NEXT

JNCBIE1

MOVA,30H

BIE1:

MOV50H,A

11.

MOVR7,#20H

MOVR0,#30H

MOVXA,@DPTR

MOV@R0,A

12

MOVA,R2

ADDA,#01H

MOVR2,A

MOVA,R1

ADDCA,#00H

MOVR1,A

13.

MOVR0,#40H

MOVR7,#0AH

MOVDPTR,#4000H

INCR0

14.

START:

MOVTL1,#0E8H

MOVSCON,#50H

L1:

JNBR1,L1

CLRR1

MOVA,SBUF

15.START:

MOVA,31H

RLCA

MOV31H,A

MOVA,30H

MOV30H,A

16.START:

MOVXA,@DPTR

ADDA,#30H

MOVX@DPTR,A

17.解:

要实现单字节BCD数的减法,应当设法将减法变为加法后,再用DAA指令调整。

具体操作是:

先用模(99+1)H即9AH减去减数,再与被减数进行加法操作,然后用DAA调整。

假定被减数放在片内RAM的60H单元,减数放在61H单元,差值放入62H单元。

程序如下:

CLRC

MOVA,#9AH

SUBBA,61H

ADDA,60H

DAA

MOV62H,A

18.解:

用R0和R1作数据指针,R0指向第一个加数,并兼做“和”的指针,R1指向另一个加数,字节数存放到R2中作记初值。

主程序:

JAFA:

MOVR0,#20H

MOVR1,#29H

MOVR2,#04H

ACALLJASUB

AJMP$

多字节加法子程序:

JASUB:

CLRC

JASUB1:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR2,JASUB1

19.解:

MOVDPTR,#0000H

MOVXA,@DPTR

MOV10H,A

MOVB,#00H

MOVDPTR,#0001H

THREE:

CJNEA,B,ONE

ONE:

JCTWO

XCHA,B

TWO:

DJNZ10H,THREE

MOVA,B

20

解:

ORG0030H

MOV20H,#00H

MOVDPTR,#0000H

MOV10H,A

MOVDPTR,#0001H

JBACC.7,ONE

DJNZ10H,TWO

21.解:

MOVDPTR,#0000H

MOVA,#00H

PUSHA

MOV20H,A

POPA

ADDA,20H

DJNZ10H,ONE

22.解:

TABLE:

MOVA,20H

CJNEA,#0AH,NEXT

JCLED

MOV30H,#0FFH

SJMPENDD

LED:

MOVDPTR,#2000H

MOVCA,@A+DPTR

ENDD:

23.解:

ORG1000H

MOVDPTR,#2000H

MOV10H,#0BH

MOVXA,@DPTR

ANLA,#0FH

MOVX@DPTR,A

DJNZ10H,LOOP

24.解:

PUSHPSW

POPPSW

25.解:

MOVDPTR,#3000H

MOVXA,@DPTR

MOVR0,A

INCDPTR

ADDA,R0

RRCA

MOVX@DPTR,A

26.解:

⑴MOVA,30H

ANLA,#3CH

RLA

MOV33H,A

ANL31H,#3

ANL32H,#0C0H

MOVA,31H

ORLA,32H

ORL33H,A

⑵XRLDPH,#0FH

XRLDPL,#0F0H

27.解:

⑴SETBACC.0或ORLA,#1

⑵ANLA,#0FH

⑶ORLA,0CH

⑷ANLA,#0C3H

28.解:

相对偏移量的计算方法有两种,一种是偏移量=转移地址-(相对转移指令地址+相对转移指令字节数),则本题中的偏移量=200AH-(2010H+2)=FFF8。

另一种是根据转移指令的硬件动作直接计算,既偏移量=目标地址-下条指令的地址,则本题中的偏移量=H200AH-2012H=FFF8H。

取低8位偏移值,rel=F8H。

29.解:

MOVR0,#30H

MOVA,@R0

SWAPA

ANLA,#0FH

ORLA,#30H

XCHDA,@R0

MOV32H,A

30.解:

方法1用1条指令实现:

XCHA,B

方法2用3条指令实现:

MOVR0

MOVB,A

方法3用4条指令实现:

PUSHACC

PUSHB

POPACC

POPB

31.解:

ORG0300H

JNCTWO

SJMPTWO

32.解:

ORG0030H

MOVA,20H

MOV20H,A

MOVA,21H

MOV21H,A

JNCNEXT

MOV22H,#01

SJMP$

33.解:

MOVDPTR,1000H

MOVB,A

CJNEA,B,00H

JNCNEXT1

MOV30H,B

SJMPNEXT2

NEXT1:

MOV31H,B

NEXT2:

SJMPNEXT2

34.解:

MOVR0,#10H

MOVR1,#20H

MOVR7,#04H

SUBBA,@R1

35.解:

MOVC,P1.1

ANLC,P1.2

MOV7EH,C

ANLC,ACC.7

ORLC,7FH

ORLC,/PSW.0

MOVP1.0,C

36.解:

MOVDPTR,#TAB

MOVA,R0

CJNEA,#10H,NEXT

JNCNEXT1

MOVA,#0FFH

37.解:

MOVDPTR,#2000H

MOVR0,#20H

MOVR1,#03H

ADDCA,@R0

DJNZR1,LOOP

38.解:

MOVR0,#30H

MOVR1,#10H

MOVA,2R0

INC

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

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2