为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

5=88程序00===附录2

2012-05-06 50页 doc 273KB 14阅读

用户头像

is_841971

暂无简介

举报
5=88程序00===附录2附录二:实验参考程序 ;===================== D/A(调零程序) ========================= ;---D/A 0V输出(调基准电压)--- ;在进行D/A输出方波/锯齿波、小直流电机实验之前,必须先运行本调零程序! ;装载并连续运行本程序,调节基准电压控制电位器W2, ;使D/A输出端“AOUT”输出电压为0V CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ;=======================...
5=88程序00===附录2
附录二:实验参考程序 ;===================== D/A(调零程序) ========================= ;---D/A 0V输出(调基准电压)--- ;在进行D/A输出方波/锯齿波、小直流电机实验之前,必须先运行本调零程序! ;装载并连续运行本程序,调节基准电压控制电位器W2, ;使D/A输出端“AOUT”输出电压为0V CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ;================================ DAPORT EQU 0FFE0h ZXK EQU 0FFDCH ZWK EQU 0FFDDH ;================================ ORG 3480H START: MOV BUF,00H ;DISPLAY 0832 80 MOV BUF+1,08H MOV BUF+2,03H MOV BUF+3,02H MOV BUF+4,08H MOV BUF+5,00H P5: MOV AL,80H mov dx,DAPORT out dx,al call p6 jmp p5 ;========================= p6: mov cx,0100h p8: push cx CALL DIS pop cx loop p8 ret ;========================== DIS: MOV CL,20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100H DELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET BUF DB ?,?,?,?,?,? LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H ;==================================== CODE ENDS END START ;----------------8255A²¢ÐпÚʵÑé(1) ·½²¨----------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 32C0H H1: JMP STARTP1 PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH STARTP1:MOV DX,PCTL MOV AL,80H OUT DX,AL MOV AL,55H P11: MOV DX,PA OUT DX,AL INC DX OUT DX,AL INC DX OUT DX,AL MOV CX,0800H LOOP $ NOT AL JMP P11 CODE ENDS END H1 ;--------------8255A²¢ÐпÚʵÑé(2) PAÊäÈë,PBÊä³ö------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 32E0H PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH H2: MOV DX,PCTL MOV AL,90H OUT DX,AL P2: MOV DX,PA IN AL,DX INC DX OUT DX,AL JMP P2 CODE ENDS END H2 ;----------------8255A²¢ÐпÚʵÑé(3) ¿ØÖƽ»Í¨µÆ---------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 32F0H PA EQU 0FFD8H PB EQU 0FFD9H PC EQU 0FFDAH PCTL EQU 0FFDBH H3: MOV AL,88H MOV DX,PCTL OUT DX,AL ;MOD:0, MOV DX,PA MOV AL,0B6H OUT DX,AL INC DX MOV AL,0DH OUT DX,AL CALL DELAY1 P30: MOV AL,75H MOV DX,PA OUT DX,AL INC DX MOV AL,0DH OUT DX,AL CALL DELAY1 CALL DELAY1 MOV CX,08H P31: MOV DX,PA MOV AL,0F3H OUT DX,AL INC DX MOV AL,0CH OUT DX,AL CALL DELAY2 MOV DX,PA MOV AL,0F7H OUT DX,AL INC DX MOV AL,0DH OUT DX,AL CALL DELAY2 LOOP P31 MOV DX,PA MOV AL,0AEH OUT DX,AL INC DX MOV AL,0BH OUT DX,AL CALL DELAY1 CALL DELAY1 MOV CX,08H P32: MOV DX,PA MOV AL,9EH OUT DX,AL INC DX MOV AL,07H OUT DX,AL CALL DELAY2 MOV DX,PA MOV AL,0BEH OUT DX,AL INC DX MOV AL,0FH OUT DX,AL CALL DELAY2 LOOP P32 JMP P30 DELAY1: PUSH AX PUSH CX MOV CX,0030H DELY2: CALL DELAY2 LOOP DELY2 POP CX POP AX RET DELAY2: PUSH CX MOV CX,8000H LOOP $ POP CX RET CODE ENDS END H3 ;------------------¼òµ¥I/O¿ÚÀ©Õ¹------------------ CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;273,244 PIO1 EQU 0FFE0H PIO2 EQU 0FFE4H P4: MOV DX,PIO1 IN AL,DX MOV DX,PIO2 OUT DX,AL JMP P4 CODE ENDS END P4 ;-----------------------硬件实验五 A/D转换实验---------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3390H H5: JMP START ZXK EQU 0FFDCH ZWK EQU 0FFDDH LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,? ADPORT EQU 0FFE0H START: MOV BUF,00H ;DISPLAY 0809 00 MOV BUF+1,08H MOV BUF+2,00H MOV BUF+3,09H ;DISPLAY 0809 00 MOV BUF+4,00H MOV BUF+5,00H P5: MOV AL,00H ;IN0 MOV DX,ADPORT OUT DX,AL CALL DIS MOV DX,ADPORT IN AL,DX mov dx,0ffe4h ;new add --> 138 Y1 not al ;new add out dx,al ;new add --> 驱动发光二极管 not al ;new add CALL ADS JMP P5 ADS: MOV AH,AL AND AL,0FH MOV BUF+5,AL AND AH,0F0H MOV CL,4 SHR AH,CL MOV BUF+4,AH RET ;-------------------------------- DIS: MOV CL,20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100H DELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET ;-------------------------- CODE ENDS END H5 ;-------------------D/Aת»»ÊµÑé(1) ·½²¨----------------- ;×¢Ò⣺½øĞб¾ÊµÑéÇ°£¬ÇëÏÈ×°ÔØÔËĞĞD/A 0VÊä³ö£¨µ÷»ù×¼µçѹ£©³ÌĞòAsm88\da_0v.asm ;¡¡¡¡¡¡Ê¹D/AÊä³ö¶Ë¡°AOUT¡±Êä³öµçѹΪ0V£¬ÔÙ½øĞб¾ÊµÑé¡£ CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 33E0H DAPORT EQU 0FFE0H H6: MOV AL,0FFH P6: MOV DX,DAPORT OUT DX,AL MOV CX,0400H LOOP $ NOT AL JMP P6 CODE ENDS END H6 ;--------------------D/A转换实验(2) 锯齿波--------------- ;注意:进行本实验前,请先装载运行D/A 0V输出(调基准电压)程序Asm88\da_0v.asm ;   使D/A输出端“AOUT”输出电压为0V,再进行本实验。 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 33F0H DAPORT EQU 0FFE0H H7: MOV DX,DAPORT MOV AL,00H P7: OUT DX,AL INC AL JMP P7 CODE ENDS END H7 ;-------------8259单级中断控制器实验------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400H H8: JMP P8259 ZXK EQU 0FFDCH ZWK EQU 0FFDDH LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,? Port0 EQU 0FFE0H Port1 EQU 0FFE1H P8259: CLI CALL WP ;初始化显示“P.” MOV AX,OFFSET INT8259 MOV BX,003CH MOV [BX],AX MOV BX,003EH MOV AX,0000H MOV [BX],AX CALL FOR8259 mov si,0000h STI CON8: CALL DIS JMP CON8 ;------------------------------------ INT8259:cli MOV BX,OFFSET BUF MOV BYTE PTR [BX+SI],07H INC SI CMP SI,0007H JZ X59 XX59: MOV AL,20H MOV DX,Port0 OUT DX,AL mov cx,0050h xxx59: push cx call dis pop cx loop xxx59 pop cx mov cx,3438h push cx STI IRET X59: MOV SI,0000H CALL WP JMP XX59 ;============================== FOR8259:MOV AL,13H MOV DX,Port0 OUT DX,AL MOV AL,08H MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7FH ;IRQ7 OUT DX,AL RET ;--------------------------- WP: MOV BUF,11H ;初始化显示“P.” MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET ;-------------------------------- DIS: MOV CL,20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100H DELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET ;-------------------------- CODE ENDS END H8 ;-----------------¶¨Ê±/¼ÆÊýÆ÷ 8253·½²¨------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3490H H9: MOV DX,0FFE3H MOV AL,36H OUT DX,AL MOV DX,0FFE0H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL JMP $ CODE ENDS END H9 ;------------------继电器控制------------------------ CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 34B0H H10: MOV DX,0FFDBH ;8255CTL ? J0: MOV AL,00H OUT DX,AL ;PC0=0 CALL JDL MOV AL,01H OUT DX,AL ;PC0=1 CALL JDL JMP J0 JDL: MOV CX,0004H JDL1: PUSH CX MOV CX,0FFFFH LOOP $ POP CX LOOP JDL1 RET CODE ENDS END H10 ;----------------8251串口实验 自发自收-------------------- Z8251 EQU 0FFE1H D8251 EQU 0FFE0H ZXK EQU 0FFDCH ZWK EQU 0FFDDH CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 35C0H ;TX=RX ;===修改开始 START: MOV DX,Z8251 MOV AL,00H OUT DX,AL MOV AL,00H OUT DX,AL MOV AL,00H OUT DX,AL MOV AL,40H OUT DX,AL MOV AL,0CEH OUT DX,AL MOV AL,25H OUT DX,AL ;===修改结束 MOV AL,01H MOV BX,0400H MOV [BX],AL SR0: CALL WP MOV SI,4000H MOV DI,5000H MOV CX,0010H SR1: MOV AH,[SI] CALL SEND CALL RX MOV [DI],AH INC SI INC DI LOOP SR1 SR2: CALL DIS JMP SR2 RX: MOV DX,Z8251 RX1: IN AL,DX TEST AL,02H JZ RX1 MOV DX,D8251 IN AL,DX MOV AH,AL RET ;------------------------ WP: MOV BUF,11H MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET ;-------------------------- SEND: MOV DX,Z8251 W1: IN AL,DX TEST AL,01H JZ W1 MOV DX,D8251 MOV AL,AH OUT DX,AL RET ;--------------------------- DIS: MOV CL,20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100H DELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET ;-------------------------- LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,? ;-------------------------- CODE ENDS END START ;=============8251串行通信实验:接收端=========== ;1.编译连接装载本程序 ;2.装载完毕后,退出Dais集成开发环境,释放串行口 ;3.从键盘输入3FD0入口地址,按[EXEC]键连续运行 ;4.运行“PC发送程序.exe”,选择相关串行口,使用默认2400波特率,单击“打开端口” ;5.在“PC发送程序”上点击相应发送数字按钮,实验系统LED即显示接收到的数字 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3FD0H Z8251 EQU 0FFE1H D8251 EQU 0FFE0H START: CALL FOR8253 ;#1,f1=1.8432m/48=38.4khz CALL FOR8251 ;BPS=f1/16=2400 MOV DS:[077AH],1702H MOV DS:[077CH],0501H MOV DS:[077EH],0802H MOV DS:[0740H],077FH watrxd: call disp CALL YRX MOV BX,DS:[0740H] CON: mov ds:[bx],al CMP BX,077ah jz serial dec BX MOV DS:[0740H],BX jmp watrxd serial: mov ds:[0740h],077fh jmp watrxd disp: push cx mov dx,077fh mov ah,20h disp0: mov cx,00ffh mov bx,dx mov bl,ds:[bx] mov bh,0h push dx mov dx,0FFDCH mov al,[bx+OFFSET DATA1] out dx,al mov dx,0FFDDH mov al,ah out dx,al disp1: loop disp1 pop dx dec dx shr ah,01h jnz disp0 pop cx ret data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh db 0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh db 90h,0a3h,0a1h,86h,8fh FOR8253:MOV DX,0FFE7H MOV AL,76H OUT DX,AL MOV DX,0FFE5H MOV AL,30H OUT DX,AL MOV DX,0FFE5H MOV AL,00H OUT DX,AL RET FOR8251:MOV DX,Z8251 MOV AL,4EH OUT DX,AL MOV AL,25H OUT DX,AL RET YRX: MOV DX,Z8251 YRX0: PUSH DX CALL DISP POP DX IN AL,DX TEST AL,02 JZ YRX0 MOV DX,D8251 IN AL,DX RET YTX: MOV DX,Z8251 PUSH AX YTX0: IN AL,DX TEST AL,01 JZ YTX0 MOV DX,D8251 POP AX OUT DX,AL RET CODE ENDS END START ;=============8251串行通信实验:发送端=========== ;1.编译连接装载本程序 ;2.装载完毕后,退出Dais集成开发环境,释放串行口 ;3.从键盘输入3FD8入口地址,按[EXEC]键连续运行 ;4.运行“PC接收程序.exe”,选择相关串行口,使用默认2400波特率,单击“打开端口” ;5.在实验仪键盘上输入相关数字,“PC接收程序”上即显示接收到的数字 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ZXK EQU 0FFDCH ;定义字形端口地址 ZWK EQU 0FFDDH ;定义字位/键扫端口地址 zjk equ 0ffdeh ;定义键入端口地址 Z8251 EQU 0FFE1H D8251 EQU 0FFE0H ;------------------------------- ORG 3FD8H START: MOV BUF,08H ;DISPLAY 8251-1 MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,01H MOV BUF+4,14H MOV BUF+5,01H CALL FOR8253 ;#1,f1=1.8432m/48=38.4khz CALL FOR8251 ;BPS=f1/16=2400 led_g: call dispkey cmp al,10h jnc led_g call ytx jmp led_g ;============================== DISPKEY:CALL DIS;调显示子程序 DISCDEY:CALL KEY ;调键扫子程序 MOV AH,AL ;键消抖处理 MOV BX,OFFSET buF+8 MOV CX,[BX] MOV BL,CL MOV BH,CH CMP AH,BH MOV BH,AH MOV AH,BL JZ DISK4 MOV BL,88H MOV AH,88H DISK4: DEC AH CMP AH,82H JZ DISK6 CMP AH,0EH JZ DISK6 CMP AH,00H JZ DISK5 MOV AH,20H DEC BL JMP DISK7 DISK5: MOV AH,0FH DISK6: MOV BL,AH MOV AH,BH DISK7: mov buF+8,bL mov buF+9,bh mov aL,ah cmp cl,ah RET ;===========显示子程序============= DIS: MOV CL,20H MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100H DELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET ;============键扫子程序============== key: mov aL,0ffh ;关显示口 mov dx,zxk out dx,aL mov bL,00h mov ah,0feh mov cx,08h key1: mov aL,ah mov dx,zwk out dx,aL SHL AL,01H MOV AH,AL NOP NOP NOP NOP NOP NOP MOV DX,zjk IN AL,DX NOT AL NOP NOP AND AL,0FH JNZ KEY2 INC BL LOOP KEY1 NKEY: MOV AL,20H ret KEY2: TEST AL,01H JE KEY3 MOV AL,00H JMP KEY6 KEY3: TEST AL,02H JE KEY4 MOV AL,08H JMP KEY6 KEY4: TEST AL,04H JE KEY5 MOV AL,10H JMP KEY6 KEY5: TEST AL,08H JE NKEY MOV AL,18H KEY6: ADD AL,BL CMP AL,10H JNC FKEY mov bx,offset ls3 XLAT FKEY: RET ;================================ ls3 DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH ;================================ LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H,0BFH ;================================ BUF DB ?,?,?,?,?,?,?,?,?,? ; 3,2,1,0,4,6,8, ;------------------------------------------- FOR8253:MOV DX,0FFE7H MOV AL,76H OUT DX,AL MOV DX,0FFE5H MOV AL,30H OUT DX,AL MOV DX,0FFE5H MOV AL,00H OUT DX,AL MOV DX,Z8251 MOV DX,Z8251 RET FOR8251:MOV DX,Z8251 MOV AL,4EH OUT DX,AL MOV AL,25H OUT DX,AL RET YTX: MOV DX,Z8251 PUSH AX YTX0: IN AL,DX TEST AL,01 JZ YTX0 MOV DX,D8251 POP AX OUT DX,AL RET ;-------------------------- CODE ENDS END START ;-------------------²½½øµç»ú¿ØÖÆ---------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE IOCONPT EQU 0FFDBH IOBPT EQU 0FFD9H IOAPT EQU 0FFD8H ORG 3620H H12: MOV AL,88H MOV DX,IOCONPT OUT DX,AL NOP NOP NOP IOLED1: MOV DX,IOAPT MOV AL,03H OUT DX,AL CALL XDELAY MOV AL,06H OUT DX,AL CALL XDELAY MOV AL,0CH OUT DX,AL CALL XDELAY MOV AL,09H OUT DX,AL CALL XDELAY MOV AL,03H OUT DX,AL CALL XDELAY MOV AL,06H OUT DX,AL CALL XDELAY MOV AL,0CH OUT DX,AL CALL XDELAY MOV AL,09H OUT DX,AL CALL XDELAY JMP IOLED1 XDELAY: MOV CX,03FFFH XDELA: LOOP XDELA RET CODE ENDS END H12 ;-------------------²½½øµç»ú¿ØÖÆ---------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE IOCONPT EQU 0FFDBH IOBPT EQU 0FFD9H IOAPT EQU 0FFD8H ORG 3620H H12: MOV AL,88H MOV DX,IOCONPT OUT DX,AL NOP NOP NOP IOLED1: MOV DX,IOAPT MOV AL,03H OUT DX,AL CALL XDELAY MOV AL,06H OUT DX,AL CALL XDELAY MOV AL,0CH OUT DX,AL CALL XDELAY MOV AL,09H OUT DX,AL CALL XDELAY MOV AL,03H OUT DX,AL CALL XDELAY MOV AL,06H OUT DX,AL CALL XDELAY MOV AL,0CH OUT DX,AL CALL XDELAY MOV AL,09H OUT DX,AL CALL XDELAY JMP IOLED1 XDELAY: MOV CX,03FFFH XDELA: LOOP XDELA RET CODE ENDS END H12 ;-------------------小直流电机调速
/
本文档为【5=88程序00===附录2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索