参考文献
[1] 程全.基于AT89C52实现的多种波形发生器的设计[J].周口师
范学院学报,2005.22(5):57~58.
[2] 周明德.微型计算机系统原理及应用[M].北京:清华大学出版社,2002.341~364.
[3] 刘乐善.微型计算机接口技术及应用[M].北京:北京航空航天大学出版社,2001.258~264.
[4] 童诗白.模拟电路技术基础[M].北京:高等教育出版社,2000.171~202.
[5] 杜华.任意波形发生器及应用[J].国外电子测量技术,2005.1:38~40.
[6] 张友德.单片微型机原理、应用与实践[M].上海:复旦大学出版社,2004.40~44.
[7] 程朗.基于8051单片机的双通道波形发生器的设计与实现[J].
计算机工程与应用,2004.8:100~103.
[8] 张永瑞.电子测量技术基础[M].西安:西安电子科技大学出版社,2006.61~101.
[9] 李叶紫. MCS-51单片机应用教程[M].北京:清华大学出版社,2004.232~238.
16
附录1 电路原理图
17
附录2 源程序
源程序: ORG 0000H AJM MAIN ORG 000BH LJMP TC0 ORG 0030H
MAIN:MOV DPTR,#9FFFH MOV A,70H
MOVX @DPTR,A DAC0832MOV DPTR,#7F00H 口地址
MOV A,#06H 口、C口为输出
MOVX @DPTR,A MOV DPTR,#7F01H MOVX A,@DPTR JNB ACC.4,K10H 若是则转输出10Hz信号
JNB ACC.5,K100H 若是则转输出100Hz信号
JNB ACC.6,K500H 18
指向DAC0832(1) (1)输出 指向8155命令字端设置A口为输入,B送命令字 指向A口地址 读入A口的开关数据判断是否“4”号键,判断是否“5”号键,判断是否“6”号键,
若是则转输出500Hz信号
JNB ACC.7,K1K 判断是否“7”号键,若是则转输出1KHz信号 AJMP MAIN
LED1: MOV R3,#06H 设置6个LED显示 MOV R2,#01H 据
MOV R1,#30H GN1:MOV DPTR,#7F03H MOV A,R2 MOVX @DPTR,A RL A MOV R2,A 中保存
MOV A, @R1 MOV DPTR,#TAB 表首址
MOVC A,@A+DPTR 段码
MOV DPTR,#7F02H MOV @DPTR,A LCALL LOOP1 19
选通第一位LED数送显示缓冲区首址 指向C口地址 位选通数据送A 位选通数据送C口 选通下一位 位选通数据送R2取键值
送LED显示软件译码查表求出键值显示的指向B口地址 段码送显示 调延时子程序
INC R1 指向下一位显示缓冲区地址
DJNZ R3,GN1 循环显示6个LED RET
LOOP1:MOV R4,#08H 延时子程序 LOOP:MOV R5,#0A0H DJNZ R5,$ DJNZ R4,LOOP RET
K10H: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
显示10Hz 调显示子程序 显示100Hz 20