收藏 分享(赏)

北京理工大学微机原理实验报告一二三.docx

上传人:weiwoduzun 文档编号:4246639 上传时间:2018-12-18 格式:DOCX 页数:27 大小:77.60KB
下载 相关 举报
北京理工大学微机原理实验报告一二三.docx_第1页
第1页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第2页
第2页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第3页
第3页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第4页
第4页 / 共27页
北京理工大学微机原理实验报告一二三.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、微机原理与接口技术硬件实验报告姓名:班级:学号:实验一 8259 中断控制器实验实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。二,实验目的(1)掌握 8259 的工作原理。(2)掌握编写中断服务程序的方法。(3)掌握初始化中断向量的方法。实验步骤(1)连线单脉冲发生器输出 P+与 8259 的 IR0 相连;8259 的片选 CS8259 与 CS0 相连;8259 的 INT 与 8086 的 INT 相连;8259 的 INTA 与 8086 的 INTA 相连;CS273 与 CS1 相连;00 与 LED0 相连, 01 与 LED1 相连,

2、依次将 CS273 接口与 LED 相连;其它线均已连好如下图:IR0IR1IR2IR3IR4IR5IR6IR7VccDDBUSDD0DD1DD2DD3DD4DD5DD6DD7A1IORDIOWR74LS32213VccCS8259D011D110D29D38D47D56D65D74A027CS1RD3WR2SP/EN16INT17INTA26IR0 18IR1 19IR2 20IR3 21IR4 22IR5 23IR6 24IR7 25CAS2 14CAS1 13CAS0 128259INTINTAVcc(2)编辑程序,编译链接后,单步运行,调试程序。(3)调试通过后,在中断服务程序的 NO

3、P 处设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处,观察寄存器 AX 的值。四,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;写 ICW1,单片 8259A,要写 0CW4MOV AX,13H OUT DX,AXMOV DX,4A2H ;写 ICW2MOV AX,80H ;IR0 的中断向量码为 80HOUT DX,AXMOV AX,01 OUT DX,AX ;一般嵌套,非缓冲方式,非自动 EOIMOV AX,0 ;写 OCW1OUT DX,AX;允许中断;中断向量存放在(0000

4、H:0200H) 开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为 80HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI ;开中断,设置 IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX 取反MOV DX,4B0H;CS273 接口的地址,与 8 个 LED 灯相连MOV AX,CX;输出高低电平控制 LED 灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2 的地址MOV AX,20H ;一般 EOI 命

5、令,全嵌套方式OUT DX,AXIRET ;中断返回CODE ENDSEND START实验思考题将 P0 连线连接到 IR1IR7 任意一个;重新编写程序。将 P0 接到了 IR1,在原程序的基础上,把写 ICW2 的控制字改为 81H,再把中断向量的入口地址改为 0204H 即可。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;写 ICW1,单片 8259A,要写 ocw4MOV AX,13H OUT DX,AXMOV DX,4A2H ;写 ICW2MOV AX,81H ;IR1 的中断向量码为 81HOUT

6、 DX,AXMOV AX,01 OUT DX,AX ;一般嵌套,非缓冲方式,非自动 EOIMOV AX,0 ;写 OCW1OUT DX,AX;允许中断;中断向量存放在(0000H:0204H) 开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204H ;中断类型号为 81HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI ;开中断,设置 IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX 取反MOV DX,4B0H;CS273 的地址MOV A

7、X,CX;输出高低电平控制 LED 灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2 的地址MOV AX,20H ;一般 EOI 命令,全嵌套方式OUT DX,AXIRET ;中断返回CODE ENDSEND START实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。设置 OCW1,屏蔽某个中断请求,运行程序观察现象。将 IR0 重新接入 LED0,设置 OCW1 为 01H,屏蔽中断 IR0,则 IR0 的中断无法得到响应。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;ICW1 的

8、地址,写初始化命令字 ICW1MOV AX,13H ;上升沿触发,单片 8259,要写 ICW4OUT DX,AXMOV DX,4A2H ;ICW2 的地址,写中断向量码 ICW2MOV AX,80H ;IR0 的中断向量码为 80HOUT DX,AXMOV AX,01 ;写中断结束控制字 ICW4OUT DX,AX ;一般嵌套,非缓冲方式,非自动 EOIMOV AX,01H ;写中断屏蔽字 OCW1OUT DX,AX;屏蔽 IR0 中断;中断向量存放在(0000H:0200H) 开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为 80HMOV AX,OF

9、FSET HINT ;中断服务程序的入口地址MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI ;开中断,设置 IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH;CX 取反MOV DX,4B0H;CS273 的地址MOV AX,CX;输出高低电平控制 LED 灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2 的地址MOV AX,20H ;一般 EOI 命令,全嵌套方式OUT DX,AXIRET ;中断返回CODE ENDSEND START实验现象:每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。

10、3. 设置 OCW2,了解中断结束方式与设置优先权。将 IR0 和 IR1 都连接到 P+上,分别连接 LED0 和 LED1 到 00 和 01。OCW2 将 E0OCW2 一般 EOI 命令,将 IR0 设置为最低中断优先级。程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,4A0H ;ICW1 的地址MOV AX,13H ;上升沿触发,单片 8259,要写 ICW4OUT DX,AXMOV DX,4A2H ;ICW2 的地址MOV AX,80H ;中断向量码为 80H,低 3 位自动写入OUT DX,AXMOV AX,0

11、1 ;写 ICW4OUT DX,AX ;一般嵌套,非缓冲方式,非自动 EOIMOV AX,0 ;写 OCW1OUT DX,AX;允许所有中断;IR0 的中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200HMOV AX,OFFSET HINT1MOV DS:SI,AXADD SI,2MOV AX,CSMOV DS:SI,AXSTI ;开中断,设置 IF=1;IR1 的中断向量存放在(0000H:0204H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204HMOV AX,OFFSET HINT2MOV DS:SI,A

12、XADD SI,2MOV AX,CSMOV DS:SI,AXJMP $ ;原地跳转HINT1:;中断服务程序 1XOR CX,0F0H ;CX 高 4 位取反MOV DX,4B0H;CS273 的地址MOV AX,CX ;输出高低电平控制 LED 灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2 的地址MOV AX,E0H ;一般 EOI 命令,IR0 优先级最低OUT DX,AXIRET ;中断返回HINT2: ;中断服务程序 2XOR CX,00FH ;CX 低 4 位取反MOV DX,4B0H;CS273 的地址MOV AX,CX;输出高低电平控制 LED 灯的亮灭OUT D

13、X,AXMOV DX,4A0H ;OCW2 的地址MOV AX,E0H ;一般 EOI 命令,IR0 优先级最低OUT DX,AXIRET ;中断返回CODE ENDSENDSTART实验现象:CS273 的 00 与 LED0 相连,01 与 LED1 相连,02 与 LED2 相连,依次下去,直至 07 与 LED7 相连。 每按单脉冲发生器一次产生一次中断申请,由于IR0 的优先级比 IR1 低,故先响应 IR1,后响应 IR0,观察到低 4 位的 LED 灯先点亮或熄灭,高 4 位的 LED 灯后点亮或熄灭。实验心得实验让我对 8259A 的内部寄存器的功能有了更深的认识,掌握了 82

14、59A 的初始化步骤及其工作方式的选择,以及中断服务程序的编写。使用实验箱和编译软件,使我们在编程和动手操作方面都有了很大的提高,软硬件的结合,使我们更加透彻的理解了所学知识。实验二 8255 并行接口实验实验内容8255 的 A 口作为输入口,与逻辑电平开关相连。8255 的 B 口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。二,实验目的(1)掌握 8255 的工作原理。(2)掌握编写 8255 并行接口初始化及编程实现的方法。三,实验仪器微机实验教学系统实验箱、8086CPU 模块四,实验步骤连线8255 的 PA0PA7 分别与逻辑电平开关的 K

15、1K8 相连PB0PB7 分别与发光二极管电路的 LED1LED8 相连CS0 与 8255 的片选 CS8255 相连其它线路均已连好具体如图所示:D034 D133 D232D331 D430 D529D628 D727PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10RD5 WR36 A09A18 RESET35 CS68255D0D1D2D3D4D5D6D7R

16、DWRA0A1RSTCS8255PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7CS0K1K2K3K4K5K6K7K8L1L2L3L4L5L6L7L8编辑程序,编译链接后,单步运行,调试程序。调试通过后,全速运行,观察实验结果。撰写实验报告。五,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,90H ;写 8255 的控制字,A 组工作在方式 0,A 口输入,C 口高 4 位输出, B 组工作在方式 0

17、,B 口及 C 口的低 4 位均工作在输出OUT DX,AXSTART1:MOV DX,04A0HIN AX,DX ;读取 A 口数据MOV DX,04A2HOUT DX,AX ;将从 A 口读取的数据从 B 口输出,控制 LED 灯JMP START1 CODE ENDSEND START六,实验现象LED 灯低电平有效。当某一开关拨到低电平时,对应的 LED 灯点亮。当某一开关拨到高电平时,对应的 LED 灯熄灭七,思考题1将片选线接到 CS1CS7;重新编写程序。CS0 对应地址是 04A0-O4AF, CS1 对应地址是 04B0-O4BF.现将片选线接到 CS1,重新编程:CODE

18、SEGMENT PUBLIC ASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;CS1 对应的地址MOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:如同片选线接到 CS02交换 A B 接线,A 口输出、B 口输入;重新编写程序。PB0PB7 分别与逻辑电平开关的 K1K8 相连PA0PA7 分别与发光二极管电路的 LED1LED8 相连CODE SEGMENT PUBLIC ASSUME CS:CODEORG

19、100HSTART:MOV DX,04B6H ;片选线接到 CS1MOV AX,82HOUT DX,AX ;写控制字,A,B 组均工作在方式 0,A 口输出,B 口输入START1:MOV DX,04B2HIN AX,DX ;读取 B 口数据MOV DX,04B0HOUT DX,AX ;将 B 口的数据从 A 口输入,控制 LED 灯JMP START1CODE ENDSEND START实验现象:LED 灯低电平有效。当某一开关拨到低电平时,对应的 LED 灯点亮。当某一开关拨到高电平时,对应的 LED 灯熄灭3C 口 4 位接 LED;4 位接开关;重新编写程序。PC4PC7 分别与逻辑电

20、平开关的 K1K4 相连PC0PC3 分别与发光二极管电路的 LED1LED4 相连CODE SEGMENT PUBLIC ASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;片选接 CS1MOV AX,88HOUT DX,AX ;A,B 组均工作在方式 0,C 口高 4 位输入,低 4 位输出START1:MOV DX,04B4HIN AL,DX;读取 C 口数据MOV CL,4ROR AL,CL ;不带 CF 位的循环右移 4 位,使 C 口数据的高 4 位与低 4 位互换MOV DX,04B4HOUT DX,AL ;将 C 口高 4 位的数据从低 4 位输

21、出,控制 LED 灯JMP START1CODE ENDSEND START实验现象:LED 灯低电平有效。当某一开关拨到低电平时,对应的 LED 灯点亮。当某一开关拨到高电平时,对应的 LED 灯熄灭实验三 8253 可编程定时器一,实验内容8253 计数器 0,1 ,2 工作于方波方式,观察其输出。二,实验目的掌握 8253 定时/ 计数器的编程原理。三,实验设备微机实验教学系统实验箱、8086CPU 模块。四,实验步骤连线D08 OUT0 10D17 GATE0 11D26 CLK0 9D35D44D53D62 OUT1 13D71 GATE1 14CLK1 15CS21RD22WR23

22、OUT2 17A019 GATE2 16A120 CLK2 188253D0D1D2D3D4D5D6D7CS8253RDWRA0A1GATE0 out0GATE1 out1GATE2 out2VCCVCCVCC 6MCLK3CZ47P03P14P25P36Q0 14Q1 13Q2 12MR 1TC 15CEP7CET10CLK2PE9Q31174LS161CLK0CLK1CLK2CS0 与 8253 的片选 CS8253 相连;CLK3( 750KHz)与 8253CLK0 相连;8253 的 OUT0 与 8253CLK2 相连;OUT2 与发光二极管 LED1 相连;其它线均已连好。编辑程

23、序,编译链接后,跟踪运行,调试程序。调试通过后,全速运行,观察实验结果。撰写实验报告。五,实验源程序CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AX ;写控制字,计数器 0 工作在方式 3,先读写计数器低 8 位,再读写计数器高 8 位,二进制计数MOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AX ;将计数初值 927CH 写入计数器 0MOV DX,04A6HMOV AX,0B6HOUT DX,AX ;写控制字,计数器 2 工作在方式

24、3,先读写计数器低 8 位,再读写高 8 位,二进制计数MOV DX,04A4HMOV AX,4OUT DX,AXMOV AX,0OUT DX,AX ;将计数初值 4H 写入计数器 2JMP $ ;原地跳转,等待CODE ENDSEND START六,实验现象LED1 灯交替亮灭(闪烁) ,且亮灭时间相等七,思考题定时器 2 计数值改为 20H;观察其现象。CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HO

25、UT DX,AXMOV DX,04A6HMOV AX,096HOUT DX,AX ;写控制字,计数器 2 工作在方式 3,只写计数器低 8 位,二进制计数MOV DX,04A4HMOV AX,20HOUT DX,AX;将计数初值 20H 写入计数器 2JMP $CODE ENDSEND START实验现象:LED1 灯等时间间隔的交替两灭,但亮灭的周期更长,即灯闪烁得更慢将定时器 2 改为方式 2 分频器方式;观察其现象。CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04

26、A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器 2 工作在方式 2,只写计数器低 8 位,二进制计数MOV AX,094HOUT DX,AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实验现象:LED1 灯亮的时间变长,灭的时间变短将 GATE2 接到开关上;观察其现象。用上面思考题 2 的程序,把 GATE2 接到开关 K1 上。当打开开关(开关置 1)时,实验现象同思考题 2;当开关关闭时,LED1 灯始终灭。4. 将 GATE2 接到 PUL P0

27、 开关上,计数器 2 改为方式 1 ;观察其现象。GATE2 接到 PUL P0 开关的 P+端口CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器 2 工作在方式 1,只写计数器低 8 位,二进制计数MOV AX,092HOUT DX,AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实

28、验现象:按一下 PUL P0 开关,LED1 灯亮,但几秒后就会熄灭。这时,再按动 PUL P0 开关,LED1 灯亮,几秒后又会灭,亮灭情况同第一次相同。每次当灯熄灭后,按动 PUL P0 开关,LED1 灯会产生同第一次相同的亮灭情况。每次在灯未熄灭时,按动 PUL P0 开关,则灯亮的时间变长,对应示波器的低电平时间加长。5. 将 GATE2 接到 PUL P0 开关上,计数器 2 改为方式 5 ;观察其现象。GATE2 接到 PUL P0 开关的 P+端口CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,

29、36HOUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04A6H;写控制字,计数器 2 工作在方式 5,只写计数器低 8 位,二进制计数MOV AX,09AHOUT DX,AXMOV DX,04A4HMOV AX,20HOUT DX,AXJMP $CODE ENDSEND START实验现象:触发 PUL P0 开关后一段时间 LED1 灯闪一下,然后就立即熄灭,示波器低电平极短八,实验遇到的问题及实验心得实验还算顺利,没有遇到什么问题。八,实验心得通过 8255 并行接口实验,我对 8255 有了更深刻地了解

30、,对其在内存中的地址,各寄存器的使用有了较为清晰的认识。通过思考题的练习,掌握了 8255 的编程原理。软硬件的结合,使我们学以致用,能力有了较大提升。本次实验,收获颇多,更形象地熟悉了 8253 定时计数器的 6 种工作方式的使用及其特点,包括每种方式的控制字、启动方式、输出波形的特点等。通过动手接硬件电路,熟练了实验箱的使用,而且用示波器和 LED 灯观察实验现象,方便直观。实验四 8250 串行接口实验实验目的(1)熟悉串行通信的一般原理和 8250 的工作原理。(2)了解 RS232 串行接口标准及连接方法。(3)掌握 8250 芯片的编程方法。二,实验设备微机实验教学系统实验箱,80

31、86CPU 模块三、实验内容在实验箱与 PC 机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。四,实验步骤无须接线,内部已经连好。8250 的端口地址为 0480H 起始的偶地址单元。D01D12D23D34D45D56D67D78A226A127A028CS012CS113CS214XTAL116XTAL217DISTR21DOSTR18MR35GND20VCC 40RLSD 38RI 39BAUDOUT 15RCLK 9DOSTR 19DISTR 22ADS 25CTS 36DSR 37SOUT 11RTS 32

32、DTR 33OUT1 34OUT2 31SIN 10INTR 30DDIS 23CSOUT 248250VCCD0D1D2D3D4D5D6D7A0A1A2CS8250RESET123U?A12U?A编写下位机程序,编译链接后,全速运行。退出“8086 实验系统”,运行“串口调试助手”上位机程序。将“串口调试助手 ”程序输入和输出都调整为 16 进制格式,发送一个 16 进制数,观察返回的是否是同样一个 16 进制数。五,实验程序程序流程图:实验源程序:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,486H ; 写通信线路控制寄存器

33、D7=1MOV AX,80HOUT DX,AXMOV DX,480H ;设置波特率低字节MOV AX,12OUT DX,AXMOV DX,482H ;设置波特率高字节MOV AX,0OUT DX,AXMOV DX,486HMOV AX,3OUT DX,AXMOV DX,482H ;中断允许寄存器MOV AX,0OUT DX,AXMOV DX,48AH ;清除原始错误状态IN AX,DXMOV DX,480H ;清除原始状态IN AX,DXLOOP1:CALL RECV CALL SEND JMP LOOP1;循环发送SEND:; 发送子函数PUSH AX MOV DX,48AHIN AX,DX

34、TEST AX,20HJNZ SEND2 ;发送数据寄存器空,则跳转至 SEND2,发送字符POP AX ;发送数据寄存器不是空,不可发送JMP SENDSEND2:POP AX MOV DX,480H ;指向发送接收数据寄存器,发送字符OUT DX,AXRETRECV: ;接收子函数MOV DX,48AHIN AX,DXTEST AX,1JZ RECV ;未接到到一个字符,则跳转至 RECV,若接收到字符,则顺序往下执行。MOV DX,480H ;接收到字符,指向接收缓存器IN AX,DX ;读取接收缓冲区的字符RETCODE ENDSEND START实验现象:在发送区键入一个 16 进制

35、数,接受区是同样一个 16 进制数。六,思考题连接 8255 将接收到的 16 进制数;驱动 8 个彩灯;观察其现象。将 8255 的片选连到 CS0,将 PB0PB7 依次与 LED1LED8 相连接CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6H ;8255 的控制字,B 口输出MOV AX,90HOUT DX,AXMOV DX,486H ;8250 初始化MOV AX,80HOUT DX,AXMOV DX,480HMOV AX,12OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,

36、486HMOV AX,3OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,48AHIN AX,DXMOV DX,480HIN AX,DXLOOP1:CALL RECV ;接收输入的数据CALL SEND ;将数据发送给上位机MOV DX,04A2H ;将 8250 发送的存于 AX 中的数据,从8255 的 B 口输出,驱动 8 个 LED 灯OUT DX,AXJMP LOOP1;循环发送SEND:PUSH AX MOV DX,48AHIN AX,DXTEST AX,20HJNZ SEND2 POP AX JMP SENDSEND2:POP AX MOV

37、DX,480HOUT DX,AXRETRECV:MOV DX,48AHIN AX,DXTEST AX,1JZ RECV MOV DX,480HIN AX,DXRETCODE ENDSEND START实验现象:当在“串口调试助手”的发送区键入一个 8 位的 16 进制数后,PC机接收区会显示发送的数字,同时 8 个 LED 也会对应的亮(或灭) 。连接 8255 将开关的状态以 16 进制数的方式发送到 PC 机;观察其现象。将 8 个开关连接到 8255 的 PA0PA7 口,在 pc 机上观察接收区的数据CODE SEGMENT PUBLICASSUME CS:CODEORG 100HST

38、ART:MOV DX,04A6H ;8255 的控制字,A 口输入MOV AX,90HOUT DX,AXMOV DX,486H ;8250 初始化MOV AX,80HOUT DX,AXMOV DX,480HMOV AX,12OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,486HMOV AX,3OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,48AHIN AX,DXMOV DX,480HIN AX,DXLOOP1:MOV DX,04A0H ;从 8255 的 A 口输入 8 个开关的状态IN AX,DXCALL S

39、END ;将 AX 中的内容串行发送出去,可在 PC 机上显示JMP LOOP1SEND:PUSH AX MOV DX,48AHIN AX,DXTEST AX,20HJNZ SEND2 POP AX JMP SENDSEND2:POP AX MOV DX,480HOUT DX,AXRETCODE ENDSEND START实验现象:8 个开关的状态循环显示在 PC 机的接收区,当开关状态改变时,显示的数据也随之改变。连接 8255 和 8253 的 GATE0 ;使用“串口调试助手 ”程序控制 8253 的振荡。将 8255 的片选接到 CS0,将 8253 的片选接到 CS1,8255 的

40、B 口输出,其中 PB0与 GATE0 相连,CLK3(750KHz )与 8253CLK0 相连 ,8253 的 OUT0 与 8253CLK2 相连,OUT2 与发光二极管 LED1 相连CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;8253 的控制字,计数器 0 工作于方式 3,二进制计数,先读写低八位,再读写高八位MOV AX,36HOUT DX,AXMOV DX,04B0H ;将 927CH 的初值写入计数器 0MOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AXMOV DX,04B6

41、H ;设置计数器 2 工作于方式 3,二进制计数,先读写低八位,再读写高八位MOV AX,0B6HOUT DX,AXMOV DX,04B4H ;給计数器 2 写初值 4HMOV AX,4OUT DX,AXMOV AX,0OUT DX,AXMOV DX,04A6H ;8255 的初始化,A 口输入,B 口输出MOV AX,90HOUT DX,AXMOV DX,486H ;8250 串行接口的初始化MOV AX,80HOUT DX,AXMOV DX,480HMOV AX,12OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,486HMOV AX,3OUT DX

42、,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,48AHIN AX,DXMOV DX,480HIN AX,DXLOOP1:CALL RECV CALL SEND MOV DX,04A2H ;将 AX 中的数据(串行发送的数据)从B 口输出OUT DX,AXJMP LOOP1SEND:PUSH AX MOV DX,48AHIN AX,DXTEST AX,20HJNZ SEND2 POP AX JMP SENDSEND2:POP AX MOV DX,480HOUT DX,AXRETRECV:MOV DX,48AHIN AX,DXTEST AX,1JZ RECV MOV

43、DX,480HIN AX,DXRETCODE ENDSEND START实验现象:任意键入一个最低位是 1 的 8bit 的 16 进制数据,使 GATE0 置位,则 pc 机的接收区会显示输入的数据,同时,LED1 灯会一直闪烁七,实验遇到的问题与实验心得实验遇到的问题:在做思考题 3 时,将 PB0 与 GATE0 相连,CLK3(750KHz)与 8253CLK0 相连,8253 的 OUT0 与发光二极管 LED1 相连,则键入一个 8bit 的 16 进制数字后,LED1 灯会一直亮或者一直灭,没有闪烁,查了一会儿,发现时时钟 CLK3 的频率太高,仅经过计数器 0 分频是不够的,分

44、频后频率依旧很高,LED1 灯的闪烁肉眼无法分辨,需要再经过计数器 2 分频,才能看到灯的闪烁实验心得:在 8250 串行接口实验中,充分体会到了它的“串行”接口作用,特别是 8250芯片的编程方法,其清晰的条理使我对它有了更为深刻的理解。8250 与 8255并行接口芯片的结合使用,更是体会到了串行通信和并行通信的异同。实验五 ADC0809 实验实验目的(1)掌握转换的基本原理。(2)掌握的使用方法。二,实验设备微机实验教学系统实验箱,8086CPU 模块三、实验内容按查询方式采样一路 A/D 转换数据,用简单输入口 74LS244 查询 EOC 信号。每循环一次 0 通道采样一次。0 通

45、道的采样结果放入 AX 中,AL 有效。四,实验步骤连线实验原理图如下:IN0IN1IN2IN3IN4IN5IN6IN7KB3CZ30EOCKB34.7K CZ27VCCD0D1D2D3D4D5D6D7VREFA0A1A2CLK31 23A74LS024 56B74LS02 RDCS0809WRIN-026 msb2-1 212-2 20IN-127 2-3 192-4 18IN-228 2-5 82-6 15IN-31 2-7 14lsb2-8 17IN-42 EOC 7IN-53 ADD-A 25IN-64 ADD-B 24ADD-C 23IN-75 ALE 22ref(-)16 ENAB

46、LE 9START 6ref(+)12 CLOCK 10U20ADC0809其中,将可变电位器 AN0 与 ADC0809 的 ADIN0 相连;将 CS0 与 ADC0809 的片选 CS0809 端相连;将 ADC0809 的 EOC 与 74LS244 的 IN0 相连;将 CS1 与 74LS244 的片选 CS244 端相连。编辑程序,编译链接后,调试程序。调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。撰写实验报告五,实验程序实验流程图:实验源程序:CODE SEGMENT PUBLICASSUME CS:CODEORG 100H

47、START:MOV DX,4A0H ;指向通道 0CALL GETAD ;调用 A/D 转换子程序,取得 A/D 值JMP START DELAY: ;延时子程序MOV BP,1000HDELAY1:DEC BPCMP BP,0JNE DELAY1RETGETAD: ;A/D 转换子程序PUSH DX MOV AX,34H 启动 A/DOUT DX,AXCALL DELAY MOV DX,4B0H ;指向 74LS244 地址WAIT1:IN AX,DXTEST AX,1JZ WAIT1 ;EOC=0,正在变换,跳至 WAIT1POP DX ;EOC=1,依次变换完毕,读取 A/D 值IN AX,DXMOV AH,0RETCODE ENDSEND START实验现象:在“JMP START”处设置断点,全速运行到

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

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报