“单片机应用技术”课程 实验指导书 本课程实验前要预习实验内容,读懂范例程序,并按实验要求 准备程序流程图和汇编源程序 本课程实验报告要求 1、实验要求 2、实现控制要求的硬件电路原理图 3、程序流程图 4、课上要求完成的程序清单(加注释 5、实验遇到问题及解决 6、实验评价 机电工程学院机电实验室 2012-9
“单片机应用技术”课程 实验指导书 本课程实验前要预习实验内容,读懂范例程序,并按实验要求 准备程序流程图和汇编源程序 本课程实验报告要求 1、 实验要求 2、 实现控制要求的硬件电路原理图 3、 程序流程图 4、 课上要求完成的程序清单(加注释) 5、 实验遇到问题及解决 6、 实验评价 机电工程学院机电实验室 2012-9 1
实验一单片机开发环境的建立 一、 实验目的: 1、熟悉V51几伟福仿真系统及汇编语言程序开发环境、方法: 2、建立单片机最小系统概念、学习P0口的使用方法: 3、学习软件延时子程序的编写方法。 二、 实验要求: P0口做输出口,接八只发光二极管,编写程序,控制发光二极管的点亮状态。 1、八只LED管L14亮,L5-8灭:1秒后L1-4灭,L5-8亮。依此循环-- 2、八只LED管从L1~L8依次循环点亮,每个LED点亮的延时时间为2秒:(选做) 3、L1L8依次循环点亮,循环三遍后灯全灭。(选做) 三、 实验设备: 1、V51L伟福仿真器一套: 2、p51s学习开发板一块: 3、微机一台套及VW仿真软件,USB通讯线一根:电源线两根。 四、 实验电路: 1、单片机最小系统电路: 单片机的正常工作,是在以建立单片机最小系统的情况下实现的。单片机最小系 统包括电源电路、时钟电路、复位电路、存储器选择电路四部分。典型电路如下图所 示: 2、发光二极管输出电路: 本实验板的PO端口接了8个发光二极管,这些发光二极管的负极通过一个排电阻 接到P0端口各引脚,而正极接到正电源端,发光二极管点亮的条件是P0口相应的引 脚为低电平,即如果P0口某引脚输出为0,相应的灯亮,如果输出为1,相应的灯灭
实验一 单片机开发环境的建立 一、 实验目的: 1、熟悉 V51/L 伟福仿真系统及汇编语言程序开发环境、方法; 2、建立单片机最小系统概念、学习 P0 口的使用方法; 3、学习软件延时子程序的编写方法。 二、 实验要求: P0 口做输出口,接八只发光二极管,编写程序,控制发光二极管的点亮状态。 1、八只 LED 管 L1-4 亮,L5-8 灭;1 秒后 L1-4 灭,L5-8 亮。依此循环------。 2、八只 LED 管从 L1~L8 依次循环点亮,每个 LED 点亮的延时时间为 2 秒;(选做) 3、L1~L8 依次循环点亮,循环三遍后灯全灭。(选做) 三、 实验设备: 1、V51/L 伟福仿真器一套; 2、μp51s 学习开发板一块; 3、微机一台套及 VW 仿真软件,USB 通讯线一根;电源线两根。 四、 实验电路: 1、单片机最小系统电路: 单片机的正常工作,是在以建立单片机最小系统的情况下实现的。单片机最小系 统包括电源电路、时钟电路、复位电路、存储器选择电路四部分。典型电路如下图所 示: 2、发光二极管输出电路: 本实验板的 P0 端口接了 8 个发光二极管,这些发光二极管的负极通过一个排电阻 接到 P0 端口各引脚,而正极接到正电源端,发光二极管点亮的条件是 P0 口相应的引 脚为低电平,即如果 P0 口某引脚输出为 0,相应的灯亮,如果输出为 1,相应的灯灭。 2
五、程序输入格式规范: 汇编语言的指令一般形式为: [标号 操作码[操作数[:注释] 其中:标号和操作码之间用“:”隔开,操作码和操作数之间用空格隔开,多个操 作数之间用“,”隔开。“:”后是注释。方括号[]中的内容如不需要。可以省略。 程序输入时,各行的标号、操作码和操作数应保证对齐,可用键盘的“Tb”键来 控制。伪指令输入应与一般指令的操作码对齐。在输入时要特别注意 一指令中的标 点符号都应是在英文状态下。 六、延时子程序的延时计算说明: 对于子程序DELAY:MOVR1,#200 ① DLY LP1:MOV R0.±249 ② DLY LP2:DINZ RO.DLY LP2 DJNZ R1,DLY_LPI ④ RET 在系统晶振为12z时,一个机器周期时间长度为12/12M2-1μS 查指令表可知MOV指令需用一个机器周期,DJNZ指令需用两个机器周期,所以该段程 序执行时间为: 从②到③共用1+2*249=499个机器周期,即499μS 从①到④共用1+200*[(1+2*249)+2100201个机器周期,即100201μS,也即约0.1S 七、练习范例程序: ORG O000H MAIN: PO,#0FOH LCALL DELAY MOV PO,#0FH LCALL DELAY L00P: SIMP LOOP DELAY M0VR2,#10 DLY LPO:MOV R1.#200 DLY_LP1:MOV RO,#250 DLY LP2:DINZ RO.DLY LP2 DINZ RI DIY IPI DJNZ R2,DLY_LPO RET END 实验前读懂范例程序,作出注释,并画出流程图。 思考:1)0RG0000H含义? 2)延时子程序的延时时间为多少? 3)“L0OP:SMPL0OP”起何作用?
五、 程序输入格式规范: 汇编语言的指令一般形式为: [标号:] 操作码 [操作数] [;注释] 其中:标号和操作码之间用“:”隔开,操作码和操作数之间用空格隔开,多个操 作数之间用“,”隔开。“;”后是注释。方括号[ ]中的内容如不需要。可以省略。 程序输入时,各行的标号、操作码和操作数应保证对齐,可用键盘的“Tab”键来 控制。伪指令输入应与一般指令的操作码对齐。在输入时要特别注意——指令中的标 点符号都应是在英文状态下。 六、 延时子程序的延时计算说明: 对于子程序 DELAY: MOV R1,#200 ① DLY_LP1:MOV R0,#249 ② DLY_LP2:DJNZ R0,DLY_LP2 ③ DJNZ R1,DLY_LP1 ④ RET 在系统晶振为 12MHz 时,一个机器周期时间长度为 12/12MHZ=1μS 查指令表可知 MOV 指令需用一个机器周期,DJNZ 指令需用两个机器周期,所以该段程 序执行时间为: 从②到③共用 1+2*249=499 个机器周期,即 499μS; 从①到④共用 1+200*[(1+2*249)+2]=100201 个机器周期,即 100201μS,也即约 0.1S。 七、 练习范例程序: ORG 0000H MAIN: MOV P0,#0F0H LCALL DELAY MOV P0,#0FH LCALL DELAY LOOP: SJMP LOOP DELAY: MOV R2,#10 DLY_LP0:MOV R1,#200 DLY_LP1:MOV R0,#250 DLY_LP2:DJNZ R0,DLY_LP2 DJNZ R1,DLY_LP1 DJNZ R2,DLY_LP0 RET END 实验前读懂范例程序,作出注释,并画出流程图。 思考:1)ORG 0000H 含义? 2)延时子程序的延时时间为多少? 3)“LOOP:SJMP LOOP”起何作用? 3
八、 实验操作步骤: 1、检查仿真头在p51s实验板CPU芯片座上插好、插座扳手位于锁紧位置(实验过程 严禁用手触摸仿真头电路 表面):打开仿真器开关,开启实验板开关: 2、运行桌面“VW”伟福仿真软件 3、设置仿真器方式(具体操作见附“仿真器使用说明”):仿真器V5L,仿真 头POD-H8X5X,CPU AT89C51,注意必须将“使用伟福软件模拟器”选项前的√去掉, 以建立微机与仿真器间的数据通讯联系 新建文 练习范例程序,并将文件存盘成“×X.ASM”形式。 5、编译程序、查错: 6、熟悉机器码、程序字节数、程序地址等关键概念: 点窗口/CU窗口,可以看到编译正确的机器码及汇编源程序。搞清每条指令分配的 首地址、机器码、所占字节数等,并填入下表: 7、熟悉程序运行及调试方法,理解单片机程序的运行机制: 1) 全速执行: 可完整观察全部程序的执行情况 先点复位键 确保程序PC指针指 向0000H。再点全速执行,L1一L8八只二极管灯按程序要求正确点亮。按暂停, 可看到PC指针会指在某条语句处。搞清复位、暂停键作用。 2)单步运行:可观察每条指令的执行情况。按复位键,使PC指针回0000H。连续 点单步钮,观察指令执行时间、PC指针变化(在窗口下部显示),并填入下表: 同时通 过SFR窗 观察 P0寄存 器的变化及实验板LED 灯的变化情况: 3)跟踪运行:可观察主程序调用子程序时,子程序各步执行情况。按复位键,再 连续点跟踪,当PC指向DELAY子程序内部后,通过REG窗口观察RO、R1和R2寄 存器的变化,DJZ指令功能?理解延时子程序结构特点。搞清单步与跟踪命令 的风别 4)理解原地踏步命令:单步运行程序至“LOOP:SJMP LOOP”句,再点单步 察PC指针如何变化?取消该句,修改程序编译后,用单步方式运行,观察程序 执行过程,理解何为程序“跑飞”。 指令首地址机器码字节数执行时间(μS)PC指针值 MAIN:MOV PO,#OFOH LCALL DELAY MOV PO.#OFH LCALL DELAY 100p DELAY:MOV R2,#10 DLY LPO:MOV R1.#200 DIY IPI.MOV RO #250 DLY_LP2:DJNZ RI,DLY_LP1 DJNZ R2,DLY LPO RET 8、按实验要求1编程,并调试成功, 4
八、 实验操作步骤: 1、检查仿真头在 μp51s 实验板 CPU 芯片座上插好、插座扳手位于锁紧位置(实验过程 严禁用手触摸仿真头电路表面);打开仿真器开关,开启实验板开关; 2、运行桌面“VW”伟福仿真软件 ; 3、设置仿真器方式(具体操作见附“仿真器使用说明” ):仿真器V5/L,仿真 头POD-H8X5X,CPU AT89C51,注意必须将“使用伟福软件模拟器”选项前的√去掉, 以建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“××.ASM”形式。 5、编译程序、查错; 6、熟悉机器码、程序字节数、程序地址等关键概念: 点窗口/CPU窗口,可以看到编译正确的机器码及汇编源程序。搞清每条指令分配的 首地址、机器码、所占字节数等,并填入下表; 7、熟悉程序运行及调试方法,理解单片机程序的运行机制: 1) 全速执行:可完整观察全部程序的执行情况。先点复位键,确保程序PC指针指 向 0000H。再点全速执行,L1—L8 八只二极管灯按程序要求正确点亮。按暂停, 可看到PC指针会指在某条语句处。搞清复位、暂停键作用。 2) 单步运行:可观察每条指令的执行情况。按复位键,使PC指针回 0000H。连续 点单步钮,观察指令执行时间、PC指针变化(在窗口下部显示),并填入下表; 同时通过SFR窗口观察执行前后P0 寄存器的变化及实验板LED灯的变化情况; 3) 跟踪运行:可观察主程序调用子程序时,子程序各步执行情况。按复位键,再 连续点跟踪, 当PC指向DELAY子程序内部后,通过REG窗口观察R0、R1 和R2 寄 存器的变化,DJNZ指令功能?理解延时子程序结构特点。搞清单步与跟踪命令 的区别。 4) 理解原地踏步命令:单步运行程序至“LOOP:SJMP LOOP”句,再点单步,观 察PC指针如何变化?取消该句,修改程序编译后,用单步方式运行,观察程序 执行过程,理解何为程序“跑飞”。 指令首地址 机器码 字节数 执行时间(μS) PC 指针值 MAIN: MOV P0,#0F0H LCALL DELAY MOV P0,#0FH LCALL DELAY LOOP: SJMP LOOP DELAY: MOV R2,#10 DLY_LP0:MOV R1,#200 DLY_LP1:MOV R0,#250 DLY_LP2:DJNZ R0,DLY_LP2 DJNZ R1,DLY_LP1 DJNZ R2,DLY_LP0 RET 8、按实验要求 1 编程,并调试成功。 4
实验二数码管显示实验 一、实验目的: 1、了解八段数码显示数字的原理、学习LED显示接口技术: 2、学习学握查表程序的编写方法: 二、实验要求: 本实验用1位LED数码管,段选信号接P0口,位选信号接P2口的第0位 1、循环显示0-9,每隔2秒显示数加1,字形码放在程序存储器内: 2、顺序显示自已身份证号码,每位停留显示1秒,数据更新时灭0.5秒。(选做〉 3、两位数码管稳定显示“34”,位选信号接P2口的第0、1位。(选做) 三、实验设备: 1、V51L伟福仿真器一套 2、p51s学习开发板一块: 3、微机一台套及VW仿真软件,USB通讯线一根:电源线两根。 四、实验原理与电路: )显示器 单片机的PO口和P2口构成了8位LED数码管驱动电路,这里LED数码管采用了共 阳型,其数码管的笔段(即对应的abcdefgh)引脚是二极管的负极,与PO口相接,所有 极管的正极连在一起构成公共端,即该位数码管的位选端,对于这种数码管的驱动要求在 位选端提供电流,为此,使用了P型三极管作为位选端的驱动,共用8只三极管,每只 三极管的发射极连在一起,接正电源端:基极则通过限流电阻分别接P2.0一P2.7。集电极 分别向8只数码管供电。由此可以判断出:段选P0口送低电平有效,位选(COM端)因集电 极需高电平,则P2.0-2.7口应送低电平有效。 44 5
实验二 数码管显示实验 一、实验目的: 1、了解八段数码显示数字的原理、学习 LED 显示接口技术; 2、学习掌握查表程序的编写方法; 二、实验要求: 本实验用 1 位 LED 数码管,段选信号接 P0 口,位选信号接 P2 口的第 0 位: 1、循环显示 0~9,每隔 2 秒显示数加 1,字形码放在程序存储器内; 2、顺序显示自己身份证号码,每位停留显示 1 秒,数据更新时灭 0.5 秒。(选做) 3、两位数码管稳定显示“34”,位选信号接 P2 口的第 0、1 位。(选做) 三、实验设备: 1、V51/L 伟福仿真器一套; 2、μp51s 学习开发板一块; 3、微机一台套及 VW 仿真软件,USB 通讯线一根;电源线两根。 四、实验原理与电路: 共阳型 LED 显示器 单片机的 P0 口和 P2 口构成了 8 位 LED 数码管驱动电路,这里 LED 数码管采用了共 阳型,其数码管的笔段(即对应的 abcdefgh)引脚是二极管的负极,与 P0 口相接,所有二 极管的正极连在一起构成公共端,即该位数码管的位选端,对于这种数码管的驱动要求在 位选端提供电流,为此,使用了 PNP 型三极管作为位选端的驱动,共用 8 只三极管,每只 三极管的发射极连在一起,接正电源端;基极则通过限流电阻分别接 P2.0—P2.7。集电极 分别向 8 只数码管供电。由此可以判断出:段选 P0 口送低电平有效,位选(COM 端)因集电 极需高电平,则 P2.0-2.7 口应送低电平有效。 5