“单片机应用技术”课程 实验指导书 本课程实验前要预习实验内容,读懂范例程序,并按实验要求 准备程序流程图和汇编源程序 本课程实验报告要求 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
硬件连线对应的字形码: 表2-1 0 字形码 5 6 不显示 字形码 五、练习范例程序: ORG 0000H 指令执行结果 LJMP MAIN 0RG0100H MAIN: MOV (P0)= (P2)= MOV R1,#3 (R1)= MOV DPTR,#DIS_CODE (DPTR)= MOV A RI (A)= MOVC A,@A+DPTR (A)= PO,A (P0)= DIS_CODE:DB OCOH,OF9H,OA4H,OBOH,99H,92H,82H,OF8H,80H,90H,OFFH END 实验前读懂范例程序,按硬件电路原理图,在表2-1中填写好字形码:并画出流程图 思考:1)程序执行结果?P0、P2、R1的功用? 2)0RG0000E ORC 0100各起何作用? 3)数据指针DPTR的位数?在程序区取数据的方法? 六、实验操作步骤: 2、检查实验板CPU芯片座上的仿真头:打开仿真器开关、开启实验板开 f桌面“VW” 伟福仿真软件 3、设置仿真器方式: 建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“×X.ASM”形式。 5、编译程序、查错: 6、运行程序: 1)点窗口/CPU窗旦,从反汇编窗口观察编译器如何给DIS_CODE数据表在程序区分 配空间,找到首个数据0COH所在地址值。 2)单步运行程序,通过REG窗口观察R1、A、DPTR(由DPH和DPL构成)寄存器:SFR 窗口观察P0、P2寄存器数据变化,将每句执行结果填入范例程序右侧:搞清查 表程序由哪几句构成,如何确定偏移量的? 2)全速热行程序,观察数码管显示结果:改变R1(≤10)值,显示结果如何变化? 7、按实验要 编程,并调试成功 选做(实验要求3)提示: 本实验多位数码管显示电路采用动态显示方式。即在某一瞬时显示一位,依次轮 流显示。具体编程方法可参见教材P130
硬件连线对应的字形码: 表 2-1 字 0 1 2 3 4 字形码 字 5 6 7 8 9 不显示 字形码 五、练习范例程序: ORG 0000H 指令执行结果 LJMP MAIN ORG 0100H MAIN: MOV P0,#0FFH (P0)= MOV P2,#0F7H (P2)= MOV R1,#3 (R1)= MOV DPTR,#DIS_CODE (DPTR)= MOV A,R1 (A)= MOVC A,@A+DPTR (A)= MOV P0,A (P0)= SJMP $ DIS_CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END 实验前读懂范例程序,按硬件电路原理图,在表 2-1 中填写好字形码;并画出流程图。 思考:1)程序执行结果?P0、P2、R1 的功用? 2)ORG OOOOH 、ORG O10OH 各起何作用? 3)数据指针 DPTR 的位数?在程序区取数据的方法? 六、实验操作步骤: 1、检查实验板 CPU 芯片座上的仿真头;打开仿真器开关、开启实验板开关; 2、运行桌面“VW”伟福仿真软件 ; 3、设置仿真器方式:建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“××.ASM”形式。 5、编译程序、查错; 6、运行程序: 1)点窗口/CPU窗口,从反汇编窗口观察编译器如何给DIS_CODE数据表在程序区分 配空间,找到首个数据 0C0H所在地址值。 2)单步运行程序,通过REG窗口观察R1、A、DPTR(由DPH和DPL构成)寄存器;SFR 窗口观察P0、P2 寄存器数据变化,将每句执行结果填入范例程序右侧;搞清查 表程序由哪几句构成,如何确定偏移量的? 序 2)全速执行程序,观察数码管显示结果;改变R1(≤10)值,显示结果如何变化? 7、按实验要求 1 编程,并调试成功。 选做(实验要求 3)提示: 本实验多位数码管显示电路采用动态显示方式。即在某一瞬时显示一位,依次轮 流显示。具体编程方法可参见教材 P130。 6
实验三定时器实验 一、实验目的: 1、学习51单片机内部定时器的使用和编程方法: 2、学习学握中新处理程序的编写方法: 3、熟悉用仿真器调试程序的方法。 二、实验要求: 以下控制要求定时时间均用系统定时器实现: 1、用1位LED数码管实现循环显示09,每隔2秒显示数加1: 2、用2位LED数码管稳定显示“12”,位选信号接P2口的第0、1位: 3、用8位LED数码管稳定显示“12345678”,位选信号接2口的8位。(选做) 三、实验设备: 8、V51L伟福仿真器一套: 9、Up51a学习开发板一块: 10. 微机一台套及VW仿真软件,USB通讯线一根:电源线两根。 四、实验原理及电路:(同实验二) 五、实验说明: 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数 器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。 2、与定时器有关的控制寄存器有工作方式寄存器TNOD和控制寄存器TCON。TMOD用于 设置定时器/计数器 作万 0-3 确定用 于定时还是用 i 十数。 TCON 主要功 能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。本实验采用定 时器0,选用工作方式1。 3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡 器周期。定时器工作于方式1,即采用的是16位定时器。实验系统的晶振是12MZ, 因此最大定时时间约65ms左右。 若控制要求2秒定时,可设定定时器205中断 次,然后对20ms中断次数计数100次,就是2秒钟。 定时常数的设置可按以下方法计算: 机器周期=12÷12MH2=1uS (65535-定时初值)×1uS=20000us 则定时初值=45535,化为十六进制数是B1DFH,故初始值为THO=B1H,TL0=DFH。 六、练习范例程序 ORG 0000H 注释 L IMP MAIN ORG 000B LJMP ro_S ORG 0100H MAIN:MOV TMOD,#01H MOV TLO.#OFOH THO,#0D8H
实验三 定时器实验 一、实验目的: 1、学习 51 单片机内部定时器的使用和编程方法; 2、学习掌握中断处理程序的编写方法; 3、熟悉用仿真器调试程序的方法。 二、实验要求: 以下控制要求定时时间均用系统定时器实现: 1、用 1 位 LED 数码管实现循环显示 0~9,每隔 2 秒显示数加 1; 2、用 2 位 LED 数码管稳定显示“12”,位选信号接 P2 口的第 0、1 位; 3、用 8 位 LED 数码管稳定显示“12345678”,位选信号接 P2 口的 8 位。(选做) 三、实验设备: 8、V51/L 伟福仿真器一套; 9、Up51a 学习开发板一块; 10、 微机一台套及 VW 仿真软件,USB 通讯线一根;电源线两根。 四、实验原理及电路:(同实验二) 五、实验说明: 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数 器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。 2、与定时器有关的控制寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON。TMOD 用于 设置定时器/计数器的工作方式 0-3,并确定用于定时还是用于计数。TCON 主要功 能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。本实验采用定 时器 0,选用工作方式 1。 3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡 器周期。定时器工作于方式 1,即采用的是 16 位定时器。实验系统的晶振是 12MHZ, 因此最大定时时间约 65ms 左右。若控制要求 2 秒定时,可设定定时器 20ms 中断一 次, 然后对 20ms 中断次数计数 100 次,就是 2 秒钟。 定时常数的设置可按以下方法计算: 机器周期=12÷12MHZ=1uS (65535-定时初值)×1uS=20000us 则定时初值=45535,化为十六进制数是 B1DFH,故初始值为 TH0=B1H,TL0=DFH。 六、练习范例程序: ORG 0000H 注释 LJMP MAIN ORG 000BH LJMP T0_S ORG 0100H MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H 7
SETB FA SETB ETO SETB TRO MOV R3,#100 MOV P0,#99H MOV P2,#0FEH LP: CINE R3,#00,LP MOV PO,#OFFH MOV P2,#OFER SIMP TO_S:MOV TLO.#0FOH MOV THO,#OD8H DEC RETI END 实验前读懂程序,并添加注释,画出流程图。 思考:1)程序执行结果?3的功用? 2)本程 用的定时器及定时方式?定时时间、定时初值各为多少?如何启动 定时器工作 3)定时中断的入口地址?该中断程序做了哪些事? 七、实验操作方法: 1、检查实验板CPU芯片座上的仿真头:打开仿真器开关、开启实验板开关: 运行桌面“ 伟福仿真软件: 3、设置仿真器方式:建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“×X.ASM”形式。 5、编译程序、查错: 6、运行调试程序 1)调试定时器功能模块 中断程序单步无法实现,只能用“设置断点”方法。在中断程序首句处设置断 点并全速运行程序(具体操作见“伟福仿真器使用说明”),若能执行至断点处, 说明定时器设置正确。观察程序执行到断点处的执行时间、与定时器相关的寄 存器(SFR窗口)如何变化 2)R3掌控定时进中断的次数 程序中有 条语句与R3有关,共同作用来实现计数功能。断点设置在中断程序 首句运行程序,每点一次全速运行,观察R3变化,体会如何实现计数。 7、按实验要求1编程,并调试成功。 对实验要求2程序: 调整显示时间,确定2位数码管实现稳定显示的轮流扫描时间范围大致为多少?
SETB EA SETB ET0 SETB TR0 MOV R3,#100 MOV P0,#99H MOV P2,#0FEH LP: CJNE R3, #00H, LP MOV P0,#0FFH MOV P2,#0FEH SJMP $ T0_S: MOV TL0,#0F0H MOV TH0,#0D8H DEC R3 RETI END 实验前读懂程序,并添加注释,画出流程图。 思考:1)程序执行结果?R3 的功用? 2)本程序使用的定时器及定时方式?定时时间、定时初值各为多少?如何启动 定时器工作? 3)定时中断的入口地址?该中断程序做了哪些事? 七、实验操作方法: 1、检查实验板 CPU 芯片座上的仿真头;打开仿真器开关、开启实验板开关; 2、运行桌面“VW”伟福仿真软件 ; 3、设置仿真器方式:建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“××.ASM”形式。 5、编译程序、查错; 6、运行调试程序: 1)调试定时器功能模块: 中断程序单步无法实现,只能用“设置断点”方法。在中断程序首句处设置断 点并全速运行程序(具体操作见“伟福仿真器使用说明”),若能执行至断点处, 说明定时器设置正确。观察程序执行到断点处的执行时间、与定时器相关的寄 存器(SFR 窗口)如何变化; 2)R3 掌控定时进中断的次数: 程序中有三条语句与R3 有关,共同作用来实现计数功能。断点设置在中断程序 首句运行程序,每点一次全速运行,观察R3 变化,体会如何实现计数。 7、按实验要求 1 编程,并调试成功。 对实验要求 2 程序: 调整显示时间,确定 2 位数码管实现稳定显示的轮流扫描时间范围大致为多少? 8
实验四 键盘显示实验(综合) 一、实验目的: 1、了解键盘电路工作原理:掌握独立键盘接口电路的程序编写方法: 2、学习学握多位数码管动态显示接口技术: 3、学习键盘显示综合运用的程序处理流程与编制方法。 二、实验要求: P3.2~P3.5分别接AN1-AN4按钮开关,4位LED数码管段选端接P0口,位选端接 P2口。 1、按下ANI,第一位数码管显示“1”:按下AN2,第二位数码管显示“2”., 依此类推。 2、4位数码管显示“1357”,按下AN1,全灭1秒后再重新显示。(选做 。AN1按下 显示 “87654321” 再次按下 三、实验设备: 1、V51L伟福仿真器一套: 四、实验电路: P3. GND 五、实验说明: 独立式键盘处理要点: 1、有键按下,相应输入为低,否则为高。通过这样可以判断按下什么键: 2、在判有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作,一般延时 时间处理为5一10m 3、由于程序执行时间很快,在键盘处理时要考虑按下后到拾起的时段控制,应保证每 按一次键,只处理一次
实验四 键盘显示实验(综合) 一、实验目的: 1、了解键盘电路工作原理;掌握独立键盘接口电路的程序编写方法; 2、学习掌握多位数码管动态显示接口技术; 3、学习键盘显示综合运用的程序处理流程与编制方法。 二、实验要求: P3.2~ P3.5 分别接 AN1~AN4 按钮开关,4 位 LED 数码管段选端接 P0 口,位选端接 P2 口。 1、按下 AN1,第一位数码管显示“1” ;按下 AN2,第二位数码管显示“2” ……, 依此类推。 2、4 位数码管显示“1357” ,按下 AN1,全灭 1 秒后再重新显示。(选做) 3、用 AN1、AN2 控制 8 位数码管显示。AN1 按下,显示“87654321” ;再次按下 后,全灭。在有显示情况下,若按下 AN2,全灭 1 秒后再重新显示。(选做) 三、实验设备: 1、V51/L 伟福仿真器一套; 2、Up51s 学习开发板一块; 3、微机一台套及 VW 仿真软件,USB 通讯线一根;电源线两根。 四、实验电路: 五、实验说明: 独立式键盘处理要点: 1、 有键按下,相应输入为低,否则为高。通过这样可以判断按下什么键; 2、 在判有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作,一般延时 时间处理为 5—10ms; 3、 由于程序执行时间很快,在键盘处理时要考虑按下后到抬起的时段控制,应保证每 按一次键,只处理一次。 9
单个键盘查询式扫描程序流程: 有键按下?· 延时5-10ms Ne 有键按下? Y- 键盘处理 按键释放? 六、练习范例程序: AN1按下,第一位数码管显示4,再按一下,关显示:依此循环 KEY BIT P3.2 0RG0000H LJMP START 0100H START:MOV P0,#99H SETB P2.0 WAIT:JB KEY.WAIT LCALL DELAY B KEY,WAIT CPL P2.0 JNB KEY, JMP WAIT DELAY:MOV R3.#20 2 M0VR4,#250 ZR4,2 DJNZ R3,D1 RET END 七、实验操作方法: 1、检查实验板CPU芯片座上的仿真头:打开仿真器开关、开启实验板开关: 2、运行桌面“VW”伟福仿真软件; 3、设置仿真器方式:建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“XX.ASM”形式。 5、编译程序、查错:
单个键盘查询式扫描程序流程: 六、练习范例程序: AN1 按下,第一位数码管显示 4,再按一下,关显示;依此循环… KEY BIT P3.2 ORG 0000H LJMP START ORG 0100H START: MOV P0,#99H SETB P2.0 WAIT: JB KEY, WAIT LCALL DELAY JB KEY, WAIT CPL P2.0 JNB KEY, $ JMP WAIT DELAY:MOV R3,#20 D1: MOV R4,#250 D2: DJNZ R4,D2 DJNZ R3,D1 RET END 七、实验操作方法: 1、检查实验板 CPU 芯片座上的仿真头;打开仿真器开关、开启实验板开关; 2、运行桌面“VW”伟福仿真软件 ; 3、设置仿真器方式:建立微机与仿真器间的数据通讯联系。 4、新建文件,输入练习范例程序,并将文件存盘成“××.ASM”形式。 5、编译程序、查错; 10