广工计算机接口实验报告.docx

上传人:b****1 文档编号:702185 上传时间:2023-04-29 格式:DOCX 页数:25 大小:60.13KB
下载 相关 举报
广工计算机接口实验报告.docx_第1页
第1页 / 共25页
广工计算机接口实验报告.docx_第2页
第2页 / 共25页
广工计算机接口实验报告.docx_第3页
第3页 / 共25页
广工计算机接口实验报告.docx_第4页
第4页 / 共25页
广工计算机接口实验报告.docx_第5页
第5页 / 共25页
广工计算机接口实验报告.docx_第6页
第6页 / 共25页
广工计算机接口实验报告.docx_第7页
第7页 / 共25页
广工计算机接口实验报告.docx_第8页
第8页 / 共25页
广工计算机接口实验报告.docx_第9页
第9页 / 共25页
广工计算机接口实验报告.docx_第10页
第10页 / 共25页
广工计算机接口实验报告.docx_第11页
第11页 / 共25页
广工计算机接口实验报告.docx_第12页
第12页 / 共25页
广工计算机接口实验报告.docx_第13页
第13页 / 共25页
广工计算机接口实验报告.docx_第14页
第14页 / 共25页
广工计算机接口实验报告.docx_第15页
第15页 / 共25页
广工计算机接口实验报告.docx_第16页
第16页 / 共25页
广工计算机接口实验报告.docx_第17页
第17页 / 共25页
广工计算机接口实验报告.docx_第18页
第18页 / 共25页
广工计算机接口实验报告.docx_第19页
第19页 / 共25页
广工计算机接口实验报告.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

广工计算机接口实验报告.docx

《广工计算机接口实验报告.docx》由会员分享,可在线阅读,更多相关《广工计算机接口实验报告.docx(25页珍藏版)》请在冰点文库上搜索。

广工计算机接口实验报告.docx

广工计算机接口实验报告

接口与通讯实验报告

1、8253定时/计数器实验

2、8255并行接口实验

3、数字式时钟(电子钟)

4、D/A(数/模)转换实验

5、A/D(模/数)转换实验

学生学院__计算机学院_____

专业班级10级计科(8)班

学号3110006202

学生姓名莫增升

指导教师曾碧

 

2012年12月13日

计算机学院10级计算机科学与技术专业8班、学号3110006202

姓名莫增升教师评定_________________

实验题目8253定时/计数器实验

一.实验目的与要求

1.学习8253可编程定时/计数器定时方法。

2.学习8253多级串联实现大时间常数的定时方法。

3.学习8088/86控制8253可编程定时器的方法。

2.实验内容

用8253对标准脉冲信号进行计数,就可以实现定时功能。

用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。

因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。

1.实验连线

连接孔1连接孔2

连接孔1连接孔2

连接孔1连接孔2

CS48253_CS

VCC8253_GATE0

L08253_OUT0

8253_OUT18253_CLK0

VCC8253_GATE1

1MHz8253_CLK1

2.实验原理

8253既可作定时器又可做计数器:

(1)计数:

GATE为高电平,输入脉冲对计数值进行减一计数

(2)定时:

由CLK脉冲触发开始自动计数,到零时发计数结束定时信号

 

3.实验程序和注释

CONTROLequ0c003h;控制端口地址

COUNT0equ0c000h;计数器0的地址

COUNT1equ0c001h;计数器1的地址

COUNT2equ0c002h;计数器2的地址

codesegment

assumecs:

code

startprocnear

moval,36h;00110100B;计数器0,16位,方式2,二进制

movdx,CONTROL

outdx,al

movax,1000;计数器0的时间常数

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

moval,76h;01110100B;计数器1,16位,方式2,二进制

movdx,CONTROL

outdx,al

movax,1001;计数器1的时间常数

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

jmp$

startendp

codeends

endstart

4.思考题

改用方式2,并改时间常数。

解:

修改工作方式为方式2,计数器1的时间常数改为1001

实验题目8255并行接口实验

一.实验目的与要求

1、了解8255芯片结构及编程方法。

2、了解8255输入/输出实验方法。

二.实验内容

利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。

1.实验连线

连接孔1连接孔2

连接孔1连接孔2

连接孔1连接孔2

CS08255_CS

L08255-PA0

L18255-PA1

L28255-PA2

L38255-PA3

L48255-PA4

L58255-PA5

L68255-PA6

L78255-PA7

K08255-PB0

K18255-PB1

K28255-PB2

K38255-PB3

K48255-PB4

K58255-PB5

K68255-PB6

K78255-PB7

3.实验原理

可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。

本实验采用的是方式0:

PA,PC口输出,PB口输入。

很多I/O实验都可以通过8255来实现。

 

3.实验程序和注释

modeequ082h;方式0,PA,PC输出,PB输入

PortAequ8000h;PortA

PortBequ8001h;PortB

PortCequ8002h;PortC

CAddrequ8003h;控制字地址

codesegment

assumecs:

code

startprocnear

Start:

moval,mode

movdx,CAddr

outdx,al;输出控制字

;实验2:

PortB输入PortA输出

movdx,PortB

inal,dx;读入PortB

movdx,PortC

outdx,al

movdx,PortA

outdx,al;输出到PortA

movah,200

calldelay;调用延时子程序

jmpStart

endp

delayprocnear

pushax

moval,0;设置延时低位为0

pushcx

movcx,ax;设置延时CX的为0C800H

loop$

popcx

popax

ret

delayendp

codeends

endstart

四.思考题

1.将B口与C口的功能对调(连线对调),如何编写程序。

解:

因为工作方式控制字为10001001B=89H,并且B的连线换到C去。

改后的代码:

modeequ089h;方式0,PA,PB输出,PC输入

PortAequ8000h;PortA

PortBequ8001h;PortB

PortCequ8002h;PortC

CAddrequ8003h;控制字地址

codesegment

assumecs:

code

startprocnear

Start:

moval,mode

movdx,CAddr

outdx,al;输出控制字

;实验2:

PortC输入,PortA和PortB输出

movdx,PortC

inal,dx;读入PortC

movdx,PortB

outdx,al

movdx,PortA

outdx,al;输出到PortA

movah,200

calldelay;调用延时子程序

jmpStart

endp

delayprocnear

pushax

moval,0;设置延时低位为0

pushcx

movcx,ax;设置延时CX的为0C800H

loop$

popcx

popax

ret

delayendp

codeends

endstart

实验题目数字式时钟(电子钟)

1.实验目的与要求

1、进一步掌握定时器的使用和编程方法。

2、进一步掌握中断处理程序的编程方法。

3、进一步掌握数码显示电路的驱动方法。

二.实验内容

利用CPU的定时器和实验仪上提供的数码显示电路,设计一个电子时钟。

格式如下:

XXXXXX由左向右分别为:

时、分、秒

1.实验电路(略)

2.实验连线

连接孔1连接孔2

连接孔1连接孔1

CS48253_CS

VCC8253_GATE1

1MHz8253_CLK1

CS0KEY/LED_CS

CS58259CS

8253_OUT18259_INT0

3.实验原理

定时器每100us中断一次,在中断服务程序中,对中断次数进行计数,100us计数10000次就是1秒。

然后再对秒计数得到分和小时值,并送入显示缓冲区。

显示子程序模块可参照硬件实验十六和硬件实验十七。

4.实验程序框图

 

3.实验程序和注释

本实验利用8253做定时器,用定时器输出的脉冲控制8259产生中断

在8259中断处理程序中,对时、分、秒进行计数,在等待中断的循

环中用LED显示时间。

8253用定时器/计数器1,8253片选接CS4,地址为0C000H。

8253时钟

源CLK1接分频电路的F/64输出。

分频器的Fin接4MHz时钟。

8253的

GATE1接VCC。

8259中断INT0接8253的OUT1,片选接CS5,地址为0D000H。

显示电路的KEY/LEDCS接CS0,地址为08000H。

CONTROLequ0c003h

COUNT0equ0c000h

COUNT1equ0c001h

COUNT2equ0c002h

md8255equ82h;8255工作方式

PA8255equ8000h;8255PA口输出地址

CTL8255equ8003h;8255控制口地址

OUTBITequ08002h;位控制口

OUTSEGequ08004h;段控制口

ICW1equ00010011b;单片8259,上升沿中断,要写ICW4

ICW2equ00100000b;中断号为20H

ICW4equ00000001b;工作在8086/88方式

OCW1equ11111110b;只响应INT0中断

CS8259Aequ0d000h;8259地址的基地址和偶地址

CS8259Bequ0d001hd

datasegment

CNTdb0

LEDBufdb6dup(?

);显示缓冲

Numdb1dup(?

);显示的数据

DelayTdb1dup(?

Hourdb0

Minutedb0

Seconddb0

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

dataends

codesegment

assumecs:

code,ds:

data

Delayprocnear

pushax;延时子程序

pushcx

moval,0

movcx,ax

loop$

popcx

popax

ret

Delayendp

DisplayLEDprocnear

movbx,offsetLEDBuf

movcl,6;共6个八段管

movah,00100000b;从左边开始显示

DLoop:

movdx,OUTBIT

moval,0

outdx,al;关所有八段管

moval,[bx]

movdx,OUTSEG

outdx,al

movdx,OUTBIT

moval,ah

outdx,al;显示一位八段管

pushax

movah,1

callDelay

popax

shrah,1

incbx

deccl

jnzDLoop

movdx,OUTBIT

moval,0

outdx,al;关所有八段管

ret

DisplayLEDendp

IEnterprocnear

pushax

pushdx

incSecond

moval,Second

cmpal,60

jneExit

movSecond,0

incMinute

moval,Minute

cmpal,60

jneExit

movMinute,0

incHour

moval,Hour

cmpal,24

jneExit

movHour,0

Exit:

movdx,CS8259A

moval,20h;中断服务程序结束指令

outdx,al

popdx

popax

iret

IEnterendp

IInitproc;初始化8259,中断号为20H,只响应INT0中断

movdx,CS8259A

moval,ICW1

outdx,al

movdx,CS8259B

moval,ICW2

outdx,al

moval,ICW4

outdx,al

moval,OCW1

outdx,al

ret

IInitendp

startprocnear

movax,data

movds,ax

movHour,0

movMinute,0

movSecond,0

cli

movax,0

movds,ax

moval,76h;01110110B;计数器1,16位,方式3,二进制

movdx,CONTROL

outdx,al

movax,62500;设定计数值

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

moval,MD8255;设定8255工作方式

movdx,CTL8255

outdx,al

movbx,4*ICW2;中断号

movax,code

shlax,4;x16

addax,offsetIEnter;中断入口地址(段地址为0)

mov[bx],ax;以段地址加上中断处理程序偏移地址注册中断向量表

movax,0

incbx

incbx

mov[bx],ax;代码段地址为0

callIInit

movax,data

movds,ax

movCNT,0;计数值初始为0

moval,CNT

movdx,PA8255

outdx,al

sti

LP:

;等待中断,并计数。

moval,Hour

movah,0

movcl,10

divcl

movch,ah

movah,0

movbx,offsetLEDMAP

addbx,ax

moval,[bx]

movLEDBuf,al

movbx,offsetLEDMAP

moval,ch

movah,0

addbx,ax

moval,[bx]

oral,80h

movLEDBuf+1,al

moval,Minute

movah,0

movcl,10

divcl

movch,ah

movah,0

movbx,offsetLEDMAP

addbx,ax

moval,[bx]

movLEDBuf+2,al

movbx,offsetLEDMAP

moval,ch

movah,0

addbx,ax

moval,[bx]

oral,80h

movLEDBuf+3,al

moval,Second

movah,0

movcl,10

divcl

movch,ah

movah,0

movbx,offsetLEDMAP

addbx,ax

moval,[bx]

movLEDBuf+4,al

movbx,offsetLEDMAP

moval,ch

movah,0

addbx,ax

moval,[bx]

oral,80h

movLEDBuf+5,al

callDisplayLED

jmpLP

startendp

codeends

endstart

4.实验心得

电子时钟实验是一个综合性实验,其中不仅要掌握好定时器的使用和编程方法,其次又要掌握好中断处理程序的编程方法,并且还要掌握好数码显示电路的驱动方法等等。

其中我觉得设置好中断周期是本次实验一个至关重要的环节。

 

实验题目D/A(数/模)转换实验

1.实验目的

1、了解D/A转换的基本原理。

2、了解D/A转换芯片0832的性能及编程方法。

3、了解单片机系统中扩展D/A转换的基本方法。

二.实验内容

D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。

要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。

1.实验连线

连接孔1连接孔2

CS2DA_CS

-5V-+5V逻辑波形L3

2.实验原理

产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。

要产生正弦波,较简单的方法是造一张正弦数字量表。

即查函数表得到的值转换成十六进制数填表。

D/A转换取值范围为一个周期,采样点越多,精度越高些。

本例采用的采样点为256点/周期。

8位D/A转换器的输入数据与输出电压的关系为

U(0∽-5V)=Uref/256×N

U(-5V∽+5V)=2·Uref/256×N-5V(这里Uref为+5V)

3、实验程序,要求写注释。

CS0832equ8000h;DAC寄存器地址

datasegment

assumeds:

data

SinData:

;正弦波描点

DB0C0H,0C3H,0C6H,0C9H,0CCH,0CFH,0D2H,0D5H

DB0D8H,0DBH,0DEH,0E0H,0E3H,0E6H,0E8H,0EAH

DB0EDH,0EFH,0F1H,0F3H,0F5H,0F6H,0F8H,0F9H

DB0FBH,0FCH,0FDH,0FEH,0FEH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FEH,0FEH,0FDH,0FCH

DB0FBH,0F9H,0F8H,0F6H,0F5H,0F3H,0F1H,0EFH

DB0EDH,0EAH,0E8H,0E6H,0E3H,0E0H,0DEH,0DBH

DB0D8H,0D5H,0D2H,0CFH,0CCH,0C9H,0C6H,0C3H

DB0C0H,0BCH,0B9H,0B6H,0B3H,0B0H,0ADH,0AAH

DB0A7H,0A4H,0A1H,9FH,9CH,99H,97H,95H

DB92H,90H,8EH,8CH,8AH,89H,87H,86H

DB84H,83H,82H,81H,81H,80H,80H,80H

DB80H,80H,80H,80H,81H,81H,82H,83H

DB84H,86H,87H,89H,8AH,8CH,8EH,90H

DB92H,95H,97H,99H,9CH,9FH,0A1H,0A4H

DB0A7H,0AAH,0ADH,0B0H,0B3H,0B6H,0B9H,0BCH

ends

codesegment

assumecs:

code

procDelaynear

pushcx

movcx,ax

DelayLoop:

;延迟循环

nop

nop

nop

nop

nop

nop

loopDelayLoop

popcx

ret

endp

procOutputDAnear;输出一个点的子程序,点在al里面

movdx,CS0832

outdx,al

ret

endp

procShowSinnear;输出正弦波子程序

pushcx

movbx,400H+offsetSinData

movcx,80h;就8*16个点

ShowSinLoop:

;在这个循环中换SinData点,输出

moval,[bx]

callOutputDA

incbx

movax,40;延迟控制

callDelay

loopShowSinLoop

popcx

ret

endp

procShowTrinear;

pushcx

movbx,80h

movcx,80h

ShowTriLoop:

moval,bl

callOutputDA

incbx

movax,40

callDelay

loopShowTriLoop

popcx

ret

endp

procShowSqnear;输出方波,200次延迟高点,200次延迟不打点

pushcx

moval,80h

callOutputDA

movcx,10

D1:

movax,200

callDelay

loopD1

moval,0ffh

callOutputDA

movcx,10

D2:

movax,200

callDelay

loopD2

popcx

ret

endp

startprocnear;三种波形轮流输出

movax,0

movds,ax

moves,ax

MLoop:

movcx,100

MD1:

callShowSin

loopMD1

movcx,100

MD2:

callShowTri

loopMD2

movcx,100

MD3:

callShowSq

loopMD3

jmpMLoop

startendp

codeends

endstart

 

实验题目A/D(模/数)转换实验

1.实验目的和要求

1、掌握A/D转换与单片机的接口方法。

2、了解A/D芯片ADC0809转换性能及编程。

3、通过实验了解单片机如何进行数据采集。

2.实验内容

A/D转换器大致有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,

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

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2