微机实验程序Word下载.docx
《微机实验程序Word下载.docx》由会员分享,可在线阅读,更多相关《微机实验程序Word下载.docx(31页珍藏版)》请在冰点文库上搜索。
![微机实验程序Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/08e66df5-8087-44a1-9444-8295ecebd372/08e66df5-8087-44a1-9444-8295ecebd3721.gif)
start:
movdx,04a0h;
74LS244地址
inal,dx;
读输入开关量
movdx,04b0h;
74LS273地址
outdx,al;
输出至LED
jmpstart
codeends
endstart
1.掌握PC机外存扩展的方法。
2.熟悉6264芯片的接口方法。
3.掌握8086十六位数据存储的方法。
二、实验内容
向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。
本实验用到存储器电路,见硬件说明。
1、实验接线
本实验无需接线。
2、编写调试程序
3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。
1、RAM区的地址为02000H,编程时可段地址设为01000H,则偏移地址为1000H。
2、如果按字节进行存储,则AL为55H或AAH;
如果按字进行存储,则AX应为55AAH。
3、6264、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。
本实验所进行的内存置数在程序中经常用到。
计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。
在断点1处内存区02000H~020FFH单元为00H;
在断点2处偶地址为AAH,奇地址为55H
RAM.ASM)
codesegment
org0100h
movax,0100h
movds,ax;
数据段地址
moves,ax
movsi,1000h;
偏移地址
movcx,0100h;
循环次数
moval,0
intram:
mov[si],al
incsi
loopintram
设置断点处
movcx,100h
movax,55aah
fil:
mov[si],ax;
RAM区循环置数
;
mov[si],ah
loopfil
nop;
codeends
endstart
掌握8255A的编程原理。
8255A的A口作为输入口,与逻辑电平开关相连。
8255A的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
开关量输入输出电路和8255可编程并口电路。
CS0CS8255PA0~PA7K1~K8PB0~PB7LED1~LED8
2、编程并全速或单步运行。
3、全速运行时拨动开关,观察发光二极管的变化。
当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。
8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。
实验中,8255A工作于基本输入输出方式(方式0)。
t8255.asm)
八、程序源代码清单
movdx,04a6h;
控制寄存器地址
movax,90h;
设置为A口输入,B口输出
outdx,ax
start1:
A口地址
inax,dx;
输入
movdx,04a2h;
B口地址
outdx,ax;
输出
jmpstart1
掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。
8253计数器0,1,2工作于方波方式,观察其输出波形。
脉冲产生电路、8253定时器/计数器电路
1、实验连线:
CS0CS8253OUT08253CLK2OUT2LED1示波器OUT1
CLK3
8253CLK0,CLK3
8253CLK1
2、编程调试程序
3、全速运行,观察实验结果
8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。
8253有多种工作方式,其中方式3为方波方式。
当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出低电平。
实验中,T0、T1的时钟由CLK3提供,其频率为750KHz。
程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。
T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。
n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。
可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。
程序全速运行后,LED1闪烁(周期为0.25s),OUT1示波器观察为方波,频率为15KHz。
t8253.asm)
控制寄存器
movax,36h;
计数器0,方式3
outdx,ax
movdx,04a0h
movax,7Ch
movax,92h
计数值927Ch
movdx,04a6h
movax,76h;
计数器1,方式3
movdx,04a2h
movax,32h
movax,0;
计数值32h
movax,0b6h;
计数器2,方式3
movdx,04a4h
movax,04h
计数值04h
next:
nop
jmpnext
熟悉A/D转换的基本原理,掌握ADC0809的使用方法。
从ADIN0输入一路模拟信号,启动A/D转换,用简单输入口(74LS244)查询EOC信号,转换结束后查看转换结果。
同时用万用表测量输入的模拟电压,与转换后的数字量比较。
作图,横坐标是模拟电压,纵坐标是转换的数字量,检查A/D转换的线性度。
其它通道实验与通道0类似,相应修改地址即可。
简单I/O口扩展电路、A/D、D/A电路
1、实验连线
AN0ADIN0CS0CS0809CS1CS244EOCIN0
2、用实验箱左上角的“VERF.ADJ”电位器调节ADC080912脚上的参考电压至5V。
3、编写程序并全速运行。
4、检查显示数据是否与电位器输出的电压相符合。
实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为:
MOVDX,ADDRESS;
ADDRESS是ADC0809的端口地址
OUTAL,DX;
发片选及IOW信号,启动0通道
在输入电压AN0分别为0V,1V,2V,3V,4V,5V时显示数据分别为00H,33H,66H,99H,0CCH,0FFH(数据低位略有偏差属正常现象)。
七、程序框图(实验程序名:
t0809.ASM)
con8279equ0492h
dat8279equ0490h
segcoddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
movax,34h
启动通道0
wait1:
CS244
读EOC
andax,1
cmpax,1
jnewait1;
如果EOC=0,waiting....
读转换结果
andax,0ffh
movbx,ax
nop;
disp:
movdi,offsetsegcod
movax,08h;
工作方式,16位,左入
movdx,con8279
movax,90h
写显示RAM命令,地址自增
movdx,dat8279
pushbx
andbx,0f0h;
取高4位
movcl,4
shrbx,cl
adddi,bx
moval,cs:
[di]
movah,0
写RAM0
popbx
andbx,0fh;
取低4位
写RAM1
delay:
movcx,0ffffh;
timedelay
delay1:
nop
loopdelay1
jmpstart1
熟悉数模转换的基本原理,掌握D/A的使用方法。
利用D/A转换器产生锯齿波和三角波。
三、实验原理图
本实验用A/D、D/A电路
CS0CS0832示波器DOUTDS跳线:
12
2、用实验箱左上角的“VERF.ADJ”电位器调节0832的8脚上的参考电压至5V。
3、调试程序并全速运行,产生不同波形。
4、用示波器观察波形。
利用电位器“ZERO.ADJ”可以调零,“RANGE.ADJ”电位器调整满偏值。
DAC0832在本实验中,工作在双缓冲接口方式下。
当地址线A1=0时可锁存输入数据;
当A1=1时,可起动转换输出。
所以要进行D/A转换需分二步进
行,方法如下:
MOVDX,ADDRESS;
ADDRESS片选信号偶地址
MOVAL,DATA
OUTDX,AL
ADDDX,2
六、程序框图
程序一产生锯齿波程序二产生三角波
(实验程序名:
dac-1.asm)(实验程序名:
dac-2.asm)
七、程序源代码清单
dac-1.asm
up1:
movbx,0
up2:
movax,bx
锁存数据
输出使能
incbx;
数据加一
jmpup2
endstart
dac-2.asm
up:
incbx
cmpbx,0ffh
jneup;
产生三角波上升沿
down:
decbx
cmpbx,0
jnedown;
产生三角波下降沿
jmpup
1、熟悉串行通信的一般原理和8250的工原理。
2、了解RS--232串行接口标准及连接方法。
3、掌握8250芯片的编程方法。
在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,如通讯正确则下位机返回一个同样的字符,如果不正确,则无返回或不相同。
实验原理图见8250串行接口电路。
由MAX232完成RS232电平和TTL电平的转换,由8250完成数据的收发。
8250内部有10个寄存器,分别对应着不同的IO口地址。
对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。
由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:
UART。
8250实验电路的所有信号均已连好。
利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2)
2、编写程序。
3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。
4、实验箱退出86编译系统,启动实验六的上位机驱动程序T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。
欲退出T6UP.EXE,按回车键。
实验中,通讯波特率选用9600bps。
上下位机均采用查询方式。
8250的端口地址为0480起始的偶地址单元。
实验中,上位机向下位机发送一个字符,下位机将接收到的字符返回。
事实上这就实现了串口通信的基本过程。
掌握了此实验中的编程方法再编制复杂的串行通信程序也就不难了。
串行通信和并行通信是计算机与外围设备进行信息交换的基本方法,二者有不同的特点。
简而言之,前者电路及连线简单,最少用三根线就可以实现串口通信,但通信速率慢,适用于长距离慢速通信;
后者电路及连线复杂,成本较高,但通信速率快,适用于短距离高速通信。
六、程序框图8250.ASM
*******************************************
codesegment;
definedatasegment
movbx,0480h
movdx,bx
adddx,6
movax,80h
movax,0ch;
000ch---9600,clk=4.77MHZ/4
AL=4770000/16/9600/4=8
adddx,2
movax,0h
adddx,4
movax,07;
nope,8bit,1stop
adddx,2;
nointerupt
movax,0
adddx,8h
inax,dx
movdx,bx
crd:
callrecv
callsend
jmpcrd
send:
pushax
adddx,0ah
testax,20h
jnzrecv2