程序清单
ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0100H MAIN:MOV SP,#60H MOV DPTR,#TAB MOV TMOD,#02H MOV TH0,#0CEH MOV TL0,#0CEH SETB EA SETB ET0 MOV R1,#5 MOV R2,#5 MOV R3,#01H MOV R5,#01H MOV P2,00H MOV P1,#0FFH ZZ: JB P1.0,FZ JNB P1.0,$ SETB TR0
MOV P2,#01H MOV R4,#01H FZ: JB P1.1,TZ JNB P1.1,$ SETB TR0
MOV P2,#02H
MOV R4,#02H TZ: JB P1.2,JS JNB P1.2,$ MOV P2,#00H CLR TR0
JS: JB P1.3,JIAN JNB P1.3,$ INC R2 INC R5 DEC R1 JIAN:JB P1.4,XS JNB P1.4,$ DEC R2 DEC R5 INC R1
XS:MOV DPTR,#TAB MOV A,R5
MOVC A,@A+DPTR MOV P0,A SJMP ZZ
TIME:MOV TH0,#0CEH MOV TL0,#0CEH CLR TF0 MOV A,R4 MOV P2,A LOOP:JNB TF0,$ CLR TF0
DJNZ R3,EXIT MOV A,R2 MOV R3,A
CJNE R4,#01,L1 CPL P2.0 SJMP LOOP L1: CPL P2.1 EXIT:RETI
TAB:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H DB 90H,88H END
六、心得体会
在前两周的仿真实训中我们巩固了对单片机的编程和使用的理解,加深了对汇编语言的赋值、跳转、中断、串口等的使用,特别是做4*4矩阵键盘时,之前我们所学的知识很难解决这个问题,我们只能重新学习串口的相关知识,通过自己查资料问老师后把仿真做出来了,内心得到了鼓舞,重新找回了学习的动力,之后又做了AD\\DA的转换仿真,最难的还是电机的正反转仿真,在没有资料的情况下和同学交流讨论后实现了功能,真正在学习上找到了快乐。
最后一个周进行自己设计电路并制成实物,难度很大,但是在老师的耐心指点教导下我们一步步克服了设计上的困难,有的程序甚至是老师编好给我让我自己去体会并弄懂,在老师的帮助和与同学的讨论下自己坚持每天独立思考并完成了仿真,但是仿真和实际焊接后的硬件电路又很大的差别,自然新的困难又出现在了调试中,由于种种原因LCD12864没能及时到我手里,所以很早就把电子密码锁的硬件电路焊接好并调试成功,最后一天器件到了才发现和仿真时用的器件不同,他的初始化和相关参数也不同,加上自己能力和时间的有限最终放弃了继续制作,很遗憾没能做出最终的成品,但是我不会气馁,通过这次实训让我懂得很多也学到了很多,希望在以后生活学习中不断进步。