打印版单片机实验指导书.docx
- 文档编号:24052135
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:42
- 大小:164.47KB
打印版单片机实验指导书.docx
《打印版单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《打印版单片机实验指导书.docx(42页珍藏版)》请在冰豆网上搜索。
打印版单片机实验指导书
《单片机原理与应用》实验指导书
(专科嵌入方向)
嵌入教研室
辽宁工业大学
2009年7月
前言
由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。
由于目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机,所以本实验指导书为学习MCS-51单片机的软件学院嵌入方向的学生,配合《单片机原理与应用》课程的教学,结合一种单片机仿真开发型实验系统编写了这本实验指导书。
《单片机原理与应用》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。
本实验指导书提供12个实验的指导性材料,有些实验还有一些有一定难度的项目,可以根据专业的不同、课时的安排和教学要求进行取舍。
为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。
由于时间紧迫,需要赶课程进度与实验时间的同步,加上编者学识有限,如有不妥之处,欢迎读者批评指正。
编者DYB
2009.7编写
实验须知
1.实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。
2.各种电源的电压和极性不能接错,严禁带电接线和接插元器件。
通电前须经过指导教师检查认可后方能通电。
3.不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。
4.严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。
5.实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。
6.在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。
7.实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。
8.按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内缴上实验报告。
9.凡实验或实验报告未能按规定完成的学员,不能参加本课程的考试或考查。
第一章伟福仿真器系统概述
本仿真器系统由仿真主机+仿真头、MULT1A用户板、实验板、开关电源等组成。
本系统的特点是:
1.主机+仿真头的组合,通过更换不同型号的仿真头即可对各种不同类型的单片机进行仿真,是一种灵活的多CPU仿真系统。
采用主机+POD组合的方式,更换POD,可以对各种CPU进行仿真。
本仿真器主机型号为E2000/S,仿真头型号为POD8X5X(可仿真51系列8X5X单片机)。
2.双平台,具有DOS版本和WINDOWS版本,后者功能强大,中/英文界面任选,用户源程序的大小不再有任何限制,支持ASM,c,PLM语言混合编程,具有项目管理功能,为用户的资源共享、课题重组提供强有力的手段。
支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。
有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。
本操作系统一经推出,立即被广大用户所喜爱。
3.双工作模式
1.软件模拟仿真(不要仿真器也能模拟仿真)。
2.硬件仿真。
4.双CPU结构,100%不占用户资源。
全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。
5.双集成环境
编辑、编译、下载、调试全部集中在一个环境下。
多种仿真器,多类CPU仿真全部集成在一个环境下。
可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。
为了跟上形势,现在很多工程师需要面对和掌握不同的项目管理器、编辑器、编译器。
他们由不同的厂家开发,相互不兼容,使用不同的界面,学习使用都很吃力。
伟福WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供千个与第三方编译器的接口。
由于风格统一,大大节省了您的精力和时间。
6.强大的逻辑分析仪综合调试功能。
逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,并实时在线调试分析,采集深度32K(E2000/L),最高时基采样频率达20MHz,40路波形,可精确实时反映用户程序运行时的历史时间。
系统在使用逻辑分析仪时,除普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点如:
数据、地址、外部控制信号、CPU内部控制信号、程序区间断点等。
由于逻辑仪可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。
随着科学技术的发展,单片机通讯方面的运用越来越多。
在通讯功能的调试时,如果通讯不正常,查找原因是非常耗时和低效的,您很难搞清楚问题到底在什么地方,是波特率不对,是硬件信道有问题,是通讯协仪有问题,是发方出错还是收方出错。
有了逻辑仪,情况则完全不一样,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在,从而极大地方便了调试。
7.强大的追踪器功能
追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。
追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。
屏幕窗口显示波形图最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。
总线跟踪可以跟踪程序的运行轨迹。
可以统计软件运行时间。
第二章开发环境简介
双击桌面上的WAVE图标或从开始/程序/WAVEFORWINDOWS/WAVE进入本开发环境,其界面及主要功能如图2-1中所注。
图2-1WAVE界面
1.仿真器设置窗口
如图2-2所示,在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,并注意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟器”前的选择。
图2-2仿真器设置窗口
2.文件窗口
如图2-3,可在此窗口下进行包括新建、打开、保存等文件操作。
图2-3文件窗口
3.编译文件窗口
如图2-4,在此窗口下可将源文件编译成目标文件。
图2-4编译文件窗口
4.执行窗口
如图2-5,在此窗口下,可用全速、跟踪、断点等各种方式运行程序
图2-5执行窗口
5.窗口窗口
如图2-6-1,在此窗口下,可以观察各种窗口信息,其中最常用到的是CPU窗口和数据窗口。
图2-6-1窗口
a.CPU窗口
通过CPU窗口可以看到你编译正确的机器码及反汇编程序,可以让你更清楚地了解程序执行过程。
CPU窗口中还有SFR窗口和位窗口,让你了解程序执行过程中寄存器内容的变化。
图2-6-2CPU窗口
b.数据窗口
对51系列CPU,数据窗口有:
DATA内部数据窗口;CODE程序数据窗口;XDATA外部数据窗口;PDATA外部数据窗口(页方式)
图2-6-3数据窗口
图2-6-4DATA(内部数据窗口)
图2-6-5CODE(程序数据窗口)
图2-6-6XDATA(外部数据窗口)
图2-6-7PDATA(页方式外部数据窗口)
3程序调试步骤
第一步:
建立你的新程序
选择菜单[文件|新建文件]功能
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入程序。
第二步:
保存你的程序
选择菜单[文件|保存文件]或[文件|另存为]功能
给出文件所要保存的位置,例如:
C:
\WAVE6000\SAMPLES文件夹,再给出文件名MY1.ASM。
保存文件。
文件保存后,程序窗口上文件名变成了:
C:
\WAVE6000\SAMPLES\MY1.ASM
注意:
必须在输入文件名的后缀“.ASM”,否则无法调试!
!
!
第三步:
设置
选择菜单[设置|仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对话框。
在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。
在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。
按“好”键确定。
当仿真器设置好后,可再次保存项目。
第四步:
编译你的程序
选择菜单[项目|编译]功能或按编译快捷图标或F9键,编译你的项目。
在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。
纠正错误后,再次编译直到没有错误。
在编译之前,软件会自动将项目和程序存盘。
在编译没有错误后,就可调试程序了。
第五步:
运行程序
1.程序首次运行一定要选择单步运行。
选择[执行|跟踪]或[执行|单步]功能,也可以按跟踪快捷图标,还可以按F7键或F8键进行单步跟踪调试程序。
单步或跟踪就一条指令一条指令地执行程序。
若有子程序调用,想进入到子程序中去,就按跟踪键执行。
若想跳过子程序,则选择单步键执行。
2.选择菜单[执行|执行到光标处]功能或F4键或弹出菜单的“执行到光标处”功能。
程序全速执行到光标所在行。
3.全速运行。
[执行|全速运行]或Ctrl+F9,也可以按快捷键。
只有连接硬件后才可以全速执行。
如果调试中断程序时可以在中断服务程序中设置断点。
将光标移到源程序窗口的左边灰色区,光标变成“手指圈”,单击左键设置断点,也可以用弹出菜单的“设置/取消断点”功能或用Ctrl+F8组合键设置断点。
如果断点有效图标为“红圆绿勾”,无效断点的图标为“红圆黄叉”。
断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时你可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。
在单步或跟踪执行时,每执行一条指令,要观察各个相关窗口内容的变化,看是否执行正确。
相关窗口:
REG:
工作寄存器窗口,SFR:
特殊功能寄存器,
DATA:
片内RAM窗口,XDATA:
片外RAM窗口,
CODE:
程序存储器窗口。
不过到此为止,我们都是用软件模拟方式来调试程序。
如果想要用仿真器硬
件仿真。
就要连接上仿真器。
第六步:
连接硬件仿真
将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。
设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。
将其前面框内的勾去掉。
在通信设置中选择正确的串行口。
按“好”确认。
如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。
表明仿真器初始化正确。
如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器、仿真器的选择是否有错,硬件接线是否有错,检查纠正错误后,再次确认。
直至显示如图的硬件仿真确认对话框。
全速运行程序,观察运行结果。
到此为止,你已经学会使用伟福的仿真环境了。
在使用过程中,你会逐步提高自己的技能。
第三章实验指导内容
实验一汇编语言程序设计与调试
一、实验目的
1学会安装WAVE6000开发环境,和设置。
2使用WAVE编程环境,能够建立汇编文件并进行调试、保存。
3熟悉掌握51指令系统,掌握51的汇编语言的其本设计方法。
4练习综合程序的设计的编制与调试。
二、实验设备
1WAVE编程软件一套。
2微机一台。
三、实验内容
1WAVE编程环境的熟悉,包括新建项目文件、汇编文件、调试、编译和保存5-7种文件。
2对以下程序按要求进行调试。
例程1
1)运行WAVE6000.EXE文件。
按照提示完成软件安装。
2)新建文件。
3)键盘输入下列程序。
必须在英文环境下输入,否则会产生很多错误。
因为本系统只识别英文字体的字符和半角符号。
(在横线上填写指令功能)
该程序的功能是“将片外RAM0088H单元中的数34H传送到片外RAM1818H”。
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVR0,#88H;___________________
MOVP2,#00H;___________________
MOVXA,@R0;___________________
MOVDPTR,#1818H;___________________
MOVX@DPTR,A;___________________
SJMP$
END
4)保存文件并建立项目。
5)编译程序。
看“信息窗口”是否提示有错。
如果有错,修改后再编译,知道无错误。
6)打开“XDATA窗口”,在“XDATA窗口”里用鼠标双击0088H,弹出修改窗体,填入数据,如:
34H。
7)打开SFR窗口,按F7单步运行程序,观察窗口内数据的变化。
8)在“XDATA窗口”里观察1818H单元,如果其内容是34H,则程序正确。
调试结束。
否则程序有逻辑错误,复位程序仔细查找并改正。
9)按照上面1到8的方法调试下列程序。
说出该程序的功能。
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVSP,#70H;___________________
PUSH30H;___________________
PUSH40H;___________________
POP30H;___________________
POP40H;___________________
SJMP$
END
在“DATA窗口”里30H处输入11H,在40H里输入0AAH。
例程2:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVR5,#0FFH
LOOP2:
MOVR4,#0FFH
LOOP1:
NOP
NOP
DJNZR4,LOOP1
DJNZR5,LOOP2
SJMP$
END
例3:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOV20H,#01H
MOV21H,#02H
MOV22H,#03H
MOV23H,#04H
MOV24H,#05H
MOV25H,#06H
MOV26H,#07H
MOV27H,#08H
MOVR0,#20H
MOVR7,#08H
MOVA,@R0
DECR7
LOOP:
INCR0
MOV2AH,@R0
CJNEA,2AH,CHK
CHK:
JNCLOOP1
MOVA,@R0
LOOP1:
DJNZR7,LOOP
MOV2BH,A
HERE:
AJMPHERE
END
四、实验报告的要求
1在实验报告中,将上面的例程加以注释说明。
2写明建立各种51汇编文件的过程。
实验二常用电子元件使用与识别
一、实验目的
1了解常用电子元件的种类和工作原理。
2掌握常在应用电路中选用电子元件方法和标准。
3能够使用相关实验工具完成对元件的测量
4了解实验电路板的设计及其使用
二、实验设备
1常用电子元件一套。
2实验工具一套。
三、实验内容
1、掌握电阻、电容、二极管、三极管等常用电子元件的工作原理。
2、了解相关元件的电力参数使用。
3、掌握选择电子元件的标准。
4、熟练使用万用表测量电流、电压、电容、阻抗、三极管放大系数等参数。
5、认识常用工具并能熟练使用。
6、掌握实验板的连接过程。
四、实验报告的要求
1独立完成设计内容,按要求完成实验报告。
2写明电阻、电容、三极管电子元件的电力参数值。
3说明万用表使用方法和测量步骤。
4说明实验电路板的连接过程。
实验三学习顺序程序设计与调试
一、实验目的
1.熟悉WAVE6000开发环境.
2.通过调试程序,理解和掌握顺序程序和分支程序。
二、实验设备
PC机一台,WAVE6000软件。
三、实验内容
1.调试下列顺序程序。
(在横线上填写指令功能)
程序功能是:
X、Y是两个小于10的整数分别存于片内30H、31H单元,求两数平方和并将结果存于32H中。
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVA,30H;___________________
MOVB,A;___________________
MULAB;___________________
MOVR1,A;___________________
MOVA,31H;___________________
MOVB,A;___________________
MULAB;___________________
ADDA,R1;___________________
MOV32H,A;___________________
SJMP$;___________________
END
将表内数据填入“DATA窗口”,记录运行结果。
30H
31H
结果
2
3
8
5
2.试编程实现教材P63例4-2,RAM40H和41H,取值如下表并记录运行结果。
40H
41H
结果
42
53
28
65
3.试编程实现教材P64例4-3,RAM20H的二进制数取值如下表并记录运行结果
20H
结果
156
95
思考题:
.两个2位BCD码数相加,设被加数和加数分别存于片内RAM的40H、41H单元中,和数存于50H,如何编写程序。
四、实验报告的要求
1独立完成设计内容,按要求完成实验报告。
2写明注释和实验表格并记录实验结果。
3对于思考题,只需写明解题思路即可。
实验四学习分支程序设计与调试
一、实验目的
1.散转移程序的调试方法。
2.理解JMP@A+DPTR。
二、实验设备
PC机一台,WAVE6000软件。
三、实验内容
1.调试下列分支程序。
(在横线上填写指令功能)
程序功能:
设X存在30H单元中,根据下式:
当X>0时,Y=X+2;当X=0时,Y=100;当X<0时,Y=0;求出Y值并将结果存于31H。
MOVA,30H;________________
JBACC.7,NEG;________________
JZZERO;________________
ADDA,#20H;________________
AJMPSAVE;________________
ZERO:
MOVA,#64H;________________
AJMPSAVE;________________
NEG:
MOVA,#00H;________________
SAVE:
MOV31H,A;________________
SJMP$
END
将表内数据填入“DATA窗口”,记录运行结果。
X(30H)
Y(31H)
59
0
-3
注:
该程序有错误。
单步运行程序时仔细观察每条指令的执行结果,从而找出错误,修改后再单步运行,直到结果正确。
2.调试下列顺序程序。
(在横线上填写指令功能)
程序功能:
根据R0的值转向7个分支程序。
条件:
0≤R0<10,转向SUB0,返回R0=0;10≤R0<20,转向SUB1,返回R0=1;20≤R0<30,转向SUB2,返回R0=2;30≤R0<40,转向SUB3,返回R0=3;40≤R0<50,转向SUB4,返回R0=4;50≤R0<60,转向SUB5,返回R0=5;60≤R0<70,转向SUB6,返回R0=6。
MOVDPTR,#TAB;_________________
MOVA,R0;_________________
MOVB,#10;_________________
DIVAB;_________________
CLRC;_________________
RLCA;_________________
JMP@A+DPTR;_________________
TAB:
AJMPSUB0
AJMPSUB1
AJMPSUB2
AJMPSUB3
AJMPSUB4
AJMPSUB5
AJMPSUB6
SUB0:
MOVR0,#0
SUB1:
MOVR0,#1
SUB2:
MOVR0,#2
SUB3:
MOVR0,#3
SUB4:
MOVR0,#4
SUB5:
MOVR0,#5
SUB6:
MOVR0,#6
SJMP$
注:
该程序有逻辑错误,需要改正。
将表内数据填入R0,记录运行结果。
R0
7
12
45
67
结果
3.如果将程序的AJMP指令换成LJMP指令,程序将怎样修改?
4试编程实现教材p65例4-4
四、实验报告的要求
1独立完成设计内容,按要求完成实验报告。
2写明注释和实验表格并记录实验结果。
3对于实验内容3,只需写明修改内容即可。
实验五循环程序设计
一、实验目的
1.学习循环程序结果。
2.学习循环程序的调试方法。
二、实验设备
PC机一台,WAVE6000软件。
三、实验内容
1.调试下列顺序程序。
程序功能:
实现循环,循环4次.
写出每次循环的执行结果:
____、____、____、____。
2.调试下列顺序程序。
程序功能:
将片内RAM地址从50H到59H中的10个无符号的数按从小到大的顺序依次从50H开始排列。
FLAGBIT00H
ORG0000H
AJMPSTART
ORG0030H
START:
CLRFLAG
MOVR1,#09H
MOVR0,#50H
MOVA,@R0
LOOP:
INCR0
MOVR2,A
SUBBA,@R0
MOVA,R2
JCNEXT
SETBFLAG
XCHA,@R0
DECR0
XCHA,@R0
INCR0
NEXT:
MOVA,@R0
DJNZR1,LOOP
JBFLAG,START
SJMP$
END
从50H到59H数据:
53H、34H、0H、90H、3、FEH、3AH、5DH、FFH、2。
写出执行结果:
____、____、____、____、____、____、____、____、____、____。
3试编程实现教材p69例4-10,并编程定时10ms和1s的延时程序.
四、实验报告的要求
1独立完成设计内容,按要求完成实验报告。
2记录实验结果
3编写定时程序
实验六练习编调查表程序
一、实验目的
1.练习
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 打印 单片机 实验 指导书