微机原理与接口技术实验报告.docx
《微机原理与接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术实验报告
福建农林大学计算机与信息学院
信息工程类
实验报告
课程名称:
微机原理与接口技术
姓名:
系:
电子信息工程系
专业:
电子信息工程
年级:
2008
学号:
指导教师:
职称:
2010年12月27日
实验项目列表
序号
实验项目名称
成绩
指导教师
1
双色灯实验
詹仕华
2
开关量输入实验
詹仕华
3
8253定时/计数器实验
詹仕华
4
D/A转换实验
詹仕华
5
A/D转换实验
詹仕华
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
福建农林大学计算机与信息学院信息工程类实验报告
实验一双色灯实验
1.实验目的和要求
1、编写程序,以8255为输出口,控制四个双色灯按ISA总线方式下的要求发光。
2、学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。
3、进一步学习微处理器的编程技术。
2.实验原理
1、本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转转态2,南北绿灯闪烁几次转亮黄灯,延时几秒动地仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转转台是4,东西绿灯闪几次转亮黄灯延时几秒,南北仍然红灯。
最后循环至状态。
2、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平,红灯亮;红灯正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
3、由于labpci卡中的IO起始地址被重新映射过,所以在编程时,先要获得重新映射过IO起始地址,再加上实际地址,这样才是真正的物理地址。
例如再资源管理器中的IO起始地址为e000h,在8088系统中的口地址为218h,那么它的物理地址为e018h。
4、LED灯亮灭的时隔时间是由延时程序来控制的。
如果计算机的速度够快,LED灯亮灭的时隔时间就比较短,实验现象就不明显。
可通过调整延时程序使实验现象更明显。
5、实验程序框图:
注:
程序初始化前,必须获得将PCI设备配置空间,通过配置空间来得到物理地址。
3.主要仪器设备(实验用的软硬件环境)
联想计算机,WINDOWS2000系统,AEDK软件,爱迪克教学实验机
4.操作方法与实验步骤
1、按下面原理图在实验箱上接线:
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
5.实验内容及实验数据记录
实验程序:
D1EQU10H
D2EQU200H
DATASEGMENT
PBDB?
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
PUSHCS
POPDS
MOVDX,203H;设置为全输出
MOVAL,80H
OUTDX,AL
MOVDX,202H
MOVAL,00
OUTDX,AL;清LED
MOVDX,202H;全红
MOVAL,0F0H
OUTDX,AL
MOVBX,7fH
CALLDLY
BG:
MOVAL,01101001B;南北绿,东西红
OUTDX,AL
MOVBX,D2
CALLDLY
MOVCX,03H
XH1:
ANDAL,0F6H;绿灭11110110
OUTDX,AL
MOVBX,D1
CALLDLY
ORAL,09H;绿亮
OUTDX,AL
MOVBX,D1
CALLDLY
LOOPXH1
ORAL,90H;南北黄
OUTDX,AL
MOVBX,D1
CALLDLY
MOVBX,D1
CALLDLY
MOVAL,10010110B;南北红,东西绿
OUTDX,AL
MOVBX,D2
CALLDLY
MOVCX,03
XH2:
ANDAL,0F9H
OUTDX,AL
MOVBX,D1
CALLDLY
ORAL,06H
OUTDX,AL
MOVBX,D1
CALLDLY
LOOPXH2
ORAL,60H
OUTDX,AL
MOVBX,D1
CALLDLY
MOVBX,D1
CALLDLY
JMPBG
DLYPROCNEAR
PUSHCX
DDD:
MOVCX,0FFFH
CCC:
LOOPCCC
DECBX
CMPBX,0
JNEDDD
POPCX
RET
DLYENDP
CODEENDS
ENDSTART
6.实验数据处理与分析
编译链接程序并加载到实验箱后,四个双色灯红绿交替闪亮,符合实验要求。
每个交通灯的红、绿或者黄的状态是由输入信号的一对对应位来控制的。
即第一位和第五位控制第一个灯,依此类推。
其中两个1表示黄,两个0表示无色。
通过MOVDX,202H;MOVAL,0F0H;OUTDX,AL实现对双色灯的全红。
用语句MOVMOVAL,01101001B;南北绿,东西红。
当程序进入CALLDLY时,实现灯各种状态的延时,用子程序XH1实现南北绿灯闪烁几次转亮黄灯,延时几秒动地仍然红灯。
用语句MOVAL,10010110B;南北红,东西绿,调用DLY子程序实现延时。
7.质疑、建议、问题讨论
本实验的关键在于弄清对灯各种颜色状态的控制,给低电平时灯不亮,给高电平时灯才亮,1、5位控制1号灯,2、4控制2号灯,以此类推。
通过改变给端口202赋不同值,并且通过调用延时程序,可以实现交通灯不同顺序的闪烁和延迟。
设计程序过程中,可以采用不断的为AL赋值来改变交通灯的状态,也可以通过逻辑运算来改变等的颜色。
本实验中用到了软件延时程序,通过修改延时程序,可以实现两灯之间的闪烁间隔,来实现实验中不同的时间间隔需求。
福建农林大学计算机与信息学院信息工程类实验报告
实验二开关量输入实验
1.实验目的和要求
1、编写程序,设定8255的PA口为开关量输入,PC口为开关量输出,要求能随时将PA口的开关状态通过PC口的发光二极管显示出来。
2、学习使用8255各个口的不同工作方式。
2.实验原理
8255为编程并行接口芯片,它有多中方式可以进行选择,并且通常无需外围电路,可以方便地实现多种并行接口电路。
本次实验中,8255A工作于方式0,此时PA、PB、PC均为可独立输入/输出的并行口。
8255的各种寄存器在8088系统中的口地址为:
PA口:
218HPB口:
219HPC口:
21AH8255控制寄存器:
21BH
由于LABPC1卡中的IO起始地址被重新映射过,所以在编程时,先要获得重新映射过的IO起始地址,再加上实际地址,这样才是真正的物理地址。
LED灯亮灭的间隔时间是由延时程序来控制的,如果计算机的速度过快,LED灯亮灭的间隔时间就比较短,实验现象就不明显。
可通过调整延时次序使实验现象更明显。
实验流程图如下:
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
3.主要仪器设备(实验用的软硬件环境)
联想计算机,WINDOWS2000系统,AEDK软件,爱迪克教学实验机
4.操作方法与实验步骤
1、按下面原理图在实验箱上接线:
a)
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
5.实验内容及实验数据记录
实验程序:
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVDX,203H;设置为A口输入,B口输出
MOVAL,90H
OUTDX,AL
BG:
MOVDX,200H;将A口状态从B口输出
INAL,DX
MOVDX,202H
OUTDX,AL
JMPBG
CODEENDS
ENDSTART
6.实验数据处理与分析
拨动不同的闸动开关,通过8255可实时显示在对应的LED灯上,结果符合实验要求。
实验电路及连线结束后,未拨动开关时,8盏LED灯均不亮,如果拨动开关打开,对应的LED就被点亮,拨到开关关,LED灭。
MOVDX,203H;MOVAL,90H这两句设置了A和B的工作为方式0,A为输入,B为输出。
只要键盘通过A口有数据输入,用JMPBG语句对A口状态从B口输出的重复实现,按下HALT或RST键则返回监控。
7.质疑、建议、问题讨论
用JMPBG可实现键盘输入数据通过相应的LED灯的亮,当键盘没有输入或者让LED(1……8)不按K(1……8)开关顺序来亮与灭,而是按自己的设想自动亮灭,可以把读入的数据AL,存入内存中,通过数据处理,使用LED按自己的设想来实现亮与灭。
实验过程中,除了对实验原理的理解和掌握,本实验的实现的另一个关键点在于对实验所需汇编程序的理解和编写,通过该实验也强化了我对汇编语言的学习。
福建农林大学计算机与信息学院信息工程类实验报告
实验三8253定时/计数器实验
1.实验目的和要求
本实验为综合性实验,综合了译码器、定时器\计数器、LED显示输出电路等知识。
其目的是了解定时器的硬件连接方法及时序关系,理解74LS138译码器的工作原理、掌握8253的各种模式变成及原理和LED显示输出的原理。
2.实验原理
X8253的工作频率是0~2MHZ,所以输入的CLK频率必须在2MHZ以下。
实验板上的晶振是14.7456MHZ,因此须经过8284和393分频后再作为253的CLK输入(一般可将波特率开关拨至9600,然后从开关边上的f插孔引出)。
运行本程序后,用示波器观察8253的OUT0、OUT1、OUT2脚上的输出波形。
由于LABPCI卡中的IO起始地址被重新映射过,所以在编程时,先要获得重新映射过IO起始地址,再加上实际地址,这样才是真正的物理地址。
例如再资源管理器中的IO起始地址为e000h,在8088系统中的口地址218h,那么它的物理地址为e018h。
实验程序框图为:
注:
程序初始化前,必须获得将PCI设备配置空间,通过配置空间来得到物理地址。
3.主要仪器设备(实验用的软硬件环境)
联想计算机,WINDOWS2000系统,AEDK软件,爱迪克教学实验机
4.操作方法与实验步骤
1、按下面原理图在实验箱上接线:
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
5.实验内容及实验数据记录
实验程序:
TIM_CTLEQU22BH
TIMER0EQU228H
TIMER1EQU229H
TIMER2EQU22AH
MODE03EQU00110110B
MODE13EQU01110100B
MODE22EQU10110100B
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
CLI;关中断
MOVDX,TIM_CTL;定时器0工作在方式3(方波)
MOVAL,MODE03
OUTDX,AL
MOVDX,TIMER0
MOVAL,00H
OUTDX,AL
MOVAL,02H
OUTDX,AL
MOVDX,TIM_CTL;定时器1工作在方式2(分频器)
MOVAL,MODE13
OUTDX,AL
MOVDX,TIMER1
MOVAL,0AH
OUTDX,AL
MOVAL,00H
OUTDX,AL
MOVDX,TIM_CTL;定时器2工作在方式2(分频器)
MOVAL,MODE22
OUTDX,AL
MOVDX,TIMER2
MOVAL,0AH
OUTDX,AL
MOVAL,00H
OUTDX,AL
STI
JMP$
CODEENDS
ENDSTART
6.实验数据处理与分析
调试链接并加载到实验箱上,运行后可观察到该LED在不停闪烁,符合实验要求。
运行本程序后,根据程序的要求计数器0工作在方式3,在写入控制字后,OUT变高电平即波形输出为高电平,计数器初始值为200H偶数,在GATE=1,则写入初值后开始减0计数,计数到100H,波形改变原来的电平,即低电平,计数器又重新装入初值,开始下一周的计数,周而复始,产生了一个200倍时钟周期方波。
OUT0产生的方波作为定时器的CLK1上的输入,从而实现OUT0对定时器1的控制。
置定时器1为方式2,示波器输出的波形为先高电平,当程序扫描到送初值为0AH后,波形在4个时钟周期后,变成低电平且时间延迟一个时钟周期。
波形又变成高电平。
重新下一轮的波形输出,即OUT1为1kHz的速率波。
用OUT1的输出作为CLK2的输入,实现对定时器2的控制。
置定时器2为方式2,OUT2输出接发光二极管。
7.质疑、建议、问题讨论
这次实验让我加深了对8253工作原理的理解,8253定时计数器以硬件计数器构成,计数脉冲触发硬件计数器计数,如果计数脉冲的周期固定,则计数同时产生定时,通过对计数器的工作方式和相关参数的设定,可以输出不同的波形来实现控制机器的工作状态,但8253的每个计数通道的计数都有上限,当计数的时间不能满足要求时,可以通过两个计数器的叠加实现更长的时间计数要求。
福建农林大学计算机与信息学院信息工程类实验报告
实验四D/A转换实验
1.实验目的和要求
1、编写程序,使D/A转换模块循环输出三角波和锯齿波。
2、掌握DAC0832芯片的性能、使用方法及对应硬件电路。
3、了解D/A转换的基本原理。
2.实验原理
D/A转换是把数据量转换成模拟量的变换,从D/A电路输出的是模拟电压信号。
产生方波只需控制输出高低电平的时间,产生锯齿波和三角波的表格需由数字量的增减来控制。
实验原理图:
注:
程序初始化前,必须获得将PCI设备配置空间,通过配置空间来得到物理地址。
3.主要仪器设备(实验用的软硬件环境)
联想计算机,WINDOWS2000系统,AEDK软件,爱迪克教学实验机
4.操作方法与实验步骤
1、按下面原理图在实验箱上接线:
DAC0832的片选CS0832孔接译码处228-22FH孔。
用示波器测量Aout脚波形。
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
5.实验内容及实验数据记录
实验程序:
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,SS:
CODE
START:
PUSHCS
POPDS
BG:
NOP
MOVDX,228H;锯齿波
MOVAL,00H;设置初值
MOVCX,01ffH;设置循环次数,即生成锯齿波的个数
BB:
OUTDX,AL
ADDAL,01H
CMPAL,00H;AL是否加满?
未满,继续
JNZBB
LOOPBB
NOP;延时
MOVAL,00H;三角波
MOVCX,01ffH
EE:
OUTDX,AL;生成三角波递增部份
ADDAL,01H
CMPAL,0FFH
JNEEE
FF:
OUTDX,AL;生成三角波递减部份
SUBAL,01H
CMPAL,00H
JNEFF
LOOPEE
JMPBG
CODEENDS
ENDSTART
6.实验数据处理与分析
通过实验,得到的锯齿波波形如下所示:
D/A转换是把数字量转换成模拟量的变换,本实验通过示波器可以观察到锯齿波,改变不同的初使值可以得到幅度和波形不同的波。
产生方波只需控制输出高低电平的时间,产生三角波的表格需由数字量的增减来控制,同时要注意三角波要分两段来产生。
要产生正弦波,可以造一张正弦数字量表。
7.质疑、建议、问题讨论
利用D/A转换输出模拟量与数字输入数字量成正比关系,将D/A转换器作为微机的输出接口,CPU通过程序向D/A转化器输出随时间呈现不同变化规律的数字量,如频率,振幅,方波的占空比等不同的参数,则D/A转换器就克输出各种模拟量。
产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。
通过本次实验,我再次熟悉了数字示波器的使用,实验中遇到了一些难题,通过交流和查阅书本解决了这些问题,感谢老师同学们。
福建农林大学计算机与信息学院信息工程类实验报告
实验五A/D转换实验
1.实验目的和要求
1、编程用查询方式采样电位器输入电压,并将采样到的结果实时地通过8279显示在数码管上。
2、掌握A/D芯片AD0809的转换性能及编程方法。
3、学习A/D芯片与其他芯片接口的方法,初步建立系统的概念。
2.实验原理
A/D转换器ADC0809是八位A/D转换器,每采集一次一般需100us,中断方式下,A/D转换结束后会自动产生EOC信号,将其与PC总线的IRQ2相连即能实现中断采集。
在转换的过程中,首先向A/D转换器输入n位二进制数,其最高位为1,其它位为0,然后将输入电压与A/D转换器的输出进行比较,根据比较结果确定最高位为1或着0。
这样的比较过程逐位进行下去,直至最低位,最终得到输入电压对应的n位数字量。
试验程序框图如下:
注:
程序初始化前,必须获取将PCI设备配置空间,通过配置空间来得到物理地址。
在框图中不再列出。
3.主要仪器设备(实验用的软硬件环境)
联想计算机,WINDOWS2000系统,AEDK软件,爱迪克教学实验机,示波器
4.操作方法与实验步骤
1、按下面原理图在实验箱上接线:
具体接线如下:
2、打开电源开关,编译程序,加载程序至实验板上。
3、观察实验现象,并分析实验现象。
5.实验内容及实验数据记录
Z8279EQU212H;8279命令/状态口地址
D8279EQU210H;8279数据口地址
LEDMODEQU00;左边输入,八位显示外部译码八位显示
LEDFEQEQU38H;扫描频率
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
PUSHCS
POPDS
CALLDELAY
MOVDX,Z8279
MOVAL,LEDMOD;置8279为左边输入,译码八位显示
OUTDX,AL
MOVAL,LEDFEQ;置扫描频率
OUTDX,AL
MOVCX,06H
XZ:
MOVDX,D8279
MOVAL,00H
OUTDX,AL
LOOPXZ
MOVDX,D8279
MOVAL,5eH
OUTDX,AL
MOVDX,D8279
MOVAL,77H
OUTDX,AL
NOP
BG:
MOVDX,208H
MOVAL,0;启动A/d转换
OUTDS,AL
CALLDELAY;延时等待A/D转换结束
INAL,DX;采集A/d转换结果
MOVCL,04H;将高4位数据转化成LED显示码
RORAL,CL
ANDAL,0FH
MOVBL,AL;查表,将键码放入AL中
PUSHAX
MOVCX,08H
MOVAL,00H
CLEAR:
OUTDX,AL
LOOP,CLEAR
MOVDX,Z8279
MOVAL,83H
OUTDX,AL
MOVAL,BL
POPAX
LEABX,LED
XLAT
MOVDX,D8279;将AL中内容写到数码管上
OUTDX,AL
CALLDELAY
JMPBG
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
DB5EH,79H,71H
DELAYPROCNEAR
PUSHCX
MOVCX,0f00H
LOOP$
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
6.实验数据处理与分析
通过调节变阻器使输入电压为0—5V,可以在LED显示器上看到经过AD转换后的数字值0—F。
在中断方式下,A/D转换结束后会自动产生EOC信号,将其与PC总线的IRQ2相连即能实现中断采集。
模拟输入经过A/D转换器后输出数字变量存放到内存缓冲区里。
首先选通IN0并启动A/D转换器,以MOVAL,LEDMOD即左边输入,八位显示外部译码八位显示。
且以LEDFEQEQU38H;频率扫描,再对模拟量输入端IN0清零,程序通过LOOPXZ重复执行XZ子程序。
7.质疑、建议、问题讨论
本次实验根据不同电压模拟量的输入,通过采样产生不同的数字信号显示在数码管上,由于ADC0809可以有不同的控制方式,如果在控制过程中加入8255芯片可以更好的来实现A/D转换的控制。
通过本次实验,我更多地了解了0809芯片进行模数转换的基本原理,掌握了该芯片和其他芯片进行连接的一些注意事项,也了解了8279键盘显示芯片的基本工作原理。