5计算机接口技术程序00附录2.docx

上传人:b****8 文档编号:23578704 上传时间:2023-05-18 格式:DOCX 页数:88 大小:31.69KB
下载 相关 举报
5计算机接口技术程序00附录2.docx_第1页
第1页 / 共88页
5计算机接口技术程序00附录2.docx_第2页
第2页 / 共88页
5计算机接口技术程序00附录2.docx_第3页
第3页 / 共88页
5计算机接口技术程序00附录2.docx_第4页
第4页 / 共88页
5计算机接口技术程序00附录2.docx_第5页
第5页 / 共88页
点击查看更多>>
下载资源
资源描述

5计算机接口技术程序00附录2.docx

《5计算机接口技术程序00附录2.docx》由会员分享,可在线阅读,更多相关《5计算机接口技术程序00附录2.docx(88页珍藏版)》请在冰豆网上搜索。

5计算机接口技术程序00附录2.docx

5计算机接口技术程序00附录2

附录二:

实验参考程序

;=====================D/A(调零程序)=========================

;---D/A0V输出(调基准电压)---

;在进行D/A输出方波/锯齿波、小直流电机实验之前,必须先运行本调零程序!

;装载并连续运行本程序,调节基准电压控制电位器W2,

;使D/A输出端“AOUT”输出电压为0V

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

;================================

DAPORTEQU0FFE0h

ZXKEQU0FFDCH

ZWKEQU0FFDDH

;================================

ORG3480H

START:

MOVBUF,00H;DISPLAY083280

MOVBUF+1,08H

MOVBUF+2,03H

MOVBUF+3,02H

MOVBUF+4,08H

MOVBUF+5,00H

P5:

MOVAL,80H

movdx,DAPORT

outdx,al

callp6

jmpp5

;=========================

p6:

movcx,0100h

p8:

pushcx

CALLDIS

popcx

loopp8

ret

;==========================

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

BUFDB?

?

?

?

?

?

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

;====================================

CODEENDS

ENDSTART

;----------------8255A²¢ÐпÚʵÑé

(1)·½²¨-----------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG32C0H

H1:

JMPSTARTP1

PAEQU0FFD8H

PBEQU0FFD9H

PCEQU0FFDAH

PCTLEQU0FFDBH

STARTP1:

MOVDX,PCTL

MOVAL,80H

OUTDX,AL

MOVAL,55H

P11:

MOVDX,PA

OUTDX,AL

INCDX

OUTDX,AL

INCDX

OUTDX,AL

MOVCX,0800H

LOOP$

NOTAL

JMPP11

CODEENDS

ENDH1

;--------------8255A²¢ÐпÚʵÑé

(2)PAÊäÈë,PBÊä³ö-------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG32E0H

PAEQU0FFD8H

PBEQU0FFD9H

PCEQU0FFDAH

PCTLEQU0FFDBH

H2:

MOVDX,PCTL

MOVAL,90H

OUTDX,AL

P2:

MOVDX,PA

INAL,DX

INCDX

OUTDX,AL

JMPP2

CODEENDS

ENDH2

;----------------8255A²¢ÐпÚʵÑé(3)¿ØÖƽ»Í¨µÆ----------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG32F0H

PAEQU0FFD8H

PBEQU0FFD9H

PCEQU0FFDAH

PCTLEQU0FFDBH

H3:

MOVAL,88H

MOVDX,PCTL

OUTDX,AL;MOD:

0,

MOVDX,PA

MOVAL,0B6H

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY1

P30:

MOVAL,75H

MOVDX,PA

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY1

CALLDELAY1

MOVCX,08H

P31:

MOVDX,PA

MOVAL,0F3H

OUTDX,AL

INCDX

MOVAL,0CH

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0F7H

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY2

LOOPP31

MOVDX,PA

MOVAL,0AEH

OUTDX,AL

INCDX

MOVAL,0BH

OUTDX,AL

CALLDELAY1

CALLDELAY1

MOVCX,08H

P32:

MOVDX,PA

MOVAL,9EH

OUTDX,AL

INCDX

MOVAL,07H

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0BEH

OUTDX,AL

INCDX

MOVAL,0FH

OUTDX,AL

CALLDELAY2

LOOPP32

JMPP30

DELAY1:

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

PUSHCX

MOVCX,8000H

LOOP$

POPCX

RET

CODEENDS

ENDH3

;------------------¼òµ¥I/O¿ÚÀ©Õ¹------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3380H;273,244

PIO1EQU0FFE0H

PIO2EQU0FFE4H

P4:

MOVDX,PIO1

INAL,DX

MOVDX,PIO2

OUTDX,AL

JMPP4

CODEENDS

ENDP4

;-----------------------硬件实验五A/D转换实验----------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3390H

H5:

JMPSTART

ZXKEQU0FFDCH

ZWKEQU0FFDDH

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUFDB?

?

?

?

?

?

ADPORTEQU0FFE0H

START:

MOVBUF,00H;DISPLAY080900

MOVBUF+1,08H

MOVBUF+2,00H

MOVBUF+3,09H;DISPLAY080900

MOVBUF+4,00H

MOVBUF+5,00H

P5:

MOVAL,00H;IN0

MOVDX,ADPORT

OUTDX,AL

CALLDIS

MOVDX,ADPORT

INAL,DX

movdx,0ffe4h;newadd-->138Y1

notal;newadd

outdx,al;newadd-->驱动发光二极管

notal;newadd

CALLADS

JMPP5

ADS:

MOVAH,AL

ANDAL,0FH

MOVBUF+5,AL

ANDAH,0F0H

MOVCL,4

SHRAH,CL

MOVBUF+4,AH

RET

;--------------------------------

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

;--------------------------

CODEENDS

ENDH5

;-------------------D/Aת»»ÊµÑé

(1)·½²¨-----------------

;×¢Ò⣺½øĞб¾ÊµÑéÇ°£¬ÇëÏÈ×°ÔØÔËĞĞD/A0VÊä³ö£¨µ÷»ù×¼µçѹ£©³ÌĞòAsm88\da_0v.asm

;¡¡¡¡¡¡Ê¹D/AÊä³ö¶Ë¡°AOUT¡±Êä³öµçѹΪ0V£¬ÔÙ½øĞб¾ÊµÑé¡£

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG33E0H

DAPORTEQU0FFE0H

H6:

MOVAL,0FFH

P6:

MOVDX,DAPORT

OUTDX,AL

MOVCX,0400H

LOOP$

NOTAL

JMPP6

CODEENDS

ENDH6

;--------------------D/A转换实验

(2)锯齿波---------------

;注意:

进行本实验前,请先装载运行D/A0V输出(调基准电压)程序Asm88\da_0v.asm

;   使D/A输出端“AOUT”输出电压为0V,再进行本实验。

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG33F0H

DAPORTEQU0FFE0H

H7:

MOVDX,DAPORT

MOVAL,00H

P7:

OUTDX,AL

INCAL

JMPP7

CODEENDS

ENDH7

;-------------8259单级中断控制器实验-------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3400H

H8:

JMPP8259

ZXKEQU0FFDCH

ZWKEQU0FFDDH

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUFDB?

?

?

?

?

?

Port0EQU0FFE0H

Port1EQU0FFE1H

P8259:

CLI

CALLWP;初始化显示“P.”

MOVAX,OFFSETINT8259

MOVBX,003CH

MOV[BX],AX

MOVBX,003EH

MOVAX,0000H

MOV[BX],AX

CALLFOR8259

movsi,0000h

STI

CON8:

CALLDIS

JMPCON8

;------------------------------------

INT8259:

cli

MOVBX,OFFSETBUF

MOVBYTEPTR[BX+SI],07H

INCSI

CMPSI,0007H

JZX59

XX59:

MOVAL,20H

MOVDX,Port0

OUTDX,AL

movcx,0050h

xxx59:

pushcx

calldis

popcx

loopxxx59

popcx

movcx,3438h

pushcx

STI

IRET

X59:

MOVSI,0000H

CALLWP

JMPXX59

;==============================

FOR8259:

MOVAL,13H

MOVDX,Port0

OUTDX,AL

MOVAL,08H

MOVDX,Port1

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVAL,7FH;IRQ7

OUTDX,AL

RET

;---------------------------

WP:

MOVBUF,11H;初始化显示“P.”

MOVBUF+1,10H

MOVBUF+2,10H

MOVBUF+3,10H

MOVBUF+4,10H

MOVBUF+5,10H

RET

;--------------------------------

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

;--------------------------

CODEENDS

ENDH8

;-----------------¶¨Ê±/¼ÆÊýÆ÷8253·½²¨-------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3490H

H9:

MOVDX,0FFE3H

MOVAL,36H

OUTDX,AL

MOVDX,0FFE0H

MOVAL,00H

OUTDX,AL

MOVAL,10H

OUTDX,AL

JMP$

CODEENDS

ENDH9

;------------------继电器控制------------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG34B0H

H10:

MOVDX,0FFDBH;8255CTL?

J0:

MOVAL,00H

OUTDX,AL;PC0=0

CALLJDL

MOVAL,01H

OUTDX,AL;PC0=1

CALLJDL

JMPJ0

JDL:

MOVCX,0004H

JDL1:

PUSHCX

MOVCX,0FFFFH

LOOP$

POPCX

LOOPJDL1

RET

CODEENDS

ENDH10

;----------------8251串口实验自发自收--------------------

Z8251EQU0FFE1H

D8251EQU0FFE0H

ZXKEQU0FFDCH

ZWKEQU0FFDDH

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG35C0H;TX=RX

;===修改开始

START:

MOVDX,Z8251

MOVAL,00H

OUTDX,AL

MOVAL,00H

OUTDX,AL

MOVAL,00H

OUTDX,AL

MOVAL,40H

OUTDX,AL

MOVAL,0CEH

OUTDX,AL

MOVAL,25H

OUTDX,AL

;===修改结束

MOVAL,01H

MOVBX,0400H

MOV[BX],AL

SR0:

CALLWP

MOVSI,4000H

MOVDI,5000H

MOVCX,0010H

SR1:

MOVAH,[SI]

CALLSEND

CALLRX

MOV[DI],AH

INCSI

INCDI

LOOPSR1

SR2:

CALLDIS

JMPSR2

RX:

MOVDX,Z8251

RX1:

INAL,DX

TESTAL,02H

JZRX1

MOVDX,D8251

INAL,DX

MOVAH,AL

RET

;------------------------

WP:

MOVBUF,11H

MOVBUF+1,10H

MOVBUF+2,10H

MOVBUF+3,10H

MOVBUF+4,10H

MOVBUF+5,10H

RET

;--------------------------

SEND:

MOVDX,Z8251

W1:

INAL,DX

TESTAL,01H

JZW1

MOVDX,D8251

MOVAL,AH

OUTDX,AL

RET

;---------------------------

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

;--------------------------

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUFDB?

?

?

?

?

?

;--------------------------

CODEENDS

ENDSTART

;=============8251串行通信实验:

接收端===========

;1.编译连接装载本程序

;2.装载完毕后,退出Dais集成开发环境,释放串行口

;3.从键盘输入3FD0入口地址,按[EXEC]键连续运行

;4.运行“PC发送程序.exe”,选择相关串行口,使用默认2400波特率,单击“打开端口”

;5.在“PC发送程序”上点击相应发送数字按钮,实验系统LED即显示接收到的数字

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3FD0H

Z8251EQU0FFE1H

D8251EQU0FFE0H

START:

CALLFOR8253;#1,f1=1.8432m/48=38.4khz

CALLFOR8251;BPS=f1/16=2400

MOVDS:

[077AH],1702H

MOVDS:

[077CH],0501H

MOVDS:

[077EH],0802H

MOVDS:

[0740H],077FH

watrxd:

calldisp

CALLYRX

MOVBX,DS:

[0740H]

CON:

movds:

[bx],al

CMPBX,077ah

jzserial

decBX

MOVDS:

[0740H],BX

jmpwatrxd

serial:

movds:

[0740h],077fh

jmpwatrxd

disp:

pushcx

movdx,077fh

movah,20h

disp0:

movcx,00ffh

movbx,dx

movbl,ds:

[bx]

movbh,0h

pushdx

movdx,0FFDCH

moval,[bx+OFFSETDATA1]

outdx,al

movdx,0FFDDH

moval,ah

outdx,al

disp1:

loopdisp1

popdx

decdx

shrah,01h

jnzdisp0

popcx

ret

data1:

db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

db80h,90h,88h,83h,0c6h,0a1h,86h,8eh

db0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh

db90h,0a3h,0a1h,86h,8fh

FOR8253:

MOVDX,0FFE7H

MOVAL,76H

OUTDX,AL

MOVDX,0FFE5H

MOVAL,30H

OUTDX,AL

MOVDX,0FFE5H

MOVAL,00H

OUTDX,AL

RET

FOR8251:

MOVDX,Z82

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1