25
实实实实 8253 实实 / 实实实实实 一、: 1. 实实 8253 实实实实实实实实实实实实 2. 实实 8253 实实实/实实实实实实实实实实实实实 实实 、: 1 实实实实实实实实 1 实实 8253A 实 A0A1 实 实 A0A1 8253A 实 1 实实8253A 实实实实 实实 48H~ 4FH 实实实实实实 8253A 实实实实实实实 48H49H4AH4BH 0 1 2实实 8253A 实实 0 3(实实实实实实实) CLK0 实 1MHZ 实实 OUTO 实实实 1KHZ 实 GATE0 实实实实实实实 实实("0"实实)实实实("1"实实)实实实 GATE 实 实 ,。 2 实实实实实实 (1) 8253A 实实实 CLK0 实实实实实实实实实实实 1MHZ(2) 8253A 实 GATE0 实+5V3 实实实实 (1) 实实 1 实实实实实实 (2) 实实实实实实 1.实“实实”实实 2 “实 ”“实实实实实实实” 实实实实实 3.实“实实实实” 4.实 实“实实实 2” ctrlF2 实实实实实实实实 实1 实实“8253-1”实实实实实实 8253A 实 OUT2 实 实 1KHZ 实 实实实实 实实 0 4V CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMAT CALL LEDDISP MOV DX,TCONTRO 1

read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

  • Upload
    vankiet

  • View
    275

  • Download
    0

Embed Size (px)

Citation preview

Page 1: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

实验题目 8253 定时 / 计数器实验 一、实验目的与要求: 1. 学会 8253 芯片和微机接口原理和方法。

2. 掌握 8253 定时器/计数器的工作方式和编程原理。二、实验内容:

1、实验原理 本实验原理图如图 1 所示,8253A 的 A0、A1 接系统地址总线 A0、A1,故 8253A 有

四个端口地址,如端口地址表 1 所示。8253A 的片选地址为 48H~ 4FH。 因此, 本实验仪中的 8253A 四个端口地址为 48H、49H、4AH、4BH,分别对应通道 0、通道 1、通道 2 和控制字。采用 8253A 通道 0,工作在方式 3(方波发生器方式),输入时钟 CLK0 为 1MHZ, 输出 OUTO 要求为 1KHZ 的方波,并要求用接在 GATE0 引脚上的导线是接地("0"电平)或甩空("1"电平)来观察 GATE 对计数器的控制作用,用示波器观察输出波形。

2、 实验线路连接 (1) 8253A 芯片的 CLK0 引出插孔连分频输出插孔 1MHZ。 (2) 8253A 的 GATE0 接+5V。3、 实验步骤 (1) 按图 1 连好实验线路 (2) 运行实验程序 1.按“调试”按钮 2。选“窗口”“进入示波器窗口”,然后最小化 3.按“运行按钮” 4.将模拟示波器窗口打开,选择“串行口 2”,再按 ctrl+F2 按钮即可看到波形 图 1 显示“8253-1”用示波器测量 8253A 的 OUT2 输出插孔,应有频率为 1KHZ 的

方波输出,幅值 0~4V三 、实验代码:

CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BHTCON2 EQU 004AHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT: CALL FORMAT

CALL LEDDISPMOV DX,TCONTRO

1

Page 2: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV AL,0B6H ;要使用方式 2,0B6H 要改为 0B4HOUT DX,ALMOV DX,TCON2MOV AL,00 ;输入频率(即时间常数)

OUT DX,AL ;要修改频率,只需更改送给 AL 的值(注意先送低 8 位, MOV AL,10H ;后送高 8 位)

OUT DX,AL HLT

LEDDISP:MOV AL,90H ;显示数据方式命令字送 8279 控制字MOV DX,CONTPORT ;8279 命令状态口OUT DX,ALMOV BYTE PTR DS:[0600H],00 ;置显示位数初值为 0

LED1: CMP BYTE PTR DS:[0600H],07H ;判断显示位数满 8 为否?JA LED2 ;满 8 位转子程序返回MOV BL,DS:[0600H] ;未满 8 位从数据区取数MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORT ;8279 数据口OUT DX,ALADD BYTE PTR DS:[0600H],01H ;显示位数加 1JNZ LED1

LED2: RET ;子程序返回FORMAT: MOV BX,0 ;显示 8253---1

MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D4FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRET

CODE ENDSEND START

四、思考题 若改用方式 2,并改变时间常数,如何编写程序。答:

,若使用方式 2,根据 8253 控制字原理,控制字必须设置为 B4H,相应的修改在代码中在上述代码中,修改时间常数的方法也在程序中注明。

2

Page 3: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

实验题目 8255 并行接口实验 一、实验目的与要求

1. 掌握 8255A 和微机接口方法。2. 掌握 8255A 的工作方式和编程原理

二、实验内容1、实验原理

如实验原理图 1 所示,PC 口 8 位接 8 个开关 K1~ K8,PB 口 8 位接 8 个发光二极管,从 PC 口读入 8 位开关量送 PB 口显示。拨动 K1~ K8,PB 口上接的 8 个发光二极管 L1~ L8对应显示 K1~ K8 的状态。2、实验线路连接(1)8255A 芯片 PC0~ PC7 插孔依次接 K1~ K8。(2)8255A 芯片 PB0~PB7 插孔依次接 L1 ~ L8。(3)8255A 的 CS 插孔接译码输出 070H-07FH 插孔。3.实验主要仪器设备和材料 PC 机、DVCC-8086JH 实验系统及连接导线4、实验步骤 (1) 按图 1 连好线路。 (2) 运行实验程序。1。按“调试”按钮 2.按“运行”按钮

在 DVCC-8086JH 数码管上显示“8255-1”,同时拨动 K1~K8,L1~L8 会跟着亮灭三、实验程序

CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073HIOCPT EQU 0072HIOBPT EQU 0071HCONTPORT EQU 00DFH

3

Page 4: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

DATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP IOLEDIOLED: CALL FORMAT

CALL LEDDISPMOV AL,89H MOV DX,IOCONPTOUT DX,ALNOP NOPNOP

IOLED1: MOV DX,IOCPT IN AL,DXMOV DX,IOBPT OUT DX,ALMOV CX,0FFFFH

DELAY: LOOP DELAYJMP IOLED1

LEDDISP:MOV AL,90H MOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6DHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRET

CODE ENDSEND START

4

Page 5: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

四、思考题 试将 B 口与 C 口的功能对调(连线对调),如何编写程序答: 把 IOLED 段的 89H 改为 82H,把 IOLED1 段中的 IOCPT 和 IOBPT 对换。82H(1000 0010)表示用 B 口输入,C 口输出,均使用方式 0.IOCPT 和 IOBPT 分别对应 B、C 口的地址。

程序代码如下:CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BHTCON2 EQU 004AHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT: CALL FORMAT CALL LEDDISP MOV DX,TCONTRO ;将控制口地址给DX MOV AL,10110101B ;选通道二,先写低字节,后高字节,方式 2,数字控制用 BCD 码 OUT DX,AL          ;写控制字 MOV DX,TCON2        ;计数器二的地址给DX MOV AX,10D         ;计数初值为 10(十进制) OUT DX,AL          ;写低字节 MOV AL,AH OUT DX,AL          ;写高字节 HLT              ;停机LEDDISP:MOV AL,90H

MOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040H

5

Page 6: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

ADD BX,2MOV WORD PTR DS:[BX+0500H],6D4FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRET

CODE ENDSEND START

按实验要求,修改后的实验程序如上。在思考题实验中,用了方式二控制计数端口二,计数初值设为 10,即当用 CLK(1MHz)进行计数时,每次当计完十个时钟周期,OUT 输入端就由高电平变为低电平,就是先有十个周期的高电平,接着低电平出现的只有一个时钟周期,比较短;实现将 1MHz 的 CLK 转化为 1KHz 的信号;

6

Page 7: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

实验题目 数字式时钟(电子钟) 一、实验目的与要求

1.学习 8253 编程定时/计数器的工作方式2.掌握终端控制器 8259A 与微处理机接口的原理和方法3.掌握中断控制器 8259A 的综合应用编程

二、实验内容和要求1.实验原理

用 8253 和 8259 实现数码管显示时钟。利用 8253 的定时器功能。8253 有三个端口地址为 48H,49H,4AH,本实验采用 8253 的通道 2,工作在方式 3(方波发生器方式)输入CLK2 为 1MHZ。先给 8253 的初始值 0C350H,循环计数。即一次记数完后,自动装入初始值。输出 OUT2 作为 8259 的输入脉冲。8259 有两个口地址,本实验为 20H 和 21H,其中2H用来写 ICW1,21H 用来写 ICW2、ICW4,本实验中 8259 为单片,边沿触发,采用3 号中断源,即 IR3 和 8253 输出口 OUT2 相连,每过 1/20秒接收到一个中断,向 8259 发出中断请求信号,如果电平信号不符合要求,则自动转到 7 号中断,显示"ERR",CPU响应后,在中断处理程序中,对终端次数进行记数,记满 20 次,把时间缓冲区中的时间加 1,并 将其输 入 到 显 示缓冲区 ,以便显 示 器 显 示 更新后 的 时 间 。记数 初 值 的 计算:1/1000000*X=1/20X=50000D=0C350H(用 1MHZ 信号产生 1/20秒方波).2.实验线路连接

(1)8253A 芯片的 CLK2 引出插孔连分频输出插孔 IMHZ(2)8253A 的 GATE2 接+5V(3)8259A 的 IR3 插孔和 8253A 的 OUT2 插孔相连

图 13.实验主要仪器设备和材料

PC 机、DVCC-8086JH 实验系统及连接导线4.实验步骤

1、按图 1 连好线路2、打开 DVCC86H 目录下的 CLOCK 子目录中的 Eclock.asm

7

Page 8: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

3、运行实验程序:按“调试”按钮 按“运行”按钮在 DVCC-8086JH 数码管上显示器“00-00-00”,然后开始计时

三、实验程序CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0020HINTPORT2 EQU 0021HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7CONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA0 EQU 0580HDATA1 EQU 0500HDATA2 EQU 0508HDATA3 EQU 0518HDATA4 EQU 0520H ORG 1800HSTART: JMP Tint1Tint1: CALL FORMAT

CLDMOV DI,DATA0MOV CX,08HXOR AX,AXREP STOSWMOV SI,DATA3CALL LEDDISPMOV AX,0HMOV DS,AXCALL WRINTVERMOV AL,13H ;写初始化命令字 ICW1 为 13HMOV DX,INTPORT1OUT DX,ALMOV AL,08H ;写初始化命令字 ICW2 为 08HMOV DX,INTPORT2OUT DX,ALMOV AL,09H ;写初始化命令字 ICW4 为 09HOUT DX,ALMOV AL,0F7H ;写操作控制字 OCW1 为 F7H,即 IR3 开放,其他 IR屏蔽OUT DX,ALMOV BYTE PTR DS:[0601H],01HSTI

WATING: JMP WATINGWRINTVER:MOV AX,0H

8

Page 9: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV ES,AX MOV DI,002CH ;使用 3 号中断源 中断矢量地址为 2CH~2FH LEA AX,INTQ3 STOSW MOV AX,CS STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,CS STOSW RET

INTREEUP3:CLI MOV AL,DS:[0601H] CALL CONVERS MOV SI,DATA0 CALL LEDDISPD MOV AL,20H ;写操作命令字 OCW2 为 20H,选择中断结束方式 MOV DX,INTPORT1 OUT DX,AL ADD BYTE PTR DS:[0601H],01H CMP BYTE PTR DS:[0601H],06H JNA INTRE1 MOV SI,DATA4 CALL LEDDISP

INTRE3: JMP INTRE3CONVERS:MOV BH,0H

AND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA2]MOV BX,DATA0MOV DS:[BX],ALRET

INTRE1: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL STI IRET

INTREEUP7: CLI MOV SI,DATA1 CALL LEDDISP MOV AL,20H MOV DX,INTPORT1 OUT DX,AL

9

Page 10: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

IRETLEDDISP:MOV AL,90H

MOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETLEDDISPD:MOV AL,90H

MOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LEDD1: CMP BYTE PTR DS:[0600H],07HJA LEDD2MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LEDD1

LEDD2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],5050HADD BX,2MOV WORD PTR DS:[BX+0500H],0079HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2

10

Page 11: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HADD BX,2MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F5EHADD BX,2MOV WORD PTR DS:[BX+0500H],5C3FHADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRET

CODE ENDSEND START

四、思考题 查看程序中的 SI寄存器是如何传递要显示的数据的。答:将原程序中 WRINTVER 子程序中的

MOV DI,002CH ;使用 3 号中断源 中断矢量地址为 2CH~2FH改为 MOV DI,0028H ;使用 2 号中断源 中断矢量地址为 28H~2BH并将 Tint1:子程序中的MOV AL,0F7H ;写操作控制字 OCW1 为 F7H,即 IR3 开放,其他 IR屏蔽改为 MOV AL,0FBH ;写操作控制字 OCW1 为 FBH,即 IR2 开放,其他 IR屏蔽。此外,在 MOV SI,DATA4 中将时间显示缓冲区的起始地址发给 SI,然后调用显示子程序,从而显示出时间。再将时间变化,再显示。

五、实验体会通过这次实验,使我进一步对中断的使用有了更深一层的了解,对芯片的端口选择、控制字的确定和写入有了进一步的了解,对 SI寄存器传递显示的数据和数码管的使用有了初步

11

Page 12: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

的映象,我更加了解 8253、8259 芯片原理的应用。经过编写程序成功运行后实现了数字时钟,实验之初,出现的问题还比较多。主要是因为预习的时候对实验原理还不是理解的很透彻,但通过后来自己的多次实践还有老师的帮助下,最终还是完成了任务。这些遇到的问题也让我意识到预习实验时,要认真思考。此次实验,同时让我进一步理解了计算机和各种外设通讯的很多原理和技术。自己的动手能力也明显增强了,通过实验,更进一步理解了课本的知识。

12

Page 13: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

实验题目 D/A (数 / 模)转换实验 一、实验目的与要求熟悉DAC0832 数模转换器的特性和接口方法,掌握 D/A 输出程序的设计和调试方法。二、实验内容1、实验原理

实验原理如图 1 所示,由于DAC0832 有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总 线直接 接 口 。 图 中 是 只 有 一 路 模 拟 量 输 出 , 且为单极型电压输 出 。DAC0832 工作于单缓冲方式,它的 ILE 接+5V,/CS 和/XFER 相接后作为 0832 芯片的片选0832CS。这样, 对 DAC0832执行一次写操作就把一个数据直接写入 DAC寄存器、模拟量输出随之而变化。

2、 实验线路的连接 将 0832 片选信号 0832CS 插孔和译码输出 070H~07FH 插孔相连。3、 实验软件编程提示 显示方波

本实验要求在 AOUT 端输出方波信号,方波信号的周期由延时时间常数确定。 根据Vout =-〔VREF×(输入数字量的十进制数)〕/256,当数字量的十进制数为 256(FFH)时,由于 VREF =-5V,Vout = +5V。当数字量的十进制数为 0(00H) 时, 由于 VREF = - 5V,Vout = 0V。因此,只要将上述数字量写入 DAC0832 端口地址时,模拟电压就从AOUT 端输出 。

显示锯齿波本实验在 AOUT 端输出锯齿波。根据 VouT=-(VERFEX(输入数字量的十进制))/256

即可知道,只要将数字量 0-256(00H-FFH)从 0 开始逐渐加 1递增直至 256 为止,不断循环,在 AOUT 端会输出连续不断的锯齿波。4、 实验主要一起设备和材料 PC 机,DVCC-8086JH 实验系统及连接导线5、实验步骤 (1) 根据原理图正确连接好实验线路

13

Page 14: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

(2) 正确理解实验原理(3) 运行实验程序:1.按“调试”按钮 2.选“窗口”下拉菜单里的“进入示波器窗口”然后将其最小化 3.按“运行”按钮 4.将模拟示波器窗口打开,选择“串行口 2”,再按“Ctrl+F2”即

可看到波形在 DVCC-8086JH 数 码 管 上 显 示 “ 0832-1 (0832-2 ) ” , 用真示 波 器 测 量 DAC0832 下AOUT 插孔,应有方波(锯齿波)输出三、实验代码(方波代码)CODE SEGMENTASSUME CS:CODEDAPORTEQU 0070HCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA EQU 0500HSTART: JMP DACONTORLDACONTORL:CALL FORMAT

CALL LEDDISPMOV DX,DAPORTMOV AL,00H

DACON1: OUT DX,ALMOV CX,0400H

DACON2: LOOP DACON2NOT ALJMP DACON1

LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040H

14

Page 15: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

ADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F7FHADD BX,2RET

CODE ENDSEND START(锯齿波代码)CODE SEGMENTASSUME CS:CODEDAPORTEQU 0070HCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA EQU 0500HSTART: JMP DACONTORLDACONTORL:CALL FORMAT

CALL LEDDISPMOV DX,DAPORTMOV AL,00H

DACON1: OUT DX,ALINC ALMOV CX,08H

DACON2: LOOP DACON2JMP DACON1

LEDDISP:MOV AL,90H

MOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],405BHADD BX,2MOV WORD PTR DS:[BX+0500H],4040H

15

Page 16: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

ADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F7FHRET

CODE ENDSEND START

四.思考题编写一个三角波的程序,并对程序写注释。其中三角波的最高点为 0FFH,最低点为 00H,步长为 1(即每次加 1)答:CODE SEGMENTASSUME CS:CODEDAPORTEQU 0070HCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA EQU 0500HSTART: JMP DACONTORLDACONTORL:CALL FORMAT

CALL LEDDISPMOV DX,DAPORT ;将 DAC0832 的地址给 DXMOV AL,00H ;设置转换的数字量为最小,转换后的电平为 0V

DACON1: OUT DX,AL ;启动数模转换INC AL ;将输入的数字量加一,输出的电平增加 256 分之一MOV CX,08H ;设置循环重复次数

DACON2: LOOP DACON2 ;循环延时CMP AL,FFH ;比较 AL 和 FFHJL DACON3 ;当 AL 的值为 FFH(最大)时,转移指令JMP DACON1 ;循环加一转换输出,当增加到 FFH 时加一自动归零

DACON3:OUT DX,AL ;启动转换DEC AL ;AL 值减一,输出的电平减少 256 分之一JMP DACON3 ;循环减一转换输入对应模拟量CMP AL 00H ;比较 AL 和 00HJL DACON1 ;当 AL减少到 00H 时,表示已经输出一个三角波,循环

LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0H

16

Page 17: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV AL,CS:[BX+DATA]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RETFORMAT: MOV BX,0

MOV WORD PTR DS:[BX+0500H],405BHADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F7FHRET

CODE ENDSEND START

改变延时即 MOV CX,08H 改变 MOV 后面的数字量。改变步长即将 INC AL 和 DEC AL的步骤重复多几次即可;当改变了延时或是步长,很表示的三角波形状也就是底长会相应变化,高度不变。

17

Page 18: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

____

实验题目 A/D (模 / 数)转换实验 一、实验目的与要求加深理解逐次逼近法模数转换器的特征和工作原理,掌握 ADC0809 的接口方法以及 A/D输入程序的设计和调试方法。二、实验内容1 、实验原理

  本实验采用 ADC0809 做 A/D 转换实验。ADC0809 是一种 8 路模拟输入、8 位数字输出的逐次逼近法 A/D 器件,转换时间约 100us,转换精度为±1/512,适用于多路数据采集系统。ADC0809 片内有三态输出的数据锁存器,故可以与 8088 微机总线直接接口。

图中 ADC0809 的 CLK 信号接 CLK=2.385MHZ,基准电压 Vref(+)接 Vcc。一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809 片选信号 0809CS 和/IOW、/IOR经逻辑组合后,去控制 ADC0809 的 ALE、START、ENABLE 信号。ADC0809 的转换结束信号 EOC 未接, 如果以中断方式实现数据采集,需将 EOC 信号线接至中断控制器 8259A的中断源输入通道。本实验以延时方式等待 A/D 转换结束,ADC0809 的通道号选择线ADD-A、ADD-B、ADD-C 接系统数据线的低 3 位,因此 ADC0809 的 8 个通道值地址分别为 00H、01H、02H、03H、04H、05H 、 06H、07H。 启动本 A/D 转换只需如下三条命令: MOV DX,ADPORT   ;ADPORT 为 ADC0809 端口地址。 MOV AL,DATA     ;DATA 为通道值。 MOV DX, AL ; 通道值送端口。 读取 A/D 转换结果用下面二条指令: MOV DX,ADPORT IN AL,DX2、实验线路的连接 在原理图中,粗黑线是学生需要连接的线, 粗黑线两端是需连接的信号名称。

18

Page 19: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

(1)IN0 插孔连 W1 的输出 V1 插孔。 (2)0809CS 连译码输出 060H~06FH 插孔。4、实验方法、步骤及结果测试 1.正确连接好实验线路 2.理解实验原理 3.打开原程序,仔细阅读,弄懂实验程序 4.运行实验程序:1)按“调试”按钮 2)按“运行”按钮在 DVCC-8086JH 实验箱上应显示“0809-XX”  5.调节电位器 W1,以改变模拟电压值,显示器上会不断显示新的 A/D 转换结果。用ADC0809 做 A/D 转 换 ,其模 拟 量 与 数 字 量 对 应 关 系 的典型值 为 +5V- FFH , 2.5V -80H,0V-00H。三、实验程序CODE SEGMENTASSUME CS:CODEADPORTEQU 0060HCONTPORT EQU 00DFHDATAPORT EQU 00DEHSTART: JMP ADCONTORLDATA1 EQU 0580HDATA2 EQU 0500HADCONTORL:CALL FORMAT

MOV AX,0HMOV DS,AXMOV BX,DATA1MOV DS:[BX],ALADD BX,01HMOV DS:[BX],ALADD BX,01HMOV AL,40HMOV DS:[BX],ALADD BX,01HMOV AL,40HMOV DS:[BX],ALADD BX,01HMOV AL,6fHMOV DS:[BX],ALADD BX,01HMOV AL,3fHMOV DS:[BX],ALADD BX,01HMOV AL,7fHMOV DS:[BX],ALMOV AL,3fHADD BX,01H

19

Page 20: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV DS:[BX],ALADCON: MOV AX,00

MOV DX,ADPORTOUT DX,ALMOV CX,0500H

DELAY: LOOP DELAYMOV DX,ADPORTIN AL,DXMOV CL,ALCALL CONVERSCALL LEDDISPJMP ADCON

CONVERS:MOV BH,0HAND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA2]MOV BX,DATA1MOV DS:[BX],ALINC BXPUSH BXMOV AL,CLMOV CL,04HSHR AL,CLMOV BL,ALMOV BH,0HMOV AL,CS:[BX+DATA2]POP BXMOV DS:[BX],ALRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0

20

Page 21: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HRET

CODE ENDSEND START

四、思考题若以中断方式实现数据采集,需将 EOC 信号线接至中断控制器 8259A 的中断源输入通道。并在中断服务程序里读取 A/D 转换值。应如何编写程序?答:以中断方式完成实验,修改后的实验程序如下:CODE SEGMENTASSUME CS:CODEADPORTEQU 0060HCONTPORT EQU 00DFHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA0 EQU 0580HDATA1 EQU 0500HINTPORT1 EQU 0020HINTPORT2 EQU 0021HINTQ EQU INTREEUP

ORG 1800HSTART: JMP ADCONTORLADCONTORL:CALL FORMAT

MOV AX,0H ;显示 0809--XX MOV DS,AX MOV BX,DATA0 MOV DS:[BX],AL

ADD BX,01H21

Page 22: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

MOV DS:[BX],AL ADD BX,01H MOV AL,40H

MOV DS:[BX],AL ADD BX,01H

MOV AL,40H MOV DS:[BX],AL ADD BX,01H MOV AL,6fH MOV DS:[BX],AL ADD BX,01H MOV AL,3fH MOV DS:[BX],AL ADD BX,01H MOV AL,7fH MOV DS:[BX],AL MOV AL,3fH ADD BX,01H MOV DS:[BX],AL

ADCON: MOV AX,00 ;启动 AD 转换 MOV DX,ADPORT OUT DX,AL

INITIALIZATION: MOV AX,0H ;8259 初始化 MOV DS,AX CALL WRINTVER MOV AL,13H ;写 ICW1 控制字 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H ;写 ICW2 ICW4 控制字 MOV DX,INTPORT2 OUT DX,AL MOV AL,0BH OUT DX,AL ;选择 IR3 作为中断源输出 MOV AL,0F7H OUT DX,ALWAITING: STI ;开中断 JMP WAITINGWRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ STOSW MOV AX,CS STOSW

22

Page 23: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

RETINTREEUP:CLI ;关中断 中断服务子程序

MOV DX,ADPORT ;读取 AD 转换 IN AL,DX MOV CL,AL CALL CONVERS ;结果显示代码 CALL LEDDISP MOV DX,ADPORT ;启动 AD 转换

MOV AL,00h OUT DX,AL STI ;开中断 IRET ;中断返回CONVERS:MOV BH,0H

AND AL,0FH MOV BL,AL MOV AL,CS:[BX+DATA1] MOV BX,DATA0 MOV DS:[BX],AL INC BX PUSH BX MOV AL,CL MOV CL,04H SHR AL,CL MOV BL,AL MOV BH,0H MOV AL,CS:[BX+DATA1] POP BX MOV DS:[BX],AL RET

LEDDISP:MOV AL,90H MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:[0600H],00

LED1: CMP BYTE PTR DS:[0600H],07H JA LED2

MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+DATA0]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1

LED2: RET23

Page 24: read.pudn.comread.pudn.com/downloads142/doc/comm/620419/luoya… · Web view实验题目 8253定时/计数器实验 . 一、实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。

FORMAT: MOV BX,0 MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HRET

CODE ENDSEND START

程序框图如下:

24