实验内容
基础部分:
1、编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经D/A转换,显示在软件模拟示波器上。(要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。)
拓展部分:
2在软件模拟示波器上显示锯齿波、矩形波、三角波和阶梯波,并使用单脉冲开关KK1在四中波形间进行切换。

代码
基础

A0832 EQU 0600H  CODE SEGMENTASSUME  CS:CODESTART:;产生锯齿波MOV CX, 07H       ;锯齿波周期数
JUCHI:MOV DX, A0832     ;DAC0832接IOY0,0600H为控制端口地址MOV AL, 00H       ;AL为数字量
JC1: OUT DX, AL        ;转换为模拟量CALL DELAY1       ;延时,此为短延时CMP AL ,0FFHJE JC2INC AL            ;AL步加1,直到等于0FFHJMP JC1
JC2:LOOP JUCHI;产生矩形波MOV CX, 05H       ;矩形波周期数
JUXING:MOV DX, A0832MOV AL, 00H       ;先输出00H的波形OUT DX, ALCALL DELAY2       ;长延时MOV AL, 0FFH      ;再输出0FFH的波形OUT DX, ALCALL DELAY2       ;长延时LOOP JUXING;产生三角波MOV CX, 05H     ;三角波周期数
SANJIAO:
SJ1:MOV DX, A0832OUT DX, ALCALL DELAY1       ;短延时CMP AX, 0FFHJE SJ2           INC AL            ;将AL从00H步加0FFHJMP SJ1
SJ2:MOV DX, A0832OUT DX, ALCALL DELAY1       ;短延时CMP AL, 00HJE SJ3DEC AL            ;将AL从0FFH步减至00HJMP SJ2
SJ3:LOOP SANJIAO;产生阶梯波MOV CX, 0FFFFH     ;产生阶梯波的周期数为0FFFF次,如果想改变阶梯波产生周期请修改这里MOV AX, 0FEH       ;波形振幅最大值为0FFH;考虑到8086的DIV除法可能会出现余数为负导致加起来之后的最大值大于0FFH,故使用0FEH作最大值MOV BL,05H         ;阶梯波中的阶梯数,如果想改变阶梯波中的阶梯数请修改这里DIV BL             ;用最大振幅除以阶梯数,得到每个台阶的高度MOV BL, AL         ;将上述除法的商保存在BL中MOV BH, 00H        ;BH置0
JIETI:MOV AX,0000H       ;AX初始化0000H
JT1:MOV DX, A0832OUT DX, ALCMP AX, 00FFH      ;判断AX是否达到幅度上线JAE JT2            ;达到上限,表示一次阶梯波完整生成,开始新一次生成CALL DELAY2        ;长延时ADD AX, BX         ;用当前解体高度加上每个阶梯的高度得到下一阶梯的高度JMP JT1
JT2:    LOOP JIETIDELAY1:                ;短延时PUSH CXMOV CX, 01FFH
D1: PUSH AXPOP AXLOOP D1POP CXRETDELAY2:               ;长延时PUSH CXMOV CX, 0FFFFH
D2: PUSH AXPOP AXLOOP D2POP CXRETCODE ENDSEND START

拓展

DATA SEGMENTSIGN DB 00H
DATA ENDSCODE SEGMENTASSUME  CS:CODE,DS:DATASTART:MOV AX,0000H        MOV DS,AX           ;设置数据段地址;设置中断向量MOV AX,OFFSET MIR7MOV SI,003CHMOV [SI],AXMOV AX,CSMOV SI,003EHMOV [SI],AXCLI  ;关中断;设置ICW1~ICW4和OCW1MOV AL, 11H     OUT 20H, ALMOV AL, 08HOUT 21H, ALMOV AL, 04HOUT 21H, ALMOV AL, 07HOUT 21H, ALMOV AL, 2FHOUT 21H, ALSTI  ;关中断MAIN:CMP SIGN,00HJE JUCHICMP SIGN,01HJE JUXINGCMP SIGN,02HJE SANJIAOCMP SIGN,03HJE JIETI0JMP MAIN;产生锯齿波MOV CX,05H
JUCHI:CMP SIGN,0HJNE MAINMOV DX, 0600H     ;DAC0832接IOY0,0600H为控制端口地址MOV AL, 00H       ;AL为数字量
JC1: OUT DX, AL        ;转换为模拟量CALL DELAY1       ;延时,此为短延时CMP AL ,0FFHJE JC2              INC AL            ;AL步加1,直到等于0FFHJMP JC1
JC2:LOOP JUCHI;产生矩形波MOV CX, 05H       ;产生矩形波的周期数为5次,如果想改变三角波产生周期请修改这里
JUXING:CMP SIGN,01HJNE MAINMOV DX, 0600HMOV AL, 00H       ;先输出00H的波形OUT DX, ALCALL DELAY2       ;长延时MOV AL, 0FFH      ;再输出0FFH的波形OUT DX, ALCALL DELAY2       ;长延时  LOOP JUXINGZHONGJIAN:JMP MAIN;产生三角波MOV CX, 05H     ;产生三角波的周期数为5次,如果想改变三角波产生周期请修改这里
SANJIAO:
SJ1:CMP SIGN,02HJNE MAINMOV DX, 0600HOUT DX, ALCALL DELAY1       ;短延时CMP AL,0FFHJE SJ2           INC AL            ;将AL从00H步加0FFHJMP SJ1
SJ2:MOV DX, 0600HOUT DX, ALCALL DELAY1       ;短延时CMP AL,00HJE SJ3     DEC AL            ;将AL从0FFH步减至00HJMP SJ2
SJ3:LOOP SANJIAO;产生阶梯波
JIETI0:MOV CX, 05H     ;产生阶梯波的周期数为0FFFF次,如果想改变阶梯波产生周期请修改这里MOV AX, 0FEH       ;波形振幅最大值为0FFH;考虑到8086的DIV除法可能会出现余数为负导致加起来之后的最大值大于0FFH,故使用0FEH作最大值MOV BL,05H         ;阶梯波中的阶梯数,如果想改变阶梯波中的阶梯数请修改这里DIV BL             ;用最大振幅除以阶梯数,得到每个台阶的高度MOV BL, AL         ;将上述除法的商保存在BL中MOV BH, 00H        ;BH置0
JIETI1:CMP SIGN,03HJNE ZHONGJIANMOV AX,0000H       ;AX初始化0000H
JT1:MOV DX, 0600HOUT DX, ALCMP AX, 00FFH      ;判断AX是否达到幅度上线JAE JT2            ;达到上限,表示一次阶梯波完整生成,开始新一次生成CALL DELAY2        ;长延时ADD AX, BX         ;用当前解体高度加上每个阶梯的高度得到下一阶梯的高度JMP JT1
JT2:    LOOP JIETI1
MIR7:PUSH AXCMP SIGN,03HJE SET0INC SIGNJMP QUIT
SET0:MOV SIGN,0H
QUIT:POP AXIRETDELAY1:                ;短延时PUSH CXMOV CX, 01FFH
D1: PUSH AXPOP AXLOOP D1POP CXRETDELAY2:               ;长延时PUSH CXMOV CX, 0FFFFH
D2: PUSH AXPOP AXLOOP D2POP CXRETCODE ENDSEND START

实验5、D/A转换实验相关推荐

  1. c语言ad转换实验报告,数据采集AD转换实验报告.doc

    数据采集AD转换实验报告.doc 学生实验报告册课程名称学 院专业班级姓 名学 号指导教师成 绩学年学期2017-2018学年 秋学期重庆邮电大学教务处制实验项目名称数据采集_A/D转换实验地点控制专 ...

  2. 单片机实验汇编---A/D转换实验

    一.实验要求 利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入.编制程序,将模拟量转换成二进制数字量,用发光二极管显示. 二.实验目的 1.掌握A/D转换与单片机的接 ...

  3. 计算机控制系统AD实验报告,实验一AD转换实验报告.docx

    文档介绍: 实验一AD转换实验报告.docx计算机控制系统实验报告实验一实验名称:A/D转换实验二零一六年三月实验_A/D转换实验.实验要求利用ADC做A/D转换器,将模拟量转换成二进制数字量,用延时 ...

  4. 计算机控制系统AD实验报告,实验一AD转换实验报告

    实验一AD转换实验报告 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机控制系统实验报告实验一实验名称:A/D转换实验二零一六年三 ...

  5. 计算机控制实验ppt模板,微型计算机控制技术实验指导书.doc

    文档介绍: 微型计算机控制技术实验指导书电子工程系黑龙江工商职业技术学院实验一A/D转换实验一.实验要求利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入.编制程序,将 ...

  6. 实验:IP地址转换(超好用的substr();)

    首先介绍c++中超好用的截取部分字符串的函数substr(); 头文件为#include<string> 函数原型: string substr(int pos = 0,int n ) c ...

  7. 南昌大学计算机控制,南昌大学计算机控制实验报告数/模转换实验..doc

    南昌大学计算机控制实验报告数/模转换实验. 南昌大学实验报告 学生姓名: 学号: 专业班级: 实验类型:■验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验一 数/模转换实验 一.实验要 ...

  8. STM32 ADC转换实验

    摘自:STM32 ADC转换实验 作者:追兮兮 发布时间: 2020-10-29 09:42:24 网址:https://blog.csdn.net/weixin_44234294/article/d ...

  9. 单片机模数转换实验c语言程序,单片机实验AD转换实验

    <单片机实验AD转换实验>由会员分享,可在线阅读,更多相关<单片机实验AD转换实验(5页珍藏版)>请在人人文库网上搜索. 1.实验报告课程名称: 单片机原理及应用 实验项目: ...

  10. 华为 eNSP easy ip转换实验+NAT服务器

    一.Easyip转换实验 Easy ip--允许将多个内部地址映射到网关出接口地址上的不同端口 基础拓扑图,如下: AR1 system-view int g0/0/2ip add 192.168.1 ...

最新文章

  1. JCo3 建立连接到SAP(2)- 连接池
  2. Spring Cloud Hystrix理解与实践(一):搭建简单监控集群
  3. QCon北京2018关键词:Kubernetes、Service Mesh、Istio和微服务
  4. 幼儿园带括号算式口诀_幼儿园数学作业括号题型.doc
  5. Django03: django加入APP
  6. vscode 逗号不换行_来自一个插件的疯狂夸赞,VS Code「彩虹屁」插件问世,网友:我想要郭德纲版...
  7. 全国计算机基础知识考试题型,盘点 | 全国计算机等级考试一般考哪些内容?
  8. 江西 高职 分数 计算机,快讯!江西高职(专科)批次各高校投档分数线出炉…...
  9. UNIX环境高级编程 第7章 进程环境
  10. SQL Server 2008管理工具
  11. magedu.N45019第一周作业
  12. 基于G-sensor的计步解决方案
  13. 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 8.0 ETH挖矿难度的调整
  14. 小程序实现轮播图跳转页面和小程序
  15. Python滚动条如果滚不动
  16. 破解360doc个人图书馆网站的右键、复制方法
  17. 《经济机器是怎样运行的》笔记(三)
  18. 108K加湿器开发方案 单片机 NY8A051F 单片机开发设计开发
  19. 【FPGA教程案例42】图像案例2——通过verilog实现图像二值化处理,通过MATLAB进行辅助验证
  20. ESP32与掌控板IO接口编程入门 | ESP32轻松学(Arduino版)

热门文章

  1. 2022-07-04-5万字长文说清楚到底什么是“车规级”
  2. 专科计算机专业取消,教育部公布已撤销了这些大学专业!有你的专业吗
  3. 电脑弹窗广告太多了,程序员电脑为什么没有弹窗,那是你没打开这个设置
  4. ftp 227 entering passive mode
  5. 一个计算机专业女孩的求学之路——七年之痒,痒之感悟
  6. TalkingData
  7. 无法获得 VMCI 驱动程序的版本: 句柄无效解决
  8. Linux link命令
  9. Command rejected: Bad VLAN list
  10. codeblocks编译器报错Id returned 1 exit status