单片机课程设计
如图所示,此波形为幅度为5V,频率为50HZ的正弦波,是通过查表转换的方法来实现的。通过调用延时子程序,改变波形发生的时间常数,实现100HZ、150HZ、200HZ等频率的波形。
4.2.3 锯齿波的仿真
如图5.5所示,此波形为幅度为5V,频率为50HZ的锯齿波,是通过查表转换的方法来实现的。而要实现其他如100HZ、150HZ、200HZ等频率的波形,则需要调用延时子程序,改变波形发生的时间常数。
4.2.4 方波的仿真
如图5.6所示,此波形为幅度为5V,频率为50HZ的方波,是通过查表转换的方法来实现的。通过调用延时子程序,改变波形发生的时间常数,实现100HZ、150HZ、200HZ等频率的波形。
11
单片机课程设计
5.总结
这种基于单片机的信号发生器已经展示出很好的性能,而且有着很高的性价比。此外,它产生的波形与模拟电路的波形相比,波形有着更好的平滑性,其周期性也更加稳定。已经越来越多的应用到各种电子设备当中,给人们的日常生活带来了方便。
在论文中简单介绍了它的用途和发展趋势,根据它的一些基本知识,按照自己的想法设计了一类低频信号发生器,具体包括了设计方案以及相关参数的选取和计算,根据工作基本原理加入了一些相关的辅助电路,并编写了相关的应用程序。有些指标还有待于进一步提高。例如,在精度及其它功能的扩展上还有较大的潜力可以挖掘,这些都有待于我们通过对电路的改进和对元器件的最佳选择来进一步完善。而且由于本人所学知识有限,很多知识点的学习不够深刻,我会在以后的学习中更加踏实、认真的学好各个知识点。
6.参考文献
[1] 程全.基于AT89C52实现的多种波形发生器的设计[J].周口师范学院学报,2005.22(5):57~
58.
[2] 周明德.微型计算机系统原理及应用[M].北京:清华大学出版社,2002.341~364. [3] 刘乐善.微型计算机接口技术及应用[M].北京:北京航空航天大学出版社,2001.258~264. [4] 杜华.任意波形发生器及应用[J].国外电子测量技术,2005.1:38~40.
[5] 张友德.单片微型机原理、应用与实践[M].上海:复旦大学出版社,2004.40~44.
12
单片机课程设计
7.附录
7.1源程序
ORG 0000H AJM MAIN ORG 000BH LJMP TC0 ORG 0030H
MAIN:MOV DPTR,#9FFFH MOV A,70H
MOVX @DPTR,A MOV DPTR,#7F00H MOV A,#06H MOVX @DPTR,A MOV DPTR,#7F01H MOVX A,@DPTR JNB ACC.4,K50H JNB ACC.5,K100H JNB ACC.6,K150H JNB ACC.7,K200H AJMP MAIN
LED1: MOV R3,#06H MOV R2,#01H MOV R1,#30H GN1:MOV DPTR,#7F03H MOV A,R2 MOVX @DPTR,A RL A MOV R2,A R1 MOV DPTR,#TAB
; 取键值
;指向DAC0832(1) ; DAC0832(1)输出 ; 指向8155命令字端口地址 ; 设置A口为输入,B口、C口为输出 ; 送命令字 ; 指向A口地址 ; 读入A口的开关数据
;判断是否“4”号键,若是则转输出50Hz信号 ; 判断是否“5”号键,若是则转输出100Hz信号 ; 判断是否“6”号键,若是则转输出150Hz信号 ; 判断是否“7”号键,若是则转输出200Hz信号 ;设置6个LED显示 ; 选通第一位LED数据 ; 送显示缓冲区首址 ;指向C口地址 ;位选通数据送A ;位选通数据送C口 ; 选通下一位
;位选通数据送R2中保存MOV A, @ ;送LED显示软件译码表首址
13
单片机课程设计
MOVC A,@A+DPTR ;查表求出键值显示的段码 MOV DPTR,#7F02H ;指向B口地址 MOV @DPTR,A ;段码送显示 LCALL LOOP1 ;调延时子程序
INC R1 ;指向下一位显示缓冲区地址 DJNZ R3,GN1 ; 循环显示6个LED RET
LOOP1:MOV R4,#08H LOOP:MOV R5,#0A0H DJNZ R5,$ DJNZ R4,LOOP RET
K50H:MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#01H MOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#15H MOV TH0,#9EH AJMP PD
K100H:MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#01H
MOV 34H,#00HMOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#08H MOV TH0,#0F6H AJMP PD
K150H:MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#05H
;延时子程序 ;显示10Hz ; 调显示子程序 ;显示100Hz ;调显示子程序 ;显示500Hz 14
单片机课程设计
MOV 34H,#00H MOV 35H,#00H
LCALL LED1 ;调显示子程序 MOV TMOD,#00H MOV TL0,#01H MOV TH0,#0FEH AJMP PD
K200H:MOV 30H,#00H ;显示1KHz MOV 31H,#00HMOV 32H,#01H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H
LCALL LED1 MOV TMOD,#00H MOV TL0,#01H MOV TH0,#0FFH
PD:JNB ACC.0,KE0 JNB ACC.1,KE1 JNB ACC.2,KE2 JNB ACC.3,KE3 LJMP PD
KE0:MOV R7,#00H
LCALL LED1 MOV R6,#00H AJMP GN
KE1:MOV R7,#02H
LCALL LED1 MOV R6,#00H AJMP GN
KE2:MOV R7,#02H
LCALL LED1 MOV R6,#00H
AJMP GN KE3:MOV R7,#02H
LCALL LED1 MOV R6,#00H GN: SETB TR0
;调显示子程序 ;判断是否“0”号键按下,若是则转方波输出 ; 判断是否“1”号键按下,若是则转正弦方波输出 ;判断是否“2”号键按下,若是则转三角波输出 ;判断是否“3”号键按下,若是则转锯齿波输出 ;调显示子程序 ;调显示子程序 ;调显示子程序 ;调显示子程序 15