单片机原理及接口技术实验指导书Word格式文档下载.docx

上传人:b****5 文档编号:19444660 上传时间:2023-01-06 格式:DOCX 页数:87 大小:1.75MB
下载 相关 举报
单片机原理及接口技术实验指导书Word格式文档下载.docx_第1页
第1页 / 共87页
单片机原理及接口技术实验指导书Word格式文档下载.docx_第2页
第2页 / 共87页
单片机原理及接口技术实验指导书Word格式文档下载.docx_第3页
第3页 / 共87页
单片机原理及接口技术实验指导书Word格式文档下载.docx_第4页
第4页 / 共87页
单片机原理及接口技术实验指导书Word格式文档下载.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

单片机原理及接口技术实验指导书Word格式文档下载.docx

《单片机原理及接口技术实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术实验指导书Word格式文档下载.docx(87页珍藏版)》请在冰豆网上搜索。

单片机原理及接口技术实验指导书Word格式文档下载.docx

0A000H~0AFFFH

0B000H~0BFFFH

0C000H~0CFFFH

0D000H~0DFFFH

0E000H~0EFFFH

0F000H~0FEFFH

0FF20H

8155控制口

写方式字

0FF21H

8155PA口

字位口

0FF22H

8155PB口

字形口

0FF23H

8155PC口

键入口

0FF28H

8255PA口

扩展用

0FF29H

8255PB口

0FF2AH

8255PC口

0FF2BH

8255控制口

(2)存储器地址分配

地址

器件

0000H~0FFFFH

AT89S52/27C512

用户程序空间

0000H~7FFFH

62256

用户数据空间

1.3.2系统接口定义

(1)RS232用户通信口

短路块定义:

A:

EXT-C(2、3)位置,表示RXD、TXD插孔悬空,用户使用时需用导线连接。

B:

Keil-C(1、2)位置,表示RXD、TXD插孔已经内部与单片机P3.0、P3.1连接。

图1-2

(2)CZ4:

打印接口

图1-3

(3)JX0,JX17:

为系统提供的数据总线接口

图1-4

(4)CZ7:

系统提供的扩展接口

图1-5

(5)JX12、JX14:

液晶显示接口

图1-6

(6)ISP下载接口

图1-7

1.4通用单元电路

(1)LED发光二极管输出模块

实验台上有8只发光二极管及相应驱动电路。

见图1-8,L1~L8为相应发光二极管驱动信号输入端,该输入端为高电平“1”时发光二极管亮。

图1-8

(2)开关量输入模块一

实验台上有8只开关Kl-K8,与之相对应的K1-K8个引线孔为逻辑电平输出端。

开关向上拨相应插孔输出高电平“l”,向下拨相应插孔输出低电平“0”。

见图1-9。

图1-9

开关量输入模块二。

见图1-10

图1-10

(3)单脉冲电路

实验仪上单脉冲产生电路如图1-11所示,标有“

”和“

”的两个引线插孔为正负单脉冲输出端。

附近按钮AN0为单脉冲产生按钮,每按一次产生一个单脉冲。

图1-11

(4)分频电路。

见图1-12

图1-12

(5)脉冲发生电路

实验仪上提供一8MHZ的脉冲源,见图1-13,实验仪上标有8MHZ的插孔,即为脉冲的输出端。

图1-13

(6)485接口电路。

见图1-14

图1-14

(7)数码管显示电路。

见图1-15

数码管显示电路中,SW3、SW4红色拨码开关打在“ON”位置,数码管代码端和公共端与8155PA、PB口相连。

如果SW3、SW4红色拨码开关打在相反位置,即“OFF”位置,数码管电路与8155断开,数码管代码端和公共端对外开放。

图1-15

(8)矩阵键盘模块电路。

见图1-16

图1-16

(9)目标CPU(AT89S52)的控制电路

注:

图1-17中的74LS245与74LS373功能由CPLD器件1016实现。

图1-17

(10)存储器控制电路。

见图1-18

图1-18

(11)实验扩展模块

图1-19所示为实验扩展模块引脚定义,对应插孔号。

KZ1~KZ8还配有排针/锁紧孔转接口。

图1-19

第2章DICE-5212K仿真联机运行

2.1DICE-KEILUSB仿真器与DICE-5212K的连接

(1)确认KB1开关打在“一般模式”,KB2短路块插在MCS-51(1、2)位置,SW1短路块插在“UP”位置。

SW3、SW4、SW5打在“ON”的位置。

这些都是出厂时的默认设置;

(2)在确认断电的情况下,取下DICE-5212K实验仪右上角绿色锁紧插座上的AT89S52单片机芯片;

(3)将40芯白色扁平线上的IDC40插头与DICE-KEILUSB仿真器的IDC40插座接插好,然后用随机配送的USB线将仿真器与PC机连接;

(4)将40芯白色扁平线另一头的40芯仿真头插在DICE-5212K实验仪右上角绿色锁紧插座上。

注意:

不要插反,绿色锁紧插座左上角第一脚为单片机第一脚。

40芯仿真头的第一脚上有箭头指示。

DICE-KEILUSB仿真器应置于实验箱右侧。

如有疑问请致电我公司技术支持。

2.2KEILC仿真软件的操作应用

(1)建立一个项目:

点击Project(工程)菜单,选择NewProject(新工程),在文件名中输入您的第一个程序项目名称,假定我们用“test”。

“保存”后的文件扩展名为uv2这是KEILuVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。

注意输入的时候不要输入文件的后缀名,默认即可。

为了查找方便,假定我们保存在c盘的根目录。

这时会弹出让你选择单片机型号的对话框,我们选择ATMEL---AT89S52。

图2-1

(2)汇编源文件的建立:

点击FILE(文件)菜单中的NEW...(新文件)命令新建一个文本编辑窗口。

在里面输入一个程序范例如流水灯程序,然后点击FILE(文件)菜单中的SAVE(保存)命令保存文件,注意必须输入文件的后缀名.asm,例如保存为C:

/prog/001.asm(注意不要有中文目录,文件名不超过8个字符,否则编译不通过!

如果您是第一次使用,那么建议您直接保存在c盘的根目录,文件名同样取001.ASM,不要试图把他保存在桌面/我的文档等等!

图2-2

请注意:

C51用户请在您的代码的main()函数前面,加上一句:

codeunsignedcharstop[3]_at_0x3b;

ASM汇编用户请将你的主程序跳过中断区直到0080H以后,如:

org0000H

LJMPmain

org0080H

main:

....;

程序开始

(3)点击Target1(目标1)前面的“+”,出现SourceGroup1,(源程序组1)选中右键点选“AddfilesGroupSourceGroup1”(增加文件到源程序组1)这时选择文件类型为asm,再选中001.asm文件,再按Add添加,在随后的提示框中按“确定”。

图2-3

(4)仿真部份采用Mon51协议,在使用之前应必须对软件项目进行如下设置:

单击“Project”(工程)菜单,再在下拉菜单中单击“optionsfortargettarget1”(目标1属性)在下图中选择output(输出)“CreateHEXfile“(产生hex文件)的选项,以便汇编后生成HEX代码,供编程器使用。

(5)在“Debug”(调试)中点选“KeilMonitor-51Driver”,同时选中加载代码到仿真器,运行到main0,在“恢复调试设置”中“断点”“工具栏”“浏览点”“储存器显示”也全部钩选上,然后点击“设置”。

(6)点击“Settings”(设置)选择要使用串口必须和实际相符合,你的计算机可能是COM2或者其他,对此不能确定可以通过察看控制面板\硬件\端口\通讯端口来解决,同时注意电脑上不能够同时运行其他可能占用串口资源的软件,串口调试软件等等也必须退出,否则将引起冲突,(如果您使用的是USB通信方式,那么选择系统分配的虚拟串口号

(7)按以下两个向下小箭头的图标进行编译,(或者按F7快捷)编译成功后如会出现下图红箭头所指的文字正在汇编…0(错误),0(警告)这里的意思是没有错误,没有警告,表示编译成功。

此时在C盘的根目录就生成了test.hex文件,有了这个hex文件,我们也可用ISP方式烧写到单片机实验,然后可以进行硬件仿真了,将仿真头插入目标板的40pin卡座,开始仿真,退出仿真时最好按一下仿真器上的复位按键,绿色指示灯闪三下。

(一般不需要这样做,除非系统没有复位)

(8)在按图第三个红色的

(debug)按钮或按Ctrl+F5快捷键可以进入仿真。

此时界面将出现连接成功的提示!

Connectedtomonitor-51v9.1

其中9.1是仿真器的版本号(否则设置有误请仔细检查)

2.3KEILC仿真器软件调试技巧

进入调试状态后,Debug菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,Debug菜单上的大部份命令都有相应的快捷按钮。

从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮命令;

然后按一下图示第二个“运行”按钮。

连接上相关的实验资源,本实验用一条8PIN的数据排线把实验仪的CPU部份的P1口(JP1)连接到八路指示灯部份的L1~L8。

这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。

1)单步跟踪运行

使用菜单Debug->

Step或上图第四个单步运行按钮或使用快捷键F11可以单步跟踪执行程序,在这里我们按下F11键,即可执行该箭头所指程序行,每按一次F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有Delay延时子程序,则会进入延时程序中运行。

2)单步运行

如果Delay程序有错误,可以通过单步跟踪执行来查找错误,但是如果Delay程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用F10来替代F11(也可使用菜单StepOver或相应的命令按钮),在main函数中执行到Delay时将该行作为一条语句快速执行完毕。

为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按F10键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。

3)全速运行

点击工具栏上的“运行”按钮或按F5键启动全速运行,全速执行程序,此时实验仪上的P1口所接LED以流水灯状态显示。

4)暂停

点击工具栏上的按钮,此时用户板上的P1口所接LED停止以流水灯状态显示,只有一个LED灯点亮(取决于暂停前的P1的值)

5)观察/修改寄存器的值

Project窗口在进入调试状态后显示Regs页的内容,包括工作寄存器R0~R7的内容和累加器A、寄存器B、堆栈指针SP的内容

用户除了可以观察以外还可自行修改,例如将寄存器a的值0x62改为0x85。

方法一:

用鼠标点击选中单元a,然后再单击其数值位置,出现文字框后输入0x85按回车键即可;

方法二:

在命令行窗口,输入A=0x85,按回车键将把A的数值设置为0x85。

6)观察/修改存储器的数据

点击菜单“视图View->

储存器窗口MemoryWindows”,便会打开储存器Memory窗口(如窗口已打开,则会关闭),Memory窗口可以同时显示4个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。

在储存器1(Memory#1)的地址输入栏内输入“D:

0e0h”,按回车键后,可以从内部可直接寻址RAM的e0H地址处开始显示,e0H地址的值就是寄存器a的值,应与主寄存器窗口下的值相同。

点击窗口下部分的储存器2(Memory#2),在Address输入栏内输入“D:

0e0h”,按回车键后,可以从内部可间接寻址RAM的e0H地址处开始显示。

点击窗口下部分的Memory#3,在Address输入栏内输入“C:

0x0021”,按回车键后,可以从代码区域0000H地址处开始显示,这时各地址值应与在反汇编窗口中的值相同。

点击窗口下部分的Memory#4,在Address输入栏内输入“X:

00h”,按回车键后,可以从xdataRAM区域0000H地址处开始显示。

通过Memory窗口修改数据

在Memory窗口中显示的数据可以修改。

例如,要改动data区域OXE0地址的数据内容:

把鼠标移动到该数据的显示位置,按动鼠标右键在弹出的菜单中选中:

更新储存器“ModifyMemoryatD:

0xE0”,在弹出对话框的文本输入栏内输入相应数值,按回车键或点击OK,修改完成。

通过命令行查看数据

例如,我们想查看data空间从0x01到0x03地址的内容,可在命令输入窗口输入“dd:

0x01,03H”,回车即可完成,d表示data空间,0x01表示起始地址,03H表示结束地址(注意两种16进制的表示方法在这里都可以接受),输出结果在信息输出窗口中显示出来。

通过命令行修改数据

例如,我们想把p1口的值从0x02数据修改成0x05,可在命令输入窗口输入p1=0x04”,回车即可完成,此时如果p1口接有led,将立即看到led状态改变。

通过Memory窗口可以看到修改后的数据:

在地址栏输入d:

00H然后回车。

储存器1的d:

0x90后的第一个数据就变成了04,这正是我们刚才修改的结果。

7)观察/修改变量的值

在暂停程序运行时,可以观察到有关的变量值。

在监视/调用堆栈(Watch)窗口“局部”页自动显示当前正在使用的局部变量,不需要用户自己添加。

监视(Watch)页显示用户指定的程序变量。

(先按F2键,然后输入变量的名称例如“delay”然后回车)

移动鼠标光标到要观察的变量“delay”上停留大约一秒钟,就弹出一个“变量提示”块出来。

将鼠标移动到一个变量名“d1”的上面,点击鼠标右键,出现快捷菜单,选中:

“增加d1到观察窗口”(Add“d1”toWatchWindows…)选项,子菜单中会出现#1和#2的选项,点击后该变量就会加入对应的监视/调用堆栈(Watch)窗口。

增加d1到观察窗口”(Add“d1”toWatchWindows…)选项后对应的监视窗口显示了d1的值。

修改变量的数值方法:

用鼠标左键点击该行的变量数据栏,然后按F2键出现文本输入栏后,输入修改的数据,确认正确后按回车键。

8)复位

如果用户想重新开始运行用户程序,可以点击工具栏上的复位按钮,对仿真器的用户程序进行复位。

仿真器复位后,程序计数器PC指针将复位成0000H,另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如A将变为00H,DPTR变为0000H,SP变为07H,I/O口变为0FFH,此时用户板上的P1口所接LED指示灯会全部熄灭。

9)设置断点

将光标移至待设置断点的源程序行,如“MOVP1,#0B6H”行。

点击工具栏上的“断点”图标,可以看到源程序窗口中该行的左边出现了一个红色的断点标记。

(如果再点一下这个图标则清除这个断点)同样的方法,您可以设置多个断点。

10)带断点的全速运行

按动F5启动全速运行,全速执行程序,当程序执行到第一个断点时,会暂停下来,这时你可以观察程序中各变量的值及各端口的状态,如下图:

第一个断点在movp1,#06dh之后,此时在储存器窗口MemoryWindows”,储存器1(Memory#1)的地址输入栏内输入“D:

000h”,按回车键后,可以从内部可直接寻址地址数据为6D和程序设计的相同。

此时用户目标板上会显示当前断点的状态,继续按动F5启动全速运行,程序执行到第二个断点时,会暂停下来,在变量观察窗口中,RAM的值应为B6;

继续按动F5启动全速运行,程序又会执行到第一个断点处暂停,此时用户目标板上的灯又显示相应的状态。

断点是仿真器调试的重要手段,请您仔细反复的练习直到熟练。

11)清除程序中所有断点

如果想取消全部的断点全速运行时,要是逐个取消将是很烦琐的事,我们只要点击工具栏相应的图标,就可清除程序中所有断点。

L2)执行到光标处

在体验“执行到光标处”之前,我们先点击工具栏上复位的图标,对仿真器的用户程序进行复位,把鼠标放在想要停止的行点一下,再按“执行到光标处”程序全速执行到光标所在行,这与我们在前面看到的带断点的全速运行相类似。

13)退出仿真

先按暂停按钮

,再按复位

,再按

开启/关闭调试模式按钮,则退出仿真状态又重新回到编辑模式。

(如果不能正确退出,请按一下仿真器上的复位按钮),此时可以对程序修改,然后重新编译,再按开启/关闭调试模式按钮,就又进入仿真模式了。

请注意!

由于KEIL软件在仿真状态时和仿真器始终保持通信联系,为此退出仿真的时候最好按照以上顺序退出,不要强行退出,否则容易造成电脑死机。

到这里也就完成了keil软件的标准操作过程,由于KEIL操作过程较复杂,请您自行练习直到熟练!

第3章

MCS51单片机实验

实验1实验设备的熟悉掌握及数据传送指令寻址方式的验证练习

1、实验目的:

了解实验设备及其使用方法。

通过汇编语言基本指令的练习,灵活运用各类指令,熟练掌握编译软件的使用。

2、实验设备:

、DICE-5212K单片机综合实验箱1台

、PC机1台

3、原理图(AT89S52控制电路及存储器控制电路模块):

3、实验内容:

了解DICE-5212K实验箱的运行方式,学会KEILC软件的简单应用,包括:

建立工程、建立汇编语言源文件、设置工程、编译、链接、运行指令、并通过窗口观察运行结果等。

其中尤为重要的是掌握单步、单步追踪、运行到光标处、连续运行、断点等运行命令。

、寄存器、内部数据数据传送指令验证练习(各类寻址方式验证练习):

ORG0000H

LJMPMAIN

ORG0080H

MAIN:

MOVA,#30H

MOVB,#0E4H

MOVR0,#30H

MOVR1,#31H

MOV30H,#31H

MOV34H,#32H

MOVR0,A

MOVA,R0

MOVA,30H

MOV31H,B

MOV32H,A

MOVR0,32H

MOV33H,R0

MOVR1,34H

MOV34H,R1

MOV35H,34H

MOV36H,@R0

MOV37H,@R1

MOV@R0,36H

MOV@R1,37H

S:

CLRP1.0

ACALLDELAY

SETBP1.0

SJMPS

DELAY:

MOVR7,#0FFH

DELAY1:

MOVR6,#0FFH

DELAY2:

DJNZR6,DELAY2

DJNZR7,DELAY1

RET

END

要求:

运行并观察并记录运行结果。

学会观察寄存器及内部数据。

、外部数据数据传送指令的验证练习

MOVDPTR,#1000H

MOVX@DPTR,A

MOVXA,@DPTR

INCA

MOVDPH,#10H

MOVDPL,#07H

INCDPTR

NOP

SJMP$

运行并观察并记录运行结果,学会观察外部数据。

、程序存储区指令验证练习

●指令读程序存储区

CLRA

MOVCA,@A+PC

MOVDPTR,#0080H

MOVCA,@A+DPTR

学会观察程序存储区。

●用伪指令DB改写程序存储区

ORG1000H

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

MOVA,#03H

MOVA,#0DH

运行并观察并记录相关程序存储区运行结果。

●程序储存区中查表

MOVDPTR,#TAB

TAB:

DB0C0H,0F9H,0A4H

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

当前位置:首页 > 工程科技 > 建筑土木

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

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