找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4815|回復: 1
打印 上一主題 下一主題
收起左側

8086cpu+dac0832多功能波形發(fā)生器的課程設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:137190 發(fā)表于 2016-9-4 20:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這個學期做的課程設計。第一個成功的作品哦~~各位小噴~
  設計要求如下:
1.      利用微機原理知識,設計一個由8086控制的波形發(fā)生器系統(tǒng)。
2.      8086工作在最小模式下(利用8282和8286);
3.      熟悉典型波形產(chǎn)生的原理;
4.      掌握DAC0832的使用(和8086CPU的連線及編程);
5.      擴展存儲系統(tǒng):利用6264SRAM(每片容量8KB)和2764EPROM(容量8KB)芯片,組成容量為64KB的存儲系統(tǒng),設計系統(tǒng)確定其地址為:00000-0FFFFH
6.      能產(chǎn)生正弦波、方波、三角波或鋸齒波波形
7.      波形的控制由接在8255上的開關的實現(xiàn):設計四個開關,KEY1,KEY2,KEY3,KEY4,分別控制輸出正弦波、方波、三角波或鋸齒波波形
采用8位DAC0832作為D/A轉換器,將數(shù)字量轉換為模擬量,要求給出0832與8086的連接方式和程序。

電路圖在附件。


程序如下:
;***************根據(jù)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函數(shù)數(shù)值表
;*****************************************************************

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA
        MOV DS,AX  
MOV SI,3000H               ;建立緩沖區(qū),存放要顯示的鍵值      
        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                                                ;調用處理函數(shù)


    JMP  BEGIN                  ;無按鍵則跳回繼續(xù)循環(huán),有則退出

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

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子程序  清除數(shù)據(jù)               
      MOV AL,00H     
      OUT DX,AL
   RET
CLEAR ENDP
;*********************方波發(fā)生信號            
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
;******************鋸齒波發(fā)生信號
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
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&正弦波發(fā)生信號
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

;###########################三角波發(fā)生信號
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, 下載次數(shù): 36, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:360413 發(fā)表于 2018-6-27 21:23 | 只看該作者
請問這個連線圖,怎么連,試驗箱里好多接口都沒有
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表