单片机实习总结报告

  • 格式:doc
  • 大小:313.00 KB
  • 文档页数:23

专业综合实习总结2010-2011(2)专业班级:电子信息工程学生学号:学生姓名:指导教师:实习时间:机电工程学院一、实习目的和意义1、实习目的:(1)利用单片机小系统实习板,掌握电路原理图;(2)通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;(3)通过单片机系统的调试、程序编制及运行,掌握单片机系统的工作原理、开发方法和操作方法。

2、实习意义:通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。

在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。

达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

二、实习内容1.熟悉“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。

2.掌握单片机技术应用平台keil软件的学习。

3.借助平台软件,学习开发板的使用,按照要求编制、调试出正确的汇编语言程序。

4.学习适合本开发平台软件STC-ISP的在线单片机烧录。

5.针对实习电路板的功能,编制、调试、编译汇编语言程序,下载烧录并在实验板上运行,或利用软件ISIS 7 Professional进行软件仿真。

实现的功能:1.led显示模块:单向循环流水led显示、双向循环流水led显示、花样流水灯的显示,使用查表方法编制任意点亮历程的实现,使用软件延时;2.数码管显示模块:一位静态数码管显示0到9和0到F、二位静态数码管显示0到99、三位静态数码管显示0到999、四位静态数码管显示0到9999;阴极和阳极四位动态数码管显示;74LS驱动4位静态数码管显示;利用74HC595四位静态数码管显示;使用串行静态显示和动态扫描显示两种方式;3.键盘模块:利用4×4矩阵键盘按键对应置数显示“0~F”;使用键盘的行列扫描方式;三、硬件介绍(一)LED显示模块:图1 流水灯显示图2 键盘控制循环灯(二)数码管显示模块:图3 1位静态数码管显示图6 独立键盘加减清零数码管显示图7 4位74LS驱动静态数码管显示图8 4位74HC595静态显示图9 0到F矩阵键盘四、软件程序流程图1、流水灯循环左移右移程序框图:是3、0到9一位静态显示程序框图:4、动态数码显示程序框图:5、4×4矩阵矩阵键盘数码显示程序框图:主程序图:判别是否有键按下程序:五、实习的心得体会回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解,尤其是在学习使用proteus软件片编程和仿真时收获良多。

通过这次单片机课程设计,还使我懂得了实践的重要性。

同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。

本次单片机实习我们一共完成了三个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。

分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。

然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。

第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。

我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。

同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!附录:程序清单P1口闪亮:ORG 0000HLOOP:MOV P1,#01HACALL DELAYMOV P1,#00HACALL DELAYSJMP LOOP DELAY:MOV R7,#250 DEL1:MOV R6,#250DJNZ R6,$DJNZ R7,DEL1RETEND流水灯循环左移右移:方法一:ORG 0000HMOV A,#01H LOOP: MOV P1,AMOV R5,#10LOOP1:ACALL DELAYDJNZ R5,LOOP1RL AJB ACC.7, LOOP2 SJMP LOOPLOOP2:MOV P1,AMOV R5,#10 LOOP3:ACALL DELAYDJNZ R5,LOOP3RR AJB ACC.0,LOOPSJMP LOOP2 DELAY:MOV R7,#250 DEL1:MOV R6,#250DJNZ R6,$DJNZ R7,DEL1RETEND方法二:ORG 0000HMOV A,#80H LOOP:RL AMOV P1,AACALL DELAYCJNE A,#80H,LOOP LOOP1:RR AMOV P1,AACALL DELAYCJNE A,#01H,LOOP1SJMP LOOP DELAY:MOV R7,#0FFH DELAY1:MOV R6,#0FFH DELAY2:MOV R5,#03H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1RETEND方法三:ORG 0000HMOV A,#80HMOV R0,#08H LOOP:RL AMOV P1,AACALL DELAYDJNZ R0,LOOPMOV R0,#07H LOOP1:RR AMOV P1,AACALL DELAYDJNZ R0,LOOP1MOV R0,#07HSJMP LOOP DELAY:MOV R7,#0FFH DELAY1:MOV R6,#0FFH DELAY2:MOV R5,#03H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1RETEND方法四:ORG 0000HMOV A,#00HSETB CYLOOP:RLC AJC LOOP1MOV P1,AACALL DELAYSJMP LOOPLOOP1:RRC AJC LOOPMOV P1,AACALL DELAYSJMP LOOP1 DELAY:MOV R7,#0FFHDELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND从中间向两边,再从两边向中间循环点亮: ORG 0000HSTAR:MOV R0,#00HMOV R1,#07MOV A,R0MOV DPTR,#TABLOOP: MOVC A,@A+DPTRMOV P1,AMOV R5,#10LOOP1:ACALL DELDJNZ R5,LOOP1INC R0MOV A,R0DJNZ R1,LOOPSJMP STARDEL:MOV R7,#200DEL1:MOV R6,#250DJNZ R6,$DJNZ R7,DEL1RETTAB:DB18H,24H,42H,81H,42H,24H,18H END键盘控制流水灯循环点亮:ORG 0000HAJMP MAINORG 0003HAJMP ETORG 0030HMAIN:MOV SP,#60HSETB EASETB IT0SETB EX0CLR CMOV A,#0FFHMOV P2,ALCALL DEL LOOP:JNB 21H.1,L ;检测标志RRC A ;右移动MOV P2,AAJMP DEEL: RLC A ;左移动MOV P2,ADEE: LCALL DELAJMP LOOPET: CLR EAPUSH ACCPUSH PSWLCALL DELAYMOV A,#0FFHMOV P1,ANOPNOPMOV A,P1 ;读键值ANL A,#0F0HCJNE A,#0F0H,NEXT1AJMP NEXTNEXT1:JB ACC.5,NEXT2CLR 21H.1 ;按键后产生标志 AJMP NEXTNEXT2:JB ACC.6,NEXTSETB 21H.1 ;按键后产生标志NEXT: SETB EAPOP PSWPOP ACCHHH: RETIDEL:MOV R6,#250DEL11:MOV R5,#250DJNZ R5,$DJNZ R6,DEL11RETDELAY:MOV R6,#10DEL1: MOV R5,#200DEL2: DJNZ R5,$DJNZ R6,DEL1RETEND花样流水灯:ORG 0000HSTART:MOV R0,#00HMOV P1,#00HLOOP:MOV A,R0ADD A,#0CHMOVC A,@A+PCCJNE A,#01H,XSHSJMP STARTXSH:MOV P1,AACALL DELAYINC R0SJMP LOOPDB0FFH,00H,0FFH,00H,0FFH,00H,0FF H,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H ,0FHDB0F0H,0FH,0F0H,0AAH,55H,0AAH,55 H,0AAH,55H,0AAH,55H,0AAH,55H,81H ,42HDB24H,18H,24H,42H,81H,42H,24H,18 H,24H,42H,81H,42H,24H,18H,24H,42 H,81HDB42H,24H,18H,24H,42H,81H,03H,06 H,0CH,18H,30H,60H,0C0H,60H,30H,1 8H,0CHDB06H,03H,06H,0CH,18H,30H,60H,0C 0H,60H,30H,18H,0CH,06H,03H,01H DELAY:MOV R7,#0FFHDELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND1位静态数码显示:ORG 0000HMOV R0,#0FFHDISPLY: INC R0CJNE R0,#0AH,DISPLY1MOV R0,#0FFHSJMP DISPLYDISPLY1:MOV A,R0ADD A,#06HMOVC A,@A+PCMOV P0,AACALL DELAYSJMP DISPLY DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,9 2H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH,89H,7FH,0BFHDELAY:MOV R7,#0FFHDELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RET2位静态数码显示:ORG 0000HMOV R0,#0FFHMOV R1,#00HDISPLY: INC R0CJNE R0,#0AH,DISPLY1 INC R1CJNE R1,#0AH,DISPLY2 MOV R0,#0FFHMOV R1,#00HMOV P0,#0FFHAJMP DISPLYDISPLY2:MOV A,R1ADD A,#10HMOVC A,@A+PCMOV P0,AMOV R0,#0FFHAJMP DISPLYDISPLY1:MOV A,R0ADD A,#06HMOVC A,@A+PCMOV P2,AACALL DELAYAJMP DISPLYDTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0 CH,89H,7FH,0BFHDELAY:MOV R7,#0FFHDELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND3位静态数码显示:ORG 0000HSTART: MOV R0,#0FFHMOV R1,#00HMOV R2,#00HMOV P3,#0FFHMOV P2,#0FFHMOV P0,#0FFHDISPLY: INC R0CJNE R0,#0AH,DISPLY1MOV R0,#0FFHINC R1CJNE R1,#0AH,DISPLY2MOV R1,#00HMOV P2,#0C0HINC R2CJNE R2,#0AH,DISPLY3SJMP STARTDISPLY3:MOV A,R2ADD A,#16HMOVC A,@A+PCMOV P0,ASJMP DISPLYDISPLY2:MOV A,R1ADD A,#0EHMOVC A,@A+PCMOV P2,ASJMP DISPLYDISPLY1:MOV A,R0ADD A,#06HMOVC A,@A+PCMOV P3,AACALL DELAYSJMP DISPLYDTAB:DB0C0H,0F9H,0A4H,0B0H,99H,9 2H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH,89H,7FH,0BFHDELAY: MOV R7,#0FFH DELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND4位静态数码显示:ORG 0000HSTART: MOV R0,#0FFHMOV R1,#00HMOV R2,#00HMOV R3,#00HMOV P1,#0FFHMOV P3,#0FFHMOV P2,#0FFHMOV P0,#0FFH DISPLY: INC R0CJNE R0,#0AH,DISPLY1 MOV R0,#0FFHINC R1CJNE R1,#0AH,DISPLY2MOV R1,#00HMOV P3,#0C0HINC R2CJNE R2,#0AH,DISPLY3MOV R2,#00HMOV P2,#0C0HINC R3CJNE R3,#0AH,DISPLY4SJMP STARTDISPLY4:MOV A,R3ADD A,#1EHMOVC A,@A+PCMOV P0,ASJMP DISPLYDISPLY3:MOV A,R2ADD A,#16HMOVC A,@A+PCMOV P2,ASJMP DISPLYDISPLY2:MOV A,R1ADD A,#0EHMOVC A,@A+PCMOV P3,ASJMP DISPLYDISPLY1:MOV A,R0ADD A,#06HMOVC A,@A+PCMOV P1,AACALL DELAYSJMP DISPLYDTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0 CH,89H,7FH,0BFHDELAY: MOV R7,#0AHDELAY1:MOV R6,#0FFHDELAY2:MOV R5,#03HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND74HC595四位稳定显示:1)最大数为9999的计数器ORG 0000HAJMP MAINORG 000BHAJMP CRT0ORG 0020HMAIN:MOV R1,#33HMOV R2,#04HCLEAR:MOV @R1,#33HDEC R1DJNZ R2,CLEARMOV SP,#60HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0SETB TR0MOV R7,#1MOV DPTR,#DTABLOOP: MOV R1,#33HMOV R2,#04HMOV R3,#08HMOV R4,#01HLOOP1:MOV A,R3MOV P2,ARR AMOV R3,AMOV A,@R1CJNE R4,#00H,MODE XSH: LCALL DISLCALL DELDEC R1DJNZ R2,LOOP1 AJMP LOOP MODE: CJNE A,#00H,FH MOV R4,#01HMOV A,#0AHSJMP XSHFH: MOV R4,#00HSJMP XSHCRT0: DJNZ R7,RRRMOV R7,#1INC 30HMOV R0,30HCJNE R0,#0AH,RRRMOV 30H,#00HINC 31HMOV R0,31HCJNE R0,#0AH,RRRMOV 31H,#00HINC 32HMOV R0,32HCJNE R0,#0AH,RRRMOV 32H,#00HINC 33HMOV R0,33HCJNE R0,#0AH,RRRMOV 33H,#00H RRR: MOV TH0,#3CHMOV TL0,#0B0HRETIDIS: MOVC A,@A+DPTR MOV P0,ARETDEL: MOV R6,#20DEL1: MOV R5,#150DEL2: DJNZ R5,$DJNZ R6,DEL1RETDTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90H,0FFHDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0 CH,89H,7FH,0BFHEND2)最高位为零时,最高位不显示ORG 0000HAJMP MAINORG 000BHAJMP CRT0ORG 0020HMAIN: MOV R1,#33HMOV R2,#04HCLEAR: MOV @R1,#00HDEC R1DJNZ R2,CLEARMOV SP,#60HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0SETB TR0MOV R7,#1MOV DPTR,#DTABLOOP: MOV R1,#33HMOV R2,#04HMOV R3,#08HLOOP1: MOV A,R3MOV P2,ARR AMOV R3,AMOV A,@R1LCALL DISLCALL DELDEC R1DJNZ R2,LOOP1AJMP LOOPCRT0: DJNZ R7, RRRMOV R7,#1MOV R0,#30HMOV R4,04HCON: INC @R0CJNE @R0,#0AH,RRRMOV @R0,#00HINC R0DJNZ R4,CONRRR: MOV TH0,#3CHMOV TL0,#0B0HRETIDIS: MOVC A,@A+DPTRMOV P0,ARETDEL: MOV R6,#20DEL1: MOV R5,#150DEL2: DJNZ R5,$DJNZ R6,DEL1RETDTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90H,0FFHDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0 CH,89H,7FH,0BFHEND3)最大数为256的计数器DAT DATA 30HBW DATA 31HSHW DATA 32HGW DATA 33HORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0030HMAIN: MOV SP,#60HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0SETB TR0MOV R7,#2MOV DAT,#00H LOOP: LCALL CHANGE MOV P2,#01HMOV A,GWLCALL DISLCALL DELMOV P2,#02HMOV A,SHWLCALL DISLCALL DELMOV P2,#04HMOV A,BWLCALL DISLCALL DELMOV P2,#08HMOV A ,#0AHLCALL DISLCALL DELAJMP LOOP COUNT: DJNZ R7,RRRMOV R7,#2INC DATRRR: MOV TH0,#3CH MOV TL0,#0B0HRETI CHANGE: MOV A,DATMOV B,#100DIV ABMOV BW,AMOV A,#10XCH A,BDIV ABMOV SHW,AMOV GW,BRETDIS: MOV DPTR,#TAB MOVC A,@A+DPTRMOV P0,ARETDEL: MOV R6,#20 DEL1: MOV R5,#150 DEL2: DJNZ R5,$DJNZ R6,DEL1RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90H,0FFHEND74LS4位静态数码显示:方法一:ORG 0000HMOV R3,#04HMOV R0,#20HSTART:LCALL DISPLAYLCALL COUNTLCALL DELAYSJMP STARTCOUNT:INC @R0CJNE @R0,#0AH,DONMOV @R0,#00HSHW: INC R0INC @R0CJNE @R0,#0AH,DE1MOV @R0,#00HBW: INC R0INC @R0CJNE @R0,#0AH,DE2MOV @R0,#00HQW: INC R0INC @R0CJNE @R0,#0AH,DE3MOV @R0,#00HDE3: DEC R0DE2: DEC R0DE1: DEC R0DON: RETDISPLAY:MOV SCON,#00HLOOP:MOV A,@R0ADD A,#0FHMOVC A,@A+PCMOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R3,LOOPMOV R3,#04HMOV R0,#20HDON1:RETDTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H, 7FH,6FHDB77H,7CH,39H,5EH,79H,71H,00H,0F 3H,76H,80H,40HDELAY:MOV R7,#50DELAY1:MOV R6,#100DELAY2:MOV R5,#20DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND方法二:ORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0020HMAIN: MOV R1,#30HMOV R2,#04HCLEAR:MOV @R1,#00HINC R1DJNZ R2,CLEARMOV SP,#60HMOV TMOD,#01HMOV TH0,#0B0HSETB EASETB ET0SETB TR0MOV R3,#3MOV DPTR,#DTABMOV SCON,#00HDISPLY:MOV R1,#30HMOV R2,#04HLOOP:MOV A,@R1MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC R1DJNZ R2,LOOPACALL DELSJMP LOOPCOUNT:DJNZ R3,RRRMOV R3,#3MOV R0,#30HMOV R4,#04HCON:INC @R0CJNE @R0,#0AH,RRRMOV @R0,#00HINC R0DJNZ R4,CONRRR:MOV TH0,#3CHMOV TL0,#0B0HRETIDEL:MOV R6,#250DEL1:MOV R5,#250DEL2:DJNZ R5,$DJNZ R6,DEL1RETDTAB:DB3FH,06H,5BH,4FH,66H,6DH,7 DH,07H,7FH,6FHDB77H,7CH,39H,5EH,79H,71H,00H,0F 3H,76H,80H,40HEND动态数码显示:ORG 0000HACALL STARTSTART1: MOV @R0,#00HINC R0DJNZ R2,START1ACALL START2COUNT: CJNE @R0,#0AH,ACALLDIS MOV @R0,#00HINC R0INC @R0CJNE R0,#34H,COUNTACALL STARTAJMP START1 ACALLDIS:ACALL DISPLAYINC @R0AJMP COUNTDISPLAY: ACALL STARTMOV R4,#01HDISPLAY1:MOV A,@R0MOV DPTR,#DTABMOVC A,@A+DPTRMOV P0,AINC R0MOV A,R3MOV P2,ARL AMOV R3,AACALL DELAYDJNZ R2,DISPLAY1ACALL STARTDJNZ R4,DISPLAY1RETDTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H, 7FH,6FHDB77H,7CH,39H,5EH,79H,71H,00H,0F 3H,76H,80H,40HSTART:MOV R3,#0FEHSTART2:MOV R0,#34HMOV R2,#04HRETDELAY:MOV R7,#088HDEL1:MOV R6,#88HDEL2:MOV R5,#01HDEL3:DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1RETEND独立键盘加减清零数码显示:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delayms(uint);uchar numt0,num;void display(numdis) {uchar shi,ge;shi=numdis/10;ge=numdis%10;wela=1;P0=0xfe;wela=0;dula=1;P0=table[shi];dula=0;P0=0xff;delayms(5);wela=1;P0=0xfd;wela=0;dula=1;P0=table[ge];dula=0;P0=0xff;delayms(5);}void delayms(uint x) {uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);} void init(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;}void keyscan(){if(key1==0){delayms(10);if(key1==0){num++;if(num==60)num=0;while(!key1);}}if(key2==0){delayms(10);if(key2==0){ if(num==0)num=60;num--;while(!key2); }}if(key3==0){delayms(10);if(key3==0){num=0;while(!key2);}}if(key4==0){delayms(10);if(key4==0){ while(!key4);TR0=~TR0;}}}void main(){init();while(1){keyscan();display(num);}}void T0_time() interrupt 1 {TH0=(65536-50000)/256;TL0=(65536-50000)%256; numt0++;if(numt0==20){numt0=0;num++;if(num==60)num=0;}}矩阵键盘0到F显示:KEY_DATA DATA 30HORG 0000HMOV KEY_DATA,#10HAJMP MAINORG 0030HMAIN:MOV SP,#60HLOOP:LCALL SCANMOV A,KEY_DATAMOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DELAJMP LOOPSCAN:MOV A,#0FHMOV P1,AMOV A,P1CJNE A,#0FH,KEYSCANRETKEYSCAN:LCALL DELMOV R2,#7FHMOV R3,#4MOV R0,#00HKEYSM1:MOV A,R2MOV P1,ARR AMOV R2,AMOV A,P1ANL A,#0FHCJNE A,#0FH,JSADDINC R0DJNZ R3,KEYSM1RETJSADD: JB ACC.0,JSADD1MOV A,#0AJMP JSADD4JSADD1:JB ACC.1,JSADD2MOV A,#4AJMP JSADD4JSADD2:JB ACC.2,JSADD3MOV A,#8AJMP JSADD4JSADD3:JB ACC.3,JSADD4MOV A,#12JSADD4:ADD A,R0MOV KEY_DATA,ADEL: MOV R6,#50DEL1: MOV R5,#200DJNZ R5,$DJNZ R6,DEL1RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH,89H,7FH,0BFHEND。