汇编语言与接口技术实验指导书V11.docx

上传人:b****6 文档编号:6426668 上传时间:2023-01-06 格式:DOCX 页数:82 大小:1.41MB
下载 相关 举报
汇编语言与接口技术实验指导书V11.docx_第1页
第1页 / 共82页
汇编语言与接口技术实验指导书V11.docx_第2页
第2页 / 共82页
汇编语言与接口技术实验指导书V11.docx_第3页
第3页 / 共82页
汇编语言与接口技术实验指导书V11.docx_第4页
第4页 / 共82页
汇编语言与接口技术实验指导书V11.docx_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

汇编语言与接口技术实验指导书V11.docx

《汇编语言与接口技术实验指导书V11.docx》由会员分享,可在线阅读,更多相关《汇编语言与接口技术实验指导书V11.docx(82页珍藏版)》请在冰豆网上搜索。

汇编语言与接口技术实验指导书V11.docx

汇编语言与接口技术实验指导书V11

 

山东建筑大学计算机学院

汇编语言与接口技术

实验指导书

 

计算机科学与技术教研室

2014.3

第1章

概述

单片机进入我国已20多年了,随着科学技术的发展,计算机技术的普及,单片机已经成为工科院校的一门技术基础课。

1.1Keil软件的安装

1、将带有Keil安装软件的光盘放入光驱,或者从Keil官方网站上下载安装软件,双击setup.exe,进入安装,如图1.1所示;

图1.1

2、单击“Next”按钮;

图1.2

3、选中复选框,单击“Next”按钮;

图1.3

4、单击“Browse”按钮,选择安装路径,默认路径为:

C:

\Keil\;

图1.4

5、输入用户信息,单击“Next”;

图1.5

6、安装完成。

1.2KeilC51软件的使用

KeilC51集成开发环境是以工程的方法来管理文件的,而不是单一文件的模式。

所有的文件包括源程序(包括C程序、汇编程序)、头文件、甚至说明性的技术文档都可以放在工程项目文件里统一管理。

在使用KeilC51前,您应该习惯这种工程管理方式,对于刚刚使用KeilC51的用户来说,一般按照以下步骤来创建一个自己的KeilC51应用程序。

1.创建一个工程项目文件;

2.为工程选择目标器件;

3.为工程项目设置软硬件调试环境;

4.创建源程序文件并输入程序代码;

5.保存创建的源程序项目文件;

6.把源程序文件添加到项目中;

1.3创建工程

下面以创建一个新的工程文件hello.uvproj为例,详细介绍如何建立一个KeilC51的应用程序。

图1.6

1.点击桌面KeilC51快捷图标即可进入如图1.7所示的集成开发环境,各种调试工具、命令菜单都集成在此开发环境中。

图1.7

其中菜单栏为您提高了各种操作菜单,比如编辑器操作、工程维护、开发工具选项设置、程序调试、窗体选择及操作、在线帮助。

工具栏按钮可以快速执行uVision4命令。

或许与您打开的KeilC51界面不一样,但您别着急,这是因为启动uVision4后,uVision4总是打开用户前一次正确处理的工程。

2.点击菜单的Project选项,在弹出的下拉菜单中选择NewProject命令,建立一个新的uVision4工程,这时可以看到如图1.8所示的项目文件保存对话框。

在这里需要完成下列事情:

图1.8

a.为您的工程取一个名称,工程名应便于记忆且文件名不宜过长;

b.选择工程存放的路径,建议为每个工程单独建立一个目录,并且工程中需要的所有文件都放在这个目录下;

c.进入工程目录输入工程名hello后,点击保存返回。

3.在工程建立完毕后,uVision4会立即弹出如下图所示的器件选择窗口,器件选择的目的是告诉uVision4最终使用芯片的型号,因为不同芯片型号的51芯片内部的资源是不一样的,uVision4可以根据选择进行SFR予以定义,在软硬件仿真易于操作的外设浮动窗口等。

图1.9

从图1.9可以看出,uVision4支持所有的CPU器件的型号根据生产厂家形成器件组,用户可以根据需要选择相应的器件组并选择相应的器件型号,本产品的单片机型号为Atmel的AT89S52(可以选择为SST组的SST89E516RD),另外,如果用户在选择完目标器件后想重新更改目标器件,可以点击菜单Project选项,在弹出的下拉菜单中选择SelectDeviceforTarget‘TargetI'命令,也将出现如图1.10所示的对话窗口后点击device重新加以选择。

由于不同厂家的许多型号性能相同或相近,因此如果用户的目标器件型号在uVision4中找不到,用户可以选择其他公司的相近产品。

图1.10

4.到现在用户已经建立了一个空白的工程项目文件,并为工程选择好了目标器件,但是这个工程里没有任何程序文件。

程序文件的添加必须人工进行,如果在程序文件在添加前还没有创立,用户还必须创建它。

点击菜单的File选项,在下拉菜单中选择New命令,这时文件窗口会出现新文件窗口Text1,如果多次执行New命令则会出现Text2、Text3...等多个新文件窗口。

5.现在hello.uvproj项目中有了一个名字为Text1新文件框架,在这个源程序编译框内输入自己的代码。

在uVision4中,文件的编辑方法同其他的文本编辑器是一样的,用户可以执行输入、删除、选择、拷贝、粘贴等基本文字处理命令。

uVision4不完全支持汉字的输入和编辑,因此如果用户需要编辑汉字最好使用外部的文本编辑来编辑(如或VC++)。

uVision4中有文件变化感知功能,提示您外部编辑其改变了该文件,是否需要把uVision4中的该文件刷新,选择“是”命令按钮,然后您就可以看到uVision4中文件的刷新。

编辑完毕后保存到磁盘中。

6.输入完毕后点击菜单的File选项,在弹出的下拉菜单中选择“保存”命令存盘源程序文件,这时会弹出如下图所示的存盘源程序画面,在文件名栏内输入源程序的文件名,在此示范中把Text1保存成hello.c。

主要KeilC51支持汇编和C语言,且uVision4要根据后缀判断文件的类型,从而自动进行处理,因此存盘时应注意输入的文件名应带扩展名.ASM或.C。

源程序文件hello.c是一个c语言程序,如果用户想建立的是一个汇编程序,则输入文件名称hello.asm。

保存完毕后请注意观察,保存前后源程序有哪些不同,关键字变成蓝颜色了吗?

这也是用户检查程序命令行的好方法,您体会到了吗?

图1.11

7.需要特别提出的是,这个程序文件仅仅是建立了而以,hello.c文件到现在为止,跟hello.uvproj工程还没建立任何关系,此时用户应该把hello.c源程序添加到hello.uvproj工程中,构成一个完整的工程项目,点击菜单View->ProjectWindow将会弹出项目观察窗口,在项目观察窗口内,选中SourceGroup1后点击鼠标右键,在弹出的快捷菜单中选择ADDFilestoGroup“SourceGroup1”(向工程中添加源程序文件)命令,此时会弹出如图1.12所示的添加源程序文件窗口,选择刚才编辑的源程序文件hello.c,单击Add命令即可把源程序添加到项目中。

图1.12

1.4程序文件的编译、连接与调试

1.编译连接环境设置

uVision4调试器可以测试用C51编译器和A51宏汇编器开发的应用程序,uVision4调试器有两种工作模式,用户可以通过点击菜单Project选项,在弹出的下拉菜单中选择OptionForTarget‘Tatget1’命令为目标设置工具选项,这时会出现如图1.10所示的调试环境设置界面,选择Debug选项会出现如图1.13所示的工作模式选择窗口。

图1.13

从图1.13可以看出,uVision4的2种工作模式分别是:

UseSimulator(软件模拟)和Use(硬件仿真)。

其中UseSimulator选项是将uVision4调试器设置成软件模拟仿真模式,在此模式下,不需要实际的目标硬件就可以模拟80C51微控制器的很多功能,在准备硬件之前就可以测试您的应用程序,这样是很有用的。

Use选项是高级GDI驱动,运用此功能可以把KeilC51嵌入到自己的系统中,从而实现在目标硬件上调试程序。

选择软件模拟仿真,即在图1.13中Debug栏内选中UseSimulator选项,点击“确定”命令按钮加以确认,此时uVision4调试器即配置软件仿真。

2.程序的编译和连接

经过以上的工作,到此就可以编译程序了。

点击菜单Project选项,在弹出的下拉菜单中选择BuildTarget命令对源程序文件进行编译,此时会在“OutputWindows”信息输出窗口输出一些相关的信息。

由提示信息可知:

第一行BuildTarget‘Target1’表示此时正对工程1进行编译操作,第二行Compilinghello.c表示此时正在编译hello.c源程序,第三行lingking...表示此时正在连接工程项目文件,第五行Creatinghexfilefrom‘hello’说明已生成目标文件hello.hex,而最后一行说明hello.uvproj项目在编译过程中不存在错误和警告,编译连接成功。

若在编译过程中出现错误,系统会给出错误所在的行和该错误提示信息,用户应根据这些提示信息,更正程序中的错误,重新编译直至完全正确为止,至此我们所需的目标代码hello.hex文件已经生成,用户可以使用相关的软件把该程序代码下载到试验仪的单片机中,复位系统后单片机将全速运行用户的程序。

第2章

STCMonitor51仿真器使用指南

2.1安装Keil版本的仿真驱动

如上图,首先选择“Keil关联设置”页面,点击“添加MCU型号到Keil中”,在出现的如下面的目录选择窗口中,定位到Keil的安装目录(一般可能为“C:

\Keil\”),“确定”

若出现下面的提示框,表示安装成功

2.2在Keil中创建项目

若第一步的驱动安装成功,则在Keil中新建项目时选择芯片型号时,便会有“STCMCUDatabase”的选择项

然后从列表中选择响应的MCU型号(目前STC支持仿真的型号只有STC15F2K60S2),所以我们在此选择“STC15F2K60S2”的型号,点击“确定”完成选择

添加源代码文件到项目中,如下图:

保存项目,若编译无误,则可以进行下面的项目设置了

2.3项目设置,选择STC仿真驱动

如上图,首先进入到项目的设置页面,选择“Debug”设置页,第2步选择右侧的硬件仿真“Use…”,第3步,在仿真驱动下拉列表中选择“STCMonitor-51Driver”项,然后点击“Settings”按钮,进入下面的设置画面,对串口的端口号和波特率进行设置,波特率一般选择或者57600。

到此设置便完成了。

2.4创建仿真芯片

准备一颗IAP15F2K61S2或者IAP15L2K61S2的芯片,并通过下载板连接到电脑的串口,然后如上图,选择正确的芯片型号,然后进入到“Keil关联设置”页面,钩选“单CPU方案”,再选择“独立方案(不占用串口和定时器)”项,选择完成后,点击左下角的“下载/编程”按钮,当程序下载完成后仿真器便制作完成了。

2.5开始仿真

将制作完成的仿真芯片通过串口与电脑相连接。

将前面我们所创建的项目编译至没有错误后,按“Ctrl+F5”开始调试。

若硬件连接无误的话,将会进入到类似于下面的调试界面

断点设置的个数目前最大允许20个(理论上可设置任意个,但是断点设置得过多会影响调试的速度)。

第3章

必修实验

按照《汇编语言与接口技术》课程教学要求,本课程设置16学时实验课程,让让学生能够掌握51系列单片机最基础的软硬件实验,通过这些实验的练习,学生能够掌握51系列的基本软件编写,为基于51系统应用系统的开发打下基础。

必做实验是学习《汇编语言与接口技术》课程的最低要求,学生想要学好51系列单片机的开发,仅仅依靠必修实验是远远不够的,需要学生不断在编写程序,调试,由易而难逐步推进,不断学习才能掌握好。

必修实验安排及学时要求如表3.1所示。

表3.1必修实验及学时要求

序号

实验名称

计划学时

主要设备仪器

名称

每组学生数

1

应用系统开发过程及常用指令实验

2

计算机、51单片机开发板

2-3人

2

I/O实验

2

计算机、51单片机开发板

2-3人

3

中断系统应用实验

2

计算机、51单片机开发板

2-3人

4

定时器系统应用实验

2

计算机、51单片机开发板

2-3人

5

串行通信实验

2

计算机、51单片机开发板

2-3人

6

显示接口实验

2

计算机、51单片机开发板

2-3人

7

键盘接口实验

2

计算机、51单片机开发板

2-3人

8

A/D、D/A转换器接口实验

2

计算机、51单片机开发板

2-3人

一、必修实验要求

1.学生在每次上课前做好实验预习,明确每次实验的内容,做好相关知识储备;

2.上课前用汇编语言或C语言写出完整的源程序,并进行软件仿真调试;

3.实验课上在实验开发板上进行程序调试;

4.用规定的实验报告撰写实验报告并提交;

二、实验报告要求

1.实验报告应该完整,主要包括实验名称、实验目的、实验原理图、程序流程图、实验源程序、实验结果、实验的收获或实验心得、注意事项等。

2.同一小组的同学实验源程序允许相同,但其余部分不能雷同,否则视为抄袭;小组之间的源程序应不同,否则视为抄袭。

三、实验课程考核

1.实验课程成绩占总成绩的15%;取每次实验的平均成绩作为评判依据。

2.实验课程考勤为旷课的,在未主动补做的情况下,该次实验成绩评定为零分。

3.不提交实验报告者,该次实验成绩为零分。

3.1实验一应用系统开发过程及常用指令实验

一、实验目的

1.熟悉KeiluVision4单片机开发平台的使用。

2.掌握汇编语言程序的调试。

3.掌握C51源程序的调试。

4.了解单片机软件编程规范。

二、实验原理

本实验的实验原理图如图1.1、图1.2、图1.3所示,实现键S20、S21、S22、S23按下时,对应于LED4、LED5、LED6、LED7亮,松开时,LED灯熄灭。

要进行单片机应用系统软件开发,首先必须要学会阅读原理图,只有读懂原理图,了然于胸才能在编写软件时事半功倍。

从图1.1可以看出,实验板中采用的是STCIAP15F2K61S2单片机,这是宏晶公司推出的一款带仿真功能的51系列兼容单片机。

在本系统中,P0口作为地址/数据复用线,P1口作为普通I/O口,P2口作为高位地址线或普通I/O口使用,P3口主要使用第二功能。

图1.1单片机外部总线连接图

根据电路原理图绘制规则,名称相同的连接点,无论画在何处,它们是连接在一起的。

图1.2LED灯接口电路

图1.3键盘接口电路

根据上述电路图,使用汇编语言或C语言编写程序,实现:

当键S20按下时,LED0亮,键抬起时,LED0熄灭;

当键S21按下时,LED1亮,键抬起时,LED1熄灭;

当键S22按下时,LED2亮,键抬起时,LED2熄灭;

当键S23按下时,LED3亮,键抬起时,LED3熄灭;

三、实验内容

1)按照实验内容,首先需要建立本实验的工程,具体参见第1.3节步骤;注意在选择

2)根据第1.4节和第2.2~2.4节步骤,进行程序调试;

3)调试完成后,将程序生成HEX文件,使用stc-isp-15xx-v6.66软件,将程序下载到单片机中,运行,看是否满足要求。

4)本实验汇编语言参考程序如下:

ORG0000H

LJMPCODEMAIN

ORG20H

CODEMAIN:

CLRP2.6

CLRP2.7

MAIN:

MOVP0,#0FFH;关闭灯

BACK:

MOVP1,#0FFH;P1高四位作为输入口,应该先写1

;通过先读入P1口内容,保存入A寄存器,并屏蔽掉低四位记录按键状态,

;延时一段时间再次读入P1口,并和第一次读入的数据进行逻辑与运算,

;若确实有键按下,则相应口为低电平,否则应为高电平,从而确认按键

;是否按下,用于按键消除抖动

MOVA,P1

CON:

ANLA,#0F0H;读P1口,记录按键状态

ACALLDELAY1;延时

ORLA,P1;确认是否有键按下

ANLA,#0F0H;屏蔽低四位

SWAPA

ORLA,#0F0H;关闭led4-led7

MOVP0,A;送出led驱动信号

SETBP2.5;led信号锁存

ACALLDELAY2

LJMPMAIN

;******************************************************

;延时程序,通过双循环实现延时10ms

DELAY1:

MOVR3,#40;延时10ms

CON2:

MOVR4,#125

CON1:

DJNZR4,CON1

DJNZR3,CON2

RET

;********************************************************

;延时程序,通过双循环实现延时20ms

DELAY2:

MOVR5,#80;延时20ms

CON3:

MOVR6,#125

CON4:

DJNZR6,CON4

DJNZR5,CON3

RET

;******************************************************

END

5)本实验的C51语言参考程序为:

#include"STC/STC15F2K60S2.H"

#defineucharunsignedchar

sbitLEDLE=P2^5;/*led驱动锁存器锁存控制端*/

sbitDIGLE=P2^6;/*数码管位选驱动锁存器锁存控制端*/

sbitSEGLE=P2^7;/*数码管段选驱动锁存器锁存控制端*/

sbitKEY4=P1^4;/*s20键*/

sbitKEY5=P1^5;/*s21键*/

sbitKEY6=P1^6;/*s22键*/

sbitKEY7=P1^7;/*s23键*/

unsignedcharkeystate;/*键的中间状态*/

unsignedcharledstate;/*led驱动状态*/

/*延时程序,用于按键消抖及显示延时*/

voiddelay(ucharms)

{

ucharj;

while(ms--)

{

for(j=0;j<125;j++);

}

}

/*主程序*/

voidmain()

{

/*将数码管的段选和位选关闭防止干扰*/

P0=0xFF;

LEDLE=1;

LEDLE=0;

P0=0x00;

DIGLE=1;

DIGLE=0;

SEGLE=1;

SEGLE=0;

while

(1)

{

P0=0xFF;/*关闭led灯*/

P1=0xFF;/*P1口做键盘输入口,需要先写入1*/

keystate=P1;//保存P1口状态

delay(10);

ledstate=keystate|P1;//确认按键是否按下

ledstate=ledstate>>4;//按键情况移送低4位

P0=ledstate|0xf0;//输出按键情况

LEDLE=1;

delay(20);

}

}

四、思考题

3.2实验二I/O实验

一、实验目的

1.掌握51单片机基本I/O接口使用

2.掌握51单片机基本I/O接口软件编写

3.熟悉基本软件编码规范

二、实验原理

本实验的所用的原理图如图2.1和图2.2所示。

LED0控制原理已在实验3-1中分析。

在图2.2中,蜂鸣器的控制信号BELL信号连接单片机的P4.5引脚,同时连接到PNP三极管的基极上,故当信号BELL为高电平时,三极管截止,BELL不发声;当信号BELL为低电平时,三极管导通,BELL发声。

图2.2LED灯接口电路

图2.2蜂鸣器控制电路

三、实验内容

在实验中,要求设计一个应用系统,当LED0闪烁时,蜂鸣器产生声音。

1)分析本实验控制原理,画出程序流程图。

2)撰写本实验C51程序,并在实验板上进行调试

四、思考题

3.3实验三中断系统应用实验

一、实验目的

1.掌握中断的相关概念

2.掌握51单片机中断系统的构成

3.掌握51单片机中断程序设计

二、实验原理

图3.1外部中断模拟键

图3.2继电器接口电路

图3.3LED灯接口电路

图3.4蜂鸣器电路

在图3.1中,使用键INT0和INT1模拟51单片机的外部中断,该两键接在P3口的P3.2和P3.3,根据P3口使用规则,在使用作为中断输入口前,应对P3口初始化。

在图3.2中,继电器由三极管进行驱动,三极管的基极接P5.5口线,由于三极管是PNP型三极管,故当P5.5=1时,继电器不工作;当P5.5=0时,继电器工作。

其他两个电路分析见前面实验。

三、实验内容

本实验实现如下功能:

a)正常工作状态下,LED0闪烁;

b)当按下键INT0键时,LED1点亮,蜂鸣器发声,继电器动作;松开INT0键后恢复到正常工作状态

实验要求:

1)分析本实验控制原理,画出程序流程图。

2)根据实验要求,编写系统程序,并在实验板上进行调试;

四、思考题

本实验中,LED0在发生中断的情况下是点亮还是熄灭?

为什么?

请多次做实验验证你的观点。

3.4实验四定时器系统应用实验

一、实验目的

1.掌握51单片机定时器/计数器的工作原理

2.掌握51单片机定时器/计数器的控制字

3.掌握51单片机定时器/计数器的中断

二、实验原理

本实验的所用的原理图如图2.1和图2.2所示。

LED0控制原理已在实验3-1中分析。

在图2.2中,蜂鸣器的控制信号BELL信号连接单片机的P4.5引脚,同时连接到PNP三极管的基极上,故当信号BELL为高电平时,三极管截止,BELL不发声;当信号BELL为低电平时,三极管导通,BELL发声。

图2.2LED灯接口电路

图2.2蜂鸣器控制电路

三、实验内容

在实验中,要求设计一个应用系统,每间隔1秒钟,LED0闪烁一次,蜂鸣器产生声音一次,要求用定时器中断实现程序中的时间控制。

1)分析本实验控制原理,画出程序流程图。

2)根据实验要求,编写系统程序,并在实验板上进行调试;

四、思考题

长延时时间如何通过定时器解决?

3.5实验五串行通信实验

一、实验目的

1.理解串行通信的概念

2.掌握51单片机串行接口及控制

3.掌握51单片机串行通信工作方式

4.掌握51单片机串行通信编程

二、实验原理

为便于串口通信调试,stc-isp-15xx-v6.66软件打开口,选择“串口助手”选项卡,可以得到图5.1所示串口调试窗口,首选选择与单片机连接的串口,再设定二者之间的波特率、校验位及奇偶校验等信息,注意一定要保证两端相同,否则会出错。

在发送缓冲区输入数据,点击发送数据,即可向单片机发送数据。

在接收缓冲区,可以查看单片机发送来的信息。

三、实验内容

PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。

要求:

单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。

1)分析本实验控制原理,画出程序流程图。

2)根据实验要求,编写系统程序,并在实验板上进行调试;

四、思考题

3.6实验

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1