同济大学微机原理实验报告DOC.docx

上传人:b****8 文档编号:28298599 上传时间:2023-07-10 格式:DOCX 页数:29 大小:3.68MB
下载 相关 举报
同济大学微机原理实验报告DOC.docx_第1页
第1页 / 共29页
同济大学微机原理实验报告DOC.docx_第2页
第2页 / 共29页
同济大学微机原理实验报告DOC.docx_第3页
第3页 / 共29页
同济大学微机原理实验报告DOC.docx_第4页
第4页 / 共29页
同济大学微机原理实验报告DOC.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

同济大学微机原理实验报告DOC.docx

《同济大学微机原理实验报告DOC.docx》由会员分享,可在线阅读,更多相关《同济大学微机原理实验报告DOC.docx(29页珍藏版)》请在冰豆网上搜索。

同济大学微机原理实验报告DOC.docx

同济大学微机原理实验报告DOC

《微机原理与接口技术》上机实验报告

学号:

姓名:

班级:

课程名称:

微型计算机原理与接口技术

上机内容:

模/数转换器

实验性质:

□综合性实验  □设计性实验  ■验证实验

实验时间:

年12月19日

实验地点:

汽车学院107

实验设备TPC—2003A微机实验箱示波器

实验报告:

(包括目的、方法、原理、结果或实验小节等)。

一、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

二、实验内容

1、实验电路原理图如图12-1。

通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

启动IN0开始转换:

Out02980

读取转换结果:

In0298

2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。

三、实验提示

1、ADC0809的IN0口地址为298H,IN1口地址为299H。

2、IN0单极性输入电压与转换后数字的关系参考原理图:

其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。

3、一次A/D转换的程序可以为

MOVDX,口地址

OUTDX,AL;启动转换

;延时

INAL,DX;读取转换结果放在AL中

;*******************************;

;*接收A/D转换器数据在屏幕上显示*;

;*******************************;

io0809aequ298h

codesegment

assumecs:

code

start:

movdx,io0809a;启动A/D转换器

outdx,al

movcx,0ffh;延时

delay:

loopdelay

inal,dx;从A/D转换器输入数据

movbl,al;将AL保存到BL

movcl,4

shral,cl;将AL右移四位

calldisp;调显示子程序显示其高四位

moval,bl

andal,0fh

calldisp;调显示子程序显示其低四位

movah,02

movdl,20h;加回车符

int21h

movdl,20h

int21h

pushdx

movah,06h;判断是否有键按下

movdl,0ffh

int21h

popdx

jestart;若没有转START

movah,4ch;退出

int21h

dispprocnear;显示子程序

movdl,al

cmpdl,9;比较DL是否>9

jleddd;若不大于则为'0'-'9',加30h为其ASCII码

adddl,7;否则为'A'-'F',再加7

ddd:

adddl,30h;显示

movah,02

int21h

ret

dispendp

codeends

endstart

五、实验小结

通过实验,了解和掌握模/数转换的工作原理,熟悉汇编代码的编写。

在实验过程中,我们小组相互帮助,共同连接电线,第一次并没有达到理想的结果,在老师们的帮助下,我们及时更正了错误,最终完成了实验,通过实验的过程,让我们对于课本的理论知识有了进一步了解。

实验图片

 

实验十二模/数转换器

一、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

二、实验内容

1、实验电路原理图如图12-1。

通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

启动IN0开始转换:

Out02980

读取转换结果:

In0298

2、将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。

三、实验提示

1、ADC0809的IN0口地址为298H,IN1口地址为299H。

2、IN0单极性输入电压与转换后数字的关系请参考原理图:

3、一次A/D转换的程序可以为

MOVDX,口地址

OUTDX,AL;启动转换

;延时

INAL,DX;读取转换结果放在AL中

;****************************;

;*AD转换器2--示波器*;

;*采集数据在屏幕是作图*;

;****************************;

io0809bequ299h

codesegment

assumecs:

code

start:

movax,0012h;设屏幕显示方式为VGA640X480模示

int10h

start1:

movax,0600h

int10h;清屏

andcx,0;cx为横坐标

draw:

movdx,io0809b;启动A/D转换器通道1

outdx,al

movbx,200;500;延时

delay:

decbx

jnzdelay

inal,dx;读入数据

movah,0

movdx,368;dx为纵坐标

subdx,ax

moval,0ah;设置颜色

movah,0ch;画点

int10h

cmpcx,639;一行是否满

jzstart1;是则转start

inccx;继续画点

pushdx

movah,06h;是否有键按下

movdl,0ffh

int21h

popdx

jedraw;无,则继续画点

movax,0003;有恢复屏幕为字符方式

int10h

movah,4ch;返回

int21h

codeends

endstart

实验结果

 

《微机原理与接口技术》上机实验报告

学号:

姓名:

班级:

课程名称:

微型计算机原理与接口技术

上机内容:

简单并行接口

实验性质:

□综合性实验  □设计性实验  ■验证实验

实验时间:

年12月19日

实验地点:

汽车学院107

实验设备TPC—2003A微机实验箱

实验报告:

(包括目的、方法、原理、结果或实验小节等)。

一、实验目的

掌握简单并行接口的工作原理及使用方法。

二、实验内容

1、按下面图一简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

图一图二

三、实验中使用到的程序

对于简单并行输出接口:

stack1segmentstack'stack'

dw32dup(0)

stack1ends

datasegment

baseportequ0ec00h-280h;实际基址

portequbaseport+2a8h;基址+偏移地址

dataends

codesegment

assumess:

stack1,ds:

data,cs:

code

start:

movax,data

movds,ax

again:

movah,1

int21h

cmpal,1BH

jeexit

movdx,port

outdx,al

movah,2

movdl,0dh

int21h

movah,2

movdl,0ah

int21h

jmpagain

exit:

movah,4ch

int21h

codeends

endstart

对于简单并行输入接口:

stack1segmentstack'stack'

dw32dup(0)

stack1ends

datasegment

baseportequ0ec00h-280h;实际基址

portequbaseport+aA0h;实际地址

dataends

codesegment

assumecs:

code,ds:

data,ss:

stack1

start:

movax,data

movds,ax

again:

movdx,port

inal,dx;输入指令

movah,2

movdl,al

int21h;显示字符

movah,0Bh

int21h;判断是否有键按下

cmpal,0

jzagain

movah.4ch

int21h

codeends

endstart

 

四、实验小结

通过本次实验,掌握了简单并行接口的工作原理及使用方法。

对于输入输出指令有了进一步的理解。

能区分dos功能调用与输入输出指令的区别。

在实验中,能够将书本上的理论知识用具体的应用例子体现出来,使我印象更加深刻。

 

273软件显示程序:

;****************************;

;*简单的并行输出实验*;

;****************************;

ls273equ2a8h

codesegment

assumecs:

code

start:

movah,2;回车符

movdl,0dh

int21h

movah,1;等待键盘输入

int21h

cmpal,27;判断是否为ESC键

jeexit;若是则退出

movdx,ls273;若不是,从2A8H输出其ASCII码

outdx,al

jmpstart;转start

exit:

movah,4ch;返回

int21h

codeends

endstart

实验连接图片

 

实验二简单并行接口

一、实验目的

掌握简单并行接口的工作原理及使用方法。

二、实验内容

1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

三、编程提示

1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:

MOVAL,数据

MOVDX,2A8H

OUTDX,AL

通过上述并行接口输入数据需要2条指令:

MOVDX,2ADH

INAL,DX

244软件显示程序:

;********************************;

;*简单并行输入实验*;

;********************************;

ls244equ2a0h

codesegment

assumecs:

code

start:

movdx,ls244;从2A0输入一数据

inal,dx

movdl,al;将所读数据保存在DL中

movah,02

int21h

movdl,0dh;显示回车符

int21h

movdl,0ah;显示换行符

int21h

movah,06;是否有键按下

movdl,0ffh

int21h

jnzexit

jestart;若无,则转start

exit:

movah,4ch;返回

int21h

codeends

endstart

 

实验连接图片

 

《微机原理与接口技术》上机实验报告

学号:

姓名:

班级:

课程名称:

微型计算机原理与接口技术

上机内容:

可编程定时器/计数器(8253)

实验性质:

□综合性实验  □设计性实验  ■验证实验

实验时间:

年12月19日

实验地点:

汽车学院107

实验设备TPC—2003A微机实验箱

示波器

实验报告:

(包括目的、方法、原理、结果或实验小节等)。

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

三、实验中使用到的程序

;*************************;

;*8253方式0计数器实验*;

;*************************;

io8253aequ283h

io8253bequ280h

codesegment

assumecs:

code

start:

moval,14h;设置8253通道0为工作方式2,二进制计数

movdx,io8253a

outdx,al

movdx,io8253b;送计数初值为0FH

moval,0fh

outdx,al

lll:

inal,dx;读计数初值

calldisp;调显示子程序

pushdx

movah,06h

movdl,0ffh

int21h

popdx

jzlll

movah,4ch;退出

int21h

dispprocnear;显示子程序

pushdx

andal,0fh;首先取低四位

movdl,al

cmpdl,9;判断是否<=9

jlenum;若是则为'0'-'9',ASCII码加30H

adddl,7;否则为'A'-'F',ASCII码加37H

num:

adddl,30h

movah,02h;显示

int21h

movdl,0dh;加回车符

int21h

movdl,0ah;加换行符

int21h

popdx

ret;子程序返回

dispendp

codeends

endstart

;

四、实验小结

通过实验,了解和掌握定时器的工作原理,熟悉汇编代码的编写。

在实验过程中,我们小组相互帮助,共同连接电线,第一次并没有达到理想的结果,在老师们的帮助下,我们及时更正了错误,最终完成了实验,通过实验的过程,让我们对于课本的理论知识有了进一步了解。

实验连接图片

实验结果图

实验三可编程定时器/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

1、按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。

三、编程提示

1、8253控制寄存器地址283H

计数器0地址280H

计数器1地址281H

CLK0连接时钟1MHZ

;*******************

;*8253分频*

;*******************

io8253aequ280h

io8253bequ281h

io8253cequ283h

codesegment

assumecs:

code

start:

movdx,io8253c;向8253写控制字

moval,36h;使0通道为工作方式3

outdx,al

movax,1000;写入循环计数初值1000

movdx,io8253a

outdx,al;先写入低字节

moval,ah

outdx,al;后写入高字节

movdx,io8253c

moval,76h;设8253通道1工作方式2

outdx,al

movax,1000;写入循环计数初值1000

movdx,io8253b

outdx,al;先写低字节

moval,ah

outdx,al;后写高字节

movah,4ch;程序退出

int21h

codeends

endstart

实验三可编程定时器/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法,用示波器观察不同方式下的波形。

二、实验原理和内容

1、按图3-3连接电路,将计数器0设置为方式3(方波),计数器设置为方式2(分频)。

2、实现计数器0的输出为方波,计数器1的输出是计数器0输出的分频波形。

3、人机交互界面设计:

实现在显示屏幕上提示输入计数器0(方波)的参数和计数器1(分频信号)的参数。

如下所示:

counter0:

____

counter1:

____

continue?

(y/n)____

4、实现用键盘直接输入修改程序中方波的参数和分频信号的参数,以改变方波的宽度,分频信号的周期和分频数,不需重新修改源代码。

5、用示波器观察计数器0和计数器1的输出波形及其关系,并在纸上画出CLK0、OUT0、OUT1的波形。

;*************************;

;*8253program*;

;*************************;

datasegment

mesg0db13,10,'*******************************8253progam*******************************',13,10,'$'

mesg1db13,10,'counter0:

','$'

mesg2db13,10,'counter1:

','$'

mesg3db13,10,'continue?

(y/n)','$'

mesg4db13,10,13,10,'ThankYou!

',13,10,'$'

errormdb13,10,'InputError!

','$'

counter0dw0

counter1dw0

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

start:

movdx,segdata

movds,dx

movdx,offsetmesg0

movah,09h

int21h

do:

subbx,bx

subax,ax

movcounter0,0

movcounter1,0;init

l1:

movdx,offsetmesg1

movah,09h

int21h

rd1:

;readcounter0

movah,01;readachar

int21h

cmpal,13;ifenter

jefdone1

jmptdone1

fdone1:

jmpdone1

tdone1:

cmpal,10

jefdone1

cmpal,'0';ifinput<0orinput>9error

jberror

cmpal,'9'

jaerror

pushax

movax,10

mulcounter0

movcounter0,ax;counter0=counter0*10

popax

subbx,bx

movbl,al

subbl,30h

addcounter0,bx;counter0=counter0+input

jmprd1

error:

movdx,offseterrorm

movah,09h

int21h

movdl,7

movah,2

int21h

jmpdone3

tr:

;forjmpdo

movdl,al

movah,02h

int21h

movdl,10

int21h

movdl,13

int21h

jmpdo

l2:

movdx,offsetmesg2

movah,09h

int21h

rd2:

;readcounter1

movah,01

int21h

cmpal,13;ifenter

jefdone2

cmpal,10

jefdone2

jmptdone2

fdone2:

jmpdone2

tdone2:

cmpal,10

jefdone2

cmpal,'0'

jberror

cmpal,'9'

jaerror

pushax

movax,10

mulcounter1

movcounter1,ax;counter1=counter1*10

popax

subbx,bx

movbl,al

subbl,30h;bh=0

addcounter1,bx;counter1=counter1+input

jmprd2

done1:

jmpl2

done2:

jmpout8253;afterentertwocounters

;set8253anddoit

done3:

movdx,offsetmesg3

movah,09h

int21h

l3:

movah,07h

int21h

cmpal,'Y'

jetr

cmpal,'y'

jetr

cmpal,'N'

jequit

cmpal,'n'

jequit

movdl,7

movah,02h

int21h

jmpl3

out8253:

;workcode

moval,00110110b

movdx,283h

outdx,al

movax,counter0

movdx,280h

outdx,al

moval,ah

out

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

当前位置:首页 > 农林牧渔 > 林学

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

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