
题目二利用DAAD转换产生波形并显示.doc
5页题目二 利用D/A. A/D转换产生波形并显示1. 利用D/A设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波2. 并利用按键(自行怎义)进行输岀波形选择3. 并对应按键选择输出波形,将以上四种波形显示在屏幕上4. (选作)设计一个三角波发生器,可利用键盘改变英输出波形的幅值例如,可利用1- 5这5个数字键改变其输出波形的幅值,当按下1-5数字键时使D/A输岀幅值从IV增加到 5V5 •设讣电路并在实验台上连接线路匚data segmentCS0832equOaOOOhmodeequ092h;方式0PortAequ8000h;PortAPortBequ8001hPortCequ8002 hCAddrequ8003h;控制字地址TAB DB 0C0H,0DlH,0D6H』E0HX)E9H,0FlH,0F7HQFCH,0FFHDB0FFH,0FCH,0F7H,0FlH,0E9H/)E0H,0D6H』DlH,0C0HDB0B5H,0ABH,0A0H,97H,8FH,89H,84H,82H,80HDB81H/84H/89H/8FH/97H/0A0H/0ABH/0B5H/0C0HDB36DUP(?)data ends code segmentassume cs:codezds:data注程序start: mov ax,datamov ds,ax;proc mov mov outn ear;输出控制字al,dx,dx,modeCAddralwait: movdx,portainal,dxempal,Olh•JZwavel;调用子程序wavel锯齿empal, 02h■JZwave2;调用子程序wave2方波empal, 03h•JZwave3;调用子程序wave3三角波empalz 04h•JZwave4;调用子程序wave3正弦波loopwait;跳转;子程序wavel锯齿波;wavelproc n earwavel:moval, 80h11:movdxz CSO832outdx,alincalemp alQffhjnz 11mov al,80hpushax;calldealy;调用dealymovdx, portainal, dxempalz Olh;分配Olhjnzretul;等于零运行retulpopaxjmp11;跳转retul:jmp waitwave2: MOV ALZOOH ;方波FBI: MOV DXzcsO832 ;写 OOH,输出低电平OUT DX,ALPUSH CXMOV CX,OOFFH ;低电平延迟L: CALL DELAYLOOPLPOPCXPUSH CXMOV CXQOFFHMOV AL,OFFHMOV DX,csO832OUT DX,ALLil: CALL DELAY;高电平延迟LOOP LilPOP CXMOV DX,porta ;再次读入开关信号,进行比较IN AL,DXCMPAU02HJNZ retu2JMP wave2retu2:jmp waitDELAY:PUSH CXMOV CX,0010HDELI: PUSH AXPOP AXLOOP DELIPOPCXRETwave3: MOV AL,80H ;三角波UP: MOV DXzcsO832 ;启动 D/A 转换上升OUT DX,ALINCALCMPALQFFHJNZ UPDEC ALDOWN: MOV DX,csO832 ;启动 D/A 转换下降OUT DX,ALDEC ALCMPALz80HJNZ DOWNMOV DX,porta ;再次读入开关信号,进行比较IN AL,DXCMPAL03HJNZ retu3JMP wave3retu3:jmp waitwave4: LEA BXJABMOV CX,0001HZX2: MOVALJBX];将TAB中的数字一次赋给AL,再输出正弦波INC BXINCCXMOV DX,csO832OUT DX,ALPUSH AXMOV DX,porta ;再次读入开关信号,进行比较IN AL,DXCMPAU04HJNZ retu4POP AXCMP CX,36JNEZX2JMP wave4retu4:jmp waitcode endsendstart;结束。












