微机接口实验指导

更新时间:2024-07-07 08:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微 机 原 理 与 接 口 技 术

实 验 指 导

琚生根、林建辉、杨雄、何贤江

四川大学计算机学院 启东计算机厂有限公司

2005年3月

四川大学学生实验守则

川大校[2004]60号

一、认真预习,明确实验的目的和基本要求。实验前必须认真预习实

验讲义或实验指导书,掌握实验的原理、方法、步骤;了解有关仪器的性能、配置;熟悉其操作规程及安全注意事项。综合开放性实验项目,必须在实验教师的指导下拟定出正确的实验方案。

二、严格遵守操作规程,科学进行实验。实验过程中必须听从实验教师和实验技术人员的指导;切实做到独立思考、科学操作、细致观察、如实记录。自觉培养严谨、求是的科学作风。积极参与实验教学改革,提倡树立生动活泼、刻苦钻研、善于探索、勇于创新、积极学习的学风。实验完毕应及时整理实验数据记录,理论联系实际,认真分析实验中观察到的现象和存在的问题,按要求写出实验报告,按时送交实验指导教师。不准弄虚作假,不准任意修改实验数据,不准抄袭实验报告,一经发现和核实,除给予批评教育和书面检查外,该实验成绩以零分计;凡两次重犯者,该实验课程成绩以零分计,必须全部重做才能获得该实验课程学分(重做实验的费用需另交);经多次教育屡教不改者,给予警告以上处分。 三、遵守纪律,不迟到早退,不准无故缺席。不准在实验室内进行与本实验无关的活动,不准利用计算机玩电子游戏,未经批准不得动用与本实验无关的设备器材。实验仪器设备、工具、用具等应妥善保管,实验或实习结束后,整理好仪器设备并如数清点归还,若有遗失或损坏应按《四川大学损坏、遗失实验器材实行赔偿的暂行办法》和学校有关规定处理。 四、确保安全,注意卫生。严格遵守实验室安全管理条例和仪器设备操作规程,不准违规操作;保持实验室整洁、科学、规范、文明、有序的工作环境。如有违反,造成设备器材或设施损坏引发安全事故,当事人必须写出书面报告,由实验指导教师和实验室负责人根据损失大小、情节轻重、按有关规定提出处理意见并报学院和学校批准后,分别给予批评教育、经济处罚、行政处分直至追究法律责任。

四 川 大 学

二○○四年四月一日

2

第一章 DVCC系列微机原理及接口技术实验系统性能

§1.1 系统性能指标

1.仿真、实验相结合。

2.实验模块化结构,互不影响,通过连线又可将各模块有机结合。 3.实验内容设置丰富、合理,满足教学大纲要求。

4.每项实验连线方便,既能满足学生动手能力愿望,又能充分发挥学生的创新能力,提高教学实验的质量和效率。

5.自带集成调试环境,WIN9X/NT软件平台,含:源程序库、芯片资料库、图库、元器件位置图、实验说明、动态调试程序库等。

6.提供源程序编辑、汇编、链接。

7.电路具有过压保护,确保系统安全、可靠工作。

8.整机采用热风整平工艺基板、波峰焊接,实验连接口采用圆孔插座,整机可靠性好。 9.自带EPROM写入器,可对27128、2764EPROM进行写入。 10.自带键盘示器,进口键座,专用彩色键帽,绝无按键不可靠现象。

11.系统用串行口、用户用串行口相互独立,在通过RS232与上位机联机状态下,同样可以调试用户串行口程序。

12.系统带有示波器功能,配上示波器卡,通过RS232口,可将测得的信号显示在上位机的屏幕上。

该系统通过RS232口可连各种上位机,在WIN9X/NT软件平台进行仿真开发和实验。同时系统自带键盘显示器,无须任何外设也能独立工作,支持因陋就简建立微机及接口技术实验室。系统提供实验程序库,均放在系统光盘上,可直接使用。同时部分实验程序机器码已固化在EPROM中,便于用户验证电路的正确性。

13.配上选件卡,可做8237A可编程DMA控制实验、8259A中断控制器实验、8250A串行口控制实验。

14.系统自带机电控制平台(含步进电机、直流电机、电子音响),可做机电控制实验。

§1.2 系统提供的主要实验项目如下:

1.A/D转换0809应用 2.D/A转换0832(一)

3

3.D/A转换0832(二) 4.并行口8255A应用 5.定时/计数器8253A应用

6.中断控制器8259A应用(需加接口板)

7.利用8251A串行接口和应用(一)——双机通信(发送) 8.利用8251A串行接口和应用(二)——双机通信(接收) 9.小直流电机调速实验 10.步进电机控制实验 11.继电器读写实验 12.存储器读写实验

13.8237A可编程DMA控制实验(需加接口板) 14.8259A串级中断控制实验(需加接口板) 15.使用8250SA的串行通信实验(需加接口板)

4

第二章 DVCC系列微机原理及接口技术实验系统安装与启动

§2.1 8086/88系统安装与启动

1.DVCC系列实验系统在出厂时均为51状态。因此,要进入86状态必须按下列步骤安装。

▲ a.SK1位1-5置OFF,位6、10置ON;位8、9置OFF

b.红色开关SK2位1-2置OFF c.SK3置OFF d.SK4、SK5置ON

e.卧式 拨动开关KBB置88位置(即ON位置) f.短路片DL1-DL4连2、3

▲ 对DVCC-598JH机型,立式开关KBB1置51位置。

▲ 将86CPU卡插到主板上,86CPU卡上的CZ1对应主板的J6,86CPU卡CZ2对应主板J9。

2.接上+5V电源,将随机配备的2芯电源线一头红线接入外置电源的+5V插孔,黑线接入外置电源的地插孔;另一头二芯插头对应插入主机板的J1插座。如果电源内置,只能打开-220V电源开关即可。上电后,DVCC系列实验系统上显示闪动的“P.”。

如果是独立运行,按DVCC系列用户手册进入键盘管理监控,就能马上做实验。如果连上位机工作,必须将随机配备的D型9芯插头一端插入DVCC系统J2插座,另一端插入上位机串行口COM1-COM2任选。

3.运行上位机的DVCC联机软件,双方建立通信。

§2.2 DVCC系列实验系统实验调试关说明

1.实验的一般步骤 a.运行DV86H软件。

b.编写源程序、汇编排错、形成正确的源和序。 c.编择、连接、形成最终目标文件.EXE。 d.装载最终目标文件到实验系统RAM区。 e.调试实验程序,若有错重复b-d。 2.实验过程中的几点特别说明:

a.在进入实验前请仔细观察DVCC系列单片机微机实验系统结构图,为后面实验的顺利进行做好准备。

5

b.本手册中实验原理图上的粗实线部分表示用户实验时要用导线连接的。

c.所有实验都是相互独立的,次序上没有固定的先后关系,在使用本手册教学时,教师可根据具体的教学要求选择相应的实验。

d.手册中每个实验的实验步骤都是针对我们提供的实验演示程序编写的。如果学生自己编写程序或搭实验线路则由自己确定。第一个实验的步骤很详尽,望学生仔细阅读,以便掌握如何装载实验程序、运行实验程序、观察实验结果。相对来说,第二个实验以后的步骤较为简单。

3.实验过程中实验结果的查看

a.仿真实验系统除在连续运行或和上位机联机状态下,一般不按总清键,只按MON键返回监控。

b.实验中某些实验结果的查看可采用下列办法:

◇ 以单步方式运行后,再进入存储器、寄存器检查、修改等状态,以查看结果。 ◇ 在合适的地方设置断点或结束地址,全速成运行程序,当程序运行到断点时会自动停下来,再进入存储器、寄存器检查、修改等状态,以查看结果。

◇ 开启有关变量窗、寄存器窗口,以连续单步方式运行程序,在窗口中观察运行结果。

§2.3 实验程序有关说明

1.在本实验指导书中编排了14个硬件实验,部分的实验演示程序已固化在监控中,通过DVCC仿真实验系统的键盘显示器直接运行实验程序和观察实验结果。

2.如果DVCC仿真实验系统在连PC机状态进行各种实验,其实验演示程序既可运行实验监控中的程序,亦可运行DVCC/H8EXE子目录下的实验程序(.EXE),把.EXE文件用目标文件传送命令传送到DVCC仿真实验系统RAM区。然后通过调试命令运行实验程序,在窗口中观察实验结果。每个实验程序的起始地址、目标文件名、源文件名、实验名称见下表2—1。

3.系统监控中的实验程序,不能以端点方式运行。

4.实验原理上的粗实线,表示用户要在实验时用导线连接起来的。

5.所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本系统进行教学时,教师可根据本院(校)具体的教学要求,选择相应的实验。

注:实验程序的源文件在\\DVCC\\H8ASM子目录下。

实验程序的目标文件在\\DVCC\\H8AXM子目录下。

6

表2—1 实验序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 起始地址 实验名称 A/D转换0809应用 D/A转换0832应用(一) D/A转换0832应用(二) 并行口8255A应用 定时/计数器8253A应用 中断控制器8259A应用 利用8215A串行接口和应用——双机通信(发送) 利用8215A串行接口和应用——双机通信(接收) 小直流电机调速实验 步进电机控制实验 继电器控制实验 存储器读与实验 8237A可编程DMA控制实验 8259A串级中断控制实验 使用8250A的串行通信实验 文件名 监控中 H81S H82S H83S H84S H85S H86S H87S H88S H89S H810S H811S H812S H813S H814S H815S F000:9000H F000:90A0H F000:90B0H F000:90E0H F000:9180H F000:91A0H F000:9300H F000:9500H F000:9600H F000:9630H F000:9680H F000:9700H 无 F000:9900H F000:9B00H 软件中 1000H 10A0H 10B0H 10E0H 1180H 11A0H 1300H 1500H 1600H 1630H 1680H 1700H 1730H 1900H 1B00H

7

第三章 实验指南

实验一 A/D转换0809应用 实验二 D/A转换0832(一) 实验三 D/A转换0832(二) 实验四 并行口8255A应用 实验五 定时/计数器8253A应用

实验六 利用8251A串行接口和应用(一)——双机通信(发送) 实验七 利用8251A串行接口和应用(二)——双机通信(发送) 实验八 小直流电机调速实验 实验九 步进电机控制实验 实验十 继电器读写实验 实验十一 存储器读写实验

实验十二 8237A可编程DMA控制实验 实验十三 8259A串级中断控制实验

8

实验一 使用ADC0809的A/D转换实验

一、实验目的

加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。

二、预备知识

逐次逼近法A/D也称逐次比较法A/D。它由结果寄存器、D/A、比较器和置位控制逻辑等部件组成,如图3—1所示。

图3—1

启动 置位 控制逻辑 DONE N位 寄存器 模拟量输入 N位 D/A A B 三、实验原理图

图3—2

9

四、实验内容

1 、实验线路的连接

(1)将A/D区0809芯片的CLK连MP区分频器74LS393(左上方)输出端T4插孔。 (2)将通道0模拟量输入端IN0连电位器W1的中心抽头VO1(0~5V)插孔。 (3)A/D区0809芯片的VREF和W2区的VREF相连。,W2区VIN接外部电源的+12V,并调节W2,使Vref=+5V。如果电源内置,W2区VIN连D/A区的+12V插孔。

(4)0809的数据线D0~D7用排线连到BUS2区XD0~XD7。

(5)在EXIC2上插上74LS02芯片一片,按图连好有关线路(图3—2中粗黑线部分需要用户自己连线)。

2 、 实验软件编程提示

本实验软件要求:初始显示“0809-00”,然后根据A/D采样值,不断更新显示。

五、实验步骤

1、按图3—2正确连接好实验线路 2、理解实验原理

3、仔细阅读,弄懂实验程序并画出程序流程图 4、运行实验程序

实验软件参考程序存放在两个地方: 一是放在系统监控中, 二是放在随机软盘中。 每个实验程序所对应的起始地址见表2-1。 (1)在WIN95/98平台下双击DVCC图标。 (2)在DVCC实验系统上按PCDBG键。

(3)在DVCC实验系统主菜单中,单击工具栏“联接”按钮。 (4)在成功联机后,单击菜单栏中的“动态调试”。

(5)在“动态调试”菜单栏中选择“传送(.EXE)文件”并单击它,出现“打开”对话框,在该框中选择欲传送的实验程序的文件名后(本实验文件名为\\DVCC\\H8EXE\\H81S.EXE),单击“打开”进行传送。

(6)在当前目录下所生成的.EXE文件传送时自动将实验程序装载到用户的对应起始地址中去,如不是当前目录下生成的.EXE文件则根据提示输入用户程序的起始地址。 (7)单击工具栏中“运行”按钮,运行实验程序,并观察实验结果。调节电位器W1改变模拟量输入的值,在数码管最后二位应显示转换好的相应的数字量。

(8)运行完毕,在DVCC实验系统上按复位按钮后,再按PCDBG键,并单击OK,运行结束。

10

(9)如选择另一实验则重复上述步骤中5~8。

5、调节电位器W1,显示器上会不断显示新的转换结果。模拟量和数字量对应关系的典型值为:

0-00H

+2.5V-80H +5V-FFH

6、按RESET键或STOP键后,退出运行状态。

特注:如果没有PC机的情况下,实验系统独立工作时,可以运行监控中已调好的实验程序。实验步骤如下:

1、在DVCC实验系统显示监控提示符“P.”状态下,输入起始段地址F000(后面三个0可以省略)

2、按F1键,再输入起始偏移地址9000

3、按EXEC键,在系统显示器上显示“0809XX”。“XX”表示输入的模拟量经A/D转换后的数字量。

4、调节电位器W1,显示器上会不断显示新的转换结果。 模拟量和数字量对应关系的典型值为: 0-00H +2.5V-80H +5V-FFH

六、实验参考程序

CODE SEGMENT ASSUME CS:CODE ADPORT EQU 0010h ORG 1000H

START: JMP ADCONTORL ADCONTORL:CALL FORMAT ADCON: MOV AX,00 MOV DX,ADPORT OUT DX,AL MOV CX,0500H DELAY: LOOP DELAY MOV DX,ADPORT IN AL,DX CALL CONVERS CALL DISP JMP ADCON

CONVERS:MOV AH,AL AND AL,0FH MOV BX,077AH MOV DS:[BX],AL INC BX MOV AL,AH

11

AND AL,0F0H MOV CL,04H SHR AL,CL MOV DS:[BX],AL RET

disp: mov dx,077Fh mov ah,20h

disp0: mov cx,00ffh mov bx,dx mov bl,ds:[bx] mov bh,0h push dx mov dx,0ff22h mov al,cs:[bx+1060h] OUT DX,AL mov dx,0ff21h mov al,ah OUT DX,AL disp1: loop disp1 pop dx dec dx shr ah,01h jnz disp0 mov dx,0ff22h mov al,0ffh OUT DX,AL ret

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0ah db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh FORMAT: MOV BX,0 MOV WORD PTR DS:[BX+077AH],0000H ADD BX,2 MOV WORD PTR DS:[BX+077AH],0009H ADD BX,2 MOV WORD PTR DS:[BX+077AH],0008H RET CODE ENDS END START

12

实验二 使用DAC0832的D/A转换实验(一)

一、实验目的

熟悉DAC0832数模转换器的特性和接口方法,掌握D/A 输出程序的设计和调试方法。

二、预备知识

1.DAC0832结构

DAC0832是用先进的CMOS/Si—Cr工艺制成的双列直插式单片8位D/A转换器。它可以直接和8088CPU相接口。它采用二次缓冲方式(有两个写信号/WR1、/WR2),这样可以在输出的同时,采集下一个数字量,以提高转换速度。而更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。它的主要技术参数如下:分辨率为8位,电流建立时间为1us,单一电源5V—15V直流供电,可双缓冲、单缓冲或直接数据输入。

*/LE=“1”,Q输出跟随D输入,/LE=“0”,D端输入数据被锁存 2.DAC0832引脚功能

*D10~D17:数据输入线,TTL电平,有效时间应大于90ns(否则锁存的数据会出错); *ILE:数据锁存允许控制信号输入线,高电平有效; */CS:选片信号输入线,低电平有效;

*/WR1:输入锁存器写选通输入线,负脉冲有效(脉宽应大于5400ns)。当/CS为“0”、ILE为“1”、/WR1为“0”时,D10~D17状态被锁存到输入锁存器。

*/XFER:数据传输控制信号输入线,低电平有效;

*/WR2:DAC寄存器写选通输入线,负脉冲(宽于500ns)有效,当/XFER为“0”且/WR2有效时,输入锁存器的状态被传送到DAC寄存器中;

*Iout1:电流输出线,当输入全1时Iout1最大; *Iout2:电流输出线,其值和Iout1值之和为一常数;

*Rfb:反馈信号输入线,改变Rfb端外接电容器值可调整转换满量程精度; *Vcc:电源电压线,Vcc范围为+5V~+15V; *VREF:基准电压输入线,VREF范围-10V~+10V; *AGND:模拟地; *DGND:数字地。 3.DAC0832工作方式

根据对DAC0832的输入锁存器和DAC寄存器的不同的控制方法,DAC0832有如下三种工作方式:

13

(1)单缓冲方式

此方式适用于只有一路模拟量输出或几路模拟量非同步输出的情形。

方法是控制输入锁存器和DAC寄存器同时接数,或者只用输入锁存器而把DAC寄存器接成直通方式。

(2)双缓冲方式

此方式适用于多个DAC0832同时输出的情形

方法是先分别使这些DAC0832的输入锁存器接数,再控制这些DAC0832同时传递数据到DAC寄存器以实现多个D/A转换同步输出。

(3)直通方式

此方式宜于连续反馈控制线路中。

方法是使所有控制信号(/CS、/WR1、/WR2、ILE、XFER)均有效。 4.电流输出转换成电压输出

DAC0832的输出是电流,有两个电流输出端(Iout1和Iout2),它们的和为一常数。使用运算放大器,可以将DAC0832的电流输出线性地转换成电压输出。根据运放和DAC0832的连接方法,运放的电压输出可以分为单极型和双极型两种。

在双极型电压输出电路,DAC0832的Iout2被接地,Iout1接运放LM324的反相输入端,LM324的正相输入端接地。运放的输出电压Aout之值等于Iout1与Rfb之积,Aout的极性与DAC0832的基准电压VREF极性相反。单极性输出端Aout0=-(Vref×N)/256,如果在单极型输出的线路中再加一个放大器,便构成双极型输出线路,双极性输出端Aout=(2Vref/256)×N-5。其中N为输入数字量的十进制数。

三、实验原理图

图3—3

14

四、实验内容

1、实验原理

实验原理如图3—3所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总线直接接口。/CS和/XFER相接后作为0832芯片的片选CS。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器,模拟量输出随之而变化。

2 、 实验线路的连接

(1)将D/A区0832片选信号CS插孔和译码输出Y2插孔相连。 (2)用排线将D/A区D0~D7连到BUS2区XD0~XD7。 (3)将0832的WR信号线连到BUS3区的XWR上。 (4)D/A区的±12V插孔分别与外置电源的±12V端相连。

(5)W2区的VIN接+12V,如果电源内置,VIN插孔和D/A区的+12V插孔相连。 (6)D/A区的Vref接W2区 Vref,并调节W2使 Vref=+5V。 3 、 实验软件编程提示

(1)8位D/A转换器DAC0832的口地址为020H,输入数据与输出电压的关系为: Vref表示参考电压;N表示输入数字量;这里参考电压Vref=+5V。 (2)产生方波只需将数字量00H、FFH交替输出到DAC0832。产生锯齿波只需将数字量0逐渐递增输出到DAC0832。

本实验要求在AOUT端输出方波信号,方波信号的周期由延时时间常数确定。 由于本电路为双级型输出,因此输出端AOUT信号值为-5V~+5V.当数字量为0时,AOUT= -5V;当数值量为80H时,Aout=0V; 当数值量为FFH时,Aout= +5V。

五、实验步骤

1 、 根据实验原理图3—3正确连接好实验线路 2 、 正确理解实验原理

3、 仔细阅读,弄懂实验程序并画出程序流程图 4 、 运行实验程序

(1)联机时,实验程序文件名为\\DVCC\\H8EXE\\H82S.EXE。 (2)单机时,实验程序起始地址为F000:90A0。 在系统显示监控提示符“P.”时,

输入F000按F1键 输入90A0按EXEC键

15

在系统上显示执行符“『”。

5、 用示波器测量0832左侧AOUT插孔,应有方波输出,幅值-5V~+5V。方波周期约为1ms。

六、实验参考程序

CODE SEGMENT ASSUME CS:CODE DAPORT EQU 0020H ORG 10a0h

START: MOV AL,0FFH

DACON1: MOV DX,DAPORT OUT DX,AL MOV CX,0400H DACO2: LOOP DACO2 NOT AL JMP DACON1 CODE ENDS END START

16

实验三 使用DAC0832的D/A转换实验(二)

一、实验目的

进一步掌握数/模转换的基本原理。

二、实验原理图

图3—4

三、实验内容

1、实验原理

实验原理如图3—4所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总线直接接口。/CS和/XFER相接后作为0832芯片的片选CS。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器,模拟量输出随之而变化。

2 、 实验线路的连接

(1)将D/A区0832片选信号CS插孔和译码输出Y2插孔相连。 (2)用排线将D/A区D0~D7连到BUS2区XD0~XD7。 (3)将0832的WR信号线连到BUS3区的XWR上。 (4)D/A区的±12V插孔分别与外置电源的±12V端相连。

(5)W2区的VIN接+12V,如果电源内置,VIN插孔和D/A区的+12V插孔相连。 (6)D/A区的Vref接W2区 Vref,并调节W2使 Vref=+5V。 3 、 实验软件编程提示

本实验在AOUT端输出锯齿波。只要将数字量0~256(00H~FFH)从0开始逐渐加1递增直至256为止, 不断循环,在AOUT端就会输出连续不断的锯齿波。

17

四、实验步骤

1、 根据原理图正确连接好实验线路。 2、 仔细阅读,弄懂实验程序并画出程序流程图 3、 运行实验程序

(1)联机时,实验程序文件名为\\DVCC\\H8EXE\\H83S.EXE。

(2)单机时,实验程序起始地址为F000:90B0。

在系统显示监控提示符“P.”时:

输入F000 按F1键

输入90B0 按EXEC键 在系统上显示执行符“『”。

4、 用示波器测量0832左侧OUT插孔,应有锯齿波输出。

五、实验参考程序

CODE SEGMENT ASSUME CS:CODE DAPORT EQU 0020H ORG 10b0H

START: JMP DACONTORL

DACONTORL:MOV DX,DAPORT MOV AL,00H

DACON1: OUT DX,AL INC AL MOV CX,08H

DACON2: LOOP DACON2 JMP DACON1 CODE ENDS END START

18

实验四 并行口8255A应用

一、实验目的

进一步掌握8255A可编程并行口使用方法。

二、预备知识

1.8255A结构

8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图3—5是8255A的逻辑框图,内部有3个8位I/O端口:A口、B口、C口;也可以分为各有12位的两组:A和B组,A组包含A口8位和C口的高四位,B组包含B口和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总经缓冲器送入各组接口寄存器中。由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。

2.8255A端口地址见表3—1。 A1 0 0 1 0 0 1 1 × 1 × A0 0 1 0 0 1 0 1 × 1 × /RD 0 0 0 1 1 1 1 × 0 1 /WR 1 1 1 0 0 0 0 × 1 1 /CS 0 0 0 0 0 0 0 1 0 0 操作类型 PA→数据总线 PB→数据总线 PC→数据总线 数据总线→PA 数据总线→PB 输出(写) 数据总线→PC 数据总线→控制字 数据总线三态 非法状态 数据总线三态 断开 输入(读) 操作方向 3.8255A工作方式

8255A芯片有三种工作方式:方式0、方式1、方式2。它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。

方式0:基本输入/输出

图3—5(a)方式0引脚功能

19

PA7~0 PC7~4 PC3~0 PB7~0 8 4 4 8 I/O I/O I/O I/O 如图3—5(a)所示。该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。需注意的是:该方式下,只能将C口其中一组的四位全部置为输入或输出。

8255 PA7~0 PC4 PC5 PC3 RD PC7~6 PB7~0 PC2 PC1 PC0 DATA STBA IBFA INTRA I/O DATA STBB IBFB INTRB WR

8255 PA7~0 PC7 PC6 PC3 PC5~4 PB7~0 PC2 PC1 PC0 DATA OBFA ACKA INTRA I/O DATA OBFB ACKB INTRB 图3—5(b)方式1输入 图3—5(c)方式1输入

如图3—5(b)、(c)所示。该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

方式2:双向输入输出

图3—5(d)方式2双向输入输出

如图3—5(d)所示。本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。

RD WR 8255 PA7~0 PC7 PC6 PC5 PC4 PC3 PC2~0 DATA OBF ACK IBF STB INTR I/O 20

4.8255A控制字 PC3~0∶1=输入,0=输出 PB口∶1=输入,0=输出 B组 方式选择∶0=方式0,1=方式1

PC7~4∶1=输入,0=输出 PA口∶=输入,0=输出 方式选择:00=方式0 01=方式1 1×=方式2

方式标准:1=有效 (1)方式选择控制字 (2)PC口按位置/复位控制字 主片

7 6 5 4 3 2 1 0 × × × 无关 1=置位,0=复位 位选择000~111

×××置位/复位标准:0=有效

A组

7 6 5 4 3 2 1 0 三、实验原理图

21

图3—6

四、实验内容

1、实验原理

实验原理图如图3—6所示,PB4 ~ PB7和PC0 ~ PC7分别与发光二极管电路L1~ L12 相连,本实验为模拟交通灯实验。交通灯的亮灭规律如下:

设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮, 而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。

8255A的PB4~ PB7对应黄 灯,PC0 ~ PC3对应红灯,PC4~ PC7对应绿灯。8255A工作于模式0,并置为输出。由于各发光二极管为反向驱动,使其点亮应使8255A相应端口置1。 2、实验线路连接

(1) L1—PC0 L4—PC1 L7—PC2 L10—PC3 (2) L2—PB4 L5—PB5 L8—PB6 L11 — PB7 (3) L3—PC4 L6—PC5 L9—PC6 L12 — PC7

五、实验步骤

22

1、 按实验原理图连好实验线路

2、 仔细阅读,弄懂实验程序并画出程序流程图 3、运行实验程序

(1)联机时,实验程序文件名为\\DVCC\\H8EXE\\H84S.EXE。 (2)单机时,实验程序起始地址为F000:90E0。 在系统显示监控提示符“P.”时: 输入F000 按F1键 输入90E0 按EXEC键

在系统上显示执行符“『”,同时L1~L12发光二极管模拟交通灯显示。

六、实验参考程序

CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0FF2BH IOAPT EQU 0FF28H IOBPT EQU 0FF29H IOCPT EQU 0FF2AH ORG 10e0H

START: MOV DX,IOCONPT MOV AL,80H OUT DX,AL MOV DX,IOBPT MOV AL,00H OUT DX,AL MOV DX,IOCPT MOV AL,0FH ;H OUT DX,AL CALL DELAY1

IOLED0: MOV AL,01011010B ;13L 24H MOV DX,IOCPT OUT DX,AL CALL DELAY1 CALL DELAY1 MOV AL,00001010B ;13LN OUT DX,AL MOV CX,8H

IOLED1: MOV DX,IOBPT MOV AL,50H OUT DX,AL CALL DELAY2

23

MOV AL,00H OUT DX,AL CALL DELAY2 LOOP IOLED1 MOV DX,IOCPT MOV AL,10100101B OUT DX,AL CALL DELAY1 CALL DELAY1 MOV AL,00000101B OUT DX,AL MOV CX,8H

IOLED2: MOV DX,IOBPT MOV AL,0A0H OUT DX,AL CALL DELAY2 MOV AL,00H OUT DX,AL CALL DELAY2 LOOP IOLED2 MOV DX,IOCPT MOV AL,0FH OUT DX,AL CALL DELAY2 JMP IOLED0 DELAY1: PUSH AX PUSH CX MOV CX,0030H DELY2: CALL DELAY2 LOOP DELY2 POP CX POP AX RET

DELAY2: PUSH CX MOV CX,8000H DELA1: LOOP DELA1 POP CX RET CODE ENDS END START 24

实验五 8253A定时/计数器实验

一、实验目的

1.学习8253A可编程定时/计数器与8088CPU的接口方法; 2.了解8253A的工作方式;

3.掌握8253A在各种方式下的编程方法。

二、预备知识

1.8253A内部结构

8253A定时/计数器具有定时、计数式功能。它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1、计数器2。每个计数器计数频率为0~2MHZ,其内部结构如图3—8所示。由于其内部数据总线缓冲器为双向三态,故可直接接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;图中的读定控制逻辑,当选中芯片时,根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息:当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值,控制寄存器为8位,只写不能读。

2.计数器内部结构

每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。每个计数器有一个时钟输入端CLK作为计数脉冲值,计数方式可以是二进制,计数范围1~10000H,也可以是十进制,计数范围1~65536。门控端GATE用于控制计数开始和停止。输出OUT端当计数器计数值减到零时,该端输出标志信号。

3.8253A端口地址选择见表3—2 表3—2 /CS 0 0 0 0 0 0 0 R 1 1 1 1 0 0 0 /WR 0 0 0 0 1 1 1 A1 0 0 1 1 0 0 1 A2 0 1 0 1 0 1 0 寄存器选择与操作 写入计数器#0 写入计数器#1 写入计数器#2 写入控制寄存器 读计数器#0 读计数器#1 读计数器#2 25

0 1 0 0 × 1 1 × 1 1 × × 1 × × 无操作(三态) 禁止(三态) 无操作(三态) 4.8253A功能

8253A既可作定时器又可作计数器:

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

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

除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。 5.8253A控制字 7 6 5 4 3 2 1 0 数制控制:0=二进制,1=BCD 00 选计数器0 说明:

(1)8253A每个通道对输出CLK按二进制或十进制从预置值开始减1计数,减到0时从OUT输出一个信号。

(2)8253A编程时先写控制字,再写时间常数。 6.8253A工作方式

(1)方式0:计数结束产生中断方式

当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变

26

01 选计数器1 02 选计数器2 11 非法 工作方式选择:000 方式0 001 方式1 ×10 方式2 ×11 方式3 100 方式4 00 计数器锁存命令 101 方式5 01 只读/写低8位,高8位自动置0 10 只读/写高8位,低8位自动置0 11 先写低8位,后写高8位 成高电平。

(2)方式1:可编程单次脉冲方式

当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。 (3)方式2:频率发生器方式

当初值装入时,OUT变为高;计数结束,OUT变为低。该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变高,当GATE再变高时,便启动一次新的计数周期。

(4)方式3:方波发生器

当装入初值后,在GATE上升沿启动计数,OUT输出高电平;当计数完成一半时,OUT输出低电平。

(5)方式4:软件触发选通

当写入控制字后,OUT输出为高;装入初值且GATE为高时开始计数,当计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。

(6)方式5:硬件触发选通

在GATE上升沿启动计数器,OUT一直保持高电平;计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。

三、实验原理图

图3—7

四、 实验内容

本实验原理图如图3—7所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,端口地址如表3-2所示。8253A的片选地址为40H~ 4FH。 因此, 本实验仪中的8253A四个端口地址为40H、41H、42H、43H,分别对应通道0、通道1、通道2

27

和控制字。采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ, 输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(“0”电平)或甩空(“1”电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。

五、实验线路连接

(1)8253的GATE0接+5V。

(2) 8253的CLK0插孔接分频器74LS393(左上方)的T4插孔,分频器的频率源为4MHZ。

六、 实验步骤

1、 按实验原理图连好实验线路

2、 仔细阅读,弄懂实验程序并画出程序流程图 3、 运行实验程序

(1)联机时,实验程序文件名为\\DVCC\\H8EXE\\H85S.EXE。 (2)单机时,实验程序起始地址为F000:9180。

在系统显示监控提示符“P.”时: 输入F000 按F1键 输入9180 按EXEC键

4、用示波器测量8253左侧OUT0插孔,应有方波输出。

七、实验参考程序

CODE SEGMENT ASSUME CS:CODE ORG 1180H

START: JMP TCONT TCONTRO EQU 0043H TCON0 EQU 0040H

TCONT: MOV DX,TCONTRO MOV AL,36H OUT DX,AL MOV DX,TCON0 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL JMP $ CODE ENDS END START

28

实验六 使用8251A串行接口应用实验—双机通信(发送)

一、实验目的

1、掌握双机通信的原理和编程方法 2、进一步学习8251A的使用方法

二、预备知识

8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。

1.8251A内部结构

I/O缓冲器是双向三态,通过引脚D0~D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。读写控制逻辑用来接收CPU的控制信号、控制数据传递方向。CPU对8251A的读写操作控制表如表3—4所示。

收发器功能是从引脚RXD(收)TXD(发)收发串行数据。接收时按指定的方式装配成并行数据,发送时从CPU接收的并行数据,自动地加上适当的成帧信号转换成串行数据。8251A内部的调制解调器控制器,提供和外接的调制解调器的握手信号。

表3—4 CS 1 0 0 0 0 C/D 任意 1 0 1 0 RD 任意 1 1 0 0 WR 任意 0 0 1 1 操作 无操作,D0~D7呈高阻 写控制字 写数据 读状态 读数据 2.8251A的方式控制字和命令控制字

方式控制字确定8251A的通信方式(同步/异步)、检验方式(奇校/偶校/不样)、字符长度及波特率等,格式如下图3—8所示。命令控制字使8251A处于规定的状态以准备收发数据,格式如下图3—9。方式控制字和命令控制字无独立的端口地址,8251A根据写入的次序来区分。CPU对8251A初始化时先写方式控制字,后写命令控制字。

29

7 6 5 4 3 2 1 0

异步方式:00=不确定;01=1个停止位;

10=3/2个停止位;11=2个停止位

同步方式:X0=内同步;X1=外同步

0X=2个同步字符;1X=单个同步字符 奇偶校验:X0=无校验;01=奇校验;10=偶校验 字符长度:00=5位;01=6位;10=7位;11=8位

波特率系数:00=同步方式;01=异步×1;10=异步×16;

11=异步×64

图3—8

7

EH 外部搜索方式,1=启动搜索同步字符

6 5 4 3 2 1 0

IR RST ER SBRK 内部复位,1=使8251返回方式指令格式 请求发送,1=迫使RST输出到0

错误标志复位,1=使全部错误标志复位 送中止字符,1=迫使TXD为低;0=正常工作 接收允许,1=允许;0=屏蔽

RXE DTR TXE 数据终端准备好,1=迫使DRT为0 发送允许,1=允许,0=屏蔽

图3—9

3.状态寄存器

30

状态寄存器用于寄存8251A的状态信息,供CPU查询。各位定义如下: 7 DSR TXRDY位:当数据缓冲空时置位,而TXRDY引脚只有当条件(数据缓冲器空·/CTS·TXE)成立时才置位。

溢出错误:CPU没读走前一个字符,下一个字符又接收到,称为溢出错误。 帧错误:在字符结尾没检测到停止位,称为帧错误。

帧错误:** 1=帧出错,由命令中ER复位 除TXRDY外同管脚定义 奇偶错误:1=出错。由命令中ER复位 6 SYNDET 5 FE 4 O 3 P 2 TXE 1 RXRDY 0 TXRDY 溢出错误:**1=溢出错。由命令中ER复位 三、实验原理图

图3—10

31

四、实验内容

TXC和RXC分别为8251A的发送时钟和接收时钟。它由片外8253A 的OUT1提供。8251A的片选地址为050~05FH(系统中已连好)。本实验要求以查询方式进行收发。要完成本实验,需2台DVCC实验系统。其中一台为串行发送、一台为串行接收,在1号机上装串行发送程序,在2号机上装串行接收程序,则在1号机上键入的字符显示在2 号机的显示器上。

由于本系统监控中已对8253A、8251A进行初始化,因此本实验可以直接进入对串行口状态的查询。

五、实验线路连接

(1)将1号机SIO区RXD1插孔和2号机的TXD1插孔相连。 (2)将1号机SIO区TXD1插孔和2号机的RXD1插孔相连。 (3)将1号机和2号机的地线GND插孔相连。

六、实验步骤

1、准备2台DVCC系列实验系统,确定1号为发送,2号为接收。 2、确认1号和2号机通信线路连接无误。 3、仔细阅读,弄懂实验程序并画出程序流程图

4、在联机时,必须要2台上位机,接收实验程序的文件名为\\DVCC\\H8EXE\\H88S.EXE。发送实验程序的文件名为\\DVCC\\H8EXE\\H87S.EXE。

在单机时:

先运行2号机,在2号机处于命令提示符“P.”状态下输入F000,按F1键,再输入9500,按EXEC键。即可进入等待接收状态,显示器显示8251-2。

注意:串行接收实验的有关内容见实验七。

然后运行1号机,在1号机处于命令提示符“P.”状态下,输入F000,按F1键,再输入9300,按EXEC键。即可进入串行发送状态,显示器显示8251-1。

5、在1号机键盘上按动数字键,在2号机的显示器上应显示对应数字键值。当1号机上按“MON”键时,1号机显示GOOD,此时可按RESET键或STOP键退出。

七、实验参考程序

CODE SEGMENT ASSUME CS:CODE

32

ORG 1300H

START: JMP SERIAL SECOPORT EQU 0051H SEDAPORT EQU 0050H SERIAL: call for8251 MOV DS:[077AH],1701H MOV DS:[077CH],0501H MOV DS:[077EH],0802H redikey:call dispkey cmp byte ptr ds:[0752h],10h jc wattxd jmp funckey

WATTXD: MOV DX,SECOPORT IN AL,DX TEST AL,01H JZ WATTXD MOV AL,BYTE PTR DS:[0752H] MOV DX,SEDAPORT OUT DX,AL

WATRXD: MOV DX,SECOPORT IN AL,DX TEST AL,02H JZ WATRXD MOV DX,SEDAPORT IN AL,DX CMP BYTE PTR DS:[0752H],AL JZ seri2 MOV DS:[077AH],1c1cH MOV DS:[077CH],101bH mov ds:[077eh],1010h sererr: CALL DISP JMP sererr

seri2: mov cx,0018h ser3: call disp loop ser3 jmp redikey

funckey:CMP BYTE PTR DS:[0752H],1FH JNZ REDIKEY MOV DS:[077AH],191AH MOV DS:[077CH],1819H mov ds:[077eh],1010h monit: CALL DISP JMP monit dispkey:call disp

33

call key mov ah,al ;newkey mov bl,ds:[0748h] ;ltime mov bh,ds:[0749h] ;lkey mov al,01h mov dx,0ff21h out dx,al cmp ah,bh mov bh,ah ;bh=new key mov ah,bl ;al=time jz disk4 mov bl,88h mov ah,88h disk4: dec ah cmp ah,82h jz disk6 cmp ah,0eh jz disk6 cmp ah,00h jz disk5 mov ah,20h dec bl jmp disk7

disk5: mov ah,0fh disk6: mov bl,ah mov ah,bh

disk7: mov byte ptr ds:[0748h],bl mov byte ptr ds:[0749h],bh mov byte ptr ds:[0752h],bh mov al,ah ret disp: push cx mov dx,077fh mov ah,20h

disp0: mov cx,00ffh mov bx,dx mov bl,ds:[bx] mov bh,0h push dx mov dx,0ff22h mov al,cs:[bx+13fdh] out dx,al mov dx,0ff21h mov al,ah

34

out dx,al

disp1: loop disp1 pop dx dec dx shr ah,01h jnz disp0 pop cx ret

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh db 0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh db 90h,0a3h,0a1h,86h,8fh

key: mov al,0ffh mov dx,0ff22h out dx,al mov bl,00h mov ah,0feh mov cx,08h key1: mov al,ah mov dx,0ff21h out dx,al shl al,01h mov ah,al nop nop nop nop nop nop mov dx,0ff23h in al,dx not al nop nop and al,0fh jnz key2 inc bl loop key1 jmp nkey

key2: test al,01h je key3 mov al,00h jmp key6

35

key3: test al,02h je key4 mov al,08h jmp key6

key4: test al,04h je key5 mov al,10h jmp key6

key5: test al,08h je nkey mov al,18h key6: add al,bl cmp al,10h jnc fkey mov bl,al mov bh,0h mov al,cs:[bx+147eH] ret

nkey: mov al,20h fkey: ret

data2: db 07h,04h,08h,05h,09h,06h,0ah,0bh DB 01h,00h,02h,0fh,03h,0eh,0ch,0dh

for8251:call t8253 mov al,65h out dx,al call l4726 mov dx,SECOPORT mov al,25h out dx,al call l4726 mov dx,SECOPORT mov al,65h out dx,al call l4726 mov dx,SECOPORT mov al,4eh out dx,al call l4726

mov dx,SECOPORT mov al,25h out dx,al call l4726 ret

36

T8253: MOV DX,43H MOV AL,76H out dx,al MOV DX,41H MOV AL,0CH out dx,al MOV DX,41H MOV AL,00H out dx,al mov dx,SECOPORT mov dx,SECOPORT RET l4726: push bp mov bp,sp mov al,0ffh mov cl,0ffh shr al,cl mov byte ptr ds:[0754h],al pop bp ret

CODE ENDS END START

37

实验七 使用8251A串行接口应用实验—双机通信(接收)

一、实验目的

1、掌握双机通信的原理和编程方法 2、进一步学习8251A的使用方法

二、实验原理图

图3—11

三、实验内容

TXC和RXC分别为8251A的发送时钟和接收时钟。它由片外8253A 的OUT1提供。8251A的片选地址为050~05FH(系统中已连好)。本实验要求以查询方式进行收发。要完成本实验,需2台DVCC实验系统。其中一台为串行发送、一台为串行接收,在1号机上装串行发送程序,在2号机上装串行接收程序,则在1号机上键入的字符显示在2 号机的显示器上。

由于本系统监控中已对8253A、8251A进行初始化,因此本实验可以直接进入对串行口状态的查询。

38

实验线路连接

(1)将1号机SIO区RXD1插孔和2号机的TXD1插孔相连。 (2)将1号机SIO区TXD1插孔和2号机的RXD1插孔相连。 (3)将1号机和2号机的地线GND插孔相连。

四、实验步骤

1、准备2台DVCC系列实验系统,确定1号为发送,2号为接收。 2、确认1号和2号机通信线路连接无误。 3、仔细阅读,弄懂实验程序并画出程序流程图

4、在联机时,必须要2台上位机,接收实验程序的文件名为\\DVCC\\H8EXE\\H88S.EXE。发送实验程序的文件名为\\DVCC\\H8EXE\\H87S.EXE。

在单机时:

先运行2号机,在2号机处于命令提示符“P.”状态下输入F000,按F1键,再输入9500,按EXEC键。即可进入等待接收状态,显示器显示8251-2。

注意:串行接收实验的有关内容见实验八。

后运行1号机,在1号机处于命令提示符“P.”状态下,输入F000,按F1键,再输入9300,按EXEC键。即可进入串行发送状态,显示器显示8251-1。

5、在1号机键盘上按动数字键,在2号机的显示器上应显示对应数字键值。当1号机上按“MON”键时,1号机显示GOOD,此时可按RESET键或STOP键退出。

五、实验参考程序

CODE SEGMENT ASSUME CS:CODE ORG 1500H

START: JMP SERIAL SECOPORT EQU 0051H SEDAPORT EQU 0050H SERIAL: call for8251 cld MOV DS:[077AH],1702H MOV DS:[077CH],0501H MOV DS:[077EH],0802H MOV DS:[0740H],077FH watrxd: call disp MOV DX,SECOPORT IN AL,DX TEST AL,02H

39

JZ watrxd MOV DX,SEDAPORT IN AL,DX MOV BYTE PTR DS:[0701H],AL wattxd: MOV DX,SECOPORT IN AL,DX TEST AL,01H JZ WATTXD MOV DX,SEDAPORT MOV AL,BYTE PTR DS:[0701H] OUT DX,AL MOV BX,DS:[0740H] mov ds:[bx],al CMP BX,077ah jz serial1 dec BX MOV DS:[0740H],BX jmp watrxd

serial1:mov ds:[0740h],077fh jmp watrxd disp: mov dx,077Fh mov ah,20h

disp0: mov cx,00ffh mov bx,dx mov bl,ds:[bx] mov bh,0h push dx mov dx,0ff22h mov al,cs:[bx+1588h] OUT DX,AL mov dx,0ff21h mov al,ah OUT DX,AL disp1: loop disp1 pop dx dec dx shr ah,01h jnz disp0 mov dx,0ff22h mov al,0ffh OUT DX,AL ret

data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh

40

本文来源:https://www.bwwdw.com/article/jfj.html

Top