MCS51指导书.docx
- 文档编号:10197295
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:41
- 大小:900KB
MCS51指导书.docx
《MCS51指导书.docx》由会员分享,可在线阅读,更多相关《MCS51指导书.docx(41页珍藏版)》请在冰豆网上搜索。
MCS51指导书
MCS-51单片机实验指导书
(测控及自动化专业)
第一章实验设备及仿真环境
§1.1实验设备简介:
本实验所用到的主要设备是DVCC-5286JH单片机仿真实验系统,它由仿真技术及模块化实验电路有机结合而成,可以支持MCS-51、MCS-96系列单片机原理与应用及8086/8088十六微机原理和接口技术等课程的教学实验。
通过拨码开关的转换,可以很方便的进行各个仿真实验系统的转换。
§1.2系统MCS-51仿真系统的工作模式及组成
1、工作模式:
(仿真工作模式)
单片机系统一般由CPU、程序存储区、外部数据存储区、其他外围I/O接口等部分组成,我们应用的实验系统按仿真模式划分为:
内程序内数据模式和内程序外数据两种模式。
2、系统组成:
工作模式不同,其组成不同:
●内程序内数据模式系统组成:
CPU及其总线扩展区、程序存储区、外部数据存储区、8155接口(键盘和六位数码管显示器)、8255接口(EPROM烧录及打印机)、通用外围电路。
●内程序外数据模式系统组成:
CPU及其总线扩展区、程序存储区、74LS138扩展的外围接口电路地址模块及通用外围电路。
3、各部分地址范围通用外围电路:
●程序存储区地址范围:
0000h——0FEFFh
●外部数据存储区地址范围:
0000h——0FEFFh(内程序内数据模式)
●74LS138译码地址及连线图:
(内程序外数据模式)
地址:
Y0:
8000——8FFFh
Y1:
9000——9FFFh
Y2:
A000——AFFFh
Y3:
B000——BFFFh
Y4:
C000——CFFFh
Y5:
D000——DFFFh
Y6:
E000——EFFFh
Y7:
F000——FFFFh
图1——1
●8155、8255接口地址及连线图:
(系统内部给定,占用存储区一页地址,内程序内数据工作模式有效,字形口通过反相驱动器接共阴极数码管)
8155控制口FF20h8255控制口FF2Bh
8155A口(字位口)FF21h8255A口FF28h
8155B口(字型口)FF22h8255B口FF29h
8155C口(键扫口)FF23h8255C口FF2Ah
图1——2
●逻辑电平开关电路
图1——3
●单脉冲发生电路
图1——4
●发光二极管显示电路
图1——5
●时钟电路
图1——6
●继电器及驱动电路
图1——7
●直流电机及驱动电路
图1——8
●步进电机及驱动电路
图1——9
●串行显示电路
图1——10
§1.4系统硬件连线图
§1.3仿真环境
DVCC微机实验系统软件是在windows界面上运行的综合调试软件,采用窗口提示直接明了,对于习惯在windows界面上工作的用户运用起来相当方便。
在桌面上点击DVCC8051快捷方式图标,即可运行本软件。
系统菜单分为三类:
文件编辑部分菜单、调试部分菜单、辅助部分菜单。
系统工具栏分为三类:
编辑工具栏、调试工具栏、实验指南工具栏
下图为本软件的主界面:
下面就各菜单功能介绍如下:
1、文件、编辑、查找菜单
我们所书写的完成某种特定功能的汇编语言指令,是以文件的方式被执行操作的,这一文件被称为源文件,它以ASM为文件的后缀,并且在连接时还要产生几个其他的相关文件,因此本软件提供了文件、编辑、查找等菜单项,它们位于文件编辑部分菜单栏,它们的使用与其他软件基本一致。
特殊说明:
要求汇编源程序的路径不得含有汉字,文件名必须是英文或数字组成不得含有特殊字符,而且英文和数字的字数不得超过八个。
在编辑工具栏对应有新建和打开两个快捷图标,新建时,系统打开一个文件名为新文件0的源文件编辑窗口,必须按照以上的规定,打开文件菜单将其另存为一个符合上述规定的文件名,并以ASM为文件的后缀;打开文件时一定要确认文件存储路径和文件名要符合上述规定,否则要将文件名改成符合规定的路径和文件名;编辑文件时,助记符使用的字母和符号用在英文输入方式下输入。
2、编译菜单如下图示:
编译菜单可对当前正在编辑窗口的文档进行编译连接与装载(系统成功联机后),并出现相应的编译、连接的信息窗口,根据信息窗口提示的内容进行源程序检查与修改。
●编译
编译当前文本,生成后缀为.OBJ的中间文本。
在编译时,如果你所编辑的文件符合汇编语言的语法规则,系统在弹出的MESSAGE对话框中提示没有发现错误,否则提示相应的错误信息。
必须改正语法错误并编译通过后才能进行下一步的操作。
编译操作对应调试工具栏中的编译快捷方式图标。
说明:
编译通过的源文件并不能保证其执行结果的正确,只能说明其符合汇编语言语法规则。
●编译连接
编译并连接当前文本生成.ABS文件。
编译连接是编译和连接的命令集合。
其作用是:
将所编辑文件中的指令助记符编译成机器码,并形成一个下传到下位机实验系统中的特定文件,这个文件是以ABS为扩展名的文件。
说明:
进行这一操作时,必须要保证源文件编译通过,否则系统会提示相关的错误信息。
●编译连接传送
将编译连接完成的文件通过串行通讯方式下传至实验系统。
对应调试工具栏中的调试快捷方式图标。
说明:
进行这一操作时,必须要保证源文件编译连接通过,否则系统会提示相关的错误信息。
3、选项菜单如下图示:
通过本菜单可选择各工具栏状态,同时系统设置选项可选择四种仿真工作模式,在选项下拉菜单中选择系统设置选项,下图为仿真状态选项窗口:
其中:
仿真实验用到如下两种仿真工作模式。
内程序,内数据:
指程序和数据均在DVCC实验系统中。
内程序,外数据:
指程序在实验系统中,数据在用户系统中。
说明:
系统仿真工作模式在编辑窗口的最下面一行有明确的显示,如果在运行时发现异常,一定要仔细检查系统的仿真工作模式,因为仿真工作模式与下位机的系统组成密切相关。
4、动态调试菜单如下图示:
编辑完成的试验程序在编译、连接后就可进行调试,动态调试菜单包含调试窗口的一些常用命令,下面就各选项叙述如下:
●联接DVCC系统
将随机提供的通信电缆线一头D型9芯插头插入DVCC实验系统J2插座,另一头插入PC机串行口COM1或COM2任选。
接通DVCC实验系统电源,在DVCC实验系统显示“P.”的状态下,按PCDBG键,显示器全暗。
上位机菜单上选择“联接DVCC系统“菜单项。
联机正常,屏幕上出现:
寄存器窗口、反汇编窗口。
如出现“联机失败”提示,则表明DVCC实验系统和PC机连接不上,可检查电源线连接及PC机端口等是否有问题,拨码开关位置是否正确等。
●设当前行为断点
选择该命令后,将当前光标所在行设为断点。
●设当前行为PC值
执行该命令后,系统自动将当前光标所在地之设定为新的PC地址,蓝色光条自动跳到该处。
●执行到光标处
从当前PC值开始,执行到当前光标所在的目标地址(对反汇编窗和编译连接传送成功的编辑窗口有效)。
●清除断点
选择该命令后,取消你所设置的断点地址,反汇编窗口红色光标条消失,表示原设置断点已取消。
●单步执行(tacein)
单步执行一条程序,遇到子程序调用则步入子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。
●连续单步(in)
选择该命令后,连续自动单步运行程序,遇到子程序调用则步入子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。
●单步执行(taceout)
单步执行一条程序,遇到子程序调用则跳过子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。
●连续单步(out)
选择该命令后,连续自动单步运行程序,遇到子程序调用则跳过子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。
●连续执行
从当前PC值开始连续运行程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。
说明:
连续运行时会出现如下图示提示框
表明程序已经死循环,按提示进行操作后,点击OK按钮恢复操作。
5、窗口菜单如下图示:
选择该窗口的各不同选项可显示不同信息窗口
窗口信息是仿真下位机的状态信息,可以通过不同的窗口信息来观察指令的运行结果是否正确,同时还提供了示波器、定时器初值计算、串口波特率计算等工具。
●显示反汇编窗口如下图示:
●显示内部数据窗口如下图示:
●显示外部数据窗口如下图示:
●显示寄存器窗口如下图示:
以上四个窗口是调试过程中经常被用到的工具窗口,我们可以通过这几个窗口的数据信息,判断指令的运行结果是否正确。
§1.4实验步骤及各部分的具体操作
1、打开编译软件,建立汇编语言文件
在DVCC8051系统中,汇编语言指令的执行是以“源文件”形式进行的,在一个“源文件”中,含有多条汇编语言指令,执行并完成某种特定的功能。
因此,我们首先必须建立一个“指定名字”的源文件,具体操作如下:
打开编译软件DVCC8051,点击“新建”图标,会弹出一个文件名为“新文件0”的汇编语言编辑窗体,首先点击“文件”菜单,选择“另存为”选项,这时会弹出一个“另存为”窗口,此时将我们要编辑的汇编语言“源文件”存储在E:
\新建一个以学号为名的文件夹内,源文件的文件名有要求:
英文字母或数字而且不允许超过8各字符,默认保存类型扩展名为.ASM。
2、汇编语言源文件及指令的编辑
源文件的编辑:
汇编语言源文件的编辑必须遵守固定的格式进行,源文件是由指令组成的,指令又分为伪指令和操作指令。
源文件中必须要有的两条伪指令为:
“ORG”指令和“END”指令。
“ORG地址”标示以下指令在程序存储区的起始地址,“END”标示以上的多条指令结束,需要特别注意的是END指令录入后不要回车。
指令的编辑:
在源文件的编辑窗体内进行汇编语言指令的编辑,指令的录入必须选择输入法为英文状态,指令的书写格式必须遵守汇编语言规定,操作数或操作地址如果是以字母开始时,字母前要补0;每一行指令的注释在“指令”后,以“;”开始为注释内容,注释内容可以为汉字,指令注释的作用是帮助程序员记忆和其他人理解程序含义,指令注释可有可无。
编辑一行指令结束后回车编辑下一行。
3、源文件的编译、连接及下传
一串儿指令组成的汇编语言源文件被编辑完成后,首先要进行“编译”,编译后系统会弹出一个MESSAGE对话框,如果存在编辑错误将会提示相应的错误类型及错误所在行,如果编译通过会提示:
NOERRORSFOUND。
编译的作用主要是对指令格式进行查错,并将指令逐条编译成机器码系列。
编译通过后就可以进行连接和下传了。
在连接下传前,先要打开下位机的电源(如需要进行硬件线路连接的实验内容在打开电源前先要进行线路连接)并将下位机调试为通讯状态,方法为:
在监控状态(数码管闪烁P.)下按下位机键盘的“PCDEBUG”键,此时下位机数码管全暗,下位机处于上下位机通讯状态。
任何状态下按下下位机的“RESET”键,下位机就会复位为监控状态。
连接和下传完成后在源文件编辑窗体的第一行会出现一个蓝色指示条,标明此时我们所编写的源文件指令机器码序列已经被下传到下位机的程序存储区的指定位置中,此时的“PC”指针正在指向蓝色指示条所指的指令,我们可以执行该指令了。
4、指令的执行及结果的观察
指令的执行有多条命令,参考上述§1.3仿真环境动态调试菜单。
结果的观察参考§1.3仿真环境窗口菜单
5、调试
源程序可以运行并不表明你所编写的程序能够完成规定的任务,要想完成任务必须经过程序调试,而且,程序设计技巧的提高都需要在实际调试中积累进行。
DVCC8051编译软件提供了丰富的调试命令,请参考§1.3仿真环境中动态调试菜单。
第二章
单片机软件设计基本实验
实验一实验设备的熟悉掌握及汇编语言基本指令的练习(四学时)
1、实验目的:
了解单片机原理实验所用到的实验设备及其使用方法。
通过汇编语言基本指令的练习,灵活运用各类指令,熟练掌握编译软件的使用。
2、实验内容:
①、跟随教师学习设备的简单使用,包括硬件实验箱及编译软件两方面内容:
硬件包括:
实验箱的各部分组成介绍及其与PC机的连接操作;
软件包括:
汇编语言文件的建立、编辑与存储。
(ASM格式)
汇编语言文件的编译、连接、运行、程序调试(指令的运行及结果的验证、单步运行及连续运行的区别,断点的设置与清除,其他调试指令的运用等)。
②、实验练习示例:
编辑汇编语言文件名lx.asm并保存到e盘,练习程序清单如下(数据传送类指令练习):
Org1000h
mova,#15h
movb,#0e4h
nop
mov20h,#34h
mova,20h
mova,21h
nop
mova,#0c6h
movdptr,#0009h
movx@dptr,a
mova,#0e7h
movdptr,#0008h
movxa,@dptr
nop
clra
movdptr,#0007h
movca,@a+dptr
nop
end
③、学生自行练习教科书上的其他四类汇编语言指令及短程序,内容不限。
算术运算类指令练习
逻辑运算类指令练习
控制转移类指令练习
布尔处理类指令练习
3、预习下一次软件实验:
数据排序试验
4、通过本实验得到的重要结论:
①、单片机指令的执行过程:
完成特定任务的多条汇编语言指令被编辑完成后,以软件或手工方式被编译成单片机可以识别的机器码,并按顺序存储在系统的程序存储区中,单片机CPU按顺序在程序存储区取指令并执行。
②、编译软件的作用:
由于单片机CPU只能识别存储在程序存储区中的机器码,那么将指令变成机器码的过程就很重要,我们将这一过程称为编译。
编译可以通过查找机器码表手工进行,也可以通过软件方式自动进行(即:
将繁杂的极易出错的重复性的工作交给软件去作),而后者就是编译软件的一个重要作用之一。
除此之外,编译软件还有一些其他作用,比如完成上下位机的通信、传送机器码到下位机程序存储器,监控下位机的状态(包括寄存器、内部数据存储器、外部数据存储器、程序存储器、程序执行状态等),同时还提供了灵活的程序的调试命令,给使用者提供更大的方便。
实验二数据排序
1、实验目的:
通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。
2、实验内容:
编写并调试完成一个数据排序的小程序,其功能为用冒泡法将内部RAM中50H-5AH单元中存储的杂乱数据,按照从小到大的顺序重新进行排序。
然后重新编写程序,再实现从大到小的排序。
3、实验框图:
4、实验程序示例:
ORG0100H
mov50h,#34h
mov51h,#98h
mov52h,#0f5h
mov53h,#0d3h
mov54h,#25h
mov55h,#78h
mov56h,#72h
mov57h,#18h
mov58h,#09h
mov59h,#69h
mov5ah,#88h
DORDE:
MOVSP,#60H
MOVR3,#50H
DORDE1:
MOVA,R3
MOVR0,A
MOVR7,#0AH
CLR00H
MOVA,@R0
DORDE2:
INCR0
MOVR2,A
CLRC
MOV22H,@R0
CJNEA,22H,DORDE3
SETBC
DORDE3:
MOVA,R2
JCDORDE4
SETB00H
XCHA,@R0
DECR0
XCHA,@R0
INCR0
DORDE4:
MOVA,@R0
DJNZR7,DORDE2
JB00H,DORDE1
DORDE5:
SJMPDORDE5
end
5、实验报告:
完成从大到小排序的程序框图,程序编写及调试调试过程。
要写出实验结论或实验体会收获。
实验三汇编语言编写多位数加法程序
1、实验目的:
通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。
2、实验内容:
利用单字节加法指令,完成多位无符号十进制加法运算。
要求完成6位数以上的加法。
3、程序框图:
(4位加法)
4、程序示例:
被加数以BCD码格式存放在R0、R1中,加数也以BCD码格式存放在R2、R3中,和值以BCD码格式存放在R4、R5、R6。
(4位加法)
org1000h
CLRC
movr0,#88h
movr1,#34h
movr2,#78h
movr3,#96h
mova,r0
adda,r2
daa
movr4,a
mova,r1
addca,r3
daa
movr5,a
movr6,#00h
clra
addca,r6
movr6,a
nop
end
5、实验报告:
完成从6位数加法程序框图,程序编写及调试调试过程,写出程序注释。
要写出实验结论或实验体会收获。
实验四数据传送实验
1、实验目的:
熟练掌握外部数据的操作,提高汇编语言设计和调试方法。
2、实验内容:
●在外部数据区(RAM)2000H—20FFH内传送数据00H—0FFH。
●将外部数据区(RAM)2000H—20FFH内的数据块,传到任意起始地址的数据区内。
●将外部数据区(RAM)2000H—20FFH内的数据块,反序传到任意起始地址的数据区内。
3、程序示例:
(实验内容的前两项)
org1000h
movdptr,#2000h
mova,#00h
s:
movx@dptr,a
incdptr
inca
cjnea,#00h,s
nop
movr1,#20h
movr0,#00h
movr3,#35h
movr2,#47h
movr4,#0ffh
s1:
movdph,r1
movdpl,r0
movxa,@dptr
movdph,r3
movdpl,r2
movx@dptr,a
incr0
incr2
decr4
cjner4,#0ffh,s1
nop
end
4、实验报告要求:
独立编程调试完成反序传送程序,写出程序注释及程序框图。
实验五拆字、拼字程序
1、实验目的:
通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。
2、实验内容:
在外存储器7000h单元中送入一个指定的立即数,然后将此立即数拆为高半字节和低半字节,并将高半字节存入7001h单元,将低半字节存入7000h单元。
(以拆字程序为例)
3、程序框图:
略
4、程序示例:
ORG0050H
MOVA,#0E5H
MOVDPTR,#7000H
MOV@DPTR,A
MOVB,A
SWAPA
ANLA,#0FH
INCDPTR
MOVX@DPTR,A
INCDPTR
MOVA,B
ANLA,#0FH
MOVX@DPTR,A
CWORD1:
SJMPCWORD1
END
5、要求学生自行完成拼字程序,实验内容为拆字程序的逆过程。
6、实验报告:
要求学生标明程序注释,画出程序框图
实验六查表程序
1、实验目的:
通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。
2、实验内容:
在程序中编写一张数据表,实现在数据表中查找到四位数据并存放在规定的内存单元内。
规定:
将要查找的四位数据在数据表中的位置信息存储在7Eh—7bh单元中,根据此位置信息查表得到相应的表中数据,分别对应的6Eh—6bh单元中。
3、实验程序框图(略)
4、实验程序示例
org1000h
mov7eh,#00h
mov7dh,#02h
mov7ch,#03h
mov7bh,#04h
movr0,#7eh
movr1,#6eh
movr3,#04h
movdptr,#data1
chabiao:
mova,@r0
movca,@a+dptr
mov@r1,a
decr0
decr1
djnzr3,chabiao
sjmp$
DATA1:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
end
5、学生独立编写六位数据的查表程序,验证改变数据位置信息时查表得到数据的正确性。
6、编写实验报告,画出程序框图,写明程序注释,分析实验结果。
实验七外部中断计数
1、实验目的:
通过本实验,使学生能够进一步领会中断的概念,学会外部中断的编程方法及中断应用。
2、实验内容:
用单脉冲发生器输出(/SP)作为外部中断源,编写程序实现对单脉冲发生器输出次数进行计数。
并实现时、分、秒时钟进位表示。
3、程序框图及线路连接:
1、实验框图:
(简单计数)
2、实验线路:
单脉冲发生单元的/SP插孔连接到总线扩展单元的P3.2插孔。
P1.0插孔连接到交通灯演示单元的任意一个小灯插孔。
4、实验程序示例:
(简单计数)
org0003h
ljmpzd0
org1000h
movsp,#53h
setbit0
setbex0
setbea
mov20h,#00h
sjmp$
zd0:
clrea
inc20h
cplp1.0
setbea
reti
end
5、实验报告:
写出以时、分、秒进位表示的实验程序及其注释,画出实验框图,给出实验结果及简单的调试过程。
实验八定时/计数器实验
1、实验目的:
了解掌握定时/计数器的工作原理,学会其使用编程方法。
2、实验内容:
定时/计数器的初始化,定时器/计数器初值的计算,编写一段小程序实现时、分、秒时钟功能。
3、程序框图及线路连接:
1、程序框图:
(秒定时)
2、线路连接:
P1.0插孔连接到交通灯演示单元的任意一个小灯插孔。
4、程序示例:
(秒定时)
org000bh
ljmpzdt0
org1000h
movsp,#53h
setbp1.0
mov21h,#00h
mov20h,#0ah
movtmod,#01h
movth0,#3ch
movtl0,#0b0h
setbtr0
setbet0
setbea
sjmp$
zdt0:
clrea
djnz20h,zda
inc21h
mov20h,#0ah
cplp1.0
zda:
movth0,#3ch
movtl0,#0b0h
setbea
reti
end
5、实验报告:
画出程序框图,写出程序清单及程序注释,写明程序的运行结果。
第三章单片机硬件基本实验
实验九串行显示实验
1、实验目的:
掌握串行口的工作原理及其方式0的编程方法。
复习74LS164的基本工作原理及其驱动数码管显示的应用。
2、实验内容:
完成串行口与74LS164的连线,完成两位数码管显示秒时钟功能的编程、调试工作。
3、程序框图及实验连线:
①、程序框图:
(完成0-F不循环显示)略
②、实验连线图:
4、程序示例:
(完成0-F不循环显示)
org000bh
ljmpzdt0
org1000h
movsp,#53h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 指导书