单片机实验指导书郑州轻工业学院.docx
《单片机实验指导书郑州轻工业学院.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书郑州轻工业学院.docx(36页珍藏版)》请在冰豆网上搜索。
单片机实验指导书郑州轻工业学院
第一章DICE-5208K开发型单片机综合实验仪概述
一、系统简介
DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。
是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。
新增加了几乎所有最实用、新颖的接口电路(如1WIRE/I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。
可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。
二、主要特点
1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。
可运行于WIN98/2000/NT/XP操作系统平台。
2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。
(可在线编程AT89S51/52/53系列单片机)。
3.该实验系统可扩展C8051F020嵌入式实验开发模块,并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持SiliconLabsIDE和KEILC软件。
4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。
5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
6.实验电路单元尽可能独立开放,如开放式键盘,开放式显示器,开放式串口等,为适应多种方式实验提供可能。
三、系统地址分配
1.I/0地址分配
地址
扩展名称
用途
8000H~8FFFH
自定义
实验用口地址
9000H~9FFFH
自定义
实验用口地址
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.DICE-5208K(MCS-51单片机)硬件安装说明(F1区)
首先用串行通讯电缆连接DICE-3000型仿真器串行口和PC机串行口,然后用34芯扁平线连接DICE-3000型仿真器和5208K开发型单片机综合实验仪的JF_1仿真接口。
将5208K开发型单片机综合实验仪上的KB1开关设置在“一般模式”,KB2开关用两个短路块插在‘1’和‘2’(MCS-51)位置。
从而完成实验系统与PC机的联机。
*注:
实验系统上的CZ11串行口(F5区)为用户实验串行口。
2.系统开关设置(F1区)
(1)SW1(EA端):
程序空间选择开关,SW1→IP,选择CPU内部(一般不设置此模式,如果将目标程序通过烧写器写入单片机内部FALSHROM中,要运行写入的程序时需设置到该模式,一般用于工程人员的目标系统开发),SW1→UP(出厂模式),选择CPU外部,此时可脱机运行EPROM中固化的程序,也可用仿真器进行联机实验。
(用短路块选择)
(2)SW3、SW4、SW5:
为键盘/显示选择开关,开关置ON(出厂模式),键盘/显示控制选择系统配置的8155接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。
(3)KB1开关:
KB1开关有两种工作模式,平时都工作在“一般模式”,当我们用到单片机ISP在线编程功能时,将KB1开关打在“编程模式”。
(ISP在线可编程AT89S系列单片机)。
(4)KB2开关(用短路块实现):
为“MCS-51系统”与“C8051F系统”读写信号切换开关。
当使用“MCS-51系统”时,将两个短路插在‘1’和‘2’位置,使用“C8051F系统”时,将两个短路块插在‘2’和‘3’位置。
(5)仿真器所接实验系统的JF_1(IDC34)口为系统通讯口,用于程序的仿真、连接、装载。
而实验系统的CZ11口为用户实验通讯口,用于实验系统与PC机之间的串行口通讯实验。
二、DICE-51仿真器软件安装步骤
1.DICE-51仿真器软件安装步骤
(1)将所配光盘放入光驱,双击我的电脑,然后双击光盘驱动器图标;
(2)双击DICE-5208K开发型单片机综合实验仪文件夹;
(3)双击MCS-51系统资料文件夹;
(3)双击DICE-51仿真开发系统.exe;
(4)按界面上的提示(下一步)进行操作直到安装结束。
2.选择通讯端口
双击桌面上的“DICE-51仿真开发系统”图标启动程序运行,根据弹出的对话框选择与仿真器实际连接的串行通讯端口即可。
3.仿真模式的选择
在调试程序前您必须设置仿真模式,其中包括仿真CPU、RAM与ROM的选择等。
具体操作是打开“设置/仿真模式”对话框,当完成仿真模式的设置后单击“确认”。
联机实验时的设置如下:
CPU:
选8031/8032
RAM:
选用户RAM
ROM:
选系统ROM
脱机实验时,从矩阵键盘模块输入相应实验序号(如实验一,输入“01”),再按F0/EX即可运行该实验程序。
三、菜单及其命令简介
1.文件菜单
新文件(N)Ctrl+N:
建立一个新的源文件。
打开文件(O)Ctrl+O:
弹出对话框,选取列表中的文件或在输入框输入文件名,单击“打开”,文件编辑窗口即显示该文件内容。
关闭(C):
关闭当前的活动窗口。
存储(S):
将当前编辑窗口中的文件存到磁盘上。
另存为(A):
将当前编辑窗口中的文件换成另一个文件名再存盘。
输出列表文件:
将当前ROM地址空间的代码保存为.LST列表文件。
保存程序区…:
弹出文件列表对话框,输入要保存的文件名并单击“保存”。
保存数据区…:
弹出文件列表对话框,输入要保存的文件名并单击“保存”。
退出(E)Alt+X:
执行该命令可退出DICE-51仿真系统。
2.编辑菜单
取消操作(U)Ctrl+Z:
使用该命令能恢复文件编辑中最后一次所做的修改。
剪切(T)Ctrl+X:
清除编辑窗口中选定的文件,并放置在剪贴板上。
只有在选定文本后,这一命令才有效。
放置在剪帖板上的文件始终保留在那里,直到新内容替换掉它们。
复制(C)Ctrl+C:
使用该命令可将选定的文本复制到剪贴板上。
只有在选定文本后,这一命令才有效。
复制到剪贴板上的文本将替换掉先前的内容。
粘贴(P)Ctrl+V:
使用该命令可以将剪贴板内容插入到当前编辑窗口的光标位置。
如果在编辑窗口中已选定内容。
使用该命令可用剪贴板上的内容替换掉选定的内容。
如果剪贴板上无内容,这一命令将是无效的。
查找(S)…Ctrl+F:
使用该命令可以在当前编辑窗口中查找文本字符串。
该命令包含两参数,您可选择使用:
WholeWord整字匹配、MatchCase区分大小写。
查找下一个Ctrl+L:
使用该命令可以继续查找在“查找”命令中指定的文本。
跳到行…Ctrl+G:
使用该命令可以跳转到编辑窗口中指定的行。
字体(F):
对编辑窗口中的文本进行字体、字号、颜色等设置。
刷新(R):
重新显示当前编辑窗口。
3.编译菜单
文件编译、连接:
对当前编辑窗口源文件或当前工程组进行编译、连接,生成目标代码。
文件编译、连接、装载Ctrl+F9:
对当前编辑窗口源文件或当前工程组进行编译、连接,并将生成的目标代码装入ROM。
装载(L)F3:
将磁盘上存在的目标代码直接装入ROM。
浏览模块(B)…Ctrl+F3:
该命令可在调试窗口中浏览源文件内容,通常适用于浏览工程组中的源文件。
编译选项(J)…:
使用该命令您可设置源文件编译的各选项。
4.调试菜单
连续运行(G)F9:
执行该命令便开始连续运行用户程序,当遇到断点或按下Esc暂停键时停止。
运行到指定地址(A)…:
以连续方式运行程序,运行到指定的地址停下。
如果在源文件方式下调试,可以选择符号地址。
运行到光标处(C)F4:
以连续方式运行程序,运行到光标所在行停下。
如果光标移在非执行语句行,将不响应此命令。
单步运行(S)F7:
逐步运行用户程序,遇到调用子程序,则跟踪进入子程序运行。
宏单步运行(O)F8:
逐步运行用户程序,遇到调用子程序,一步执行完整个过程而不进入子程序运行。
自动单步:
以连续单步方式运行用户程序。
自动宏单步:
以连续宏单步方式运行用户程序。
增加变量…Ctrl+F5:
将程序中想要观察的变量增加到变量窗口,在程序运行时您要随时观察变量的内容。
设置或清除断点Ctrl+F8:
当光标移到调试窗口可执行语句行时,可以用该命令设置断点,重复该命令也可清除断点。
技巧:
将鼠标移到调试窗口的可执行语句行左侧,单击鼠标即可设置断点。
重复此操作也可清除断点。
浏览断点…:
执行此命令即弹出对话框,您可通过对话框查看断点个数、断点所在的模块、断点地址、断点在源文件中的行号,您也可用此命令增加或清除断点。
清除所有断点:
该命令可清除各个调试模块中所有设置的断点。
复位(R)Ctrl+F2:
该命令可对(目标系统)CPU复位,同时将PC指针回复到装载文件的初始值(如0000)。
重新开始运行(PC=0000):
将当前PC置初始值(如0000)后再以连续方式运行。
暂停(O)Esc:
该命令可停止当前程序的运行(适用于连续运行、自动单步/自动宏单步运行方式),返回待令状态。
夭折处理(H):
强制停下当前正在运行的程序。
一般来讲,“暂停”命令即可停止,如果正在运行和程序无法用“暂停”命令停止,可使用此命令。
设置PC…:
将当前PC指针指向您输入的地址。
如果在源文件方式下调试,可以选择符号地址。
PC=当前地址:
将PC指针指向当前光标所在的可执行语句行。
用行断点进行调试:
用行断点进行调试。
5.工程菜单
新建(N)…:
打开文件列表框,创建新工程文件。
打开(O)…:
弹出文件列表框,打开已存在的工程文件。
编辑(E)…:
打开对话框,增加或删除工程中的文件。
关闭(C):
关闭当前使用的工程文件。
文件列表…:
打开工程文件列表对话框,可指定编辑工程中的源文件。
6.设置菜单
仿真模式(M)…:
打开对话框,可对仿真CPU、RAM、ROM读写控制等选项进行设置。
通讯端口选择(P)…:
选择与仿真器实际连接的通讯端口。
重新连接(C):
通讯失败、检查硬件连接或重新选择通讯端口后,该命令可重新进行通讯测试。
7.视图菜单
调试(D):
打开程序调试窗口。
如果未装载程序,可看到随机代码。
寄存器(R):
打开寄存器窗口。
您可对该窗口进行增加、删除操作。
存储空间1、存储空间2:
IDE允许同时打开两窗口,可在该窗口切换查看程序存储器、数据存储器、CPU内部存储器、特殊寄存器等内容。
变量(V):
打开变量窗口,可随时观察变量的变化。
编译连接信息:
打开编译连接信息窗口,可查看源文件编译是否有错。
8.窗口菜单
层叠(C):
以重叠方式排列已打开的窗口,但保持每窗口的标题栏都可见。
平铺(H):
把已打开的窗口水平排列,使已打开的窗口都可见。
平铺(V):
把已打开的窗口垂直排列,使已打开的窗口都可见。
前一窗口F5:
切换到前一窗口。
后一窗口F6:
切换到后一窗口。
关闭所有窗口(A):
关闭所有已打开的窗口。
选择“窗口”菜单下已打开窗口的名称及编号可以激活该窗口。
9.帮助菜单
系统使用指南:
可以打开DICE-51仿真器使用手册。
实验指导
实验一彩灯控制实验
一、实验目的
(1)掌握MCS-51型单片机输入/输出端口的使用方法;
(2)学习汇编语言的编程方法及调试技巧。
二、实验内容
根据K1(P3.0)、K2(P3.1)的状态,编程使P1口驱动的8位发光二极管按要求点亮。
要求:
(1)当K1(P3.0)=0、K2(P3.1)=0时,点亮方式为:
L1(亮)、L2~L8(灭)→延时1秒→L2(亮)、L1、L3~L8(灭)→延时1秒→…→L8(亮)、L1~L7(灭)→延时1秒,不断循环;
(2)当K1(P3.0)=1、K2(P3.1)=0时,点亮方式为:
L1、L2(亮)、L3~L8(灭)→延时1秒→L3、L4(亮)、L1、L2、L5~L8(灭)→延时1秒→…→L7、L8(亮)、L1~L6(灭)→延时1秒,不断循环;
(3)当K1(P3.0)=0、K2(P3.1)=1时,点亮方式为:
L1(亮)、L2~L8(灭)→延时1秒→L1、L2(亮)、L3~L8(灭)→延时1秒→L1、L2、L3(亮)、L4~L8(灭)→延时1秒→…→L1~L8(亮)→延时1秒,不断循环;
(4)当K1(P3.0)=1、K2(P3.1)=1时,点亮方式为:
L4、L5(亮)、L1~L3、L6~L8(灭)→延时1秒→L3、L6(亮)、L4、L5、L1~L2、L7、L8(灭)→延时1秒→…→L1、L8(亮)、L3~L7(灭)→延时1秒,不断循环。
三、实验接线图
四、实验程序框图
五、程序清单文件名:
DPJ01.ASM
ORG0000H
LJMPP010
ORG0030H
P010:
MOVP3,#0FFH
P011:
MOVP1,#0FFH
LCALLDELY
JBP3.0,P012
JBP3.1,P013
LCALLPRG1;P3.1=0,P3.0=0
AJMPP011
P012:
JBP3.1,P014
LCALLPRG2;P3.1=0,P3.0=1
AJMPP011
P013:
LCALLPRG3;P3.1=1,P3.0=0
AJMPP011
P014:
LCALLPRG4;P3.1=1,P3.0=1
AJMPP011
PRG1:
MOVP1,#11111110B
LCALLDELY
MOVP1,#11111011B
LCALLDELY
MOVP1,#11101111B
LCALLDELY
MOVP1,#10111111B
LCALLDELY
MOVP1,#11111101B
LCALLDELY
MOVP1,#11110111B
LCALLDELY
MOVP1,#11011111B
LCALLDELY
MOVP1,#01111111B
LCALLDELY
RET
PRG2:
MOVP1,#11111100B
LCALLDELY
MOVP1,#11110011B
LCALLDELY
MOVP1,#11001111B
LCALLDELY
MOVP1,#00111111B
LCALLDELY
RET
PRG3:
MOVP1,#11111110B
LCALLDELY
MOVP1,#11111100B
LCALLDELY
MOVP1,#11111000B
LCALLDELY
MOVP1,#11110000B
LCALLDELY
MOVP1,#11100000B
LCALLDELY
MOVP1,#11000000B
LCALLDELY
MOVP1,#10000000B
LCALLDELY
MOVP1,#00000000B
LCALLDELY
RET
PRG4:
MOVP1,#11100111B
LCALLDELY
MOVP1,#11011011B
LCALLDELY
MOVP1,#10111101B
LCALLDELY
MOVP1,#01111110B
LCALLDELY
RET
DELY:
MOVR7,#10
DEL0:
MOVR6,#200
DEL1:
MOVR5,#250
DEL2:
DJNZR5,DEL2;250×2us=500us
DJNZR6,DEL1;200×500us=100ms
DJNZR7,DEL0;10×100ms=1s
RET
END
六、实验步骤
(1)将P3.1、P3.0用导线连至拨动开关K2、K1,将P1.7~P1.0用导线连至L8~L1;
(2)拨动K2、K1选择好LED灯的点亮方式;
(3)观察LED灯的点亮情况是否与开关的状态一致。
七、思考题
如何修改程序,可实现更多不同的二极管点亮方式。
实验二定时/计数器实验(脉冲计数)
一、实验目的
熟悉单片机内部定时/计数器的功能,掌握定时/计数器的初始化编程方法。
二、实验内容
将定时/计数器T0设为计数器方式,对外部输入(P3.4)的脉冲序列进行计数,并送显示器显示。
计满数时,将P1.0置为低电平发出提示信号,延时后恢复P1.0为高电平。
三、实验接线图
将P3.4接C2区(单脉冲与时钟模块)的“
”或“
”端,P1.0接E5区(发光二极管输出模块)的L1端。
单脉冲电路
四、实验程序框图
主程序及中断服务程序流程图
五、程序清单文件名:
DPJ02.ASM
ORG0000H
LJMPMAIN
ORG000BH
LJMPTINT;转中断服务程序
ORG0100H
MAIN:
MOVSP,#53H;设置堆栈
MOVR0,#79H;显示缓冲区清零
MOVR7,#06H
MOVA,#00H
DIPP:
MOV@R0,A
INCR0
DJNZR7,DIPP
SETBP1.0
MOVTMOD,#06H;置T0工作方式
MOVTH0,#0FBH
MOVTL0,#0FBH;计数初值送计数器
SETBET0;允许T0中断
SETBEA;CPU开中断
SETBTR0;启动T0
XIAN:
MOVA,TL0
SUBBA,#0FAH
ANLA,#0FH
MOV79H,A
LCALLDIS
AJMPXIAN;循环显示计数值
DIS:
PUSHDPH
PUSHDPL
SETBRS1
MOVP2,#0FFH
MOVA,#43H;8155的定时器停止计数,PA、PB输出,PC输入
MOVR1,#20H;FF20H为8155控制口地址
MOVX@R1,A
MOVR1,#21H;FF21H为8155PA口地址(字位口)
MOVA,#0FFH;关显示
MOVX@R1,A
MOVR0,#7EH;显示缓冲区首地址送R0
MOVR2,#20H;00100000B(位选码)从右向左显示
MOVR3,#00H
MOVDPTR,#LS0
LS2:
MOVA,@R0;取待显示的数据
MOVCA,@A+DPTR;查表(段码)
MOVR1,#22H;8155PB口地址(字形口)
MOVX@R1,A;输出段码
MOVA,R2;取位选码
DECR1;指向8155PA口
CPLA;位选码取反(外部有反向驱动器75451)
MOVX@R1,A;输出位码
CPLA
DECR0;取下一位数据
LS1:
DJNZR3,LS1;延时
CLRC
RRCA;修改位选码(准备显示下一位数据)
MOVR2,A;保存
JNZLS2;六位显示完否?
INCR1;指向8155PB口
MOVA,#0FFH;关显示
MOVX@R1,A
CLRRS1
POPDPL
POPDPH
RET
LS0:
DB0C0H,0F9H,0A4H,0B0H,99H,92H;012345
DB82H,0F8H,80H,90H,88H,83H,0C6H;6789Abc
DB0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;dEF灭PH.-
TINT:
CLRP1.0;中断服务程序
LCALLDELY
SETBP1.0
RETI
DELY:
MOVR7,#10;延时程序
DEL0:
MOVR6,#200
DEL1:
MOVR5,#250
DEL2:
DJNZR5,DEL2;250×2us=500us
DJNZR6,DEL1;200×500us=100ms
DJNZR7,DEL0;10×100ms=1s
RET
END
六、实验步骤
1.执行程序,按动单脉冲产生按钮(AN0),观察数码管上的计数值是在按钮按下时加“1”还是在按钮松开时计数数值加“1”。
2.观察发光二极管L1在单脉冲产生按钮(AN0)按动多少次时发生变化。
七、思考
1.计数器是在外部输入脉冲的上升沿还是下降沿加“1”计数的。
2.外部输入的计数脉冲的频率最高不得超过单片机振荡频率的多少倍?
实验三可编程I/O接口芯片8255实验
一、实验目的
1.掌握单片机系统中扩展可编程I/O接口芯片8255的方法;
2.掌握可编程I/O接口芯片8255的初始化编程方法。
二、实验内容
将8255PA口设置为输入,接