广工计算机接口与通信实验报告Word文档格式.docx
- 文档编号:20648888
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:32
- 大小:797.29KB
广工计算机接口与通信实验报告Word文档格式.docx
《广工计算机接口与通信实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《广工计算机接口与通信实验报告Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
三、实验程序与注释
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
计数器高字节
moval,76H(01110110B);
计数器1,16位,方式3,二进制
movdx,CONTROL
将控制字写入控制寄存器
在计数器1中写入初值
movdx,COUNT1
jmp$
startendp
codeends
endstart
若改用方式2,并改变时间常数。
如何修改程序。
(程序段加粗为修改部分)
moval,34H(00110100B);
计数器0,16位,方式2,二进制
movax,5000;
moval,74H(01110110B);
计数器1,16位,方式2,二进制
movax,200;
实验题目8255并行接口实验
了解8255芯片结构及编程方法。
2.了解8255输入/输出实验方法。
利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。
1、实验电路
2、实验连线
8255CS,接地址译码/CS0。
PA0-PA7(PA口)接LED0-LED7(LED),PB0-PB7(PB口)接K0-K7(开关量)。
数据线、读/写控制、地址线、复位信号板上已接好。
连接孔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;
控制字地址
Start:
moval,mode
movdx,CAddr
输出控制字
movdx,PortC
outal,dx;
输出到PortC
movdx,PortB
indx,al;
输入PortB
movdx,PortA
输出到PortA
movah,200
calldelay
jmpStart
endp
delayprocnear;
入栈保护现场
pushax
moval,0
pushcx
movcx,ax
loop$;
出栈恢复现场
popcx
popax
ret
delayendp
若将B口和C口功能对调(连线对调),如何编写程序。
modeequ89H;
10001001B,方式0,PA,PB输出,PC输入
inal,dx;
读入PortC
输出到PortB
delayprocnear
pushax
loop$
实验题目数字式时钟(电子钟)
进一步掌握定时器使用和编程方法。
进一步掌握中断处理程序编程方法。
进一步掌握数码显示电路驱动方法。
利用CPU定时器和试验仪上提供数码显示电路,设计一个电子时钟。
格式如下:
XXXXXX由左向右分别为:
时、分、秒。
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
code,ds:
data
Delayprocnear
pushax;
延时子程序
moval,0
Delayendp
DisplayLEDprocnear
movbx,offsetLEDBuf
movcl,6;
共6个八段管
movah,20h;
00100000b,从左边开始显示
DLoop:
movdx,OUTBIT
outdx,al;
关所有八段管
moval,[bx]
movdx,OUTSEG
outdx,al
显示一位八段管
movah,1
callDelay
shrah,1
incbx
deccl
jnzDLoop
DisplayLEDendp
IEnterprocnear
pushdx
incSecond
moval,Second
cmpal,60
jneExit
movSecond,0
incMinute
moval,Minute
movMinute,0
incHour
moval,Hour
cmpal,24
movHour,0
Exit:
movdx,CS8259A
moval,20h;
中断服务程序结束指令
outdx,al
popdx
iret
IEnterendp
IInitproc
moval,ICW1
movdx,CS8259B
moval,ICW2
moval,ICW4
moval,OCW1
IInitendp
movax,data
movds,ax
cli
movax,0
moval,76H;
01110110B,计数器1,16位,方式3,二进制
movax,62500;
设定计数值,16us计数62500次就是一秒
moval,MD8255;
设定8255工作方式
movdx,CTL8255
movbx,4*ICW2;
中断号
movax,code
shlax,4;
x16
addax,offsetIEnter;
中断入口地址(段地址为0)
mov[bx],ax;
以段地址加上中断处理程序偏移地址注册中断向量表
代码段地址为0
callIInit
movCNT,0;
计数值初始为0
moval,CNT
movdx,PA8255
sti
LP:
等待中断,并计数。
movah,0
movcl,10
divcl
movch,ah
movbx,offsetLEDMAP
addbx,ax
movLEDBuf,al
moval,ch
oral,80h
movLEDBuf+1,al
movLEDBuf+2,al
movLEDBuf+3,al
movLEDBuf+4,al
movLEDBuf+5,al
callDisplayLED
jmpLP
若使用IR1做中断源,如何编写程序?
答:
将OCW1控制字改为FDH(11111101B)
将电子钟秒速变慢,如何编写程序?
8253时钟源CLK1接分频电路F/16输出。
分频器Fin接4MHz时钟。
同时把电子时钟实验程序段中8253计数值修改为250000。
四、心得体会
第一次上机是做8253定时计数器实验,所以印象十分深刻。
加上实验老师在上次实验结束后提醒了电子时钟是个综合性实验,难度相对较大,建议我们提前预习。
为了更好地理解实验原理和具体操作,提前复习了定时器使用和编程方法,同时上网查询了8259中断控制处理程序实验原理。
实验关键在于计数实现和中断控制调用,对8253和8259初始化和写入各端口控制字等。
最终在实验课中完成了这看似复杂电子时钟实验,本次实验比想象中做得顺利,得益于实验前预习和实验课程上老师讲解。
其实综合性实验并不是很难,关键在于对实验原理理解和动手操作,逐步付诸实践。
实验题目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
assumeds:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 接口 通信 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)