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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以多种波形发生器为对象,选择单片机、独立按键及D/A转换器,设计相应的电路构成多种波形发生器。

功能要求:

1.有4个功能键,分别用来选择输出:

三角波、锯齿波、梯形拨、方波。

2.按下某个功能键,进入中断,在中断程序中查询、确定是哪个功能键,并输出对应的波形。

3.显示器2位,显示功能号

01、02、

03、04,代表输出三角波、锯齿波、梯形拨、方波。

设计任务:

1、完成单片机最小系统电路设计。

2、完成按键电路设计。

3、完成D/A转换及接口电路的设计。

4、完成显示电路的设计。

电路图如下:

(proteus仿真通过)

其一仿真图:

源程序如下:

ORG 00H

START:

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;设置锯齿波标志

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:

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

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

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

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

END;xx子程序

相关文档
最新文档