实验1__单片机开发系统的使用
- 格式:doc
- 大小:2.36 MB
- 文档页数:15
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。
2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。
(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
(四)实验设备PC机,Keil C51集成开发环境。
(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。
其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。
下图中的寄存器窗口中可以显示计算结果为0x13ba。
调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。
(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。
第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。
(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。
实验一Keil C51集成开发环境的使用练习、仿真与调试一、实验目的1、熟悉Keil C51集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP Main;END2、进行Keil C51集成开发环境的仿真调试练习。
然后按照以下内容建立文件并编译仿真调试。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
实验报告纸(院、系) 自动化专业班组单片机与嵌入式系统课实验一Keil集成开发环境的使用一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验内容学习如何使用Keil编译器编写单片机程序并调试三、实验设备PC机四、实验步骤1.新建文件夹2。
新建工程3.配置工程(1)按以下内容新建experiment_1.asm文件ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#60 ;给堆栈指针赋初值LIGHT:CPL P1。
0CPL P1.1CPL P1.2ACALL DELAYAJMP LIGHTDELAY:MOV R7,#10HDELAY0:MOV R6,#7FHDELAY1:MOV R5,#7FHDELAY2:DJNZ R5,DELAY2DJNZ R6,DELAY1DJNZ R7,DELAY0RETEND(2)在工程窗口的Source Group 1处单击鼠标右键弹出菜单,点其中的选项Add Files to Group ‘Source Group 1’;添加文件。
(3)在Project菜单的下拉选项中,单击Option for Target ‘Target 1’.在弹出的窗口中要完成以下设置:A.选择单片机芯片。
不需要向工程添加启动代码;B. 晶振频率的设置C. Output标签下的Create HEX File 前小框中要打勾D.Debug标签选择Use Simulator(软件模拟)4.编译工程5。
查看结果(要求截图写进实验报告)(1)进入调试状态(2)选择单步方式运行,观察Port 1窗口状态变化(3)在Project Workspace观察R5、R6、R7、SP等的变化进入调试时的初始界面每一步的R5、R6、R7、SP、port 1变化如上面图所示,当运行到DELAY函数时,程序在里面循环实现延时功能.(4)在观察界面的Address栏分别输入C:0H 和C:0100h观察ROM空间的存储情况;输入d:90h观察port 1。
《单片机原理及应用》软件开发工具Keil与虚拟仿真平台Proteus的使用实验实验目的(1)了解Keil和Proteus软件的基本特点和功能。
(2)学会使用Keil软件进行单片机中断应用和定时器/计数器应用的编程。
(3)学会使用Proteus软件进行单片机中断应用和定时器/计数器应用的原理图的绘制和程序实现。
(4)学会使用Keil和Proteus两种软件的联调。
实验指导一、Keil C51的使用1.创建项目编写一个新的应用程序前,首先要建立项目(Project)。
(1)在编辑界面下,单击菜单栏中的[Project],出现下拉菜单,再点击选择中的“New Project”。
(2)单击“New Project…”选项后,就会弹出“Create New Project”窗口。
在“文件名(N)”中输入一个项目的名称,保存后的文件扩展名为“.uvx”,即项目文件的扩展名,以后可直接单击此文件就可打开先前建立的项目。
在“文件名(N)”窗口中输入新建项目文件的名字后,在“保存在(I)”下拉框中选择项目的保存目录,单击“保存(S)”即可。
(3)选择单片机,单击“保存(S)”后,会弹出“Select Device for Target”(选择单片机)窗口,按照提示选择相应的单片机。
搜索“AT89C52”并选择。
(4)单击“确定”按钮后,会出现对话框。
如果需要复制启动代码到新建的项目,选择单击“是”。
如选择单击“否”,启动代码项“STARTUP. A51”不会出现,这时新的项目已经创建完毕。
2.新建文件新的项目文件创建完成后,就需要将用户源程序文件添加到这个项目中,添加用户程序文件通常有两种方式:一种是新建文件,另一种是添加已创建的文件。
(1)单击快捷按钮,这时会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源代码。
(2)单击中快捷按钮,保存用户程序文件,这时会弹出窗口“Save As”的对话框,在“保存在(I)”下拉框中选择新文件的保存目录,这样就将这个新文件与刚才建立的项目保存在同一个文件夹下,然后在“文件名(N)”窗口中输入新建文件的名字,如果使用C51语言编程,则文件名的扩展名应为“.c”。
实验一:MCS-51单片机指令分析第一部分:位操作指令练习1、实验目的:学习并掌握MCS-51单片机程序开发系统操作方法,学习掌握Medwin仿真环境及其使用方法。
2、实验内容:万利仿真器开发环境Medwin使用练习。
3、实验仪器: PC机一台,万利仿真器Medwin开发环境。
4、实验步骤:第1步:实验准备:(1) 安装Medwin开发环境,并设置其相应的驱动。
(2) 打开Medwin开发环境,连接状态标志为绿色,说明开发环境与仿真器连接成功。
如未成功,检查连接、驱动程序设置等是否正确。
第2步:程序输入:首先在Medwin下新建一个项目,并新建一后缀名为.ASM的文件(.ASM表示汇编源文件),并添加入之前建立的项目中,在此文件中按照汇编语言语句规定的格式输入程序(只输源程序部分,具体程序参考下面的程序)。
第3步:程序运行和调试:(1) 程序编译输入源程序完毕后,可在“项目管理”窗口中点击“编译/汇编”选项,如果程序没有输入错误、语法错误等,则编译能够正确完成,在下面的消息窗口中,产生编译成功信息。
如果程序有输入错误,语法错误等,则消息窗口中会指出错误所在行及错误类型,此时必须返回源程序的错误行重新修改程序,修改完毕后,重新执行“编译/汇编”,直到程序没有输入错误、语法错误为止。
(2)产生代码并装入编译成功后,在“项目管理”窗口中点击“产生代码并装入”选项,对编译无误后产生的.OBJ文件进行连接,并把代码装入仿真器,代码装入仿真器后,才可以对程序实行仿真。
此时,可以在反汇编窗口中查看编译产生的机器码。
(3)程序的全速、单步执行在“调试”窗口中点击“全速”或者“单步”选项,完成程序的仿真运行,“全速”运行表示程序从头至尾一次运行结束,只能看到程序运行后所有寄存器的最终状态结果;“单步”运行表示程序按照指令逐行运行,此时可以查看每行指令运行后的寄存器的状态结果。
(4)查看单片机各种资源状态及内容在“察看”窗口中可以查看单片机内部及程序变量等各种资源,在单步或程序断点运行中可以实时观察单片机内部特殊功能寄存器、内部外部RAM、程序变量等内容,可以很方便的观测程序的运行状况。
实验报告实验课程:单片机原理及应用班级:12自动化2班学号:姓名:教师:张玲成绩:实验日期:年月日实验名称:实验1——计数显示器一、实验目的:学习Proteus 软件的使用,掌握单片机原理图的绘图方法。
二、实验内容:1、绘制“计数显示器”电路原理图;2、利用提供的hex文件验证此电路的运行效果。
三、实验要求:提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。
参考电路原理图如下:元件类别电路符号元件名称Microprocessor ICs “U1”80C51Miscellaneous “X1”/12MHz CRYSTALCapacitors “C1”~“C2”/1nF CAPCapacitors “C3”/22μF CAP-ELECResistors Packs “RP1”/7-100ΩRESPACK-7Resistors “R1”/100ΩRESOptoelectronics “LED1”~“LED2”7SEG-COM-CAT-GRNSwitches & Relays “BUT”BUTTON1、编程思路及C51源程序:2、电路原理图:3、仿真运行效果展示:4、实验小结:熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法,学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。
实验名称:实验2——LED指示灯循环控制一、实验目的熟悉μVision3编译软件、掌握C51编程与调试方法。
二、实验内容1、按照教材P243的图A.34,绘制实验二电路原理图;2、编写C51程序,实现8个LED灯依次点亮的功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;3、观察仿真结果,完成实验报告。
北京XXXX学院实验报告课程:单片机原理与应用班级:XXXX 姓名:XXXX 学号:XXXXXXXX 成绩:指导教师:XXX 实验日期及时间:2017.4.4 10:00-13:00 座位号:04 必修/选修:必修实验序号:实验一实验名称:单片机开发环境及基本IO设备操作一、实验目的1.掌握单片机嵌入式开发环境的使用2.熟悉开发板硬件实验环境及资源3.掌握通用数字I/O端口的输入输出设置和应用二、实验内容与要求功能:按键控制LED灯。
利用按键key1和key2控制LED灯闪烁点亮。
Key1按下时单号灯闪烁,Key2按下时双号灯闪烁。
实验要求:1.在ICCAVR中编写程序;2.下载到实验板中进行调试;3.实验成功后进行课堂验收。
三、实验方案设计1. 实验的方案的论述和分析本次实验所需的器件:电源、ATmega16单片机、LED灯、按键开关、电阻。
把PA0配置成输出,PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
与PA4、PA5相连的是两个按键开关key1和key2。
在按键检测时,当PA0输出低电平时,读PA4、PA5引脚寄存器,若PA4引脚为低电平说明Key1被按下,若PA5引脚为低电平说明Key2被按下。
把PD口配置为输出,控制8个LED灯。
2.硬件电路原理图2.软件流程图、重要数据结构、重要控制参数设计等(1)软件流程图:(2)重要数据结构及重要控制参数设计:初始化配置:DDRA配置为0X0f,PA0为输出。
PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
按键扫描部分:通过PINA和0B00110000的按位读取PA4和PA5口是否按下。
当PA4按下时key_value==2,当PA5按下时key_value==1,并分别执行相应语句。
四、实验结果Key1按下时单号灯闪烁Key2被按下时双号灯闪烁五、实验分析及体会1.实验过程中遇到的主要问题、(拟)解决方法。
由于是第一次做单片机实验,对实验过程和代码编写不是很熟悉。
51单片机实验指导书
一、Keil C51 集成开发环境介绍
1、打开计算机,运行Keil C51 集成开发环境。
图1-1 第一次启动Keil C
图1-2 Keil C μVision2 操作界面
Keil C 软件菜单命令非常丰富,常用的菜单命令都有对应的快捷键和快捷图标,自己可以打开相应的菜单,熟悉各种命令。
2.选择“Project”-“New Project…”建立新的工程文件(注意工程文件放置的文件夹),输入文件名,选择“保存”。
图1-3 创建一个新工程
图1-4 为新工程命名并保存
3.工程保存后会弹出来一个器件选择窗口,这里需要选择单片机芯片类型。
器件选择的目的是告诉μVision2 最终使用的80C51 芯片的型号是哪一个公司的哪一个型号,因为不同型号的51 芯片内部的资源是不同的。
图1-5 器件选择窗口
如果不知道自己需要使用什么型号的芯片,暂时选择“Atmel”下的“AT89C51”,然后在接下来的窗口中,选择“是”,加载芯片基本参数。
图1-6 选择AT89C51 芯片
4.选择“File”-“New”或者点击新文件快捷图标,会打开一个文本编辑器窗口。
输入下列数据传送的程序,然后选择“File”-“Save…”,注意保存的时候给文件起名字以后,加个文件名后缀,Keil C 支持汇编语言及C 语言编程,它是依靠文件名后缀来判断文件是汇编语言还是C 语言格式的,如果是汇编语言,后缀为“.asm”,C 语言格式的,后缀为“.c”。
我们根据实验要求选择保存为汇编语言格式或C 语言格式。
注意此时程序中的一些代码和寄存器将会自动蓝色显示,方便观察。
图1-7 创建一个新文件
图1-8 输入程序并保存文件
5.选择“Project”-“Targets,Groups,Files…”,选择“Groups/Add Files”标签,首先点击下边窗口中的“Source Group 1”,然后选择下边的“Add Files to Group…”,在接下来的窗口中,首先选择你需要加入的文件的后缀名(默认是.c,我们可选择“Asm Sourcefile,即后缀为.asm”)。
图1-9 准备添加一个文件进入工程项目(1)
图1-10 准备添加一个文件进入工程项目(2)
图1-11 选择准备添加的文件类型
然后选择对应的文件,选择“Add”,然后选择“Close”,最后选择“确定”,完成文件的添加工作。
图1-11 选择准备添加的文件名称
工程项目添加结束后,可以用鼠标点击工程项目窗口中的“+”,展开工程项目内部的文件,从中可以看到添加进来的文件名称。
图1-12 添加文件结束后的工程项目
6.然后选择“Project”-“Options for Target …Target1‟”,对工程项目进行设置,选取其中的“Debug”标签,选中“Use Simulator”,然后点击“确定”,就可以使用软件仿真了。
图1-13 准备对工程项目进行设置
图1-14 选取软件仿真模式
选择“Project”-“Build target”或者直接按下F7,对文件进行编译。
编译的结果会出现在屏幕下方的输出窗口,其中会提示编译中出现的问题。
如果发现问题,双击错误提示,光标会跳到出错的源程序处等待修改,直至程序没有错误,编译才能通过。
图1-15 对源程序文件编译之后的窗口
7.按下“CTRL+F5”,进入Debug(调试)状态,在窗口的左边会出现各个寄存器的状态(内容)。
选择“View”-“Disassembly Window”,可以打开反编译窗口,其中显示了源程序中每条指令在程序存储区中的地址以及对应的机器码。
下F11 单步执行程序,观察寄存器状态,填写下列表格中地址和有关单元的内容。
图1-16 进入Debug 状态
图1-17 打开反编译窗口
图1-18 将窗口横向并排分割
并排分割的效果
打开存储器观察窗口
显示数据存储器内容
显示数据存储器内容
显示程序存储器内容
8.对于查询内存地址中的数据,可双击存储器窗口中的address 后的文本框,并在其中输入待查看的地址,如D:0030H,表示查看数据存储器中30H 单元内容,C:0030H 则表示查看程序存储器中30H 单元内容,X:2000H,表示查看外部存储器2000H单元内容。
实验1 单片机开发系统的使用
一、实验目的
熟悉MCS-51指令系统,掌握数据排序程序的设计方法。
二、实验内容
1.编写并调试一个排序程序,其功能为用冒泡法(参见单片机教材72页)将RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
程序框图如下:
1.满足程序要求,在CPU内部的RAM 50H~5AH中放入不等的数据。
六、思考题
修改程序S3,将50H~5AH中内容按从大到小排列,并且记录下程序运行前后的结果,分析是否正确。
七、参考程序
ORG 0300H
QUE: MOV R3,#50H
QUE1: MOV A,R3 ;指针送R0
MOV R0,A
MOV R7,#0AH ;长度送R7
CLR 00H ;标志位为0
MOV A,@R0
QL2: INC R0
MOV R2,A
CLR C
MOV 22H,@R0 ;取后数
CJNE A,22H,QL3 ;相等吗?
SETB C
QL3: MOV A,R2
JC QL1 ;大于则交换位置
SETB 00H
XCH A,@R0
DEC R0
XCH A,@R0
INC R0 ;大于则交换位置
QL1: MOV A,@R0
DJNZ R7,QL2
JB 00H,QUE1 ;一次循环中有交换继续
SJMP $ ;无交换退出
END。