基于Protues的仿真实验_第1页
基于Protues的仿真实验_第2页
基于Protues的仿真实验_第3页
基于Protues的仿真实验_第4页
基于Protues的仿真实验_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Proteus基本操作和8051最小系统利用Proteus平台搭建一个“8051最小系统”的仿真电路(流水灯为例)一、Proteus基本操作(一)启动Proteus仿真软件:双击“isis”图标,出现isis操作页面。(二)搭建单片机系统仿真电路:分“器件选取”、“器件放置”和“电路连接”三大步来操作。第一步器件选取:isis操作页面的左侧中下部分是电路和器件操作的导航区域,器件选取前“Devices”栏目下为空,器件选取操作的目的是将从器件库中分拣出需要的器件,这些器件排列在“Devices”栏目下。A:先选择“器件和仪器工具栏”的“放大器符号样”图标(该工具栏的第一个图标),再单击“P”键即弹出“Pick Devices”窗口。Pick Devices窗口左侧可以输入器件类型名称,或者选择器件类型,窗口中部即出现相应类型的器件,若鼠标选中器件,窗口右侧会出现该器件的引脚图和封装图。B:在Pick Devices窗口中,先选中器件,后点击窗口右下脚的“确定”按钮,即将器件排列在“Devices”栏目下了。或者直接双击被选的器件,也能收到同样的操作结果。C:对于电源、地、输入和输出端等特殊器件,不在“Pick Devices”窗口中选取而在“Pick Terminals”窗口中选取。只要选择“器件和仪器工具栏”的“输入输出符号样”图标(该工具栏的第八个图标),即变“Devices”栏目为“Terminals” 栏目,“Terminals” 栏目下已经将电源、地、输入和输出端等特殊器件列出了一部分,如还要增加时,单击“P”键即弹出“Pick Terminals”窗口供选取。第二步器件放置:isis操作页面的中右侧是搭建硬件电路系统原理图和显示系统运行状态的区域。器件放置前或选择“New Design”文件后,器件放置区域同导航区一样栏目内容为空,器件放置操作是把导航区的器件排列在放置区的适当位置,以便于搭建硬件电路系统原理图。A:器件放置的基本操作:是将导航区的器件选中(左键),然后把鼠标移到放置区中适当位置,再点击左键,即放置了器件。若多次点击左键,则会放置多个相同的器件。B:器件的移动、翻转和删除操作:在放置区中选中器件的方法是用右键点击一次,被选中的器件变成红色,然后用鼠标选中红色的器件再按住左键移动鼠标即移动了器件位置,移动后器件仍然是红色,移动完成后将鼠标移开器件至空白处再点击右键,红色器件变回黑色。器件翻转的方法是右键选中器件使之变红,然后将鼠标移至导航区下方,点击红色的翻转图标,即可实现器件的翻转,完成后将鼠标移回放置区空白处再点击右键,红色器件变回黑色。器件删除的的方法是右键选中器件使之变红,再对变红的器件点击右键,即删除了相应的器件。C:器件和图形的复制操作:在放置区中,按住鼠标右键适当移动鼠标即画出一个矩形方框,方框内部的器件和图形变成红色,这时再点击菜单下的复制图标和粘贴图标,即会复制出一个相同的方框图形,移动鼠标即可将复制的图形移到适当的位置,再点击左键定位,若定位之前点击右键即删除复制的图形。D:器件属性的设置:在放置区中右键选中器件后器件变红,再点击左键即弹出“Edit Component”对话框,该对话框内容即器件的属性,其中的一些内容可以选择隐藏不被显示出来。第三步电路连接:搭建硬件电路系统原理图需要把器件的引脚连接起来,其操作比较简单。A:电路连接操作方法:将鼠标移至一个引脚或一条连线上点击左键,再移动鼠标即拉出一条红色导线,导线要拐弯时,则点击左键再移动鼠标即拉出拐弯的导线,最后导线的另一端通常要接到另一个引脚或另一条连线上,再点击左键导线变回黑色完成连接。若只对导线两端要求正确连接,对导线路由不作要求,则鼠标只需对连接导线始端和末端的引脚进行点击左键,便自动完成布线。B:电路连接快速操作方法:若需要连接的两个器件的引脚都按照一个方向的顺序、等距离地排列,那么只需对第一条导线进行人工布线,从第二条导线开始顺序双击连接导线始端的引脚即可完成对应的导线连接。 C:导线的删除操作:右键选中导线后导线变红,再对变红的导线点击右键即删除了导线。D:导线属性的设置:右键选中导线后导线变红,再点击左键即弹出“Edit Wire Style”对话框,即可对导线的属性进行设置。(三)创建和导入ASM源文件进入菜单栏,选择“Source”下“Add/Remove Source files”,即弹出“Add/Remove Source Code Files”对话框。再点击“New”按键,弹出“New Source Files”对话框,即可以创建(只在文件名栏目输入一个文件名,后缀为ASM)或导入ASM源文件。确定后,“Add/Remove Source Code Files”对话框中“Source Code Filename”栏目即有ASM源文件名及路径,然后在“Code Generation Tool”栏目中选择“ASEM51”,最后点击“OK”按键,即完成了创建和导入ASM源文件。此后“Source”下即可以看到相应的ASM源文件。(四)编译ASM和导入HEX文件编译ASM文件的前提是已导入ASM文件,启动编译的方法有两种:方法一:进入菜单栏,选择“Source”下“Build All”,即弹出“BUILD LOG”提示框,提示编译ASM文件的结果。方法二:直接点击器件放置和运行区下方的“运行”按键,若ASM文件内容有变化,即自动对其编译,若问题即弹出“SOURCE CODE BUILD ERRORS”提示框,提示编译ASM文件的结果。编译ASM文件成功后即生成HEX文件,单片机导入HEX文件的方法是,打开单片机器件属性对话框,在“Program Files”栏目里打开文件目录,选择装入HEX文件即可。单片机此后按照该HEX文件的代码运行程序。【特别注意】单片机运行速度和晶振频率有关,目前PROTEUS的版本不支持晶振器属性里所设置的频率值,单片机晶振频率必须在单片机器件本身的属性里设置,即打开单片机器件属性对话框,在其“Clock Frequency” 栏目里输入频率值。(五)软件调试菜单进入菜单栏,选择“Debug”下“Start/Resart Debugging”,即进入调试状态,此后可以进行单步运行、全速运行、断点设置等功能。【特别提示】:调试期间,即可看到电路系统的运行结果和状态细节。可在电路中进行电压、电流和波形测试,其测试操作基本方法是选择“器件和仪器工具栏”的测试工具或测试信号图标,将测试工具和测试信号放置到电路的相应位置,并和测试点连接起来(放置和连接方法同电路器件一样),然后再调试运行即可看到测试结果。二、参考硬件电路三、参考汇编程序ORG 00H LJMP MAIN ORG 100HMAIN: MOV A,#7FH LOOP:RL A MOV P0,A LCALL DEL LJMP LOOPDEL: MOV R0,#4 DL3: MOV R2,#250 DL2: MOV R3,#250 NOPDEL1: DJNZ R3,DEL1 NOP DJNZ R2,DL2 DJNZ R0,DL3 RET END四、思考练习题(一)单片机最小系统由哪几个基本部分组成?(二)修改硬件电路及晶振频率,使流水灯通过P2口运行,并加快流水速度。(三)修改程序,改变流水灯流向和流水灯花样。基础实验一 查表指令及基本IO实验一、实验内容(1)先搭建一个“8051基本IO实验”的仿真电路,该单片机系统功能是一个开关闭合后,有一个对应的LED指示灯亮。(2)利用已搭建的电路运行“查表指令程序”,实验要求输出的花样按照一个常数表的数值改变。二、.参考硬件电路.三、参考汇编程序(1)基本IO实验 ORG 0000H LJMP START ;P2输入P0输出 ORG 0100HSTART: NOPLOOP: MOV P2, #0FFH ;复位P1口为输入状态 MOV A, P2 ; MOV P0, A AJMP LOOP END(2)查表指令实验ORG 0000H LJMP START ;流水灯程序,查表P1输出 ORG 0100HSTART: MOV DPTR,#TAB LOOP: CLR A MOVC A,A+DPTR; CJNE A,#0FFH,NEXT AJMP STARTNEXT: CPL A MOV P0,A LCALL DELAY INC DPTR AJMP LOOPDELAY: MOV R5, #250DELAY1: MOV R6, #250 NOPDELAY0: DJNZ R6,DELAY0 DJNZ R5,DELAY1 RET TAB: DB 01H,02H,04H,08H,10H,20H,40H,80H DB 80H,40H,20H,10H,08H,04H,02H,01H,0FFH END四、思考练习题(一)运行基本IO程序后,设置不同的开关状态,查看运行结果.。设置好开关状态后,标出每一条指令的功能和执行结果(二)将基本IO程序的指令AJMP LOOP句改成LOOP1:AJMP LOOP1,分析和验证运行结果。(三)对于查表指令程序,若DPTR的内容分别是TAB+5和TAB+16,分别写出上述程序中指令MOVC A,A+DPTR的执行结果。(四)分析查表指令程序执行的大致过程。将程序的常数表加以修改,使显示的花样改变。之后又修改延时子程序DELAY,使显示变化的速度加快。基础实验二 外部中断和堆栈指令实验一、实验内容搭建一个“外部中断和堆栈指令实验”的仿真电路,该单片机系统功能是,系统运行后,LED灯显示一个加法计数。中断开关闭合后,显示的内容是插入一个流水灯扫描,流水灯扫描结束后继续显示加法计数。二、.参考硬件电路三、参考汇编程序ORG 00H LJMP START ;加法计数显示中断循环两次,现场保护 ORG 003H LJMP I001 ORG 100H START:SETB IT0 SETB EX0 SETB EA CLR A ST0:CPL A MOV P0, A LCALL DL0 CPL A INC A AJMP ST0 I001:PUSH ACC ;NOP ;PUSH ACC保护现场 SETB RS1 MOV P0,#0FFH MOV A,#0FFH LCALL DL0 MOV R3,#8 LCALL DL0 LOOP: CLR C RLC A MOV P0,A LCALL DL0 DJNZ R3,LOOP MOV R3,#8 LOOP1:SETB C RRC A MOV P0,A LCALL DL0 DJNZ R3,LOOP1 CLR RS1 POP ACC ;NOP;POP ACC恢复现场 RETI DL0:MOV R0,#4 DL1:MOV R1,#255 DL2:MOV R2,#255 DJNZ R2,$ DJNZ R1,DL2 DJNZ R0,DL1 RET END四、思考练习题(一)分析程序结构,运行程序后,随时将开关闭合一下,查看运行结果.。(二)分析程序的中断响应的执行过程。若将指令SETB IT0改为CLR IT0,分析和验证运行结果。(三)将程序的指令PUSH ACC和POP ACC同时改成NOP指令,分析和验证运行结果。基础实验三 定时器和静态显示实验一、实验内容(1)搭建一个“定时器和静态显示实验”的仿真电路,该单片机系统功能是,系统运行后,LED数码管显示器相当于秒计数器。(2)搭建一个类似电路,能够记录中断开关闭合时长,LED数码管显示器相当于秒表。二、.参考硬件电路(1)秒计数器电路(2)秒表电路【提示】:图中的BCD数码管,相当于上面秒计数器电路中“4511加七段数码管”的功能,这样做的目的只是为了简化电路而已。后续的实验电路有类似的做法,不再一一加以说明。三、参考汇编程序(1)秒计数器程序ORG 0000H LJMP START ORG 0013H LJMP T0INTSTART:MOV P0,#00H MOV TMOD,#01H ;G=0,C=0,M1M0=01 MOV TH0,#4CH ;11.0592m,50ms中断计B400H次 MOV TL0,#00H SETB TR0 SETB EA SETB ET0 MOV SP,#60H ;30H改成60 MOV 30H,#00H ;中断计数器初值 MOV 31H,#00H ;秒计数器初值 CLR 00H ;秒刷新标志 LOOP:JNB 00H,LOOP setb p2.0 ;clr p2.0 MOV P0,31H clr p2.0 ;setb p2.0 CLR 00H AJMP LOOP T0INT:MOV TH0,#4CH ;11.0592m,50ms中断计B400H次 MOV TL0,#00H PUSH ACC INC 30H MOV A,30H CJNE A,#20,REL0 ;中断20次1秒 REL0:JC NEXT0 MOV 30H,#00H MOV A,31H ADD A,#1 DA A MOV 31H,A SETB 00H CJNE A,#60H,REL1 REL1:JC NEXT0 MOV 31H,#00H ;059 NEXT0:POP ACC RETI END(2)秒表程序 ORG 0000H LJMP START ORG 0013H LJMP T0INTSTART:MOV P0,#00H MOV TMOD,#01H ;G=0,C/T=0,M1M0=01 MOV TH0,#4CH ;11.0592m,50ms中断计B400H次 MOV TL0,#00H ;SETB TR0 SETB EA SETB ET0 MOV SP,#60H ;30H改成60 MOV 30H,#00H ;中断计数器初值 MOV 31H,#00H ;0.1秒计数器初值 LOOP:JB P3.2,LOOP SETB TR0 ;启动计数 MOV 31H,#00H MOV P0,31H ;显示00初值LOOP1:JNB P3.2,LOOP1 CLR TR0 ;停止计数 MOV TH0,#4CH ;11.0592m,50ms中断计B400H次 MOV TL0,#00H AJMP LOOP T0INT:MOV TH0,#4CH ;11.0592m,50ms中断计B400H次 MOV TL0,#00H PUSH ACC INC 30H MOV A,30H CJNE A,#2,REL0 ;中断2次0.1秒 REL0:JC NEXT0 MOV 30H,#00H MOV A,31H ADD A,#1 DA A MOV 31H,A ;0.09.9秒NEXT0:MOV P0,31H POP ACC RETI END四、思考练习题(一)分析秒计数器程序结构,查看运行结果.。(二)分析秒表程序的中断响应的执行过程。随时按一下按键,分析和验证运行结果。扩展实验一 并行扩展8255实验一、实验内容搭建一个“并行扩展8255实验”的仿真电路,该单片机系统功能是,系统运行后,点阵LED流水灯显示,显示位置受8255的C口的波论开关控制。二、.参考硬件电路三、参考汇编程序 PA EQU 7CFFH PB EQU 7DFFH PPC EQU 7EFFH PK EQU 7FFFH ORG 0000H LJMP START ;流水灯程序,查表P1输出 ORG 0100HSTART:nop ;LCALL DELAY MOV DPTR,#PK ; MOV A,#89H ;10001001,AB方式0,输出,C输入 MOVX DPTR,A MOV DPTR,#PPC ; MOVX A,DPTR NEXT:MOV B,A MOV DPTR,#PA ; cpl a MOVX DPTR,A MOV DPTR,#PB ; MOV A,#7FH LOOP:RL A mov r0,a MOV DPTR,#PB ; MOVX DPTR,A ; LCALL DELAY MOV DPTR,#PPC ; MOVX A,DPTR CJNE A,B,NEXT mov a,r0 AJMP LOOPDELAY: MOV R5, #2DELAY1: MOV R6, #250DELAY0: MOV R7, #250 DJNZ R7,$ DJNZ R6,DELAY0 DJNZ R5,DELAY1 RET END;(提示:控制字格式为:D7-方式有效标志,D6D5-PA组方式选择,D4- PA口输入输出选择,D3-PC口高半字节输入输出选择,D2- PB组方式选择,D1- PB口输入输出选择,D0-PC口低半字节输入输出选择,1-输入,0-输出。8255A 的初始化时间较长)四、思考练习题(1)结合硬件电路说明,PA/PB/PC/控制口地址为何这样赋值?PA EQU 7CFFHPB EQU 7DFFHPPC EQU 7EFFH PK EQU 7FFFH(2)结合系统功能说明,控制字为何这样赋值?MOV DPTR,#PK ;MOV A,#89H ;10001001,AB方式0,输出,C输入MOVX DPTR,A(3)分析程序结构,运行程序拨动开关,分析运行结果,实验如何修改程序改变流水灯方向?扩展实验二 串行通信实验一、实验内容(1)搭建一个“8051双机通信的实验”的仿真电路,该单片机系统功能是,系统运行后,两个单片机各作加法、减法计数,在外部中断的控制下,能向对方发送数据。(2)搭建一个“51单片机和PC机通信的实验”的仿真电路,该单片机系统功能是,系统运行后,PC机串口向单片机发“U”, 单片机回发问候信息,单片机每这么完成收发一次,计数器加一显示出来。二、.参考硬件电路(1)8051双机通信的电路(2)51单片机和PC机通信的电路三、参考汇编程序(1)8051双机通信的两个程序A:加法计数程序 ORG 0000H LJMP MAIN ORG 003H LJMP INT ORG 023H LJMP SPT ORG 130HMAIN:MOV SCON,#50H ;串口方式1 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;T1方式2(重装方式) MOV TH1,#0FDH ;11MHz晶振条件 MOV TL1, #0FDH ;波特率为9600bps SETB TR1 SETB EA SETB EX0 SETB IT0 SETB ES ;CLR ES SETB PS MOV R0,#00HLOOP: MOV P1,R0 LCALL DEL INC R0 SJMP LOOPINT: MOV SBUF,R0 JNB TI,$ CLR TI RETISPT: JB TI,RSPT CLR RI; MOV A,SBUF MOV P1,A RSPT: RETIDEL:MOV R7,#20DL3:MOV R6,#250DL2:MOV R5,#250 DJNZ R5,$ DJNZ R6,DL2 DJNZ R7,DL3 RET ENDB:减法计数程序ORG 0000H LJMP MAIN ORG 003H LJMP INT ORG 023H LJMP SPT ORG 130HMAIN:MOV SCON,#50H ;串口方式1 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;T1方式2(重装方式) MOV TH1,#0FDH ;11MHz晶振条件 MOV TL1, #0FDH ;波特率为9600bps SETB TR1 SETB EA SETB EX0 SETB IT0 SETB ES ;CLR ES SETB PS MOV R0,#00HLOOP: MOV P1,R0 LCALL DEL DEC R0 SJMP LOOPINT: MOV SBUF,R0 JNB TI,$ CLR TI RETISPT: JB TI,RSPT CLR RI; MOV A,SBUF MOV P1,A RSPT: RETIDEL:MOV R7,#20DL3:MOV R6,#250DL2:MOV R5,#250 DJNZ R5,$ DJNZ R6,DL2 DJNZ R7,DL3 RET END(2)51单片机和PC机通信程序 ORG 0000H LJMP MAIN ORG 23H LJMP SPT ORG 30H MAIN: MOV SCON,#50H ;串口方式1 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;T1方式2(重装方式) MOV TH1,#0FDH ;11MHz晶振条件 MOV TL1,#0FDH ;波特率为9600bps SETB TR1 SETB ES SETB EA MOV R2,#00H ;R2放显示次数 DISP:MOV P1,R2 SJMP DISP SPT: CLR RI ; MOV A,SBUF CJNE A,#U,KK CLR ES INC R2 MOV DPTR,#TBL LOOP: MOV A,#00H MOVC A,A+DPTR CJNE A,#0FFH,GOON SETB ES AJMP KK GOON:MOV SBUF,A JNB TI,$ CLR TI INC DPTR AJMP LOOP KK:RETI TBL: DB -,H,e,l,l,o,!,0FFH END四、思考练习题(1)双机通信时,晶振频率能否一个使用12M,另一个使用11.0592M晶振?双机通信程序中设置了外部中断和串行中断,哪一个中断优先级高?是否允许串行发中断和串行收中断?串行中断子程序里如何识别处理这两种中断?(2)双机通信程序中,修改显示部分,使十六进制计数改变成十进制计数(3)51单片机和PC机通信电路中,单片机晶振频率能否一个使用12M,?其串行中断子程序里是否允许发送中断?是否允许发数据时产生接收中断?(4)修改51单片机和PC机通信程序,使51机接收不是“U”字符时,向PC机发“Errors”信息。扩展实验三 键盘和显示编程实验一、实验内容(1)搭建一个“键盘和显示编程实验”的仿真电路,该单片机系统功能是,系统运行后,按键盘(16键),可以显示键值(点阵LED),显示一个二进制数,由上而下更新。(2)搭建一个“简单键盘和显示实验”,系统运行后,按可做抖动实验。两个按键分别作加1和减1计数。(右下加为按键抖动模拟电路)二、.参考硬件电路(1)行列式键盘和点阵LED显示电路(2)简单键盘和显示电路三、参考汇编程序(1)行列式键盘和点阵LED显示程序ORG 0000H LJMP START ORG 00BH LJMP T0INTSTART:MOV P2,#00H MOV TMOD,#01H ;G=0,C=0,M1M0=01 MOV TH0,#00H ;11.0592m,20/3ms中断计1800H次 MOV TL0,#00H SETB TR0 SETB EA SETB ET0 MOV SP,#60H ;30H改成60 MOV 30H,#40H ;显示缓冲首址 MOV 31H,#01H ;列扫描码初值 MOV 40H,#0fh MOV 41H,#0fh MOV 42H,#0fh MOV 43H,#0fh MOV 44H,#0fh MOV 45H,#0fh MOV 46H,#0fh MOV 47H,#0fh MOV 3FH,#18 ;新键值,默认熄灭 CLR 10H ;去抖动标志 CLR 11H ;执行了标志 CLR 12H ;求键号标志LOOP:JNB 12H,LOOP CLR 12H NOP MOV 47H,46H MOV 46H,45H MOV 45H,44H MOV 44H,43H MOV 43H,42H MOV 42H,41H MOV 41H,40H MOV A,3FH CPL A MOV 40H,A AJMP LOOP T0INT:MOV TH0,#0F7H ;11.0592m,20/8ms中断计900H次#F700H MOV TL0,#00H PUSH ACCXIANSHAO:mov p2,#00h ;消隐 MOV R0,30H MOV P0,R0 ;数码 MOV P2,31H ;扫描码 MOV A,31H RL A MOV 31H,A INC 30H MOV A,30H CJNE A,#48H,REL0 ;中断3次显示扫描循环 REL0:JC dujianEXE MOV 30H,#40H MOV 31H,#01H ;显示扫描完成 lcall duj ;nopdujianEXE: POP ACC RETIduj: MOV P3,#0FH ;P3.4P3.7送0 MOV A,P3 ;读P3.0P3.3 CPL A ANL A,#0FH ;A存放按键值,全0表示释放态 JZ C1011 ;A=0释放态转 JB 10H,EXEYN ;A0查去抖标志 SETB 10H ;未去抖,去抖标志置1,返回 AJMP JDOK EXEYN:JB 11H,JDOK ;已去抖,查执行标志为1,返回 LCALL jianzhi ;未执行,求键号,置键号标志 SETB 12H ;执行键值功能标志 EXEOK:SETB 11H ;已执行标志置1 AJMP JDOK C1011:CLR 10H ;去抖标志清0 CLR 11H ;执行标志清0 JDOK:ret jianzhi:JNB ACC.0,DJ1 MOV B,#0 AJMP DU2 DJ1:JNB ACC.1,DJ2 MOV B,#4 AJMP DU2 DJ2:JNB ACC.2,DJ3 MOV B,#8 AJMP DU2 DJ3:MOV B,#12 DU2: MOV P3,#0F0H ;P3.0P3.3送0 MOV A,P3 ;读P3.4P3.7 CPL A JNB ACC.4,DJ5 MOV A,#0 AJMP DJOK DJ5:JNB ACC.5,DJ6 MOV A,#1 AJMP DJOK DJ6:JNB ACC.6,DJ7 MOV A,#2 AJMP DJOK DJ7:MOV A,#3 DJOK:ADD A,B MOV 3FH,A RET END(2)简单键盘和显示实验 ORG 0000H LJMP START ORG 00BH LJMP T0INTSTART:MOV P2,#00H MOV TMOD,#01H ;G=0,C=0,M1M0=01 MOV TH0,#00H ;11.0592m,20/3ms中断计1800H次 MOV TL0,#00H SETB TR0 SETB EA SETB ET0 MOV SP,#60H ;30H改成60 MOV 30H,#40H ;显示缓冲首址 MOV 31H,#43H ;列扫描码首址 MOV 41H,#0FFH ;键值18灭 MOV 40H,#8CH ;键值P NOP MOV 43H,#01H MOV 44H,#02H ;MOV 45H,#04H MOV 3FH,#0 ;新键值,默认熄灭 CLR 10H ;去抖动标志 CLR 11H ;执行了标志 CLR 12H ;求键号标志 MOV DPTR,#TAB LOOP:JNB 12H,LOOP CLR 12H MOV A,3FH ANL A,#0FH MOVC A,A+DPTR MOV 41H,A MOV A,3FH ANL A,#0F0H SWAP A MOVC A,A+DPTR MOV 40H,A AJMP LOOP T0INT:MOV TH0,#0DCH ;11.0592m,20/2ms中断计2400H次#DC00H MOV TL0,#00H PUSH ACCXIANSHAO:mov p2,#00h ;消隐 MOV R0,30H MOV P0,R0 MOV R0,31H MOV P2,R0 INC 30H INC 31H MOV A,31H CJNE A,#45H,REL0 ;中断2次显示扫描循环 REL0:JC dujianEXE MOV 31H,#43H MOV 30H,#40H ;显示扫描完成 lcall duj0 ;lcall duj0/lcall dujdujianEXE:POP ACC RETIduj: MOV P3,#0FH ;P3.4P3.7送0 MOV A,P3 ;读P3.0P3.3 CPL A ANL A,#0FH ;A存放按键值,全0表示释放态 JZ C1011 ;A=0释放态转 JB 10H,EXEYN ;A0查去抖标志 SETB 10H ;未去抖,去抖标志置1,返回 AJMP JDOK EXEYN:JB 11H,JDOK ;已去抖,查执行标志为1,返回 LCALL jianzhi ;未执行,求键号,置键号标志 SETB 12H ;执行键值功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论