DEC R0 MOV A,R2 JB ACC.5,LP1 RL A MOV R2,A AJMP LP0
LP1: AJMP MAIN
TAB: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,40H,00H D1MS: MOV R7,#02H DL: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL RET END 调试过程:
先使用软件仿真,通过观察P1口的输出是否符合要求来判断程序的正误。再进行硬件操作,看是否能正常显示我的学号。刚开始,我对单片机每个单元取值显示部分不是很理解,直接在TAB中放我要显示的数字,最后导致所有的字符都无法显示出来。后来经过翻书发现通过没一个地址单元赋初值,然后用变址寻址方式,可以顺利显示要显示的数字。。
通过实验发现,1ms是最好的延迟时间,当时间延迟为20ms时,数码管显示的数字开始很明显地闪烁。
实验总结
这几次单片机的实验过程,弥补了很多单片机知识点的盲点,比如程序仿真,我一直没有弄清楚这个过程,以前都是程序编好了就直接下到单片机看执行结果。通过仿真,在调试的过程中确实省了很多的时间。
在实验的过程中,对单片机的内部结构有了更深的了解,对汇编语言的使用更加熟练了。
我觉得51单片机的学习是一个入门的课程,相信这些实验会对我以后专业课的学习提供很大的帮助。