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

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

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

51单片机c语言dac0832产生波形,基于51单片机的DAC0832波形发生器设计相关推荐

  1. 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  2. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  3. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议

    原标题:基于51单片机中断跳出指令"RETI"浅议 =RET指令+通知CPU中断服务已结束. 最近在基于编程的过程中出现了个很奇怪的问题"程序执行中在寄存器EA=1,ET ...

  4. 单片机c语言篮球比分_基于51单片机的篮球记分牌设计

    1 摘 要 单片机,亦称单片微电脑或单片微型计算机.它是把中央处理器( CPU ).随机存 取存储器( RAM ).只读存储器( ROM ).输入 / 输出端口( I/0 )等主要计算机功能部件 都集 ...

  5. 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...

    基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...

  6. 单片机c语言交通灯源程序,基于80C51单片机的交通灯C语言源程序

    <基于80C51单片机的交通灯C语言源程序>由会员分享,可在线阅读,更多相关<基于80C51单片机的交通灯C语言源程序(5页珍藏版)>请在人人文库网上搜索. 1.include ...

  7. 单片机c语言程序开发洗衣机,基于51单片机的洗衣机程序

    题目:设置过程,有一个水位选择按键,选择6个水位之一,相应的有六个水位检测点,仿真时用六个开关表示.有一个程序选择按键,选择8个程序之一.一个启动/停止键,按照所选程序自动洗衣.(2)洗衣过程,模拟完 ...

  8. 51单片机c语言编写计算器仿真,基于51单片机的计算器设计c程序代码加proteus仿真...

    可实现加减乘除各类运算,带有清零复位功能 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 0.png (24.71 KB, 下载次数: 9) 2019-1-10 04:05 上传 程序 ...

  9. 单片机c语言慧尾灯编码,基于AT89S52单片机的汽车LED尾灯控制器设计毕业论文+电路仿真+PCB+程序源码...

    摘要 本次论文主要利用AT89S52单片机模拟汽车尾灯进行智能控制的控制器,用8个LED灯模拟汽车尾灯,6个独立按键分别对应了右转.左转.危险警示.夜间模式切换.检查信号.刹车不同的状态,在实际设计模 ...

  10. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

最新文章

  1. php7+的php-fpm参数配置,注意事项
  2. 讲讲Git如何合并分支(一)
  3. RHEL 5 设置 YUM
  4. 【深度学习入门到精通系列】对抗样本和对抗网络
  5. 使用rabbitMQ实现数据同步
  6. React 中的父子组件 兄弟组件传值
  7. js设置和清除cookie
  8. SAP Fiori Elements 本地项目的 annotations.xml 文件
  9. 云测试软件详解,软件测试之登录测试详解
  10. 汉仪尚巍手书有版权吗_为什么“汉仪尚巍手书”会大行天下?
  11. indexof java_java indexOf()简单字符查找实例
  12. rinetd 进行转发
  13. 吴恩达CS229速查表
  14. 欧盟的贷款部门计划用区块链技术进行数字债券的交易、结算和销售
  15. pythonqt5教程从零开始_pyQt5 QtDesigner 简易入门教程
  16. 基于SSM框架的电影订票系统
  17. 计算机怎样设置默认美式键盘,完美:如何在win10系统中将默认输入法设置为美式键盘...
  18. 关于C和C++的register关键字
  19. word 最后一页删不掉及删除后其它页面页码不对的问题
  20. 十分钟用Django创建一个简单的职位管理系统

热门文章

  1. 以下关于android应用程序的目录结构,以下关于Android应用程序的目录结构描述中,错误的是哪个()...
  2. windows输入法英文字体间距比平常大,按照设置里按下"shift+space“键,也依然如此
  3. 过压保护电路(OVP)
  4. android自定义虚线,Android自定义view的方式绘制虚线
  5. 20-40K/月,百度车联网招聘多岗位Android工程师(地点:深圳)
  6. GitHub个人Blog完全攻略
  7. Android 超高仿微信图片选择器
  8. 学习笔记之MyEclipse里各个文件名前的小标记都代表的意思
  9. 关于Dlink和ADSL不和谐的解决
  10. 关于Office 365开发者订阅无法注册的说明