微机原理实验1Word文件下载.docx

上传人:b****7 文档编号:22544609 上传时间:2023-02-04 格式:DOCX 页数:35 大小:166.07KB
下载 相关 举报
微机原理实验1Word文件下载.docx_第1页
第1页 / 共35页
微机原理实验1Word文件下载.docx_第2页
第2页 / 共35页
微机原理实验1Word文件下载.docx_第3页
第3页 / 共35页
微机原理实验1Word文件下载.docx_第4页
第4页 / 共35页
微机原理实验1Word文件下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

微机原理实验1Word文件下载.docx

《微机原理实验1Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验1Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。

微机原理实验1Word文件下载.docx

减法运算

显示结果

MOVDL,0DH

MOVAH,02H

MOVDL,0AH

MOVAX,4C00H

DISPLPROCNEAR;

显示子功能

DSI:

MOVAH,02

MOVDL,[SI+BX-1];

显示字符串中一字符

DECBX;

修改偏移量

JNZDSI

RET

DISPLENDP

SUBAPROCNEAR

MOVDX,SI

MOVBP,DI

SU1:

SUBBYTEPTR[SI+BX-1],30H

SUBBYTEPTR[DI+BX-1],30H

将ASCII码表示的数字串

JNZSU1;

转化为十六进制的数字串

MOVSI,DX

MOVDI,BP

MOVCX,05;

包括进位,共5位

CLC;

清进单位

SU2:

MOVAL,[SI]

MOVBL,[DI]

SBBAL,BL;

带进位相减

AAS;

非组合BCD码的减法调整

MOV[SI],AL;

结果送被减数区

INCSI

INCDI;

指向下一位

LOOPSU2;

循环

SU3:

ADDBYTEPTR[SI+BX-1],30H

ADDBYTEPTR[DI+BX-1],30H

十六进制的数字串转化ASCII码表示的数字串

JNZSU3

RET

SUBAENDP

CODEENDS

ENDSTART

实验二两个数相乘的实验

一.实验要求

实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果

在屏幕上显示出来。

二.实验目的

掌握乘法指令和循环指令的用法。

DATA1DB32H,39H,30H,35H,34H

DATA2DB34H

*'

RESULTDB6DUP(00H)

STACKSEGMENT

STADB20DUP(?

MOVSS,AX

MOVSP,TOP

LEASI,DATA1

MOVBX,05H

L1:

MOVDL,[SI+BX-1]

DECBX

JNZL1

LEASI,DATA2

MOVDL,[SI]

MOVSI,OFFSETDATA2;

显示算式

MOVBL,[SI];

乘数DATA2→BL

ANDBL,00001111B;

屏蔽高4位,ASCII码转化为十六进制数

MOVDI,OFFSETRESULT

MOVCX,05

LOOP1:

ANDAL,00001111B;

取被乘数DATA1,ASCII变十六进制数

INCSI;

指向被乘数1的下一字符单元

MULBL;

相乘

AAM;

AAM调整

ADDAL,[DI];

结果低位与前次计算的进位相加

AAA;

AAA调整

MOV[DI],AL

结果送存到下一单元

MOV[DI],AH

LOOPLOOP1;

计算结果高位进位送存

MOVCX,06

MOVSI,DI

DISPL:

ADDDL,30H

DECSI

LOOPDISPL;

MOVAX,4C00H

INT21H;

结束

CODEENDS

实验三BCD码相乘的实验

实现BCD码的乘法,要求被乘数和乘数以组合的BCD码形式存放,各占一个内

存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD码乘法指令,程序中采用

将乘数1作为计算器,累加另一个乘数的方法得到计算结果。

掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。

FIRSTDB99H

SECONDDB25H

THIRDDB2DUP(?

STACKSEGMENTPARASTACK'

STACK'

STAPNDB100DUP(?

TOPEQULENGTHSTAPN

STACK

MOVBL,FIRST;

被乘数送BL

MOVCL,SECOND;

乘数送CL

MOVDX,0;

部分积清0

MOVAL,BL

AGAIN:

ORAL,AL

JZDONE;

被乘数减到0则转结果显示

MOVAL,DL

ADDAL,CL

DAA;

乘数于部分积低位相加后调整

MOVDL,AL

MOVAL,DH

ADCAL,0

往部分积高位送进位后调整

MOVDH,AL

DECAL

DAS;

组合BCD码减法调整

MOVBL,AL

JMPAGAIN

DONE:

LEABX,THIRD

MOV[BX],DX

LEASI,FIRST

CALLDIS

XORAX,AX

LEADX,MES1;

*

LEASI,SECOND

LEADX,MES2;

=

LEASI,THIRD

MOVAX,4C00H;

返回DOS

DISPROCNEAR;

显示子程序

MOVCL,04H

SHRAL,CL

ADDAL,30H

ANDAL,0FH

DISENDP

ENDSTART

实验一双色灯实验

一、实验要求

编写程序,以8255为输出口,控制四个双色灯按要求发光。

1.学习单板方式下扩展简单I/O接口的方法以双色灯的使用。

2.进一步学习微处理器的编程技术。

三、实验电路连线

8255的CS片选接至适配板上138译码处的200H~207H插孔。

四、实验说明

1、因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一

个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1南北绿灯通

车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,

东西仍然红灯。

再转状态,东西绿灯通车,南北灯灯。

过一段时间转状态4,东西绿灯闪几

次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

2、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

红色正端加高电平,绿色正端加低电平时,红灯亮;

红色正端加低电平,绿色正端加高电平

时,绿灯亮;

两端都加高电平时,黄灯亮。

;

D1EQU10H

D2EQU200H

PBDB?

STACKSEGMENTSTACK

STADW50DUP(?

PUSHCS

POPDS

MOVDX,203H;

设置为全输出

MOVAL,80H

OUTDX,AL

MOVDX,200H

MOVAL,0ffh

OUTDX,AL;

清LED

MOVDX,200H

MOVAL,0F0H

全红

MOVBX,7fH

CALLDLY

BG:

MOVAL,01011010B;

南北绿,东西红

MOVBX,D2

MOVCX,03H

XH1:

ANDAL,0F5H;

绿灭黄亮

MOVBX,D1

ORAL,0aH;

绿亮

LOOPXH1

ORAL,0a0H;

南北黄

MOVAL,10100101B;

南北红,东西绿

MOVCX,03

XH2:

ANDAL,0FaH

ORAL,05H

LOOPXH2

ORAL,50H

JMPBG

DLYPROCNEAR

PUSHCX

DDD:

MOVCX,2ffH

CCC:

LOOPCCC

DECBX

CMPBX,0

JNEDDD

POPCX

DLYENDP

CODEENDS

ENDSTART

实验二开关状态显示实验

编写程序,设定8255的PA口为开关量输入,PB口为开关量输出,要求能随时将PA

口的开关状态通过PB口的发光二极管显示出来。

学习使用8255各个口的不同工作方式

三、实验电路连接

将K1~K8用连接至8255的PB0~PB7,将DL1~DL8用连线连至8255的PC0~PC7,

8255CS连至译码处的200~207插孔。

本实验要求8255工作方式0,PB口设置为输入,PC口设置为输出,输入量为开关量,

通过8255可实时显示在LED灯上。

按下HALT或RST键则返回监控。

CODE,SS:

设置为b口输入,c口输出

MOVAL,92H

OUTDX,AL

BG:

MOVDX,201H;

将b口状态从c口输出

INAL,DX

MOVDX,202h

实验五A/D转换实验

编程用查询方式采样电位器输入电压,并将采样到的结果实时地通过8279显示在

数码管上。

(只须显示一位即可。

用0~F表示0~+5V电压)。

二.实验目的

1.掌握A/D芯片AD0809的转换性能及编程方法。

2.学习A/D芯片与其他芯片(如8279)接口的方法,初步建立系统的概念。

三.实验电路及连线

CS79接译码处210~217这个插孔。

A/D的CS插译码处208~20F这个插孔,0809的IN0

接至电位器W1的中心抽头插孔。

注意:

电位器W1两边的两个插孔已经分别接好电源+5V和地,请不要再接,以防接

错,出现短路。

本实验中所用A/D转换芯片为逐次逼近型,精度为8位每转换一次约100微钞,所以

程序若为查询式,则在启动后要加适应延时。

另外,0809芯片提供转换完成信号(EOC),

利用此信号可实现中断采集。

有兴趣者可自行编制程序。

Z8279EQU212H

D8279EQU210H

LEDMODEQU00;

左边输入,八位显示外部译码八位显示

LEDFEQEQU38H;

扫描频率

code

pushcs

popds

calldelay

MOVDX,Z8279

MOVAL,LEDMOD

MOVAL,LEDFEQ

MOVCX,06H

XZ:

MOVDX,D8279

MOVAL,00H

LOOPXZ

MOVDX,D8279

MOVAL,5eH

MOVAL,77H

以上为写(AD)

NOP

bg:

movdx,208h

moval,0

outdx,al

inal,dx

movcl,04h

roral,cl

andal,0fh

pushax

movdx,z8279

moval,81h

outdx,al

popax

LEABX,LED

XLAT

MOVDX,D8279;

将AL中内容写到数码管上

jmpbg

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB5EH,79H,71H

delayprocnear

pushcx

movcx,01f00h

loop$

popcx

ret

delayendp

ENDSTART

实验六D/A转换实验

编写程序,使D/A转换模块循环输出三角波和锯齿波。

1.掌握DAC0832芯片的性能、使用方法及对应硬件电路。

2.了解D/A转换的基本原理。

DAC0832的片选CS孔接译码处208-20F插孔(注:

0832旁的短路帽应下插,做51实验时应上插)。

D/A转换是量转化成模拟量的过程,本实验输出为模拟电压信号,本次实验生成的波形

较为简单,有兴趣者可试编程序生成各种波形,如方波,正弦波等,也可与键盘显示模块结

合起来,构成一个简单的波形发生器,通过键盘输入各种参数,如频率,振幅(小于+5V),

方波的占空比等。

code,SS:

MOVDX,208H;

锯齿波

MOVCX,07ffH

BB:

ADDAL,01

CMPAL,00H

JNZBB

LOOPBB

EE:

ADDAL,01H

CMPAL,0FFH

JNEEE

FF:

SUBAL,01H

JNEFF

LOOPEE

实验九步进电机驱动实验

利用8255的PC口PC-PC3轮流输出脉冲序列,小键盘控制步进电机的转速和转动方

向。

1、了解控制步进电机的基本原理。

2、掌握控制步进电机转动的编程的方法。

三、实验连线

用硬导线将8255选信号CS接至200-207,PC0-PC3接至SMA-SMD。

8279的片选信号CS接至208-20F。

在运行过程中,可按动小键盘的“0-9”数码键,控制步进电机的转速,

按“+或-”键控制步进电机的方向,按“REG”键退出。

C8279EQU20AH

D8279EQU208H

C8255EQU203H

P8255CEQU202H

ASSUMECS:

CODE

START:

PUSHCS

INI:

MOVDX,C8255

MOVAL,90H

8255初始化

MOVDX,C8279

MOVAL,2AH

8279初始化

MOVAL,0D1H

关显示

WAIT1:

INAL,DX

MOVAH,AL

ANDAL,80H

JNZWAIT1;

FIFO正在清除期间则跳转等待

MOVAL,AH

JEWAIT1;

无键按下则跳转等待

LEABX,STEP

RUN:

CALLCHKKEY

CALLDISPLAY

MOVCX,08H;

步进电机控制

LOOP3:

MOVDX,P8255C

CALLDELAY

LOOPLOOP3

JMPRUN

CHKKEYPROCNEAR

RDKEY:

MOVDX,C8279

ANDAL,80H

CMPAL,80H

JERDKEY

JERTN

MOVAL,40H

读FIFO/传感器RAM命令

CHK:

CMPAL,38H

JEQUIT;

RST退出

CMPAL,30H;

键值大于30H,为方向控制键

JNCDIRE

MOVDELAYTIME,AL

JMPRTN

DIRE:

CMPAL,32H;

HERE顺时针

JNENEXT

MOVDIRDSP,40H

LEABX,STEP

NEXT:

CMPAL,33H;

EXEC逆时针

JNERTN

MOVDIRDSP,46H

ADDBX,08H;

逆时针控制表地址

RTN:

MOVSI,BX

CHKKEYENDP

QUIT:

MOVAL,0D2H

jmp$

DELAYPROCNEAR

;

判断键值,获得相应延时循环值

MOVAL,20H;

"

9"

?

SUBAL,DELAYTIME

MOVCX,04H

MOVAL,08H;

8"

JNZL2

MOVCX,05H

L2:

MOVAL,00H;

7"

JNZL3

L3:

MOVAL,21H;

6"

MOVCX,07H

JNZL4

MOVCX,08H

L4:

MOVAL,09H;

5"

JNZL5

MOVCX,09H

L5:

MOVAL,01H;

4"

JNZL6

MO

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

当前位置:首页 > 高等教育 > 理学

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

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