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