文档库 最新最全的文档下载
当前位置:文档库 › 单片机程序分析题练习B2

单片机程序分析题练习B2

单片机程序分析题练习B2
单片机程序分析题练习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

ADD A , 20H A=40H

MOV PSW , #80H

SUBB A , P0 A=10H

XRL A , #45H A=15H

MOV 40H , A (40H)=15H

7. 已知( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下:

MOV A , @R0 A=36H

MOV R0 , A R0=36H

MOV A , @R0 A=34H

ADD A , 21H A=4BH

ORL A , #21H A=21H

RL A A=42H

MOV R2 , A R2=42H

RET

则执行结束(R0)=36H (R2)= 42H

8.设在31H单元存有#23H,执行下面程序:

MOV A, 31H A=23H

ANL A, #0FH A=03H

MOV 41H, A (41H)=03H

MOV A, 31H A=23H

ANL A, #0F0H A=20H

SW AP A A=02H

MOV 42H, A (42H)=02H

则(41H)= 03H (42H)= 02H

9.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H

MOV A,@R0 A=7FH

MOV @R0,40H (4BH)=20H

MOV 40H,A (40H)=7FH;

MOV R0,#35H R0=35H

问执行程序后,R0=35H A= 7FH 4BH= 20H 40H= 7FH

10.若PSW=00, 执行下列程序后,PSW的CY,AC,OV,P各位状态如何? MOV A,#0FBH A=FBH

MOV PSW,#10H

ADD A,#7FH A=7AH CY=1; AC=1;OV=1; P=1;

MOVA,20HA=O1H

INCAA=02H

MOVDPTR,#2000HDPRT=2000H

MOVCA,@A+DPTRA=5BH

CPLAA=A3H

MOV 30H,A (30H) =A3H

SJMP $

END

执行程序后,(30H)= A3H

12.分析程序段:

CLRC清零cy指令

MOVA,#91H给A立即数

SUBBA,61H;A寄存器与地址(61h)的值相减

ADDA,61H;A寄存器与地址(61h)的值相加

DAA;BDC码调整指令

MOV62H,A把累加器A的值送给地址寄存器62h

(1)程序执行何种操作?对91H做BDC码调整;

(2)若已知初值:(60H)=24H,(61H)=72H,则运行后,(62H)= 91H 。

13.设(R0)=7EH,DPTR=10FEH,片内RAM7EH和7FH两单元的内容分别是FFH和38H,请写出下列程序段的每条指令的执行结果。

INC@R0(7E)=00H

INCR0R0=7FH

INC@R0(7FH)=39H

INCDPTRDPTR=10FFH

INCDPTRDPTR=1100H

INCDPTRDPTR=1101H

14.设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,

(26H)=6 FH,(27H)=76H,下列程序执行程序后,结果如何?

CLR C C=0;

MOV R2,#3 R2=3;

LOOP: MOV A,@R0 A=80H A=90H

ADDC A,@R1 A=20H

MOV @R0,A (20H)=20H;(21H)=00H; (22H)=16H

INC R0 R0=21H;

INC R1 R1=26H

DJNZ R2,LOOP

JNC NEXT1

MOV @R0,#01H (23H)=01H

SJMP $

NEXT: DEC R0

SJMP $

(20H)=20H 、(21H)= 00H 、(22H)=16H 、(23H)= 01H 、CY=1

A=16H 、R0=23H 、R1=27H 。

15.MOV DPTR,#2000H (DPTR)= 2000H

MOV A,#80H (A)= 80H

MOVX @DPTR,A (2000H)= 80H

INC DPTR (DPTR)= 2001

MOV A,#90H (A)= 90H

MOVX @DPTR,A (2001H)= 90H

MOV DPTR,#2000H (DPTR)= 2000H

MOVX A,@DPTR (A)= 80H

MOV B,A (B)=80H

INC DPTR (DPTR)= 2001H

MOVX A,@DPTR (A)= 90H

16.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果MOV A,10H (A)= FFH ,

ANL A,#01H (A)= 01H ,

MOV A,11H (A)= 00H ,

ORL A,#01H (A)= 01H ,

MOV A,12H (A)= FFH ,

XRL A,#01H (A)= FEH ,

MOV A,13H (A)= 00H ,

XRL A,#0AA (A)= AAH ,

(10H)= FFH , (11H)= 00H , (12H)= FFH , (13H)= 00H

17. 阅读程序并回答下列问题:

X DATA 50H

Y DATA 51H

ORG 00H

JMP START

ORG 100H

START: MOV SP,#60H

MOV X,#10 (50H)=10

MOV Y,#10 (51H)=10

LCALL SUB

SUB: NOP

INC X (50H)=11 X+10=20

DEC Y (51H)=9 Y=0;

MOV A,Y A=9

JZ SUBRET

LCALL SUB

SUBRET: NOP

RET

计算X和Y的值是多少?

(X)=20 ;(Y)=0 ;

18. 设自变量为X,存放在ARE单元,应变量Y存放在BUF单元。给程序标注注释,说明该段子程序的功能并写出该程序的函数关系式。(7分)

START:MOV DPTR,#ARE

MOVX A,@DPTR

JZ SUL

JB ACC.7,NEG ;注释:如果A的值大于128跳转NEG

MOV A,#02H

SUL:MOV DPTR,#BUF

MOVX @DPTR,A ;注释:把A的值传送给BUF地址中

RET

NEG:MOV A,#0FEH

SJMP SUL

如果X=0,Y=0;

如果X<128,Y=02h;

如果X>128,Y=FEH;

19. 执行下列程序段后,(P1)=_9AH__。

MOV P1,#5DH

CPL P1.1

CPL P1.2

CLR P1.6

SETB P1.7

20. 执行下列程序段后,(A)=___8BH____,(C Y)=__0_。

MOV A,#C5H

RL A

21. 下列程序段执行后,(R0)=___7EH____,(7EH)=__41H__,(7FH)=___01H____。

MOV R0,#7EH R0=7EH

MOV 7EH,#0FFH (7EH)=FFH

MOV 7FH,#40H (7EH)=40H

1NC @R0 (7EH)=41H

1NC R0 R0=7FH;

1NC @R0 (7FH)=1;

22. 已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL

SUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)= ____。

23. 阅读下列程序,说明其功能。

MOV R0,#data

MOV A,@R0

RL A

MOV R1,A

RL A

RL A

ADD A,R1

MOV @R0,A

RET

24. 程序填空

1)数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。

ORG 1000H

MOV R7,_____

MOV R0, #30H

MOV R1,#60H

LOOP:MOV A,@R0

MOV _____,A

INC R0

INC R1

DJNZ R7, _____

SJMP $

END

2)RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD 码的十位和个位放在累加器A中,百位放在R2中。

ORG 2200H

MOV A,_____

MOV B,#64H

DIV AB

MOV R2,A

MOV A,_____

XCH A,B

DIV AB

SWAP _____

ORL A,B

SJMP $

END

3)编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。

ORG 1000H

MOV R7,#07H

MOV R0,_____

LOOP:MOV A,@R0

ANL A,_____

MOV @R0,A

INC R0

DJNZ R7,LOOP

SJMP $

END

25. 程序如下

2506H M5: MOV SP,#58H;

2509HMOV 10H,#0FH;

250CH MOV 11H,#0BH;

250FH ACALL XHD;

2511H MOV 20H,11H

2514H M5A: SJMP M5A

XHD: PUSH 10H

PUSH 11H

POP 10H

POP 11H

RET

问:(1)执行POP 10H后堆栈内容?

(2)执行M5A: SJMP M5A后,( SP )=?( 20H )=?

26. 解读下列程序,然后填写有关寄存器内容

(1)MOV R1,#48H

MOV 48H,#51H

CJNE @R1,#51H,00H

JNC NEXT1

MOV A,#0FFH

SJMP NEXT2

NEXT: MOV A,#0AAH

NEXT2: SJMP NEXT2

累加器A=( )

(2) MOV A,#0FBH

MOV PSW,#10H

ADD A,#7FH

若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:

PSW

27.改正下列指令

MOV @R3,A

MOV DPTR,A

INC @R3 I

DEC DPTR

ADDC #30H,A

28. 设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?(8分)

MOV R0,#30H

MOV A,@R0

MOV R1,A

MOV B,R1

MOV @R1,P1

MOV A,P1

MOV 40H,#20H

MOV 30H,40H

单片机程序分析题练习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、设计任务: 如果开关合上,L1亮,开关打开,L1熄灭,如图1所示。监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态。 2、电路原理图: 图1 3、系统板上硬件连线:如图1所示,图中VCC = +5V。 4、程序设计内容: (1)开关状态的检测过程: 开关状态是从单片机的P3.0端口输入信号,当拨开开关K1拨上去(开关断开),即输入高电平;当拨动开关K1拨下去(开关闭合),即输入低电平。可以采用JB BIT,REL 指令来完成对开关状态的检测即可。 (2)输出控制: 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮。我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5、程序框图:如图2所示。

图2 6、汇编源程序的编写: ORG 00H START: JB P3.0,D1 CLR P1.0 SJMP START D1: SETB P1.0 SJMP START END 7、用“keil软件编”写好汇编程序,然后转换成HEX文件并保存。 8、用“增强型A51编程器”把刚才写好的HEX文件烧写入单片机中。 9、把已写入程序的单片机,装入图1的电路,然后通电。当拨动开关K1拨下去(开关闭合),发光二极管L1亮;拨开开关K1拨上去(开关断开),发光二极管L1灭。说明刚才编写的程序达到了我们的设计要求。

单片机程序分析题练习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,清零程序 将片外数据存储器中5000h~500ffh单元全部清零 ORG OOOOH MOV DPTR, #5000H MOV R0,#00H CLR A LOOP: MOVX @DPTR,A INC DPTR DJNZ RO,LOOP HERE: SJMP HERH 2.试着编写程序,查找在内部 RAM的20h~40h单元中出现00h这一数据的次数将查到的结果存入41h单元 ORG 0000H MOV R0,#20H MOV R1,#21H MOV 41H,#00H LOOP: CJNE @RO,#00H,NEXT INC 41H NEXT: INC R0 DJNZ RI,LOOP HERE: SJMP HERE 3查找在内部RAM的30h~50单元中是否有0AAH这一数据,若有则将51H单元置为01H;若未找到;则将51H单元置为00H. ORG 0000H MOV R0,#30H MOV R1,#21H LOOP: CJNE @R0,0AAH,NEXT MOV 51H,#01H SJMP HERE NEXT: INC R0 DJNZ R1,LOOP MOV 51H,#00H HERE: SJMP HERE 4编写程序功能为把1000H开始的外部RAM单元中的数据送到内部RAM50H开始的单元中,数据的个数存放在了内部RAM60H单元。 ORG 0000H MOV DPTR #1000H MOV R0,#50H MOV R1,60H LOOP: MOVX A,@DPTR MOV 50H,A INC DPTR INC R0

DJNZ RI,LOOP HERE: SJMP HERE 5.编写请将ROM3000H单元内容送R7. ORG 0000H MOV DPTR, #3000H CLR A MOVC A ,@A+DPTR MOV R7,A END 6.片外RAM2000H单元内容送到片外RAM1000H的单元中。 ORG 0000H MOV DPTR,#2000H MOVX A,@DPTR MOV DPTR,,#1000H\ MOVX @DPTR,A 7.锯齿形波: ORG 2000H START: MOV R0,#0FEH MOV A,#00H LOOP: MOVX @R0,A INC A SJMP LOOP 8三角形波 ORG 2000H START MOV R0,#0FEH MOV A,#00H UP: MOVX @R0,A INC A JNZ UP DOWN: DEC A MOVX @DPTR,A JNZ DOWN SJMP UP

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

六、设计题 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

单片机C语言编程实例

单片机C语言编程实例 前言 INTEL公司的MCS-51单片机是目前在我国应用得最广泛的单片机之一.随着 单片机应用技术的不断发展,许多公司纷纷以51单片机为内核,开发出与其兼容的 多种芯片,从而扩充和扩展了其品种和应用领域。 C语言已成为当前举世公认的高效简洁而又贴近硬件的编程语言之—。将C语言向单片机上的移植,始于20世纪80年代的中后期。经过十几年的努力,C语言终于成为专业化单片机上的实用高级语言。用C语言编写的8051单片机的软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完善的系统。因此,不管是对于新进入这一领域的开发者来说,还是对于有多年单片机开发经验的人来说,学习单片机的C语言编程技术都是十分必要的。. C语言是具有结构化.模块化编译的通用计算机语言,是国际上应用最广.最多的计算语言之一。C51是在通用C语言的基础上开发出的专门用于51系列单片机编程的C语言.与汇编语言相比,C51在功能上.结构上以及可读性.可移植性.可维护性等方面都有非常明显的优势。目前 最先进、功能最强大、国内用户最多的C51编译器是Keil Soft ware公司推出的KeilC51。第 一章单片机C语言入门 1.1建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码, 这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软 件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑, 编译,仿真等于一体,同时还支持PLM、汇编和C语言的程序设计,它的界面 和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真 方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周 立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个

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的好处在于程序占用的资源数据符号或寄存器符号用占用源的英文或英文缩写字符名称来定义,后续编程中凡是出现该数据符号或寄存器符号就用该字符名称代替,这样,采用有意义的字符名称进行编程,更容易记忆和不容易混淆,也便于阅读。

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

51单片机控制LED灯程序设计

51单片机:LED灯亮灯灭程序设计 1.功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。 程序: 01: MOV A , #11111110B ; 存入欲显示灯的位置数据 02: MOV P1,A ; 点亮第一只灯 03: JMP $ ; 保持当前的输出状态 04: END ; 程序结束 2.功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。 程序:

01:START: MOV A , #00010010B ; 存入欲显示灯的位置数据 02:MOV P1,A ; 点亮灯 03:JMP START ; 重新设定显示值 04:END ; 程序结束 3.功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。 程序: 01:START: MOV R0, #8 ;设左移8次 02:MOV A, #11111110B ;存入开始点亮灯位置

03:LOOP: MOV P1, A ;传送到P1并输出 04:RL A ;左移一位 05:DJNZ R0, LOOP ;判断移动次数 06:JMP START ;重新设定显示值 07:END ;程序结束 4.功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。 程序: 01:START: MOV R0, #8 ;设右移8次

02:MOV A, #01111111B ;存入开始点亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序05: RR A ;右移一位 06: DJNZ R0, LOOP ;判断移动次数07: JMP START ;重新设定显示值08: DELAY: MOV R5,#50 ; 09:DLY1: MOV R6,#100 ; 10: DLY2: MOV R7,#100 ;

单片机C语言小程序

单片机C语言小程序 #include #include #define V AR XBYTE[0x00] /*V AR为外部位址0000*/ #define read 0 /*93c46读取的识别码READ=0*/ #define write 2 /*93c46写入的识别码WRITE=2*/ #define ewen 4 /*93C46写致能的识别码EWEN=4*/ #define ewds 6 /*93C46写除能的识别码EWDS=6*/ #define cs INT0 /*93C46 CS接脚=8051 RD P3.2*/ #define clk INT1 /*93C46 CLK接脚=8051 WR P3.3*/ #define di T0 /*93C46 DI接脚=8051 T1 P3.4*/ #define d0 T1 /*93C46 DO接脚=8051 T0 P3.5*/ #define LOW 0x49 /*存放测试温度的下限值*/ #define HIGH 0x51 /*存放测试温度的上限值*/ bit FLAG0=0; /*宣告TIMER0响应旗号*/ //外接工业专用温度传感器时,目前设置测量温度为0-99度: static const char tab[13]={0x3a,0x53,0x6f,0x8a,0xa3, /*0度,10度,20度,30度,40度*/ 0xB8,0xC8,0xD5,0xDE,0xE5, /*50度,60度,70度,80度,90度*/ 0xEA,0xEE}; /*100度,110度*/ //使用板上AD590温度传感器时,目前设置测量温度为0-99度: //static const char tab[13]={0x88,0x8d,0x92,0x97,0x9c, /*0度,10度,20度,30度,40度,*/ // 0xa1,0xa6,0xab,0xb0,0xb5, /*50度,60度,70度,80度,90度*/ // 0xba,0xc0}; /*100度,110度*/ char data1[2]; char C,S,k=0; char MEP[7]; /*显示器值存放阵列*/ //MEP[0]=数码管最低位显示值,温度指示小数点后位 //MEP[1]=数码管次低位显示值,温度指示个位数 //MEP[2]=数码管高位显示值,温度指示十位数 //MEP[3]=数码管最低位显示值,功能显示目前定为1,2,3,4,5 //MEP[4]= //MEP[5]=暂放置温度显示值,高4位为温度指示十位数值,低4位为温度指示个位数值//MEP[6]=在温度显示与电压调整副程式中,将测量值C暂存MEP[6]中 unsigned char combuf[10]; unsigned char ADR46,CH,CL,m,C1,C2; /*ADR46,93C46位址,CH高位元组,CL低*/ int sec,sec1; char ptr=0,ptr1=0x10,psr=0; /*ptr显示器值存放阵MEP[]指标,ptr1显示器扫描指标*/ char count=100,sb=0; void delay (unsigned int value) /*延时副程式*/ { while (value!=0) value--; /*10us延时*/ } void COMP(); /*宣告比较现在温度与设定温度副程式*/ void SET();

单片机-实验二-分支程序设计实验

实验二实验报告 ·

将00-99的十进制数据转换成二进制进行开关量的输入,L0灯亮 将100的十进制转换为01100010的二进制开关量进行输入,L1灯亮

将101-127的十进制转换为二进制进行开关量的输入,L2灯亮 完整的接线图

实验操作 1、正确连接实验板子和电脑,将点源接入,数据线连接到电脑的USB接口,在电脑端运行 软件,取消勾选模拟器,按照实验装置的名称正确的选择响应的系统。 2、在软件内部按照输入分支程序结构。 3、打开点源开关。 4、调整输入的各个断口的开关量,着重关注在二进制数01100010附近的变化. 5、整理实验器材。 思考题1 写出分支程序设计的要点 分支结构也成为选择结构。在程序中每个分支均为一个程序段。为分支需要,程序设计时不要忘记给程序段的起始地址赋予一个地址标号,以供选择分支使用。 这次实验使用的是一个多分支程序结构,可以通过一系列的JC\JNC\JB\JNB的判断,进行逐级分支。并且可以使用CJNE进行实现。 80C51中没有专门的多分支转移指令,可以使用的变址转移指令“JMP @A+DPTR”,但是这样的指令需要数据表格配合。 思考题2 8051单片机有几个并行口,写出各并行口的特点 8051单片机有4个并行I/O口,分别为P0\P1\P2\P3,以实现数据的并行输入与输出。 这4个并行口均是8为双向口线,各占8个引脚,在P3口线上有着引脚复用,均有第二功能信号,这些第二功能信号都是重要的控制信号,在实际使用中总是先按需要优先选用第二功能,剩下的不用的再当作口线使用。 并行可以有效的提高单片机的工作效率。 思考题3 实验中遇到的苦难 在这个实验中和实验一显著不同的是我们需要重新认识硬件与软件的配合,一些数据线的链接,点源的通断都是我们学习的要点,我们也第一次接触到了输入口和输出口相互之间的区别。 这个实验我们一定要将十进制的思维转换过来转换为二进制的思维,在机器语言中只有开关量的通断,而这个题目也是很好的应用了开关量的通断完成了这个实验。 学会了分支判断方式的编程

单片机c程序编写

单片机C语言编程基础 时间:2011-05-01 22:47:26来源:作者: 单片机的外部结构: 1、DIP40双列直插; 2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、电源VCC(PIN40)和地线GND(PIN20); 4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3、一个串行通信接口;(SCON,SBUF) 4、一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 单片机C语言编程基础 1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3、++var表示对变量var先增一;var—表示对变量后减一。 4、x |= 0x0f;表示为x = x | 0x0f; 5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6、While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 { P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC While( 1 ); //死循环,相当LOOP: goto LOOP; } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 { P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND While( 1 ); //死循环,相当LOOP: goto LOOP; } 在某引脚输出方波编程方法:(比如P3.1引脚) #include //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 {

单片机习题答案(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的单片机应用系统,它的时钟周期、机器周期、指令周期分别是

STC向单片机发送数据小程序(C语言)

#include"stc12c5a60s2.h" #define uchar unsigned char; void initiate(void); void check_zero(void); void time0_on(void); void send_char(void); uchar shu,t,n=1,i=0; uchar code value[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; //************************************************************** void main() { initiate(); for(;;) check_zero(); } //**************************************************************** void initiate(void) { TMOD=0X21; //定时器T1溢出提供波特率,定时器T0定时。 TL1=0XFD; //fosc=11.0592mHz,波特率9600bps对应初值 TH1=0XFD; PCON=0X00; //波特率不加倍。 SCON=0X50; //串口工作方式一,允许接受。 ET1=0; EA=1; TR1=1; } //***************************************************************** void check_zero(void) { if(RI==1) { if(SBUF==0) { RI=0; SCON=0X40;

北京交通大学单片机实验程序报告

单片机实验程序

实验二8155并行I/O口扩展和动态扫描程序编制 1.实验目的 (1)掌握8155并行I/O芯片扩展和使用方法 (2)掌握数码管动态扫描汇编语言的编制方法 2.预习要点 (1)8155芯片基础知识 (2)51单片机的总线时序、地址译码的原理 (3)数码管动态扫描显示方法 3.实验设备 计算机、单片机实验箱。 4.实验内容 基本要求: 通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字1~8。 扩展要求: 假定30H~33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上 根据程序要求做如下程序流程图: 主程序流程图:

显示子程序流程框图: 基本要求编程如下: ORG 0000H

AJMP MAIN ORG 0050H MAIN: MOV SP,#60H ;压栈 MOV DPTR, #4100H MOV A,#0FH ;方式控制字0FH送A MOVX @DPTR, A ;8155初始化 MOV 70H,#01H ;设置显示缓冲区 MOV 71H,#02H MOV 72H,#03H MOV 73H,#04H MOV 74H,#05H MOV 75H,#06H MOV 76H,#07H MOV 77H,#08H LOOP: ACALL DISPLAY ;循环调用显示子程序AJMP LOOP DISPLAY: MOV R0,#70H ;显示缓冲区首地址送R0 MOV R3,#0FEH ;字位控制初值送R3

单片机程序分析

有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。) 源程序如下: ORG 1000H MOV R0,#40H MOV R7,#10 NEXT:MOV A,① ACALL SEPA MOV @R0,A INC R0 DJNZ ②,NEXT SJMP $ SEPA:ADD A,#00H ③PSW.0,SRET ORL A,④ SRET:⑤ ① @R0 ② R7 ③ JNB ④ #80H ⑤ RET 4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?(8分) MOV R0,#30H ;R0=30H MOV A,@R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV @R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H 解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。 四、程序阅读与分析题 1、试阅读下面的程序,指出该程序结束后累加器ACC和寄存器TH0的值,并说明该程序完成了怎样的功能。ORG 0000H MOV SP,#60H MOV A,#10H MOV TH0,#20H PUSH ACC PUSH TH0 POP ACC POP TH0 END 答:利用堆栈交换了ACC和TH0的内容,(A)=20H,(TH0)=10H

教你如何用C++写单片机程序

教你如何用C++写单片机程序 关键词:C++ 面向对象单片机 从大一就开始学习单片机,学51,A VR编程都使用C语言的风格,即面向过程,只要能画出程序流程图,程序基本就born了。我热衷于编程,尤其是C++,当时想有没有一天,C++的类和对象也能出现在单片机中? 历经世事沧桑,事到如今,我终于有机会,和大家一起学习使用真正面向对象的C++来控制单片机。目前单片机编译器大部分只支持C语言,C++还不够普及,但我们有理由相信,有着更先进的面向对象的理念,有更加平易近人的类和继承,C++必将取代C,成为单片机程序的主流。试看将来环球单片机,必是C++的世界! 下面大家跟着我来一起学习怎么用C++给单片机编程序!本文要求大家玩过A VR单片机,有过C语言编程经验,而且要对VC6.0开发环境有一定了解。 必备软件:VC6.0(用于编辑源程序),WinA VR(用于生成Makefile,支持A VR系列单片机),Proteus(用于仿真调试)。 首先,你的电脑上要装有VC6.0,进入后选菜单【file】---【new】新建工程,如图1选择Makefile工程,输入工程名称,路径,点确定。 图1_新建工程 一路OK建好工程,界面如图2。这个工程是专门写makefile脚本的,你如果学A VR单片机使用avr-gcc那应该对makefile有一定了解,如果想多了解一点详见https://www.wendangku.net/doc/b516886755.html,/view/974566.html?wtp=tt(呵呵,百度百科)。 你还需要安装WINA VR,这是个免费软件,网上很多资源,这个软件很容易安装,一路Next 就可以啦!为了使用方便,我的WINAVR安装到了C盘根目录下的WINA VR文件夹。安装好后,可以直接用它来编辑源代码,今天我就不讲它的使用方法了,只讲怎么生成makefile。自我感觉用熟悉的VC6.0环境编写程序心情很愉快,大家还是跟我一起来,打造

单片机课后习题答案解析

一)填空题 1. 十进制数14对应的二进制数表示为(1110B),十六进制数表 示为(0EH)。十进制数-100的补码为(9CH),+100的补码为(64H)。 2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。 3. 8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。 4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。 5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。 6. 若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。 7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。 8. 设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A∧B=(00100100),A⊕B=(11011011)。 9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)。 (二)单项选择题 1. 用8位二进制补码数所能表示的十进制数范围是(D) (A)-127 ~ +127 (B)-128 ~ +128 (C)-127 ~ +128 (D)-128 ~ +127 2. 下列等式中,正确的是(B) (A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 3. 程序与软件的区别是(C) (A)程序小而软件大(B)程序便宜而软件昂贵 (C)软件包括程序(D)程序包括软件 4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A) (A)地址(B)字节(C)列号(D)容量 5. 8位二进制数所能表示的最大无符号数是(B) (A)255 (B)256 (C)128 (D)127 6. 下列4个无符号数中,最小的数是(B) (A)11011001(二进制)(B)37(八进制) (C)75(十进制)(D)24(十六进制) 7. 下列字符中,ASCII码最小的是(B) (A)a (B)A (C)x (D)X 8. 下列字符中,ASCII码最大的是(C) (A)a (B)A (C)x (D)X 9. 有一个数152,它与十六进制数6A相等,那么该数是(B) (A)二进制数(B)八进制数(C)十进制数(D)十六进制数 第2章80C51单片机的硬件结构 (一)填空题

相关文档
相关文档 最新文档