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

上传人:b****5 文档编号:7536826 上传时间:2023-01-24 格式:DOCX 页数:32 大小:797.29KB
下载 相关 举报
广工计算机接口与通信实验报告.docx_第1页
第1页 / 共32页
广工计算机接口与通信实验报告.docx_第2页
第2页 / 共32页
广工计算机接口与通信实验报告.docx_第3页
第3页 / 共32页
广工计算机接口与通信实验报告.docx_第4页
第4页 / 共32页
广工计算机接口与通信实验报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

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

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

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

广工计算机接口与通信实验报告

广工计算机接口与通信实验报告

接口与通讯实验报告

1、8253定时/计数器实验

2、8255并行接口实验

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

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

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

学生学院计算机学院

专业班级

学号311000

学生姓名

指导教师

 

2013年1月1日

 

__计算机__学院__2010级计算机科学与技术_专业__四___班___组、学号3110006015

姓名张法光协作者_________教师评定_________________

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

实验目与要求

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

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

学习8086/86控制8253可编程定时器方法。

实验内容

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

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

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

实验电路

实验连线

8253CS,接地址译码CS4,8253_GATEO,接VCC(是+5V),8253_GATE1,也接VCC(是+5V)。

8253_CLK1,接1MHz。

具体连线见下表:

3、实验原理

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

计数:

计数器装入初值后,当GATE为高电平时,可用外部事件为CLK,脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,在OUT端输出一个标志信号。

定时:

计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。

8253控制字

4、实验程序框图

 

三、实验程序与注释

CONTROLequ0c003h;控制口地址

COUNT0equ0c000h;计数器0地址

COUNT1equ0c001h;计数器1地址

COUNT2equ0c002h;计数器2地址

codesegment

assumecs:

code

startprocnear

moval,36H(00110110B);计数器0,16位,方式3,二进制

movdx,CONTROL

outdx,al;将控制字写入控制寄存器

movax,1000;在计数器0中写入初值

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

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

movdx,CONTROL

outdx,al;将控制字写入控制寄存器

movax,1000;在计数器1中写入初值

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

jmp$

startendp

codeends

endstart

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

如何修改程序。

(程序段加粗为修改部分)

CONTROLequ0c003h;控制口地址

COUNT0equ0c000h;计数器0地址

COUNT1equ0c001h;计数器1地址

COUNT2equ0c002h;计数器2地址

codesegment

assumecs:

code

startprocnear

moval,34H(00110100B);计数器0,16位,方式2,二进制

movdx,CONTROL

outdx,al;将控制字写入控制寄存器

movax,5000;在计数器0中写入初值

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

moval,74H(01110110B);计数器1,16位,方式2,二进制

movdx,CONTROL

outdx,al;将控制字写入控制寄存器

movax,200;在计数器1中写入初值

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

jmp$

startendp

codeends

endstart

 

__计算机__学院__2010级计算机科学与技术_专业__四___班___组、学号3110006015

姓名张法光协作者_________教师评定_________________

实验题目8255并行接口实验

实验目与要求

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

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

实验内容

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

1、实验电路

 

2、实验连线

8255CS,接地址译码/CS0。

PA0-PA7(PA口)接LED0-LED7(LED),PB0-PB7(PB口)接K0-K7(开关量)。

数据线、读/写控制、地址线、复位信号板上已接好。

 

连接孔1连接孔2

连接孔1连接孔2

连接孔1连接孔2

CS0→8255_CS

注:

若8255CS接地址孔8000H。

则PA口地址为8000H

PB口地址为8001H

PC口地址为8002H

控制口地址为8003H

L0→8255-PA0

L1→8255-PA1

L2→8255-PA2

L3→8255-PA3

L4→8255-PA4

L5→8255-PA5

L6→8255-PA6

L7→8255-PA7

K0→8255-PB0

K1→8255-PB1

K2→8255-PB2

K3→8255-PB3

K4→8255-PB4

K5→8255-PB5

K6→8255-PB6

K7→8255-PB7

 

实验原理

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

本实验采用是方式0:

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

*8255控制字

4.实验程序框图

三、实验程序与注释

modeequ82H;10000010B;方式0,PA,PC输出,PB输入

PortAequ8000h;PortA

PortBequ8001h;PortB

PortCequ8002h;PortC

CAddrequ8003h;控制字地址

codesegment

assumecs:

code

startprocnear

Start:

moval,mode

movdx,CAddr

outdx,al;输出控制字

movdx,PortC

outal,dx;输出到PortC

movdx,PortB

indx,al;输入PortB

movdx,PortA

outdx,al;输出到PortA

movah,200

calldelay

jmpStart

endp

delayprocnear;入栈保护现场

pushax

moval,0

pushcx

movcx,ax

loop$;出栈恢复现场

popcx

popax

ret

delayendp

codeends

endstart

若将B口和C口功能对调(连线对调),如何编写程序。

(程序段加粗为修改部分)

modeequ89H;10001001B,方式0,PA,PB输出,PC输入

PortAequ8000h;PortA

PortBequ8001h;PortB

PortCequ8002h;PortC

CAddrequ8003h;控制字地址

codesegment

assumecs:

code

startprocnear

Start:

moval,mode

movdx,CAddr

outdx,al;输出控制字

movdx,PortC

inal,dx;读入PortC

movdx,PortB

outdx,al;输出到PortB

movdx,PortA

outdx,al;输出到PortA

 

movah,200

calldelay

jmpStart

endp

delayprocnear

pushax

moval,0

pushcx

movcx,ax

loop$

popcx

popax

ret

delayendp

codeends

endstart

 

__计算机__学院__2010级计算机科学与技术_专业__四___班___组、学号3110006015

姓名张法光协作者_________教师评定_________________

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

实验目与要求

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

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

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

实验内容

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

格式如下:

XXXXXX由左向右分别为:

时、分、秒。

1、实验电路

2、实验连线

连接孔1连接孔2

连接孔1连接孔2

CS4→8253_CS

VCC→8253_GATE1

1MHz→8253_CLK1

CS0→KEY/LED_CS

CS5→8259CS

8253_OUT1→8259_INT0

3、实验原理

对于8088实验,8255做定时器,用定时器输出脉冲控制8259产生中断,在8259中断处理程序中,对时、分、秒进行计数,在等待中断循环中用LED显示时间。

8253用定时/计数器1,8253片选接CS4,地址为0C000H,8253时钟源CLK1接时钟信号1MHz。

8253GATE1接VCC。

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

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

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

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

4、实验程序框图

三、实验程序与注释

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

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

;环中用LED显示时间。

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

8253时钟

;源CLK1接分频电路F/16输出。

分频器Fin接1MHz时钟。

8253

;GATE1接VCC。

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

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

;

CONTROLequ0c003h

COUNT0equ0c000h

COUNT1equ0c001h

COUNT2equ0c002h

md8255equ82h;8255工作方式

PA8255equ8000h;8255PA口输出地址

CTL8255equ8003h;8255控制口地址

OUTBITequ08002h;位控制口

OUTSEGequ08004h;段控制口

ICW1equ13H;(00010011B),单片8259,上升沿中断,要写ICW4

ICW2equ20H;(00100000B),中断号为20H

ICW4equ01H;(00000001B),工作在8086/88方式

OCW1equFEH;(11111110B),只响应INT0中断

CS8259Aequ0d000h;8259基地址和偶地址

CS8259Bequ0d001h

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,20h;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

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;设定计数值,16us计数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

若使用IR1做中断源,如何编写程序?

答:

将OCW1控制字改为FDH(11111101B)

将电子钟秒速变慢,如何编写程序?

答:

8253时钟源CLK1接分频电路F/16输出。

分频器Fin接4MHz时钟。

同时把电子时钟实验程序段中8253计数值修改为250000。

四、心得体会

第一次上机是做8253定时计数器实验,所以印象十分深刻。

加上实验老师在上次实验结束后提醒了电子时钟是个综合性实验,难度相对较大,建议我们提前预习。

为了更好地理解实验原理和具体操作,提前复习了定时器使用和编程方法,同时上网查询了8259中断控制处理程序实验原理。

实验关键在于计数实现和中断控制调用,对8253和8259初始化和写入各端口控制字等。

最终在实验课中完成了这看似复杂电子时钟实验,本次实验比想象中做得顺利,得益于实验前预习和实验课程上老师讲解。

其实综合性实验并不是很难,关键在于对实验原理理解和动手操作,逐步付诸实践。

__计算机__学院__2010级计算机科学与技术_专业__四___班___组、学号3110006015

姓名张法光协作者_________教师评定_________________

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

实验目与要求

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

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

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

实验内容

利用DAC0832,编制程序产生锯齿波、三角波、正弦波。

三种波轮流显示,用示波器观看。

实验电路

 

实验连线

 

实验原理

这是用总线器件做ADC实验,对于MCS196,LPC2103,芯片已经带有ADC转换电路,也可以用片上ADC进行模数转换。

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

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

(2)产生锯齿波和三角波表格只需由数字量增减来控制,同时要注意三角波要封端来产生。

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

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

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

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

(3)3为D/A转换输入数据与输出电压关系为U(0~-5V)=Uref/256*N与U(-5V~+5V)=2*Uref/256*N-5(这里Uref为+5)

实验程序框图

三、实验程序与注释

CS0832equ8000h

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,90

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

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

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

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