单片机原理及应用:基于C51+Proteus仿真
上QQ阅读APP看书,第一时间看更新

思考与练习

2-1 Rn和Ri有什么区别?n和i值的范围是多少?@Ri表示什么含义?

2-2 30H与#30H有什么区别?

2-3 请按下列要求传送数据:

1)将R2中的数据传送到R2;

2)将立即数30H传送到40H;

3)将立即数30H传送到以R0中内容为地址的存储单元中;

4)将30H中的数据传送到以R0中内容为地址的存储单元中;

5)将R1中的数据传送到以R0中内容为地址的存储单元中。

2-4 已知RAM(20H)=60H,(30H)=10H,(40H)=20H,(50H)=40H,试写出执行以下程序段后有关单元的内容。

2-5 请按下列要求传送数据,并写出每一条指令执行后的结果,设片内RAM(20H)=ABH,片外RAM(4000H)=CDH,ROM(4000H)=EFH。

1)将片内RAM 20H单元数据送入片外RAM 20H单元;

2)将片内RAM 20H单元数据送入片外RAM 2020H单元;

3)将片外RAM 4000H单元数据送入片内RAM 20H单元;

4)将片外RAM 4000H单元数据送入片外RAM 1000H单元;

5)将ROM4000H单元数据送入片外RAM20H单元;

6)将ROM4000H单元数据送入片内RAM20H单元。

2-6 试求下列程序连续运行一次后有关单元中的内容。已知片内RAM(20H)=24H,(24H)=BCH,(SP)=1FH,(1FH)=39H,(39H)=67H,片外RAM(1000H)=10H,ROM(1010H)=FFH。

2-7 若(R0)=40H,(40H)=79H,(41H)=1FH,(DPTR)=1FDFH,ROM(2000H)=ABH,(CY)=1,将一次执行下列指令后的结果写在注释区。

2-8 试求下列程序运行一次后有关单元的内容。已知(R1)=73H,(CY)=0,(59H)=73H,(73H)=6BH。

2-9 分别用一条指令实现下列功能。

1)若CY=0,则转PROM1程序段执行;

2)若位寻址(30H)≠0,则将30H清零,并使程序转至PROM2;

3)若A中数据不等于200,则程序转至PROM3;

4)若A中数据不等于0,则程序转至PROM4;

5)将40H中数据减1,若差值不等于0,则程序转至PROM5;

6)若以R0中内容为地址的存储单元中的数据不等于10,则程序转至PROM6;

7)调用首地址为1000H的子程序;

8)使PC=3000H。

2-10 编程完成下述操作:

1)将片外2004H单元中的数据传送到B;

2)将片外30H单元中的数据传送到片外1010H单元中;

3)将外部RAM 2000H单元中的高2位取反,低4位清零,其余位保持不变;

4)将外部RAM 60H单元中的中间4位取反;

5)编程实现将外部RAM 60H单元的高2位清零,最低2位取反,其余保持不变;

6)编程实现将外部RAM 0200H单元的高2位清零,最低2位取反,其余保持不变;

7)编程实现将外部RAM 80H单元的高2位置位,最低2位清零,其余位取反;

8)编程实现,从片外RAM 300H单元中读取数据,存放到片外RAM 80H单元中。

2-11 被减数存在31H30H中(高位在前),减数存在33H32H中,试编写其减法程序,差值存入31H30H单元,借位存入32H单元。

2-12 汇编语言程序设计分为哪几个步骤?

2-13 什么叫伪指令?伪指令与指令有什么区别?它们的用途是什么?

2-14 基本程序结构有哪几种?各有什么特点?

2-15 子程序调用时,参数的传递方法有哪几种?

2-16 设内部RAM50H和51H单元中存放有两个8位有符号数,试编程找出其中的最大数,将其存入60H单元。

2-17 编程将外部RAM2000H~202FH单元中的内容,移入内部RAM20H~4FH中,并将原数据块区域清0。