您的当前位置:首页正文

基于51单片机和DAC0832的多路波形发生器(汇编语言编写)

2022-10-24 来源:意榕旅游网


以多种波形发生器为对象,选择单片机、独立按键及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

因篇幅问题不能全部显示,请点此查看更多更全内容