兰交大单片机作业.docx

上传人:b****0 文档编号:9031559 上传时间:2023-05-16 格式:DOCX 页数:8 大小:28.21KB
下载 相关 举报
兰交大单片机作业.docx_第1页
第1页 / 共8页
兰交大单片机作业.docx_第2页
第2页 / 共8页
兰交大单片机作业.docx_第3页
第3页 / 共8页
兰交大单片机作业.docx_第4页
第4页 / 共8页
兰交大单片机作业.docx_第5页
第5页 / 共8页
兰交大单片机作业.docx_第6页
第6页 / 共8页
兰交大单片机作业.docx_第7页
第7页 / 共8页
兰交大单片机作业.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

兰交大单片机作业.docx

《兰交大单片机作业.docx》由会员分享,可在线阅读,更多相关《兰交大单片机作业.docx(8页珍藏版)》请在冰点文库上搜索。

兰交大单片机作业.docx

兰交大单片机作业

兰交大单片机作业

CH4 KEILC开发

1.用C51编程较汇编语言有哪些优势?

答:

编程容易;容易实现复杂的数字计算;容易阅读、调试、维护程序;容易实现模块化开发;程序可移植性好

2.C51定义变量的一般格式是什么?

变量的4种属性是什么?

特别要注意存储区属性。

答:

[存储类型] 数据类型 [存储区] 变量名

变量的4种属性是存储类型,数据类型,存储区,变量名

3.C51的数据存储区域类型有哪些?

各种存储区域类型是哪种存储空间,存储范围是什么?

如何将变量定义存储到确定的位置?

答:

data直接寻址内部数据存储器的128B

bdata 可位寻址内部数据存储器16B

idata间接访问内部数据存储器的2.5GB

pdata分页访问外部数据存储器的2.5GB

xdata 外部数据存储器64KB

code程序存储器64KB

将变量定义存储到确定的位置可以使用_at_或者XBYTE指令

4.C51函数定义的一般形式是什么?

如何定义中断处理程序?

如何选择工作寄存器组?

 答:

funcN(){

局部变量定义

SWAPA       

CPLA        

XRLA,#0FEH   

ORL30H,A    

解:

A=E4H,(30H)=EEH

2、以下程序段执行后,(40H)=?

,(41H)=?

CLRC

MOVA,#56H

SUBBA,#0F8H

MOV40H,A    

MOVA,#78H   

SUBBA,#0EH   

MOV41H,A   

解:

(40H)=5EH(41H)=6AH

3、设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM中50H,51H单元的内容为何值?

MOVA,59H  

MOVR0,A   

MOVA,#00H  

MOV@R0,A  

MOVA,#25H  

MOV51H,A  

MOV52H,#70H 

解:

 A=25H;R0=50H;(50H)=00H;(51H)=25H

4、设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?

PUSH30H  

PUSH31H   

POPDPL   

POPDPH    

MOV30H,#00H 

MOV31H,#0FFH

解:

(61H)=24H;(62H)=10H;(30H)=00H;(31H)=0FFH;DPTR=2410H;SP=60H;

5、设A=40H,R1=23H,(40H)=05H。

执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?

 

XCHA,R1

XCHDA,@R1

解:

A=25H;R1=40H;40H=03H

6.已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。

下述程序执行后:

      POP   DPH

      POP   DPL

      MOVDPTR,#3000H

      RL    A

      MOVB,A

      MOVC  A,@A+DPTR

      PUSH  A

      MOVA,B

      INC   A

      MOVC  A,@A+DPTR

      PUSH  A

      RET

      ORG3000H

      DB    10H,80H,30H,80H,50H,80H

请问:

A=?

,SP=?

,(51H)=?

,(52H)=?

,PC=?

解:

A=(80H),SP=( 40H),(51H)=(50H),(52H)=(80H ),PC=(8050H)。

7.设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位无符号数相加的程序(采用大端模式存储)。

解:

ORG 0000H

MOV  R0,#21H

MOV  R1,#23H

MOV  A,@R0

ADD  A,@R1

MOV  25H,A

DEC   R0

DEC   R1

MOV  A,@R0

ADDC A,@R1

MOV  24H,A

SJMP  $

END

8.编写程序,把外部RAM中1000H~101FH的内容传送到内部RAM的30H~4FH中。

解:

ORG 0000H

MOV DPTR,#1000H 

MOV R0,#30H      

MOV R7,#32

LOOP:

MOVX A,@DPTR      

MOV @R0,A      

INC R0       

INC DPTR       

DJNZ R7,LOOP   

RET  

9.编写程序,实现双字节无符号数加法运算,要求 (R0R1)+(R6R7)→(60H61H)。

解:

ORG 0000H

MOV  A,R0       

ADDC A,R6      

MOV  60H,A

MOV  A,R1 

ADD  A,R7

MOV  61H,A

SJMP $      

END

Ch6 中断系统与定时器

1.已知89S51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲。

矩形波高电平宽度50µs,低电平宽度350µs。

解:

MOV TMOD,#02H

MOV TH0,#9CH

MOV TL0,#9CH

CLR P1.2

SETB TR0

HIGH:

SETB P1.2

HIGH1:

JBCTF0,LOW

AJMPHIGH1

LOW:

MOVR7,#7

CLR P1.2

LOW1:

JBC TF0,LOW2

AJMP LOW1

LOW2:

DJNZ R7,LOW1

AJMP HIGH

1.设时钟频率为6MHz,采用定时/计数器T1及其中断控制方式,通过P1.7输出周期为20ms的方波。

编写C程序。

解:

#include

voidmain()

{

TMOD=0x00;

TL1=0x18;

TH1=0x63;

TR1=1;

EA=1;

ET1=1;

While

(1);

}

voidserve()interrupt1

{

TL1=0x18;

TH1=0x63;

P1_7=!

P1_7;

}

3.要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。

试采用T0实现设计查询和中断方式汇编程序。

解:

ORG0000H

AJMPMAIN

ORG000BH

LJMPDVT0

ORG0030H

MAIN:

MOVTMOD,#01H

MOVTH0,#0FEH

MOVTL0,#0CH

SETBET0

SETBEA

SETBTR0

SJMP$

DVT0:

CPLP1.1

MOVTH0,#0FEH

MOVTL0,#0CH

SETBTR0

RETI

END

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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