波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。
测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如方波、锯齿波、三角波等,因而广泛应用于通信、雷达、导航、宇航等领域
以多种波形发生器为对象,选择单片机、独立按键及D/A转换器,设计相应的电路构成多种波形发生器。
功能要求:
1.有4个功能键,分别用来选择输出:三角波、锯齿波、梯形拨、方波。
2.按下某个功能键,进入中断,在中断程序中查询、确定是哪个功能键,并输出对应的波形。
3.显示器2位,显示功能号01、02、03、04,代表输出三角波、锯齿波、梯形拨、方波。
设计任务:
1、 完成单片机最小系统电路设计。
2、 完成按键电路设计。
3、 完成D/A转换及接口电路的设计。
4、 完成显示电路的设计。
电路图如下:(proteus 仿真通过)
其一仿真图:
源程序如下:
ORG 0000H
START: LJMP MAIN
ORG 0003H ;外部中断 入口
LJMP INSER ;转到中断服务程序
ORG 0030H
MAIN: MOV DPTR,#7FFFH ;DAC0832地址
SETB EX0 ;允许 中断
SETB IT0 ;负边沿触发方式
SETB EA ;开中断
HERE: JB 20H.0,ST ;锯齿波处理
JB 20H.1,TRI ;三角波处理
JB 20H.2,SQ ;方波处理
JB 20H.3,TXB ;梯形波处理
SJMP HERE ;等待中断
INSER: JNB P1.0, LL1 ;中断服务程序,查询按键
SJMP L1
LL1: MOV 20H,#00H SETB 20H.0 ;设置锯齿波标志
SJMP RT
L1: JNB P1.2, LL2
SJMP L2
LL2: MOV 20H,#00H
SETB 20H.1 ;设三角梯波标志
SJMP RT
L2: JNB P1.4, LL3
SJMP L3
LL3: MOV 20H,#00H
SETB 20H.2 ;设置方波标志
SJMP RT
L3: JNB P1.6, LL4
SJMP RT
LL4: MOV 20H,#00H
SETB 20H.3 ;设置梯形波标志
RT: RETI;中断返回
ST: CLR
P1.1 ;锯齿波
CLR P1.3 SETB P1.5
CLR P1.7
MOV A,#00H
LOOPP: MOVX @DPTR,A ;启动D/A转换
INC A
JB 20H.0,LOOPP ;连续输出波形
LJMP HERE
TRI: CLR P1.1 ;三角波
CLR P1.3
CLR P1.5
SETB P1.7
MOV A,#00H
UP: MOVX @DPTR,A ;启动D/A转换
INC A ;上升沿
CJNE A,#0FFH,UP
DOWN: MOVX @DPTR,A ;启动D/A转换
DEC A ;下降沿
CJNE A,#00H,DOWN
JB 20H.1, UP ;连续输出波形
LJMP HERE
SQ: CLR P1.1 ;方波
SETB P1.3
CLR P1.5
CLR P1.7
MOV A,#00H
MOVX @DPTR,A ;DAC输出低电平
ACALL DELAY ;延时1
MOV A,#0FFH
MOVX @DPTR,A ;DAC输出高电平
ACALL DELAY ;延时2
JB 20H.2, SQ ;连续输出波形
LJMP HERE
TXB: CLR P1.1 ;梯形波
CLR P1.3
SETB P1.5
SETB P1.7
MOV A,#00H
MOVX @DPTR,A
ACALL DELAY
LOOP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,LOOP
ACALL DELAY
MOVX @DPTR,A
LOOP1: DEC A
MOVX @DPTR,A
CJNE A,#00H,LOOP1
MOVX @DPTR,A
ACALL DELAY
JB 20H.3,LOOP
DELAY: MOV R4,#0FH ;延时子程序
LOOP11: MOV R5,#10H
LOOP22: NOP
NOP
NOP
DJNZ R5,LOOP22
DJNZ R4,LOOP11
RET
END