基于51单片机的DAC0832波形发生器设计

来源:网络整理 作者:2017年11月08日 16:32
关键词:DAC083251单片机

  波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。

  测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如方波、锯齿波、三角波等,因而广泛应用于通信、雷达、导航、宇航等领域

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

  功能要求:

  1.有4个功能键,分别用来选择输出:三角波、锯齿波、梯形拨、方波。

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

  3.显示器2位,显示功能号01、02、03、04,代表输出三角波、锯齿波、梯形拨、方波。

  设计任务:

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

  2、 完成按键电路设计。

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

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

  电路图如下:(proteus 仿真通过)

  基于51单片机的DAC0832波形发生器设计

  其一仿真图:

  基于51单片机的DAC0832波形发生器设计

  源程序如下:

  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

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:

相关阅读

发表评论

elecfans网友

分享到:

用户评论(0