《单片机开发环境的熟悉.ppt》由会员分享,可在线阅读,更多相关《单片机开发环境的熟悉.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一、单片机开发环境的熟悉实验一、单片机开发环境的熟悉【实验目的实验目的实验目的实验目的】1 1、熟悉、熟悉、熟悉、熟悉MCSMCS5151单片机开发环境。单片机开发环境。单片机开发环境。单片机开发环境。2 2、熟悉单片机的开发环境,掌握简单程序的编辑与调试、熟悉单片机的开发环境,掌握简单程序的编辑与调试、熟悉单片机的开发环境,掌握简单程序的编辑与调试、熟悉单片机的开发环境,掌握简单程序的编辑与调试方法以及单片机程序固化的操作技术。方法以及单片机程序固化的操作技术。方法以及单片机程序固化的操作技术。方法以及单片机程序固化的操作技术。【实验设备实验设备实验设备实验设备】AT89C51 AT89
2、C51单片机一片单片机一片单片机一片单片机一片 WHWH500AP500AP编程器一个编程器一个编程器一个编程器一个 单片机最小系统实验板一块单片机最小系统实验板一块单片机最小系统实验板一块单片机最小系统实验板一块 计算机一台计算机一台计算机一台计算机一台 【实验内容实验内容实验内容实验内容】编写一个简单的流水灯程序。编写一个简单的流水灯程序。编写一个简单的流水灯程序。编写一个简单的流水灯程序。【实验步骤实验步骤实验步骤实验步骤】1 1、编写好流水灯源程序。、编写好流水灯源程序。、编写好流水灯源程序。、编写好流水灯源程序。2 2、将程序录入计算机,保存为文件,文件名为:、将程序录入计算机,保存
3、为文件,文件名为:、将程序录入计算机,保存为文件,文件名为:、将程序录入计算机,保存为文件,文件名为:*.asmasm3 3、利用汇编程序对、利用汇编程序对、利用汇编程序对、利用汇编程序对*.asmasm进行汇编,调试。生成进行汇编,调试。生成进行汇编,调试。生成进行汇编,调试。生成*.hex.hex目标文件。目标文件。目标文件。目标文件。4 4、运行编程器软件打开生成的、运行编程器软件打开生成的、运行编程器软件打开生成的、运行编程器软件打开生成的*.hex.hex,将目标文件固化到,将目标文件固化到,将目标文件固化到,将目标文件固化到AT89C51AT89C51单片机的单片机的单片机的单片机
4、的ROMROM中。中。中。中。5 5、将单片机置入单片机最小系统实验板,脱机运行,检验、将单片机置入单片机最小系统实验板,脱机运行,检验、将单片机置入单片机最小系统实验板,脱机运行,检验、将单片机置入单片机最小系统实验板,脱机运行,检验运行结果!运行结果!运行结果!运行结果!6 6、如有问题,重新打开、如有问题,重新打开、如有问题,重新打开、如有问题,重新打开*.asmasm源程序进行修改,重做源程序进行修改,重做源程序进行修改,重做源程序进行修改,重做2 2、3 3、4 4、5 5、6 6,直到运行正常。,直到运行正常。,直到运行正常。,直到运行正常。【参考程序参考程序参考程序参考程序】OR
5、G 0000HORG 0000HMAIN:MOV P0,#42HMAIN:MOV P0,#42H 实验二、模拟简单十字路口交通信号灯实验二、模拟简单十字路口交通信号灯【实验目的实验目的实验目的实验目的】1 1、掌握单片机硬件图的认识方法,学会判断有效电平。、掌握单片机硬件图的认识方法,学会判断有效电平。、掌握单片机硬件图的认识方法,学会判断有效电平。、掌握单片机硬件图的认识方法,学会判断有效电平。2 2、熟悉单片机各端口驱动电路的接法。、熟悉单片机各端口驱动电路的接法。、熟悉单片机各端口驱动电路的接法。、熟悉单片机各端口驱动电路的接法。3 3、掌握简单的数据传送程序、子程序的调用、利用工作寄存
6、、掌握简单的数据传送程序、子程序的调用、利用工作寄存、掌握简单的数据传送程序、子程序的调用、利用工作寄存、掌握简单的数据传送程序、子程序的调用、利用工作寄存器作计数器,设计的延时程序时间的计算方法以及单片机器作计数器,设计的延时程序时间的计算方法以及单片机器作计数器,设计的延时程序时间的计算方法以及单片机器作计数器,设计的延时程序时间的计算方法以及单片机端口的规划的方法。端口的规划的方法。端口的规划的方法。端口的规划的方法。4 4、掌握多次调用子程序的方法。、掌握多次调用子程序的方法。、掌握多次调用子程序的方法。、掌握多次调用子程序的方法。5 5、掌握单片机程序写入的具体操作步骤。、掌握单片机
7、程序写入的具体操作步骤。、掌握单片机程序写入的具体操作步骤。、掌握单片机程序写入的具体操作步骤。【实验内容实验内容实验内容实验内容】:1 1、单片机实验板硬件图的认识。、单片机实验板硬件图的认识。、单片机实验板硬件图的认识。、单片机实验板硬件图的认识。2 2、编制一程序,利用实验板上的、编制一程序,利用实验板上的、编制一程序,利用实验板上的、编制一程序,利用实验板上的LEDLED发光二极管,模拟发光二极管,模拟发光二极管,模拟发光二极管,模拟“十十十十”字路口的交通灯。字路口的交通灯。字路口的交通灯。字路口的交通灯。【实验要求实验要求实验要求实验要求】在两条主干道相交构成的十字路口,如在两条主
8、干道相交构成的十字路口,如在两条主干道相交构成的十字路口,如在两条主干道相交构成的十字路口,如A A线为南北向,线为南北向,线为南北向,线为南北向,B B线为东西向,线为东西向,线为东西向,线为东西向,A A线为禁止线时,线为禁止线时,线为禁止线时,线为禁止线时,B B线为放行线,以定时时线为放行线,以定时时线为放行线,以定时时线为放行线,以定时时限为依据,使限为依据,使限为依据,使限为依据,使A A、B B线交替的成为放行线和禁止线。定时规线交替的成为放行线和禁止线。定时规线交替的成为放行线和禁止线。定时规线交替的成为放行线和禁止线。定时规定如下:定如下:定如下:定如下:放行线:绿灯亮放行线
9、:绿灯亮放行线:绿灯亮放行线:绿灯亮2525秒,变为黄灯警告秒,变为黄灯警告秒,变为黄灯警告秒,变为黄灯警告5 5秒,然后变为红秒,然后变为红秒,然后变为红秒,然后变为红灯,放行线变为禁止线。灯,放行线变为禁止线。灯,放行线变为禁止线。灯,放行线变为禁止线。禁止线:红灯亮禁止线:红灯亮禁止线:红灯亮禁止线:红灯亮3030秒,直接变为绿灯,禁止线成为放秒,直接变为绿灯,禁止线成为放秒,直接变为绿灯,禁止线成为放秒,直接变为绿灯,禁止线成为放行线。行线。行线。行线。利用单片机利用单片机利用单片机利用单片机P0P0口的口的口的口的8 8只发光二极管模拟交通灯,信号灯只发光二极管模拟交通灯,信号灯只发
10、光二极管模拟交通灯,信号灯只发光二极管模拟交通灯,信号灯规划如下:规划如下:规划如下:规划如下:【解决思路解决思路解决思路解决思路】【实验步骤实验步骤实验步骤实验步骤】参见实验一参见实验一参见实验一参见实验一【参考程序参考程序参考程序参考程序】;cjc002.asmcjc002.asmORG 0000HORG 0000HMAIN:MOV R0,#19HMAIN:MOV R0,#19HMAI0:MAI0:MOV P0,#0DDH MOV P0,#0DDH ;A A绿灯,绿灯,绿灯,绿灯,B B红灯红灯红灯红灯ACALL DELAACALL DELADJNZ R0,MAI0DJNZ R0,MAI0
11、MOV R0,#5HMOV R0,#5H;-;-MAI1:MAI1:MOV P0,#0DBHMOV P0,#0DBH ;A A黄灯,黄灯,黄灯,黄灯,B B红灯红灯红灯红灯ACALL DELAACALL DELADJNZ R0,MAI1DJNZ R0,MAI1MOV R0,#19HMOV R0,#19H;-;-MAI2:MAI2:MOV P0,#0BEH MOV P0,#0BEH;A A红灯,红灯,红灯,红灯,B B绿灯绿灯绿灯绿灯ACALL DELAACALL DELADJNZ R0,MAI2DJNZ R0,MAI2MOV R0,#5HMOV R0,#5H;-;-MAI3:MAI3:MOV
12、P0,#7EHMOV P0,#7EH ;A A红灯,红灯,红灯,红灯,B B黄灯黄灯黄灯黄灯ACALL DELAACALL DELADJNZ R0,MAI3DJNZ R0,MAI3MOV R0,#19HMOV R0,#19HAJMP MAINAJMP MAIN;-;-DELA:MOV R1,#249DELA:MOV R1,#249 ;延时;延时;延时;延时1 1秒秒秒秒DEL0:MOV R2,#200DEL0:MOV R2,#200DEL1:MOV R3,#10DEL1:MOV R3,#10DEL2:DJNZ R3,DEL2 DEL2:DJNZ R3,DEL2 DJNZ R2,DEL1DJNZ
13、 R2,DEL1DJNZ R1,DEL0 DJNZ R1,DEL0 RETRET 【实验结论实验结论实验结论实验结论】(实验现象(实验现象(实验现象(实验现象1 1)信号灯的变化规律为:)信号灯的变化规律为:)信号灯的变化规律为:)信号灯的变化规律为:,程序运行正常,且与设计要求一致,实验成功!程序运行正常,且与设计要求一致,实验成功!程序运行正常,且与设计要求一致,实验成功!程序运行正常,且与设计要求一致,实验成功!(实验现象(实验现象(实验现象(实验现象2 2)信号灯无任何变化:原因:程序有问题。)信号灯无任何变化:原因:程序有问题。)信号灯无任何变化:原因:程序有问题。)信号灯无任何变化
14、:原因:程序有问题。(实验现象(实验现象(实验现象(实验现象3 3)或变化紊乱,无规律:原因:程序结构有问题,)或变化紊乱,无规律:原因:程序结构有问题,)或变化紊乱,无规律:原因:程序结构有问题,)或变化紊乱,无规律:原因:程序结构有问题,循环有问题。循环有问题。循环有问题。循环有问题。(实验现象(实验现象(实验现象(实验现象4 4)应该亮的信号灯没有亮,不该亮的亮了:电平)应该亮的信号灯没有亮,不该亮的亮了:电平)应该亮的信号灯没有亮,不该亮的亮了:电平)应该亮的信号灯没有亮,不该亮的亮了:电平搞反了!搞反了!搞反了!搞反了!(实验现象(实验现象(实验现象(实验现象5 5)【改正方法改正方
15、法改正方法改正方法】一、实验中常见的错误一、实验中常见的错误1 1、程序中指令书写错误。、程序中指令书写错误。、程序中指令书写错误。、程序中指令书写错误。如:如:如:如:DJNZ DJNZ 写为写为写为写为DJNEDJNE 系统提示:系统提示:系统提示:系统提示:Invalid instruction2 2、没有定义标号而在程序中使用该、没有定义标号而在程序中使用该、没有定义标号而在程序中使用该、没有定义标号而在程序中使用该标号标号标号标号。系统提示:系统提示:系统提示:系统提示:Undefined:DELAYDELAY3 3、指令中所使用的数据过大或不正确,与另一操作数不匹配。、指令中所使用
16、的数据过大或不正确,与另一操作数不匹配。、指令中所使用的数据过大或不正确,与另一操作数不匹配。、指令中所使用的数据过大或不正确,与另一操作数不匹配。系统提示:系统提示:系统提示:系统提示:Invalid operand:3OH3OH4 4、指令中的数据没有加号,系统把数据认作是、指令中的数据没有加号,系统把数据认作是、指令中的数据没有加号,系统把数据认作是、指令中的数据没有加号,系统把数据认作是RAMRAM的地址而的地址而的地址而的地址而造成程序执行错误,这种错误系统没有提示。造成程序执行错误,这种错误系统没有提示。造成程序执行错误,这种错误系统没有提示。造成程序执行错误,这种错误系统没有提示
17、。5 5、定义的标号前或后有空格或标号后没有、定义的标号前或后有空格或标号后没有、定义的标号前或后有空格或标号后没有、定义的标号前或后有空格或标号后没有“:”号,而在号,而在号,而在号,而在引用标号时又没有空格,造成系统提示没有定义标号。引用标号时又没有空格,造成系统提示没有定义标号。引用标号时又没有空格,造成系统提示没有定义标号。引用标号时又没有空格,造成系统提示没有定义标号。系统提示:系统提示:系统提示:系统提示:Undefined:DELAYDELAY6 6、程序中有寄存器不当的重复使用,造成数据在其他程序、程序中有寄存器不当的重复使用,造成数据在其他程序、程序中有寄存器不当的重复使用,
18、造成数据在其他程序、程序中有寄存器不当的重复使用,造成数据在其他程序段中被修改,而影响本段程序的执行,造成程序执行错段中被修改,而影响本段程序的执行,造成程序执行错段中被修改,而影响本段程序的执行,造成程序执行错段中被修改,而影响本段程序的执行,造成程序执行错误,这种错误系统页不予提示。误,这种错误系统页不予提示。误,这种错误系统页不予提示。误,这种错误系统页不予提示。7 7、指令的注释前没有加、指令的注释前没有加、指令的注释前没有加、指令的注释前没有加“;”系统提示:系统提示:系统提示:系统提示:Invalid data:loop或提示其他错误。或提示其他错误。或提示其他错误。或提示其他错误
19、。8 8、指令中应该有、指令中应该有、指令中应该有、指令中应该有“,”的地方使空白。的地方使空白。的地方使空白。的地方使空白。如:如:如:如:MOV A#30HMOV A#30H 系统提示:系统提示:系统提示:系统提示:Invalid operand:A A9 9、重复定义标号。、重复定义标号。、重复定义标号。、重复定义标号。系统提示:系统提示:系统提示:系统提示:Multi-defined:DELAYDELAY1010、使用了指令系统中没有的指令,或指令的寻址方式不正、使用了指令系统中没有的指令,或指令的寻址方式不正、使用了指令系统中没有的指令,或指令的寻址方式不正、使用了指令系统中没有的指
20、令,或指令的寻址方式不正确。确。确。确。如:如:如:如:CJNE 30H,#00H,LOOP1CJNE 30H,#00H,LOOP1 系统提示:系统提示:系统提示:系统提示:Syntax error1111、逻辑错误,这种错误系统一般没有提示,但程序无法执、逻辑错误,这种错误系统一般没有提示,但程序无法执、逻辑错误,这种错误系统一般没有提示,但程序无法执、逻辑错误,这种错误系统一般没有提示,但程序无法执行,或执行结果错误。行,或执行结果错误。行,或执行结果错误。行,或执行结果错误。1212、程序的起始地址超过了实际使用的单片机的内部、程序的起始地址超过了实际使用的单片机的内部、程序的起始地址超
21、过了实际使用的单片机的内部、程序的起始地址超过了实际使用的单片机的内部ROMROM区区区区域,系统也没有任何提示,造成程序无法正确固化到单域,系统也没有任何提示,造成程序无法正确固化到单域,系统也没有任何提示,造成程序无法正确固化到单域,系统也没有任何提示,造成程序无法正确固化到单片机中(单片机中没有任何程序),造成无结果。片机中(单片机中没有任何程序),造成无结果。片机中(单片机中没有任何程序),造成无结果。片机中(单片机中没有任何程序),造成无结果。1313、程序中多次使用、程序中多次使用、程序中多次使用、程序中多次使用ORGORG伪指令,而两个伪指令,而两个伪指令,而两个伪指令,而两个O
22、RGORG之间的范围又之间的范围又之间的范围又之间的范围又太小,造成后面的指令代码将前面的指令代码覆盖,此太小,造成后面的指令代码将前面的指令代码覆盖,此太小,造成后面的指令代码将前面的指令代码覆盖,此太小,造成后面的指令代码将前面的指令代码覆盖,此中错误系统也没有提示,程序无法执行或结果错误。中错误系统也没有提示,程序无法执行或结果错误。中错误系统也没有提示,程序无法执行或结果错误。中错误系统也没有提示,程序无法执行或结果错误。1414、程序中的指令没有任何错误,程序也没有任何功能,只、程序中的指令没有任何错误,程序也没有任何功能,只、程序中的指令没有任何错误,程序也没有任何功能,只、程序中
23、的指令没有任何错误,程序也没有任何功能,只是一些正确指令的简单列举,程序也没有任何结果。是一些正确指令的简单列举,程序也没有任何结果。是一些正确指令的简单列举,程序也没有任何结果。是一些正确指令的简单列举,程序也没有任何结果。1515、程序结构混乱,流程不清,运行失控,造成结果错误。、程序结构混乱,流程不清,运行失控,造成结果错误。、程序结构混乱,流程不清,运行失控,造成结果错误。、程序结构混乱,流程不清,运行失控,造成结果错误。1616、有些同学希望单片机能为自己、有些同学希望单片机能为自己、有些同学希望单片机能为自己、有些同学希望单片机能为自己“理发理发理发理发”、或、或、或、或“做饭做饭
24、做饭做饭”,让单片机做它无法完成的事情(至少现在做不到),程序让单片机做它无法完成的事情(至少现在做不到),程序让单片机做它无法完成的事情(至少现在做不到),程序让单片机做它无法完成的事情(至少现在做不到),程序自然没有正确结果!自然没有正确结果!自然没有正确结果!自然没有正确结果!二、程序调试的方法二、程序调试的方法1 1、根据题目的要求先在纸上写出解决问题的过程,规划出本、根据题目的要求先在纸上写出解决问题的过程,规划出本、根据题目的要求先在纸上写出解决问题的过程,规划出本、根据题目的要求先在纸上写出解决问题的过程,规划出本程序所要使用的寄存器或存储单元,并对所使用的寄存器程序所要使用的寄
25、存器或存储单元,并对所使用的寄存器程序所要使用的寄存器或存储单元,并对所使用的寄存器程序所要使用的寄存器或存储单元,并对所使用的寄存器或存储器单元在本程序中的承担的作用进行解释,并检查或存储器单元在本程序中的承担的作用进行解释,并检查或存储器单元在本程序中的承担的作用进行解释,并检查或存储器单元在本程序中的承担的作用进行解释,并检查使用会不会发生冲突,如有可能出现冲突则应换用其他寄使用会不会发生冲突,如有可能出现冲突则应换用其他寄使用会不会发生冲突,如有可能出现冲突则应换用其他寄使用会不会发生冲突,如有可能出现冲突则应换用其他寄存器或存储单元。存器或存储单元。存器或存储单元。存器或存储单元。2
26、 2、画出程序的流程图,为流程图中的各节点的分配标号,标、画出程序的流程图,为流程图中的各节点的分配标号,标、画出程序的流程图,为流程图中的各节点的分配标号,标、画出程序的流程图,为流程图中的各节点的分配标号,标号不可重复。号不可重复。号不可重复。号不可重复。3 3、根据流程图在纸上写出参考程序。、根据流程图在纸上写出参考程序。、根据流程图在纸上写出参考程序。、根据流程图在纸上写出参考程序。4 4、手工检查有无逻辑问题或指令书写问题,及时改正。不要、手工检查有无逻辑问题或指令书写问题,及时改正。不要、手工检查有无逻辑问题或指令书写问题,及时改正。不要、手工检查有无逻辑问题或指令书写问题,及时改
27、正。不要完全依赖计算机检查,程序的逻辑问题或结构问题计算机完全依赖计算机检查,程序的逻辑问题或结构问题计算机完全依赖计算机检查,程序的逻辑问题或结构问题计算机完全依赖计算机检查,程序的逻辑问题或结构问题计算机是无法检查出来的。是无法检查出来的。是无法检查出来的。是无法检查出来的。5 5、手工检查无误后,将源程序录入计算机,开始上机调试。、手工检查无误后,将源程序录入计算机,开始上机调试。、手工检查无误后,将源程序录入计算机,开始上机调试。、手工检查无误后,将源程序录入计算机,开始上机调试。5 5、进行静态语法检查,记录下系统提示的错误信息的位置、进行静态语法检查,记录下系统提示的错误信息的位置
28、、进行静态语法检查,记录下系统提示的错误信息的位置、进行静态语法检查,记录下系统提示的错误信息的位置和错误的类型,改正错误,再次检查,改掉所有的错误!和错误的类型,改正错误,再次检查,改掉所有的错误!和错误的类型,改正错误,再次检查,改掉所有的错误!和错误的类型,改正错误,再次检查,改掉所有的错误!有时系统第一次提示又一个错误,当你改正后系统又会提有时系统第一次提示又一个错误,当你改正后系统又会提有时系统第一次提示又一个错误,当你改正后系统又会提有时系统第一次提示又一个错误,当你改正后系统又会提示更多错误信息,有时提示了很多错误,而只改掉了一个示更多错误信息,有时提示了很多错误,而只改掉了一个
29、示更多错误信息,有时提示了很多错误,而只改掉了一个示更多错误信息,有时提示了很多错误,而只改掉了一个错误,程序就没有问题了!这都是很正常的。如程序错误,程序就没有问题了!这都是很正常的。如程序错误,程序就没有问题了!这都是很正常的。如程序错误,程序就没有问题了!这都是很正常的。如程序1 1。6 6、运行程序,将源程序生成的目标文件(、运行程序,将源程序生成的目标文件(、运行程序,将源程序生成的目标文件(、运行程序,将源程序生成的目标文件(.HEX.HEX)文件固化)文件固化)文件固化)文件固化到单片机内部到单片机内部到单片机内部到单片机内部ROMROM中,在实验板上查看运行结果,如不中,在实验
30、板上查看运行结果,如不中,在实验板上查看运行结果,如不中,在实验板上查看运行结果,如不正确还需检验源程序中存在的更为隐蔽的错误。正确还需检验源程序中存在的更为隐蔽的错误。正确还需检验源程序中存在的更为隐蔽的错误。正确还需检验源程序中存在的更为隐蔽的错误。很多人在调试程序到达这一步时无从下手了!有的人很多人在调试程序到达这一步时无从下手了!有的人很多人在调试程序到达这一步时无从下手了!有的人很多人在调试程序到达这一步时无从下手了!有的人认为是计算机出了毛病;有的人就决定放弃;有的人打算认为是计算机出了毛病;有的人就决定放弃;有的人打算认为是计算机出了毛病;有的人就决定放弃;有的人打算认为是计算机
31、出了毛病;有的人就决定放弃;有的人打算重新写一个;有的人会认真分析程序执行的每一步所出现重新写一个;有的人会认真分析程序执行的每一步所出现重新写一个;有的人会认真分析程序执行的每一步所出现重新写一个;有的人会认真分析程序执行的每一步所出现的结果,最后终于知道了错误所在,笑到了最后。这种快的结果,最后终于知道了错误所在,笑到了最后。这种快的结果,最后终于知道了错误所在,笑到了最后。这种快的结果,最后终于知道了错误所在,笑到了最后。这种快乐感觉是别人无法体会的!乐感觉是别人无法体会的!乐感觉是别人无法体会的!乐感觉是别人无法体会的!7 7、再次检查程序流程是否有问题,、再次检查程序流程是否有问题,
32、、再次检查程序流程是否有问题,、再次检查程序流程是否有问题,8 8、检查寄存器或、检查寄存器或、检查寄存器或、检查寄存器或RAMRAM单元是否有重复使用的情况,单元是否有重复使用的情况,单元是否有重复使用的情况,单元是否有重复使用的情况,9 9、检查程序的结构,、检查程序的结构,、检查程序的结构,、检查程序的结构,(1 1)如有循环结构,检查循环的初始条件设定是否在循环体)如有循环结构,检查循环的初始条件设定是否在循环体)如有循环结构,检查循环的初始条件设定是否在循环体)如有循环结构,检查循环的初始条件设定是否在循环体内,若在循环体内则会造成循环永不停止!在循环程序段内,若在循环体内则会造成循
33、环永不停止!在循环程序段内,若在循环体内则会造成循环永不停止!在循环程序段内,若在循环体内则会造成循环永不停止!在循环程序段后的指令无法得到执行,务必注意!后的指令无法得到执行,务必注意!后的指令无法得到执行,务必注意!后的指令无法得到执行,务必注意!(2 2)如有调用子程序指令,需要注意子程序必须只有一个)如有调用子程序指令,需要注意子程序必须只有一个)如有调用子程序指令,需要注意子程序必须只有一个)如有调用子程序指令,需要注意子程序必须只有一个出口,而且必须是出口,而且必须是出口,而且必须是出口,而且必须是RETRET指令,若不是则可能会造成无法预指令,若不是则可能会造成无法预指令,若不是
34、则可能会造成无法预指令,若不是则可能会造成无法预料的结果!料的结果!料的结果!料的结果!(3 3)程序中如有查表指令,请注意查到第一个数据之后,)程序中如有查表指令,请注意查到第一个数据之后,)程序中如有查表指令,请注意查到第一个数据之后,)程序中如有查表指令,请注意查到第一个数据之后,A A的值已经是一个结果,不可以的值已经是一个结果,不可以的值已经是一个结果,不可以的值已经是一个结果,不可以A A 的值再次查表,如出现这的值再次查表,如出现这的值再次查表,如出现这的值再次查表,如出现这种情况,程序的结果也是无法预知的!种情况,程序的结果也是无法预知的!种情况,程序的结果也是无法预知的!种情
35、况,程序的结果也是无法预知的!(4 4)编写的程序不能适应实验板的硬件环境,造成结果无)编写的程序不能适应实验板的硬件环境,造成结果无)编写的程序不能适应实验板的硬件环境,造成结果无)编写的程序不能适应实验板的硬件环境,造成结果无正确的含义!正确的含义!正确的含义!正确的含义!【实验内容实验内容实验内容实验内容】利用单片机实验板上所安装的利用单片机实验板上所安装的利用单片机实验板上所安装的利用单片机实验板上所安装的LEDLED数码管显示自数码管显示自数码管显示自数码管显示自己的学号。己的学号。己的学号。己的学号。【实验目的实验目的实验目的实验目的】1 1、进一步的熟悉查表程序的设计方法。、进一
36、步的熟悉查表程序的设计方法。、进一步的熟悉查表程序的设计方法。、进一步的熟悉查表程序的设计方法。2 2、掌握数制转换程序的设计。、掌握数制转换程序的设计。、掌握数制转换程序的设计。、掌握数制转换程序的设计。3 3、熟悉、熟悉、熟悉、熟悉LEDLED数码管各引脚的控制电路。数码管各引脚的控制电路。数码管各引脚的控制电路。数码管各引脚的控制电路。4 4、掌握动态扫描的方式让、掌握动态扫描的方式让、掌握动态扫描的方式让、掌握动态扫描的方式让LEDLED数码管稳定显示字型。数码管稳定显示字型。数码管稳定显示字型。数码管稳定显示字型。5 5、明确、明确、明确、明确LEDLED数码管的动态扫描与数码管的动
37、态扫描与数码管的动态扫描与数码管的动态扫描与LEDLED发光二极管的动态发光二极管的动态发光二极管的动态发光二极管的动态变化的区别。变化的区别。变化的区别。变化的区别。实验三:实验三:LED数码管实验数码管实验【实验要求实验要求实验要求实验要求】设计一程序,上机调试,脱机运行,使其能在设计一程序,上机调试,脱机运行,使其能在设计一程序,上机调试,脱机运行,使其能在设计一程序,上机调试,脱机运行,使其能在LEDLED数码显示器上显示稳定的字型(本人学号)。数码显示器上显示稳定的字型(本人学号)。数码显示器上显示稳定的字型(本人学号)。数码显示器上显示稳定的字型(本人学号)。【注意事项注意事项注意
38、事项注意事项】1 1、LEDLED数码显示器的段选口与位选口的有效电平。数码显示器的段选口与位选口的有效电平。数码显示器的段选口与位选口的有效电平。数码显示器的段选口与位选口的有效电平。2 2、在设计数据表格时,注意向、在设计数据表格时,注意向、在设计数据表格时,注意向、在设计数据表格时,注意向LEDLED数码管所送的字型代数码管所送的字型代数码管所送的字型代数码管所送的字型代码,不要让码,不要让码,不要让码,不要让LEDLED显示器的小数点点亮。显示器的小数点点亮。显示器的小数点点亮。显示器的小数点点亮。3 3、程序中不能延时太长又不可无延时,否则屏幕显示会、程序中不能延时太长又不可无延时,
39、否则屏幕显示会、程序中不能延时太长又不可无延时,否则屏幕显示会、程序中不能延时太长又不可无延时,否则屏幕显示会有闪烁感或字型重叠现象,请务必注意!有闪烁感或字型重叠现象,请务必注意!有闪烁感或字型重叠现象,请务必注意!有闪烁感或字型重叠现象,请务必注意!【设计思路设计思路设计思路设计思路】1 1、将要显示的数字,即、将要显示的数字,即、将要显示的数字,即、将要显示的数字,即0909十个十进制数中的部分数字用十个十进制数中的部分数字用十个十进制数中的部分数字用十个十进制数中的部分数字用手工转换成与手工转换成与手工转换成与手工转换成与LEDLED共阴数码的字型代码,并制成数据共阴数码的字型代码,并
40、制成数据共阴数码的字型代码,并制成数据共阴数码的字型代码,并制成数据表格,待用。表格,待用。表格,待用。表格,待用。2 2、设计程序的结构,为了简单易读,可以利用循环程序结、设计程序的结构,为了简单易读,可以利用循环程序结、设计程序的结构,为了简单易读,可以利用循环程序结、设计程序的结构,为了简单易读,可以利用循环程序结构,在循环体内利用查表指令找出要显示数字的字型构,在循环体内利用查表指令找出要显示数字的字型构,在循环体内利用查表指令找出要显示数字的字型构,在循环体内利用查表指令找出要显示数字的字型代码,为了能在代码,为了能在代码,为了能在代码,为了能在LEDLED数码管上显示稳定的字型,则
41、必数码管上显示稳定的字型,则必数码管上显示稳定的字型,则必数码管上显示稳定的字型,则必须连续不断的将要显示的字型代码送往须连续不断的将要显示的字型代码送往须连续不断的将要显示的字型代码送往须连续不断的将要显示的字型代码送往LEDLED数码显示数码显示数码显示数码显示器的段控制口,同时向器的段控制口,同时向器的段控制口,同时向器的段控制口,同时向LEDLED显示器的位控制口送位控显示器的位控制口送位控显示器的位控制口送位控显示器的位控制口送位控制码,让对应的位分别选中。如此不断的循环下去即制码,让对应的位分别选中。如此不断的循环下去即制码,让对应的位分别选中。如此不断的循环下去即制码,让对应的位
42、分别选中。如此不断的循环下去即可让可让可让可让LEDLED数码显示器显示稳定的字型。数码显示器显示稳定的字型。数码显示器显示稳定的字型。数码显示器显示稳定的字型。3 3、程序的设计过程中亦可采用设计显示缓冲区的方法,即、程序的设计过程中亦可采用设计显示缓冲区的方法,即、程序的设计过程中亦可采用设计显示缓冲区的方法,即、程序的设计过程中亦可采用设计显示缓冲区的方法,即将内部的将内部的将内部的将内部的RAMRAM的连续的几个单元设定为显示缓冲区,的连续的几个单元设定为显示缓冲区,的连续的几个单元设定为显示缓冲区,的连续的几个单元设定为显示缓冲区,在主程序中只是连续不断的将显示缓冲区的数字转换在主程
43、序中只是连续不断的将显示缓冲区的数字转换在主程序中只是连续不断的将显示缓冲区的数字转换在主程序中只是连续不断的将显示缓冲区的数字转换成对应的字型代码送往成对应的字型代码送往成对应的字型代码送往成对应的字型代码送往LEDLED数码显示器的段控制口,数码显示器的段控制口,数码显示器的段控制口,数码显示器的段控制口,同时将位选码送往同时将位选码送往同时将位选码送往同时将位选码送往LEDLED显示器的位控制口,选中相应显示器的位控制口,选中相应显示器的位控制口,选中相应显示器的位控制口,选中相应的位,如此不断的循环下去,亦可使的位,如此不断的循环下去,亦可使的位,如此不断的循环下去,亦可使的位,如此不
44、断的循环下去,亦可使LEDLED数码显示器数码显示器数码显示器数码显示器显出稳定的字型。显出稳定的字型。显出稳定的字型。显出稳定的字型。【参考程序参考程序参考程序参考程序】(举例:显示数字为(举例:显示数字为(举例:显示数字为(举例:显示数字为96-51-2496-51-24)方法(一):设计显示缓冲区法方法(一):设计显示缓冲区法方法(一):设计显示缓冲区法方法(一):设计显示缓冲区法 CJC3.ASMCJC3.ASM 设定内部设定内部设定内部设定内部RAMRAM中的中的中的中的20H27H20H27H为显示缓冲区,以为显示缓冲区,以为显示缓冲区,以为显示缓冲区,以R0R0作间接寻址寄存器,
45、指示显示缓冲区地址,以作间接寻址寄存器,指示显示缓冲区地址,以作间接寻址寄存器,指示显示缓冲区地址,以作间接寻址寄存器,指示显示缓冲区地址,以R2R2作位作位作位作位控制码寄存器,程序的整体为无限单循环结构。控制码寄存器,程序的整体为无限单循环结构。控制码寄存器,程序的整体为无限单循环结构。控制码寄存器,程序的整体为无限单循环结构。ORG 0000HORG 0000HMAINMAIN:MOV 20HMOV 20H,#99H#99H ;4 4的显示码的显示码的显示码的显示码MOV 21HMOV 21H,#0A4H#0A4H;2 2的显示码的显示码的显示码的显示码MOV 22HMOV 22H,#0
46、BFH#0BFH ;-的显示码的显示码的显示码的显示码MOV 23HMOV 23H,#0F9H#0F9H;1 1的显示码的显示码的显示码的显示码MOV 24HMOV 24H,#92H#92H;5 5的显示码的显示码的显示码的显示码MOV 25HMOV 25H,#0BFH#0BFH;-的显示码的显示码的显示码的显示码MOV 26HMOV 26H,#82H#82H;6 6的显示码的显示码的显示码的显示码 MOV 27HMOV 27H,#90H#90H ;缓冲区赋初值;缓冲区赋初值;缓冲区赋初值;缓冲区赋初值LOOP:LOOP:MOV R2MOV R2,#01H#01H ;设置位控制码;设置位控制码
47、;设置位控制码;设置位控制码MOV R0MOV R0,#20H#20H;设置显示缓冲区首址;设置显示缓冲区首址;设置显示缓冲区首址;设置显示缓冲区首址LOOP0LOOP0:MOV P0MOV P0,R0 R0 ;送段选码;送段选码;送段选码;送段选码MOV P1MOV P1,R2 R2 ;送位控制码;送位控制码;送位控制码;送位控制码MOV AMOV A,R2R2RL A RL A ;位控制码指示下一位;位控制码指示下一位;位控制码指示下一位;位控制码指示下一位MOV R2MOV R2,A AINC R0 INC R0 ;缓冲区指示器增加;缓冲区指示器增加;缓冲区指示器增加;缓冲区指示器增加“
48、1”1”CJNE ACJNE A,#01H#01H,LOOP0 LOOP0;满;满;满;满8 8位否?位否?位否?位否?AJMP LOOP AJMP LOOP ;重复显示;重复显示;重复显示;重复显示方法方法方法方法(二二二二):(查表法):(查表法):(查表法):(查表法)CJC4.ASMCJC4.ASMORG 0000HORG 0000HMAINMAIN:MOV DPTRMOV DPTR,#DATA#DATA ;设置表首地址;设置表首地址;设置表首地址;设置表首地址LOOPLOOP:MOV R1MOV R1,#01H#01H;设置位控制码;设置位控制码;设置位控制码;设置位控制码MOV R
49、2MOV R2,#00H#00H;设置查表指示器;设置查表指示器;设置查表指示器;设置查表指示器LOOP0LOOP0:MOV AMOV A,R2R2MOVC AMOVC A,A+DPTR A+DPTR ;查找字型;查找字型;查找字型;查找字型MOV P0MOV P0,A A ;送出段选码;送出段选码;送出段选码;送出段选码MOV P1MOV P1,R1 R1 ;送出位控制码;送出位控制码;送出位控制码;送出位控制码INC R2 INC R2 ;代码指针加;代码指针加;代码指针加;代码指针加“1”1”MOV AMOV A,R1R1RL ARL AMOV R1,A MOV R1,A ;位控制码移位
50、;位控制码移位;位控制码移位;位控制码移位CJNE ACJNE A,#01H#01H,LOOP0 LOOP0;满一屏幕否?;满一屏幕否?;满一屏幕否?;满一屏幕否?AJMP LOOP AJMP LOOP ;重复显示;重复显示;重复显示;重复显示DATA:DATA:DB 99HDB 99H,0A4H0A4H,0BFH0BFH,0F9H0F9HDB 92HDB 92H,0BFH0BFH,82H82H,90H ;90H ;字型代码表字型代码表字型代码表字型代码表 【方法比较方法比较方法比较方法比较】方法一将字型直接放在方法一将字型直接放在方法一将字型直接放在方法一将字型直接放在RAMRAM中,直接利