单片机实验教案.pdf
上传人:13****51 上传时间:2024-09-12 格式:PDF 页数:33 大小:9.2MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机实验教案.pdf

单片机实验教案.pdf

预览

免费试读已结束,剩余 23 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验一集成开发环境keilc51的使用与调试KeilC51uVision2是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。uVision2支持Keil的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及Object-hex转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。1.1硬件安装1、连接51CPU板,在实验箱右下角有三个插座:J1、J2、J3,用来连接51CPU板,在51CPU板上有一个小拨码开关:J18,是单片机的EA脚,是用来选择读片内还是片外ROM的,拨向左边为读片内ROM;拨向右边为读片外ROM。2、KEIL仿真器与实验箱的连接:将KEIL仿真器40芯的排线连到51CPU板的40芯插座上,仿真器的USB连接线连到微机的USB口。3、八段数码管右上角的两个拨码小开关是用来设置工作模式的,将两个拨码小开关同时拨向右边是选择51单片机工作模式,此时应拨向右边。1.2新建一个项目文件首先点击KeiluVision2,进入uVision2界面。点击工具栏Project选项中的NewProject,准备开始建立自己的项目。输入工程文件名称,并选择保存工程文件的目录。为项目文件选择一个目标器件(如ATMEL89C51),如图所示。用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。波特率为38400。。软件仿真硬件仿真选择串口选择波特率点击“文件/新建”创建源程序文件并输入程序代码。在文本框中输入原程序,如下图所示点击“文件/保存“对程序进行保存用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示在弹出的添加文件框中,选择需要添加到项目中的文件点击编译连接的图标,对项目文件进行编译点击“调试/启动/停止调试”进入调试界面在调试界面中可以对程序进行单步或者全速运行的调试连机/停止全速运行单步若要查看内存中的数据,点击“视图/存储器窗口”在此地址框中,输入不同的指令查看内部数据如果需要查看一些内部数据,在菜单栏点击[视图/存储窗口]。C:0X地址显示程序存储区数据X:0X地址显示数据存储区中数据D:0X地址显示CPU内部存储区中数据注意:仿真器使用者使用时应注意:KeilC仿真器用户程序在全速运行时,如果需暂停运行,请按实验仪键盘“RST”,此时仿真器存储器数据清零。如果您要再次运行您所编写的程序,就必须重新装载运行。1.3实验指导使用说明点击“帮助/使用手册”打开“HK系列实验指导”选择“软件实验”右边的下三角可选择实验类别或者芯片查询点击实验目的、实验电路、实验连线、实验程序可查看关于实验的具体介绍在芯片查询中,可查看常用芯片的管脚定义实验二程序设计实验C51中进行绝对地址访问:(1)在头文件中加入#include<absacc.h>(2)可以使用CBYTEXBYTEPWORDDBYTECWOREXWORDPBYTEDWORD指向内存空间的绝对地址。(具体看课本Page71~72)(3)使用指针进行绝对地址访问(具体看课本Page68~71,课后用指针对下面实验程序进行修改)例如:#defineADDRXBYTE[0x8000]定义ADDR为片外RAM地址0x8000的内容Segment=CBYTE[0x0002]将程序存储器的0002H地址的内容赋值给SegmentSegment=XBYTE[0x0002]将向片外RAM的0002H地址的内容赋值给SegmentXBYTE[0x0002]=57将57赋值给片外RAM0002H绝对地址实验1:将片外8000H中的内容拆开,高位送8001H地址低位,低位送8002H的地址低位,8001H和8002H地址单元的高位清零。#include<reg51.h>#include<absacc.h>#definea0XBYTE[0x8000]#definea1XBYTE[0x8001]#definea2XBYTE[0