单片机实验指导书Word下载.docx

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

单片机实验指导书Word下载.docx

《单片机实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word下载.docx(46页珍藏版)》请在冰点文库上搜索。

单片机实验指导书Word下载.docx

伪指令END,表示程序结束。

3、编译、修改、连接上述程序,记录编译过程中提示的错误和修改的方法。

常见的错误有:

①数字‘0’与字母‘O’混淆。

MOVP1,#0FH写成MOVP1,#OFH

②掉了逗号。

如MOVA,P1写成MOVAP1

③助记符写错。

如ANLA,#0FH写成AMLA,#0FH

④标号后面的冒号掉了。

如OVER:

SJMP$写成OVERSJMP$

⑤标号不一致。

如SJMPLOOP写成SJMPLOP

⑥END后面有空行。

此时提示“”,修改方法是将光标放在END后面,不断地按“Delete”键。

4、打开寄存器窗口、反汇编窗口,记录本程序的机器码,了解单字节指令、双字节指令和三字节指令的含义。

5、将K0~K3全部置“1”,单步执行本程序,依次将K0~K3置“0”,第五次将K0~K3全部置“0”,观察程序执行过程中寄存器A、端口P1和LED的变化。

了解指令首地址的含义和程序计数器PC的作用,了解是如何改变程序的流程。

6、将程序MOVP1,#0FH改为MOVP1,#00H,再编译、连接、执行,观察结果有什么不同。

六、整理实验记录并回答下列问题

首地址

机器码

源程序

寄存器

LED状态(实心圆表示亮)

第1次

第2次

第3次

第4次

0000H

7401

MOVP1,#0FH

(P1)=

MOVA,P1

(A)=

ANLA,#0FH

JZOVER

SWAPA

MOVP1,A

SJMPLOOP

SJMP$

错误形式

英文提示

中文意义

修改方法

MOVP1,#OFH

OFH改为0FH

MOVAP1

AMLA,#0FH

SJMPLOP

OVERSJMP$

END

1、什么是51单片机最小系统。

系统有哪三类总线?

2、程序计数器PC的作用是什么,本实验中哪些指令实现程序的跳转。

3、为什么说P1口是准双向I/O口?

4、简述单片机系统的工作过程。

实验二顺序结构程序设计

一、实验目的

1、顺序程序的编制;

2、

2、掌握算术运算方法及PSW标志位的变化规律;

3、掌握查表程序

3、初步了解堆栈的使用方法。

二、实验设备

三、实验内容

1、单步执行程序一,按要求记录指定寄存器的内容。

2、将A中的16进制数转换为BCD码。

百位数存R3中,十位和个位放在A中。

3、查表求0~9的平方(运行10次,将运行结果填入表中)

四、程序清单

程序一

程序

A

B

CY

AC

OV

P

标志位变化的原因

ORG0000H

00H

系统复位值

SETBC

MOVA,#49H

ADDCA,#27H

DAA

SUBBA,#0A5H

ADDA,#2DH

INCA

ADDCA,#95H

DIVAB

MOVB,#08H

MULAB

程序二

ORG0000H

MOVA,#0FFH;

(A)=

MOVB,#100;

(B)=

DIVAB;

(A)=(B)=

MOVR3,A;

(R3)=

MOVA,#10;

(A)=

XCHA,B;

DIVAB;

(A)=(B)=

SWAPA;

ADDA,B;

SJMP$

程序三

第一次

第三次

第九次

第十次

MOVA,#00H

(A)=(SP)=

START:

PUSHACC

(A)=(SP)=(08H)=

MOVDPTR,#TAB

MOVCA,@A+DPTR

POPACC

SJMPSTART

TAB:

DB00H,01H,04H,09H,16H

DB25H,36H,49H,64H,81H

五、简答

1、填写下表(无影响填×

,有影响填∨,确定值填1或0)

指令

ADD

ADDC

SUBB

MUL

DIV

INC、DEC

2、简述PUSH、POP指令时堆栈如何变化?

程序2为什么要用堆栈?

实验三分支程序与串行I/O口

1、掌握比较数据大小的方法;

2、掌握查表程序的编制方法;

3、了解串行I/O口的用法

DVCC仿真系统一套、计算机一台

1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数:

1X>

Y=0X=0

-1X<

2、K0、K1、K2、K3组成16进制开关,其状态数由串行口输出,且由74LS164转换为并行输出到共阴极LED上显示,试编写程序。

四、实验线路

五、实验步骤

1、分别用MOV20H,#00H(80H、79H)运行方法1和2,注意执行CJNEA,#79H,NEG

时,CY的变化,熟练掌握该指令的用法

2、按实验线路接线,运行程序三,改变K0-K3的组合状态,观察LED的变化。

掌握串行口输出的程序编制,熟练掌握指令MOVCA,@A+PC在查表中的应用及偏移量的确定。

六、程序清单

程序一方法1

MOV20H,#00H

MOVA,20H

JZZERO

JBACC.7,NEG

MOV21H,#01H

SJMPOVER

NEG:

MOV21H,#0FFH

ZERO:

MOV21H,A

OVER:

SJMP$

END

方法2

CJNEA,#79H,NEG

JCPOSI

MOV21H,#0FFH

POSI:

MOV31H,#01H

程序二方法1

ORG0000H

LOOP:

MOVP1,#0FH

MOVA,P1

ANLA,#0FH

ADDA,#06H

MOVCA,@A+PC

MOVSBUF,A

JBCTI,$

SJMPLOOP

方法2ORG0000H

MOVDPTR,#TAB

MOVCA,@A+DPTR

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,7EH

七、简答

1、简述执行CJNEA,#79H,NEG时,CY的变化

2、在程序一中为什么用那么多SJMPOVER指令?

3、查表的两个指令是什么。

有什么区别?

应用指令MOVCA,@A+PC时,偏移量是如何确定。

4、P3.0、P3.1分别输出什么信号?

串行口输出的指令是什么,指令JBCTI,$是什么意思。

实验四循环程序与子程序调用

1、掌握子程序的编写方法和调用过程

2、掌握SJMP、AJMP、LJMP的使用方法

3、掌握循环程序的编制

1、在外部数据存储器0130H~013FH和片内RAM30H~3FH分别存放数据00H、01H……0FH。

2、在片内数据存储器20H~23H中压缩BCD码拆成单字节BCD码依次存放到28H~2FH中。

四、实验步骤

1、运行以下程序,观察子程序调用的过程,单步执行ACALLMULTWO后,堆栈有什么变化。

单步执行RET后,堆栈又有什么变化。

MOVR0,#20H

MOVR1,#30H

ACALLMULTWO

MULTWO:

MOVA,@R0

MOVB,@R1

MULAB

MOV@R0,A

MOV@R1,B

RET

2、编释以下程序,记录英文错误提示,改变ORG0080H,使编译通过,计算SJMP的偏移量

ORG0000H英文错误提示正确程序

START:

MOVA,#20H

SJMPNEXT

ORG0080H

NEXT:

MOVA,#30H

SJMPSTART

编释以下程序,记录英文错误提示,改变两句ORGXXXXH,使编译通过,且两个差值最大。

ORG00F0H英文错误提示正确程序

AJMPNEXT

ORG0100H

AJMPSTART

3、运行程序一、二,注意访问外部RAM和片内RAM指令的区别,观察R0、R1的变化。

五、程序清单

程序一

方法1

MOVP2,#01H

MOVR7,#0FH

MOVR0,#30H

CLRA

CLEAR1:

MOVX@R0,A

MOV@R0,A

INCR0

DJNZR7,CLEAR1

方法2

MOVDPTR,#0130H

MOVX@DPTR,A

INCDPTR

MOVR1,#28H

MOVR7,#04H

LCALLCZ

INCR1

DJNZR7,LOOP

CZ:

PUSHACC

SWAPA

ANLA,#0FH

MOV@R1,A

INCR1

POPACC

六、简答

1、SJMP、AJMP和LJMP的区别。

2、SJMP偏移量的范围是~,以码的形式存放。

计算方法是:

rel=-

3、简述子程序调用的过程。

实验五中断方式控制LED

1、初步掌握中断的概念

2、掌握外部中断的方法

3、掌握定时/计数初始化编程方法

4、掌握中断服务程序的编制方法

1、当中断没发生时,8个LED按间隔发光。

当P3.3(INT1)为低电平时,8个LED整体闪烁16次。

2.在P3.3(INT1)发生中断后,8个LED整体闪烁16次;

P3.2(INT0)中断,4个LED循环发光16次。

门P3.3(INT1)优先中断,观察两个中断顺序不同的结果有什么不同。

3、用定时器T0用工作方式1实现P1.0所控制的LED每秒钟闪烁一次。

4、5个单脉冲,LED闪烁一次,用工作方式2

P3.3、P3.2接K0、K1,P3.4接单脉冲,P1接8个LED。

1、内容一

(1)(开关置0立即置1,与开关置0不动有什么区别)

(2)将程序中的CLRIT1改为SETBIT1再运行。

观察发生中断时与第一次有什么不同。

(开关置0立即置1,与开关置0不动有什么区别)

(3)在中断服务程序中的PUSHACC和POPACC前面加分号”:

”再运行。

2.内容二

(1)在P3.3(INT1)发生中断后,P3.2(INT0)立即中断;

(2)在P3.2(INT0)发生中断后,P3.3(INT1)立即中断;

(3)在SETBPX1前加分号,再比较一次。

3、内容三

调节什么参数,使LED每秒钟闪烁一次。

4、内容四

注意工作方式2的中断服务程序与工作方式0、1的区别。

六、程序清单

程序一

主程序

AJMPMAIN

ORG0013H

SJMPZD0

ORG0020H

MAIN:

CLRIT1

SETBEA

SETBPX1

SETBEX1

MOVA,#0AAH

HA1S1:

MOVP1,A

AJMPHA1S1

DELAY:

MOVR5,#0FFH

DELAY1:

MOVR4,#0FFH

DJNZR4,$

DJNZR5,DELAY1

ORG0060H

ZD0:

CLREA

PUSH00H

MOV00H,#10H

MOVA,#0FFH

ACALLDELAY

CPLA

DJNZR0,LOOP

POP00H

RETI

MOVR5,#0FFH

MOVR4,#0FFH

主程序中断服务程序ZD0同程序一,ZD1如下:

ORG0003H

SJMPZD1

SETBIT0

SETBIT1

SETBPX0

SETBEX0

ORG0080H

ZD1:

MOVR0,#10H

LP:

DJNZR0,LP

ORG000BH

AJMPTIME0

ORG0030H

CLRP1.0

MOV30H,#00H

MOVTMOD,#01H

MOVTH0,#H

MOVTL0,#H

SETBEA

SETBET0

SETBTR0

TIME0:

PUSHPSW

INC30H

MOVA,30H

CJNEA,#20,T_RET

T_L1:

CPLP1.0

MOV30H,#0

T_RET:

MOVTH0,#H

MOVTL0,#H

POPPSW

程序四

AJMPSTART

ORG000BH

RETI

CLRP1.0

MOVTMOD,#06H

MOVTH0,#0FBH

MOVTL0,#0FBH

SETBIT0

SETBET0

SETBTR0

七、简答

程序一程序二

主程序

六、结论

1、中断的定义,51系列有哪几个中断源,它们的中断入口地址分别是什么

2、简述中断的过程。

3、中断优先级由寄存器控制。

4、定时与计数有什么区别?

5、T0或T1有哪四种工作方式?

其定时常数如何计算?

工作方式2在中断服务程序中,为什么不重装时间常数?

八、

九、

一十、实验线路

一十一、程序清单

程序一:

程序二:

程序三

CONT:

MOVSP,#53H

MOVTMOD,#05H

MOVTH0,#00H

MOVTL0,#00H

SETBTR0

CONT1:

MOVR2,TH0

MOVR3,TL0

LCALLCONT2

MOVR0,#79H

MOVA,R6

LCALLPWOR

MOVA,R5

MOVA,R4

LCALLDISP

SJMPCONT1

一十二、结论

实验六并行接口8255控制交通灯

了解8255芯片的结构及编程方法,学习交通灯控制的实现方法

二、实验内容

用8255做输出口,控制12个发光二极管亮灭,模拟交通灯管理。

初始状态0为东西红灯,南北红灯。

然后实现状态1-2-3-4-1的循环。

状态1:

东西绿灯,南北红灯;

状态2:

东西绿灯灭,黄灯闪烁5次,南北红灯;

状态3:

东西红灯,南北绿灯;

状态4:

东西红灯,南北绿灯灭,黄灯闪烁5次。

三、实验线路

1、根据设计要求,填写下表

状态

PB口值

西

PC口值

绿

PB0

PB1

PB2

PB3

PB4

PB5

PC0

PC1

PC2

PC3

PC4

PC5

1

2

3

4

2、根据设计要求编写程序

已知8255各端口地址如下:

PA口:

0FF28H、PB口:

0FF29H、PC口:

0FF2AH、命令口:

0FF2BH

3、调试和运行程序

五、实验程序(编写时注意利用程序段的相似性,整段复制)

ORG0000H

MOVSP,#60H

MOVDPTR,#H;

写命令字

MOVA,#H

S0:

MOVDPTR,#H;

PB口状态0

MOVA,#H

INCDPTR;

PC口状态0

MOV20H,#55H

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

当前位置:首页 > 人文社科 > 法律资料

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

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