找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5093|回复: 3
收起左侧

proteus 8086波形发生器(三角波 方波 正弦波)五档幅值可调

[复制链接]
ID:858473 发表于 2020-12-11 02:48 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

8086源程序如下:
  1. DATAS SEGMENT
  2.     DAC0832 equ 0C400h
  3.     IOY1    equ 0C480h
  4.     a8255   equ IOY1
  5.     b8255   equ IOY1+01H*4
  6.     m8255   equ IOY1+03H*4
  7.     buff0   DB        128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88
  8.     buff1   DB        102,134,162,185,200,204,200,185,162,134,102,70,42,19,5,0,5,19,42,70
  9.     buff2   DB        77,101,121,139,150,153,150,139,122,101,77,53,32,14,3,0,3,14,32,53
  10.     buff3   DB        51,67,81,93,100,102,100,93,81,67,51,35,21,10,2,0,2,10,21,35
  11.     buff4   DB        26,33,41,46,50,51,50,46,41,34,26,18,11,5,1,0,1,5,11,18
  12. DATAS ENDS

  13. STACKS SEGMENT
  14. STACKS ENDS

  15. CODES SEGMENT
  16.     ASSUME CS:CODES,DS:DATAS,SS:STACKS
  17. START:
  18.     MOV AX,DATAS
  19.     MOV DS,AX
  20.     MOV DX,m8255
  21.     MOV AL,92h;AB口输入
  22.     OUT DX,AL
  23.     ;判断输出信号的类型
  24. Choose:
  25.     ;A口输入波形选择信号
  26.     MOV DX,a8255
  27.         in AL,DX
  28.         CMP AL,0FEh
  29.         je Sim_begin
  30.         CMP AL,0FDh
  31.         je Fangbo
  32.         CMP AL,0FBh
  33.         je tri_begin
  34.         CMP AL,0f7h
  35.         je sin_begin
  36.         JMP choose

  37. ;锯齿波
  38. Sim_Begin:  
  39.     ;B口输入档位选择信号
  40.     MOV DX,b8255
  41.     IN AL,DX
  42.     CMP AL,0FEH
  43.     JE SW1
  44.     CMP AL,0FDH
  45.     JE SW2
  46.     CMP AL,0FBH
  47.     JE SW3
  48.     CMP AL,0F7H
  49.     JE SW4
  50.     JNZ sw0
  51.     ;默认0档即幅值最大,1234档依次为0.8,0.6,0.4,0.2倍幅值档
  52.     JMP Sim_Begin
  53. SW0:
  54.     MOV AL,0FFH
  55.     JMP SIM
  56. SW1:
  57.     MOV AL,0CCH
  58.     JMP SIM
  59. SW2:
  60.     MOV AL,99H
  61.     JMP SIM
  62. SW3:
  63.     MOV AL,66H
  64.     JMP SIM
  65. SW4:
  66.     MOV AL,33H
  67.     JMP SIM
  68. SIM:
  69.         MOV DX,DAC0832
  70.         OUT DX,AL
  71.         DEC AL
  72.         JNZ SIM
  73.         JMP choose

  74. ;方波
  75. Fangbo:
  76.     ;设置高电平时长
  77.     MOV CX,0ffh
  78.     ;B口输入档位选择信号
  79.     MOV DX,b8255
  80.     IN AL,DX
  81.     CMP AL,0FEH
  82.     JE fb1
  83.     CMP AL,0FDH
  84.     JE fb2
  85.     CMP AL,0FBH
  86.     JE fb3
  87.     CMP AL,0F7H
  88.     JE fb4
  89.     JNZ fb0
  90.     JMP Fangbo
  91. fb0:
  92.     MOV AL,00H
  93.     JMP high_Fangbo
  94. fb1:
  95.     MOV AL,033H
  96.     JMP high_Fangbo
  97. fb2:
  98.     MOV AL,66H
  99.     JMP high_Fangbo
  100. fb3:
  101.     MOV AL,99H
  102.     JMP high_Fangbo
  103. fb4:
  104.     MOV AL,0CCH
  105.     JMP high_Fangbo
  106. high_Fangbo:
  107.     MOV DX,dac0832
  108.     OUT DX,AL
  109.     LOOP high_fangbo
  110.     MOV CX,0ffh
  111.     ;设置低电平时长
  112. Low_Fangbo:
  113.     MOV DX,dac0832
  114.     MOV AL,0FFH
  115.     OUT DX,AL
  116.     LOOP low_fangbo
  117.     JMP Fangbo

  118. ;三角波
  119. tri_begin:
  120.     ;初始化
  121.     MOV BL,00h
  122. up:
  123.     inc BL
  124.     MOV AL,BL
  125.     MOV DX,dac0832
  126.     OUT DX,AL
  127.     MOV DX,b8255
  128.     IN AL,DX
  129.     CMP AL,0FEH
  130.     JE TRI1
  131.     CMP AL,0FDH
  132.     JE TRI2
  133.     CMP AL,0FBH
  134.     JE TRI3
  135.     CMP AL,0F7H
  136.     JE TRI4
  137.     JNZ TRI0
  138.     JMP up
  139. TRI0:
  140.     CMP BL,0ffh
  141.     JNZ up
  142.     ;到峰值下降否则持续上升
  143.     jz down
  144. TRI1:
  145.     CMP BL,0ccH
  146.     JNZ up
  147.     jz down
  148. TRI2:
  149.     CMP BL,99H
  150.     JNZ up
  151.     jz down
  152. TRI3:
  153.     CMP BL,66H
  154.     JNZ up
  155.     jz down
  156. TRI4:
  157.     CMP BL,33H
  158.     JNZ up
  159.     jz down
  160. down:
  161.     dec BL
  162.     MOV DX,dac0832
  163.     MOV AL,BL
  164.     OUT DX,AL
  165.     CMP BL,01h
  166.     ;下降到最低值循环
  167.     JNZ down
  168.     JMP choose

  169. ;正弦波
  170. sin_begin:
  171.         MOV BL,00h
  172.         MOV DX,b8255
  173.         IN AL,DX
  174.         CMP AL,0FEH
  175.         JE sin1
  176.         CMP AL,0FDH
  177.         JE sin2
  178.         CMP AL,0FBH
  179.         JE sin3
  180.         CMP AL,0F7H
  181.         JE sin4
  182.         JNZ sin0
  183.         JMP Sin_Begin
  184. sin0:
  185.     lea di,buff0
  186.     JMP sin_show
  187. sin1:
  188.     lea di,buff1
  189.     JMP sin_show
  190. sin2:
  191.     lea di,buff2
  192.     JMP sin_show
  193. sin3:
  194.     lea di,buff3
  195.     JMP sin_show
  196. sin4:
  197.     lea di,buff4
  198.     JMP sin_show
  199. sin_show:
  200.         MOV AL,[di]
  201.         MOV DX,dac0832
  202.         OUT DX,AL
  203.         inc di
  204.         inc BL
  205.         CMP BL,20
  206.         JNZ sin_show
  207.         JMP choose
  208. quit:
  209.     MOV AH,04CH
  210.     INT 21H
  211. CODES ENDS
  212.     END START
复制代码

所有资料51hei提供下载:
8086 - 副本.zip (27.05 KB, 下载次数: 78)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:853984 发表于 2022-6-24 07:45 来自手机 | 显示全部楼层
文件下载了,需要用最新版的winrar才能解压 用Proteus8.8版本才能打开,如图
51hei.gif
回复

使用道具 举报

ID:1084625 发表于 2023-6-17 11:33 | 显示全部楼层
不同的波形怎么调
回复

使用道具 举报

ID:262 发表于 2023-6-17 13:42 | 显示全部楼层
wld@yyds 发表于 2023-6-17 11:33
不同的波形怎么调

51hei.gif
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表