10机械《89C51单片机实验指导书》修改后.docx

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

10机械《89C51单片机实验指导书》修改后.docx

《10机械《89C51单片机实验指导书》修改后.docx》由会员分享,可在线阅读,更多相关《10机械《89C51单片机实验指导书》修改后.docx(24页珍藏版)》请在冰点文库上搜索。

10机械《89C51单片机实验指导书》修改后.docx

10机械《89C51单片机实验指导书》修改后

 

89C51单片机实验指导书

 

河海大学文天学院

2012.9

目录

软件部分2

KEILuVision软件的使用2

实验1存储区数据设置10

一.实验目的10

二.实验内容10

三.实验步骤10

四.实验参考程序10

实验2二进制BCD码转换12

一.实验目的12

二.实验内容12

三.实验步骤12

四.实验参考程序12

实验3程序跳转表14

一.实验目的14

二.实验内容14

三.实验步骤14

四.实验参考程序14

实验4内存块移动16

一.实验目的16

二.实验内容16

三.实验步骤16

四.实验参考程序16

实验5数据排序18

一.实验目的18

二.实验内容18

三.实验步骤18

四.实验参考程序18

硬件部分20

实验一仿真器的使用20

一.实验目的20

二.实验内容20

实验1I/0口输入输出实验21

一.实验目的21

二.实验内容21

三.实验原理图21

四.实验步骤21

实验2广告灯实验22

一.实验目的22

二.实验内容22

三.实验原理图22

四.实验步骤22

实验3定时器实验23

一.实验目的23

二.实验内容23

三.实验原理图23

四.实验步骤23

实验4外中断实验24

一.实验目的24

二.实验内容24

三.实验原理图24

四.实验步骤24

实验5动态扫描显示实验25

一.实验目的25

二.实验内容25

三.实验原理图25

四.实验步骤25

软件部分

KEILuVision软件的使用

KeiluVision软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。

下面介绍KeiluVision软件的使用方法

进入KeiluVision后,屏幕如下图所示。

几秒钟后出现编辑界

启动KeiluVision时的屏幕

进入KeiluVision后的编辑界面,简单程序的调试

 1.建立一个新工程

 单击Project菜单,在弹出的下拉菜单中选中NewProject选项

 

2.然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。

 3.这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,KeiluVision几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。

 4.完成上一步骤后,屏幕如下图所示

5.在下图中单击“File”菜单,再在下拉菜单中单击“New”选项

  

 新建文件后屏幕如下图所示

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。

注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。

然后,单击“保存”按钮。

 6)回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单

 然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如下图所示

 选中Test.c,然后单击“Add ”屏幕如下图所示

 

注意到“SourceGroup1”文件夹中多了一个子项“Text1.c”了吗?

子项的多少与所增加的源程序的多少相同

7)现在,请输入如下的C语言源程序:

 #include         //包含文件

 #include

 voidmain(void)          //主函数

 { P0=0x00;

P1=0xff;

P2=0xf0;

P3=0x0f;

  while

(1)

 }

在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即KeiluVision会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。

程序输入完毕后,如下图所示

 8)在上图中,单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5),屏幕如下所示

 9)调试程序:

在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“StopRunning”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“SerialWindows#1”选项,就可以看到程序运行后的结果其结果如下图所示

至此,我们在KeiluVision上做了一个完整工程的全过程。

但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?

10)单击“Project”菜单,再在下拉菜单中单击“

”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,供下载器软件使用。

把程序下载到AT89S51单片机中。

实验1存储区数据设置

一.实验目的

通过实验了解单片机的数据存储器写入与擦除的方法;

学习使用伟福软件。

二.实验内容

编程实现0030H~0039HRAM的内容清零。

三.实验步骤

运行KeiluVision软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功。

点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口。

在存储器窗口中输入D:

30H,然后单步执行,查看30H~39H单元值的变化

四.实验参考程序

ORG0000H

LJMPSTART

ORG0030H

START:

MOV30H,#10H

MOV31H,#11H

MOV32H,#12H

MOV33H,#13H

MOV34H,#14H

MOV35H,#15H

MOV36H,#16H

MOV37H,#17H

MOV38H,#18H

MOV39H,#19H

MOVR0,#30H

LOOP1:

CLRA

MOV@R0,A

INCR0

CJNER0,#3AH,LOOP1

END

实验2二进制BCD码转换

一.实验目的

通过实验了解十进制转二进制BCD码的方法;

学习使用伟福软件。

二.实验内容

把123转换成二进制BCD码再以16进制存于30H~32H中。

三.实验步骤

运行KeiluVision软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

3.在存储器窗口中输入D:

30H,然后单步执行,查看30H~32H单元值的变化内容的变化。

四.实验参考程序

RESULTEQU30H

ORG00H

LJMPSTART

START:

MOVSP,#40H

MOVA,#123

LCALLBINTOBAC

SJMP$

BINTOBAC:

MOVB,#100

DIVAB;除以100得百位数

MOVRESULT,A

MOVA,B

MOVB,#10

DIVAB;余数除以10得十位数

MOVRESULT+1,A

MOVRESULT+2,B;余数为个位数

RET

END

实验3程序跳转表

一.实验目的

通过实验理解地址偏移量的概念和程序跳转表的使用方法;

学习使用伟福软件。

二.实验内容

以查表的方式执行跳转指令使30H~33H显示不同的值。

三.实验步骤

运行KeiluVision软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

在存储器窗口中输入D:

30H,然后单步执行,查看30H~33H单元值的变化

四.实验参考程序

ORG0000H

START:

MOVA,#0;设置地址偏移量

CALLFUNCENTER

MOVA,#1;设置地址偏移量

CALLFUNCENTER

MOVA,#2;设置地址偏移量

CALLFUNCENTER

MOVA,#3;设置地址偏移量

CALLFUNCENTER

LJMP$

FUNCENTER:

ADDA,ACC;AJMP为二字节指令,地址偏移量*2

MOVDPTR,#FUNCTAB;设置基址

JMP@A+DPTR;跳转到目标地址

FUNCTAB:

AJMPFUNC0

AJMPFUNC1

AJMPFUNC2

AJMPFUNC3

FUNC0:

MOV30H,#0

RET

FUNC1:

MOV31H,#1

RET

FUNC2:

MOV32H,#2

RET

FUNC3:

MOV33H,#3

RET

END

实验4内存块移动

一.实验目的

通过实验学习对存储器的操作

学习使用伟福软件。

二.实验内容

把内部RAM50H~59H中的数据移到60H~69H中。

三.实验步骤

运行KeiluVision软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编译,如有错,请更改直到编译成功

点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

在存储器窗口中输入D:

50H,然后单步执行,查看50H~59H和60H-69H单元值的变化

四.实验参考程序

ORG0000H

AJMPSTART

ORG0100H

START:

MOV50H,#00H

MOV51H,#01H

MOV52H,#02H

MOV53H,#03H

MOV54H,#04H

MOV55H,#05H

MOV56H,#06H

MOV57H,#07H

MOV58H,#08H

MOV59H,#09H

MOVR0,#50H;源地址

MOVR1,#60H;目的地址

MOVR2,#10

LOOP:

MOVA,@R0

MOV@R1,A

INCR0

INCR1

DJNZR2,LOOP

END

实验5数据排序

一.实验目的

通过实验学习数据排序的编程方法;

学习使用Keil软件;

二.实验内容

把11个无序数据存于50H~5AH中,然后以从小到大的顺序排列在50H~5AH中。

三.实验步骤

运行Keil软件,新建一个工程(如clr),新建一个文件CLR.asm。

将文件添加到工程中并编写程序,然后编译,如有错,请更改直到编译成功点击

按钮或单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口

在存储器窗口中输入D:

30H,然后单步执行,查看30H~3AH单元值的变化

四.实验参考程序

ORG0000H

LJMPSTART

ORG0100H

START:

MOV50H,#30H

MOV51H,#11H

MOV52H,#18H

MOV53H,#09H

MOV54H,#01H

MOV55H,#2AH

MOV56H,#36H

MOV57H,#17H

MOV58H,#28H

MOV59H,#79H

MOV5AH,#0A9H

MOVR3,#50H

QUE1:

MOVA,R3;指针送R0

MOVR0,A

MOVR7,#0AH;长度送R7

CLR00H;清标志位

MOVA,@R0

QL2:

INCR0

MOVR2,A;备份A中的内容,因下面的CJNE中用到

CLRC

MOV22H,@R0

CJNEA,22H,QL3;相等吗?

(A)<(22)时CY置1.

SETBC

QL3:

MOVA,R2

JCQL1;<=则转QL1,不用交换

SETB00H;00H位为1时,说明有数据交换,仍要进行下一整体循环

XCHA,@R0

DECR0

XCHA,@R0

INCR0;大于交换

QL1:

MOVA,@R0;A中的内容总是和下一个数据比较

DJNZR7,QL2

JB00H,QUE1;一次循环中有交换继续

END

硬件部分

实验一仿真器的使用

一.实验目的

熟悉KEIL环境下仿真器的使用

二.实验内容

掌握仿真器的使用方法。

实验1I/0口输入输出实验

一.实验目的

通过实验学会使用51系列单片机I/O口的基本输入输出功能。

二.实验内容

拨动数据开关向P0口送数据,单片机从P0口输入的状态数据后,再从P1口将该数据输出至发光二极管显示。

三.实验原理图

四.实验步骤

1.硬件连接:

数据开关的8P插座与P0口的8P插座相连接,发光二极管的8P插座与P1相连接。

2.实验现象:

拨动数据开关为1时,对应的发光二极管亮;为0时,对应的发光二极管灭。

注:

在单片机最小系统面板上有SW2为EA与VCC短接块,一般STC单片机EA不接高电平也默认是片内程序存储器。

实验2广告灯实验

一.实验目的

1.以P1口为例,学会使用51系列单片机I/O口的基本输出功能;

2.学习循环指令的用法和软件延时的编程方法。

二.实验内容

编写程序,使8个LED左循环闪亮,然后右循环闪亮。

三.实验原理图

四.实验步骤

1.硬件连接:

发光二极管的8P插座与P1相连接。

2.实验现象:

LED左移动,然后右移动循环下去。

实验3定时器实验

一.实验目的

通过实验学习单片机的定时器功能,学会编程实现单片机的定时功能;

掌握中断处理程序的编程方法;

掌握查表的编程方法。

二.实验内容

由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.7分别接八个发光二极管。

编写程序模拟一时序控制装置。

上电后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮......一直循环下去。

三.实验原理图

四.实验步骤

1.硬件连接:

发光二极管的8P插座与P1相连接。

2.实验现象:

上电后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮......一直循环下去。

实验4外中断实验

一.实验目的

通过实验掌握单片机外中断的原理及编程方法。

二.实验内容

数码管循环显示0~F,当int0端口即P3.2口有低电平时,数码管立即回到0重新循环显示。

三.实验原理图

四.实验步骤

1.硬件连接:

动态显示的段码a-h与P0口连接,位选L1-L8与P1口边接。

查询式键盘S0-S7接P3口。

2.实验现象:

数码管从0到F循环计数,按下键2后暂停计数。

实验5动态扫描显示实验

一.实验目的

通过实验掌握动态扫描显示的原理和编程方法。

二.实验内容

在多位LED显示时,为了简化硬件电路,通常将所有的段码线相应的段并联在一起,由一个8位IO口控制形成段码的多路复用,而各位的共阳极或共阴极分别由相应的IO线控制,形成分时选通。

这是一个基本的实验,以后的很多实验都得用到。

三.实验原理图

四.实验步骤

1.硬件连接:

单片机最小系统的P0、P2口接动态显示的a-h、L1-L8。

2.实验现象:

数码管显示01234567

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

当前位置:首页 > 解决方案 > 学习计划

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

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