找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4873|回复: 1
打印 上一主题 下一主题
收起左侧

8086cpu+dac0832多功能波形发生器的课程设计

[复制链接]
跳转到指定楼层
楼主
这个学期做的课程设计。第一个成功的作品哦~~各位小喷~
  设计要求如下:
1.      利用微机原理知识,设计一个由8086控制的波形发生器系统。
2.      8086工作在最小模式下(利用8282和8286);
3.      熟悉典型波形产生的原理;
4.      掌握DAC0832的使用(和8086CPU的连线及编程);
5.      扩展存储系统:利用6264SRAM(每片容量8KB)和2764EPROM(容量8KB)芯片,组成容量为64KB的存储系统,设计系统确定其地址为:00000-0FFFFH
6.      能产生正弦波、方波、三角波或锯齿波波形
7.      波形的控制由接在8255上的开关的实现:设计四个开关,KEY1,KEY2,KEY3,KEY4,分别控制输出正弦波、方波、三角波或锯齿波波形
采用8位DAC0832作为D/A转换器,将数字量转换为模拟量,要求给出0832与8086的连接方式和程序。

电路图在附件。


程序如下:
;***************根据CHECK配置信息修改下列符号值*******************
IOY0         EQU   4000H           ;片选IOY0对应的端口始地址

MY8255_A     EQU   IOY0+00H*4      ;8255的A口地址
MY8255_B     EQU   IOY0+01H*4      ;8255的B口地址
MY8255_C     EQU   IOY0+02H*4      ;8255的C口地址
MY8255_MODE  EQU   IOY0+03H*4      ;8255的控制寄存器地址


;*****************************************************************
STACK1 SEGMENT STACK
        DW 256 DUP(?)
STACK1 ENDS
;*****************************************************************
DATA          SEGMENT
ABC       DB 171,176,180,184,188,191,195,199,203,206
       DB 210,213,216,219,222,225,228,231,233,236
       DB 238,240,242,244,246,247,249,250,251,252
       DB 253,254,254,255,255,255,255,255,254,254
       DB 253,252,251,250,249,247,246,244,242,240
       DB 238,236,233,231,228,225,222,219,216,213
       DB 210,206,203,198,195,192,188,184,180,176
       DB 172,167,163,159,155,150,146,141,137,133
       DB 128,124,119,115,111,106,102,97,93,89,85
       DB 81,77,73,69,65,61,57,54,50,47,43,40,37
       DB 34,31,28,25,23,20,18,16,14,12,10,9,7
       DB 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6
       DB 7,9,10,12,14,16,18,20,23,25,28,30,33,36
       DB 40,43,46,50,53,57,60,64,68,72,76,80,84
       DB 88,93,97,101,106,110,114,119,123,128,12
DATA          ENDS                       ;SIN函数数值表
;*****************************************************************

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA
        MOV DS,AX  
MOV SI,3000H               ;建立缓冲区,存放要显示的键值      
        MOV AL,00H                 ;先初始化键值为0     
        MOV [SI],AL
        MOV [SI+1],AL
        MOV [SI+2],AL
        MOV [SI+3],AL
        MOV DI,3003H

MOV DX,MY8255_MODE         ;初始化8255工作方式
        MOV AL,81H                 ;方式0,A口、B口输出,C口低4位输入  
        OUT DX,AL

BEGIN:                 
        CALL CLEAR                       ;清屏                     
        CALL CHULI                                                ;调用处理函数


    JMP  BEGIN                  ;无按键则跳回继续循环,有则退出

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

CHULI PROC NEAR  
      MOV DX,MY8255_C
      IN AL,DX

;判别按键的四个小程序,可供选择波形,按下第一个按钮,显示方波      
LOOP1:
     CMP AL,0EH
     JNZ LOOP2
        MOV DX,MY8255_A
            OUT DX,AL                  ;亮第一盏灯
            CALL FANGBO
;!!!!!!!!!!按下第二个按钮,显示的是三角波。
LOOP2:
     CMP AL,0DH
     JNZ LOOP3
        MOV DX,MY8255_A
            OUT DX,AL                  ;亮第2盏灯
            CALL THREESIDE
;+++++++++++按下第三个按钮,显示的是正弦波
LOOP3:
     CMP AL,0BH
     JNZ LOOP4
        MOV DX,MY8255_A
            OUT DX,AL                  ;亮第3盏灯
            CALL SIN
;###########按下第四个按钮,显示的是锯齿波
LOOP4:
     CMP AL,07H
     JNZ NOTTT
        MOV DX,MY8255_A
            OUT DX,AL                  ;亮第4盏灯
            CALL BIGTOOTH
NOTTT:
          RET
CHULI ENDP
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CLEAR PROC NEAR
    MOV DX,MY8255_C                   ;CLEAR子程序  清除数据               
      MOV AL,00H     
      OUT DX,AL
   RET
CLEAR ENDP
;*********************方波发生信号            
FANGBO PROC NEAR
  PUSH CX
DEBUG:
mov cx,0FFH
MOV AL,0FFH
SIM:  
MOV DX,2000H
OUT DX,AL
LOOP SIM

MOV CX,0FFH
SIM1:
MOV AL,0  
MOV DX,2000H
OUT DX,AL
LOOP SIM1
MOV DX,MY8255_C
    IN AL,DX
    CMP AL,0FH
    JNZ CHULI
JMP DEBUG
POP CX
RET
FANGBO ENDP
;******************锯齿波发生信号
BIGTOOTH PROC NEAR
  PUSH CX
DEBUG1:
MOV AL,0FFH
SIM2:
MOV DX,2000H
OUT DX,AL
DEC AL
JNZ SIM2
MOV DX,MY8255_C
     IN AL,DX
     CMP AL,0FH
     JNZ CHULI
JMP DEBUG1
POP CX
RET
BIGTOOTH ENDP
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&正弦波发生信号
SIN PROC NEAR
  PUSH CX

DEBUG2:

MOV DI,OFFSET ABC
MOV CX,0B5H
SIM3:
MOV AL,[DI]  
MOV DX,2000H
inc DI
OUT DX,AL
LOOP SIM3
  MOV DX,MY8255_C
      IN AL,DX
      CMP AL,0FH
      JNZ CHULI
JMP DEBUG2
POP CX
RET
SIN ENDP

;###########################三角波发生信号
THREESIDE PROC NEAR
  PUSH CX
DEBUG3:
MOV AL,0
SIM4:
MOV DX,2000H
OUT DX,AL
inc AL
cmp al,0ffh
JNZ SIM4
JMP DEBUG4

DEBUG4:
MOV AL,0FFH
SIM5:
MOV DX,2000H
OUT DX,AL
DEC AL
JNZ SIM5
  MOV DX,MY8255_C
      IN AL,DX
      CMP AL,0FH
      JNZ CHULI
JMP DEBUG3

POP CX
RET
THREESIDE ENDP
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CODE ENDS
      END START


交流学习!~

电路连线图.pdf

29.72 KB, 下载次数: 36, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:360413 发表于 2018-6-27 21:23 | 只看该作者
请问这个连线图,怎么连,试验箱里好多接口都没有
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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