以多种波形发生器为对象,选择单片机、独立按键及D/A转换器,设计相应的电路构成多种波形发生器。
功能要求:
1.有4个功能键,分别用来选择输出: 三角波、锯齿波、梯形拨、方波。
2.按下某个功能键,进入中断,在中断程序中查询、确定是哪个功能键,并输出对应的波形。
3.显示器2位,显示功能号 01、02、
03、04,代表输出三角波、锯齿波、梯形拨、方波。 设计任务:
1、完成单片机最小系统电路设计。 2、完成按键电路设计。
3、完成D/A转换及接口电路的设计。 4、完成显示电路的设计。 电路图如下: (proteus仿真通过) 其一仿真图: 源程序如下: ORG 00H START:
1 / 8
LJMP MAIN
ORG 0003H;外部xxxx LJMP INSER;转到xx服务程序 ORG 0030H MAIN:
MOV DPTR,#7FFFH;DAC0832地址 SETB EX0;允许xx SETB IT0;负边沿触发方式 SETB EA;开xx HERE:
JB 20H.0,ST;锯齿波处理 JB 20H.1,TRI;三角波处理 JB 20H.2,SQ;方波处理 JB 20H.3,TXB;梯形波处理 SJMP HERE;等待xx INSER: JNB P
1.0, LL1;中断服务程序,查询按键 SJMP L1
LL1:MOV 20H,#00H SETB 20H.0;设置锯齿波标志
2 / 8
SJMP RT L1:JNBP 1.2, LL2 SJMP L2
LL2:MOV 20H,#00H SETB 20H.1;设三角梯波标志SJMP RT L2:JNB P 1.4, LL3 SJMP L3
LL3:MOV 20H,#00H SETB 20H.2;设置方波标志 SJMP RT L3:JNB P 1.6, LL4 SJMP RT
LL4:MOV 20H,#00H SETB 20H.3;设置梯形波标志RT: RETI;xx返回 ST:
3 / 8
CLR P 1.1;锯齿波 CLR P 1.3 SETB P 1.5 CLR P 1.7 MOVA,#00H LOOPP:
MOVX@DPTR,A;启动D/A转换INCA
JB20H.0,LOOPP;连续输出波形 LJMPHERE TRI: CLR P 1.1;三角波 CLR P 1.3 CLR P 1.5
4 / 8
SETB P 1.7 MOVA,#00H UP:
MOVX@DPTR,A;启动D/A转换 INCA;上升沿 CJNEA,#0FFH,UP DOWN:
MOVX@DPTR,A;启动D/A转换 DECA;下降沿 CJNEA,#00H,DOWN JB20H.1,UP;连续输出波形 LJMPHERE SQ: CLR P 1.1;方波 SETB P 1.3 CLR P 1.5 CLR P
5 / 8
1.7 MOVA,#00H
MOVX@DPTR,A;DAC输出低电平 ACALLDELAY;xx1 MOVA,#0FFH
MOVX@DPTR,A;DAC输出高电平 ACALLDELAY;xx2
JB20H.2, SQ;连续输出波形 LJMPHERE TXB: CLR P 1.1;梯形波 CLR P 1.3 SETB P 1.5 SETB P 1.7 MOV A,#00H MOVX @DPTR,A ACALL DELAY
6 / 8
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: MOVR4,#0FH LOOP11:MOVR5,#10H LOOP22: NOP NOP NOP
DJNZR5,LOOP22 DJNZR4,LOOP11 RET
7 / 8
END;xx子程序
8 / 8
因篇幅问题不能全部显示,请点此查看更多更全内容