MOV R1,#00H LCALL BOXING SJMP MAIN
BOXING: JB P1.0, FANGBO JB P1.1, SANJIAO JB P1.2, TIXING JB P1.3, JUCHI JB P1.4, ZXBO RET
FANGBO: MOV R7,#06H LCALL XIANSHI
MOV DPTR,#8000H MOV R1,#0FFH LP: MOV A,R1 MOVX @DPTR,A LCALL DELAY1 CLR A MOVX @DPTR,A LCALL DELAY1 JNB P1.0,MAIN RET
SANJIAO:MOV R7,#5BH LCALL XIANSHI MOV DPTR,#8000H MOV R2, #0FFH MOV R1,#00H MOVX @DPTR,A LP1: MOV A,R1
MOVX @DPTR,A INC R1
JNB P1.1,MAIN DJNZ R2,LP1 MOV R3 ,#0FFH MOV R4,#0FFH LP2: MOV A,R3
MOVX @DPTR,A JNB P1.1,MAIN DEC R3
DJNZ R4,LP2 RET
TIXING: MOV R7,#4FH LCALL XIANSHI MOV DPTR,#8000H
11
MOV R2, #0FFH MOV R1,#00H
LP3: MOV A,R1 MOVX @DPTR,A INC R1
JNB P1.2,MAIN DJNZ R2,LP3 LCALL DELAY1 MOV R1,#0FFH MOV R3,0FFH LP4 :MOV A,R1 MOVX @DPTR,A JNB P1.2,LP7 DEC R1 DJNZ R3 ,LP4
LCALL DELAY1 RET
JUCHI:MOV R7,#66H LCALL XIANSHI MOV DPTR,#8000H MOV R2,#0FFH MOV R1,#00H LP5:MOV A,R1
MOVX @DPTR,A INC R1
JNB P1.3,LP7 DJNZ R2,LP5 RET
ZXBO:MOV R7,#6DH LCALL XIANSHI MOV R1,#00H MOV R2,#0FFH LP6:MOV A,R1
MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV DPTR,#8000H MOVX @DPTR,A INC R1
LCALL DELAY2 JNB P1.4,LP7
DJNZ R2,LP6 RET
XIANSHI:MOV A, R7 MOV DPTR,#9004H
12
MOVX @DPTR,A RET
LP7:LJMP MAIN DELAY1: MOV R3,#1000 D1:MOV R4,#248 D2:DJNZ R4,D2 DJNZ R3,D1 RET
DELAY2: MOV R3,#10 D3:MOV R4,#248 D4:DJNZ R4,D4 DJNZ R3,D3
RET SETTAB:
DB 80H,83H,86H,89H,8DH,90H,93H,96H
DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H
七、设计总结
本次的设计中利用STC89C52和DAC0832以及放大器完成电路的设计,用按键来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终
13
可以通过示波器观察。
编程工作是一项繁重,系统的脑力劳动,需要编程者具有足够的耐心和毅力,耐心细致的工作态度和严谨务实的工作作风。通过这次课程设计使对单片机语言的理解和掌握上有了很大的进步,以前所了解的单片机语言仅限于一些片面的知识,通过这次编程,将这些零零碎碎的知识汇集起来,编写出了一个完整的系统,并且对单片机语言的应用能力有了极大的提高,对于硬件接口的问题也有了深刻的了解,体会到了单片机的独具一格的思想。本次所编写的多功能波形发生器的源程序总共几百行,系统庞大而且繁杂,在编写过程中,所遇到的问题非常多,整个编写过程就是一个不断面临问题,不断解决问题的过程,这一过程充满了挑战性,也充满了各种困难,但不断的追踪错误的来源也是很有趣味的一件事情。
在这次的软件设计中,程序设计采用的是汇编语言。汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。但是汇编语言也存在编写的代码非常难懂,不好维护,很容易产生错误,难于调试的缺点。因此,在大型程序的设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已成熟为专业水平的高级语言。而且,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。不过就本次课程设计来说,汇编语言还是适用的。由于真正意义上的程序设计还不多,因此还不是很得心应手,所以在设计中遇到一些问题和一些难点。比如:在程序设计中如何实现程序结构的最优化,以达到较高的质量。这是以后设计中要注意的问题。
通过这次课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的元件,而且重新温习了刚学不久的汇编语言,使我学得了许多知识,使我获益匪浅。这次课程设计,使我的动手能力得到了很大的提高,更使我们懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是我们得到的理论知识得到验证,更能增加对理论知识的理解。
八、参考文献
[1]. 高峰.单片微型计算机原理与接口技术.科学出版社,2007.
[2]. 潘永雄,沙河,刘向阳.电子线路CAD实用教程〔M〕.西安:西安电子科技大学出版社,2001.13-118.
[3]. 朱定华,戴汝平等,单片微机原理与应用[M].北京交通大学出版社,清华大学出版社.
[4]. 彭介华.电子技术课程设计指导[J].北京:高等教育出版社,1997.
14