1、接口与通信实验报告有注释接口与通讯实验报告 1、8253定时/计数器实验2、8255并行接口实验3、数字式时钟(电子钟)4、D/A(数/模)转换实验 5、A/D(模/数)转换实验 一 实验目的与要求1. 学会8253芯片和微机接口原理和方法。2. 掌握8253定时器/计数器的工作方式和编程原理。二实验内容1.实验原理本实验原理图如图512所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表52所示。8253A的片选地址为48H 4FH。 因此, 本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字
2、。采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ, 输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(0电平)或甩空(1电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。2、 实验线路连接 (1) 8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。 (2) 8253A的GATE0接+5V。3、 实验步骤(1) 按图512连好实验线路 (2) 运行实验程序 在系统显示DVCC 86H状态下,按任意键,系统显示命令提示符。 按GO键,系统显示1000 XX 输入F000 : B290 再按EXEC键,显示82531
3、用示波器测量8253A的OUT0输出插孔,应有频率为1KHZ的方波输出。幅值05V。三、实验程序,要求写注释。 CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BH ;控制口地址TCON2 EQU 004AH ;计数器地址CONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT: CALL FORMAT ;将要显示的“8253-1”写入内存 CALL LEDDISP ;调用数码管扫描程序将”8253-1显示出来 MOV DX,TCONTRO ;控制口地址送入DX中 MOV
4、AL,0B4H ;置8253工作方式2的控制字 OUT DX,AL ;置入控制字 MOV DX,TCON2 ;使用通道2 MOV AL,00 OUT DX,AL ;写时间常数低8位 MOV AL,20H ;改变时间常数为2000H OUT DX,AL ;写时间常数高8位 HLTLEDDISP:MOV AL,90H ;显示数据方式命令字送8279控制 MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:0600H,00 ;置显示位数初值为0LED1: CMP BYTE PTR DS:0600H,07H ;判断显示位数满8位否 JA LED2 ;满位转子程序返回 M
5、OV BL,DS:0600H ;未满位从数据区取数 MOV BH,0H MOV AL,CS:BX+DATA1 MOV DX,DATAPORT ;8279数据口 OUT DX,AL ADD BYTE PTR DS:0600H,01H ;显示位数加 JNZ LED1LED2: RETFORMAT: MOV BX,0 ;初始化子程序 MOV WORD PTR DS:BX+0500H,4006H ADD BX,2 MOV WORD PTR DS:BX+0500H,4040H ADD BX,2 MOV WORD PTR DS:BX+0500H,6D4FH ADD BX,2 MOV WORD PTR DS
6、:BX+0500H,7F5BH RETCODE ENDSEND START_ 一、 实验目的与要求 1. 掌握8255A和微机接口方法。 2. 掌握8255A的工作方式和编程原理。二、 实验内容1、实验原理如实验原理图58所示,PC口8位接8个开关K1 K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。拨动K1 K8,PB口上接的8个发光二极管L1 L8对应显示K1 K8的状态。 (a)工作方式控制字 (b)C口按位置位/复位控制字2、实验线路连接(1) 8255A芯片PC0 PC7插孔依次接K1 K8。(2) 8255A芯片PB0PB7插孔依次接L1 L8。(3) 825
7、5A的CS插孔接译码输出070H07FH插孔。3、实验步骤(1) 按图58连好线路。(2) 运行实验程序。在系统显示DVCC86H状态下,按任意键,显示器显示。按GO键,显示 1000 XX输入 F000 : B160再按EXEC键,在DVCC8086H显示上显示器82551,同时拨动K1K8,L1L8会跟着亮灭。三、实验程序,要求写注释。 CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073H ;8255控制端口地址IOCPT EQU 0072H ;C口端口地址IOBPT EQU 0071H ;B口端口地址CONTPORT EQU 00DFHDATAPORT
8、EQU 00DEH ; 命令控制端口地址DATA1 EQU 0500H ; 数据端口地址START: JMP IOLEDIOLED: CALL FORMAT ;调用初始化程序子程序 CALL LEDDISP ;调用显示“82551”子程序 MOV AL,82H ;设置8255控制字,B,C口的输入输出方式对调了 MOV DX,IOCONPT OUT DX,AL ; 写进控制字 NOP ; 不操作,延时作用 NOP NOPIOLED1: MOV DX,IOBPT ;读取PB口的值 IN AL,DX MOV DX,IOCPT ;将PB口的值送PC口显示 OUT DX,AL MOV CX,0FFFF
9、HDELAY: LOOP DELAY ;程序延迟循环模块 JMP IOLED1LEDDISP:MOV AL,90H ;显示“82551”子程序 MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:0600H,00LED1: CMP BYTE PTR DS:0600H,07H; 判断显示为数是否满8位 JA LED2; 是跳到LED2 MOV BL,DS:0600H; /否,取高一位数据 MOV BH,0H MOV AL,CS:BX+DATA1 MOV DX,DATAPORT OUT DX,AL ; 显示数据 ADD BYTE PTR DS:0600H,01H J
10、NZ LED1LED2: RET ; 子程序返回FORMAT: MOV BX,0 ;初始化程序子程序 MOV WORD PTR DS:BX+0500H,4006H ADD BX,2 MOV WORD PTR DS:BX+0500H,4040H ADD BX,2 MOV WORD PTR DS:BX+0500H,6D6DH ADD BX,2 MOV WORD PTR DS:BX+0500H,7F5BH RETCODE ENDSEND START一实验目的与要求1.学习8253编程定时/计数器的工作方式2.掌握中断控制器8259A与微处理机接口的原理和方法3.掌握中断控制器8259A的综合应用编程
11、二实验内容1.实验原理用8253和8259现实数码管显示时钟。利用8253的定时器功能。8253有三个端口地址为48H,49H,4AH本实验采用8253的通道2,工作方式3(方波发生器方式)输入CLK2为1MHZ。先给8253的初值0C350H,循环记数。即一次记数完毕后,自动装入初值。输出OUT2作为8259的输入脉冲。8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8259输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则
12、自动转到7号中断,显示“ERR”,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。计数初值的计算:1/1000000*X=1/20,X=50000D=0C350H(用1MHZ信号产生1/20秒方波)。2.实验线路连接(1)8253A芯片的CLK2引出插孔连分频输出插孔1MHZ。(2)8253A的GATE2接+5V。(3)8259A的IR3插孔和8253的OUT2插孔相连。3.程序流程框图 主程序 中断子程序4.实验主要仪器设备和材料 PC机、DVCC-8086JH实验系统及连接导线。5.实验方法、步骤及
13、结果测试(1)按图324连好线路。(2)打开DVCC86H目录下的CLOCK子目录中的Eclock.asm。(3)运行实验程序:按“调试”按钮(它包括编译、联接、传送功能)。按“运行”按钮。 在DVCC8086H显示上显示器000000,然后开始计时。三、 实验程序,要求写注释。 CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0020H ;8259口地址1,用来写ICW1 INTPORT2 EQU 0021H ;8259口地址2,用来写ICW2、ICW4 INTQ3 EQU INTERUPT3INTQ7 EQU INTERUPT7CONTPORT EQU 00D
14、DH ;8279命令状态口地址 DATAPORT EQU 00DEH ;8279键盘显示数据口地址 DATA1 EQU 0500H ;错误信息显示缓冲区起始地址(0500H-0507H) DATA2 EQU 0508H ;显示译码表起始地址(0508H-0517H) DATA3 EQU 0518H ;初始状态显示缓冲区(0518H-051FH) DATA4 EQU 0520H ;时间显示缓冲区起始地址(0520H-0527H)DATA5 EQU 0528H ;存放已重新刷新数码管个数DATA6 EQU 0529H ;存放1/20秒定时中断次数DATA7 EQU 052AH ;存放时间的小时值D
15、ATA8 EQU 052BH ;存放时间的分值DATA9 EQU 052CH ;存放时间的秒值DATA10 EQU 052EH ;待更新的显示区内的地址ORG 1800HSTART: JMP TINT1TINT1: CALL FORMAT CLD MOV DX,004BH MOV AL,0B6H OUT DX,AL ;写8253控制字,通道2,方式3 MOV DX,004AH MOV AL,50H OUT DX,AL ;计数初值低8位 MOV AL,0C3H OUT DX,AL ;计数初值高8位 MOV SI,DATA3 CALL LEDDISP MOV AX,0H MOV DS,AX CAL
16、L WRINTVER MOV AL,13H MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2 OUT DX,AL MOV AL,0BH OUT DX,AL ;写中断控制字 MOV AL,0F7H OUT DX,AL ;用IR2请求中断WAITING: STI JMP WAITING WRINTVER: MOV AX,0H MOV ES,AX MOV DI,002CH ;中断矢量地址(IR3) LEA AX,INTQ3 STOSW MOV AX,CS STOSW MOV DI,003CH ;中断矢量地址(IR7) LEA AX,INTQ7
17、STOSW MOV AX,CS STOSW RETINTERUPT3: CLI ;中断3服务程序 MOV AL,DS:DATA6 ;DATA6存放1/20秒定时中断次数 INC AL MOV DS:DATA6,AL CMP AL,14H ;判断是否满20次中断 JC PLAY MOV BYTE PTR DS:DATA6,00H ;否,清零中断次数 MOV SI,DATA4 ;指向时间显示缓冲区首地址 CALL LEDDISP ;数码管显示子程序 CALL NEWTIME ;本子程序段按十进制完成时、分、 CALL CONVERSALL ;本程序段将秒、分、时值进行显示译码PLAY: MOV A
18、L,20H MOV DX,INTPORT1 OUT DX,AL STI IRETINTERUPT7: CLI MOV SI,DATA1 CALL LEDDISP MOV AL,20H MOV DX,INTPORT1 OUT DX,AL IRETLEDDISP: MOV AL,90H ;数码管显示子程序 MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:DATA5,00H ;存放已重新刷新数码管个 LED1: CMP BYTE PTR DS:DATA5,07H ;判断是否已刷新8个数码 JA LED2 ;是,退出本数码管 MOV BL,DS:DATA5 ;否,刷
19、新本数码管 MOV BH,0H MOV AL,CS:BX+SI ;未满8位从数据区取数送 MOV DX,DATAPORT OUT DX,AL ADD BYTE PTR DS:DATA5,01H ;显示位数加1 JNZ LED1LED2: RETFORMAT: MOV BX,0 MOV WORD PTR DS:BX+DATA1,5050H ;显示错误“rr” ADD BX,2 MOV WORD PTR DS:BX+DATA1,0079H ;显示错误“E” ADD BX,2 MOV WORD PTR DS:BX+DATA1,0000H ADD BX,2 MOV WORD PTR DS:BX+DAT
20、A1,0000H ADD BX,2 MOV WORD PTR DS:BX+DATA1,063FH ;显示“10 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,4F5BH ;显示“32 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,6D66H ;显示“54 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,077DH ;显示“76” ADD BX,2 MOV WORD PTR DS:BX+DATA1,6F7FH ;显示“98 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,7C77H ;显示“BA
21、” ADD BX,2 MOV WORD PTR DS:BX+DATA1,5E39H ;显示“DC ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,7179H ;显示“FE ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,3F3FH ;显示“00 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,3F40H ;显示“0 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,403FH ;显示“0 ” ADD BX,2 MOV WORD PTR DS:BX+DATA1,3F3FH ;显示“00 ” ADD BX
22、,2 MOV WORD PTR DS:BX+DATA1,3F3FH ADD BX,2 MOV WORD PTR DS:BX+DATA1,3F40H ADD BX,2 MOV WORD PTR DS:BX+DATA1,403FH ADD BX,2 MOV WORD PTR DS:BX+DATA1,3F3FH MOV BYTE PTR DS:DATA6,00D MOV BYTE PTR DS:DATA7,00D MOV BYTE PTR DS:DATA8,00D MOV BYTE PTR DS:DATA9,00D MOV WORD PTR DS:DATA10,DATA4 RETCONVERS1:
23、MOV BH,0H AND AL,0FH MOV BL,AL MOV AL,CS:BX+DATA2 RETCONVERS2: PUSH AX CALL CONVERS1 MOV BX,WORD PTR DS:DATA10 MOV DS:BX,AL ADD WORD PTR DS:DATA10,01H POP AX PUSH CX MOV CL,4H SHR AL,CL POP CX CALL CONVERS1 MOV BX,WORD PTR DS:DATA10 MOV DS:BX,AL RETCONVERSALL: MOV AL,BYTE PTR DS:DATA9 CALL CONVERS2
24、ADD WORD PTR DS:DATA10,02H MOV AL,BYTE PTR DS:DATA8 CALL CONVERS2 ADD WORD PTR DS:DATA10,02H MOV AL,BYTE PTR DS:DATA7 CALL CONVERS2 MOV WORD PTR DS:DATA10,DATA4 RETNEWTIME: CMP BYTE PTR DS:DATA9,59H JC ADD1 MOV BYTE PTR DS:DATA9,0D CMP BYTE PTR DS:DATA8,59H JC ADD2 MOV BYTE PTR DS:DATA8,0D CMP BYTE
25、PTR DS:DATA7,23H JC ADD3 MOV BYTE PTR DS:DATA7,0D JMP OKADD1: MOV AL,BYTE PTR DS:DATA9 ADD AL,1D DAA MOV BYTE PTR DS:DATA9,AL JMP OKADD2: MOV AL,BYTE PTR DS:DATA8 ADD AL,1D DAA MOV BYTE PTR DS:DATA8,AL JMP OKADD3: MOV AL,BYTE PTR DS:DATA7 ADD AL,1D DAA MOV BYTE PTR DS:DATA7,ALOK: RETCODE ENDSEND STA
26、RT四实验体会本实验使自己对中断的概念认识更深了,首先这次实验程序实现先保存好环境,设置中断开中断,进入中断处理程序,关中断,恢复现场等。实验中使用的8259为单片,边沿触发,采用3号中断源,即IR3和8259输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示“ERR”,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。总的来说,这次实验让自己体会了,硬件在实现需求功能上和软件很不一样,软件重视的处理数据的算法而硬件则更强调命令和
27、硬件特性的逻辑性。 一、 实验目的与要求进一步掌握数/模转换的基本原理。二、 实验内容1.实验原理实验原理如图 55所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总线直接接口。图中是只有一路模拟量输出, 且为单极型电压输出。DAC0832工作于单缓冲方式,它的ILE接+5V,/CS和/XFER相接后作为0832芯片的片选0832CS。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。 2.实验线路的连接 将D/A片选信号DACS插孔和译码输出070H-07FH插孔相连。3.实验要求 (1)本实验要求在Aout端
28、输出方波信号。根据Vout= (VREF(输入数字量的十进制数)/256,即可知道,只要将数字量0-256(00H-FFH)从0开始逐渐加1递增至256为止,不断循环,在AOUT端就会输出连续不断的锯齿波。(2)、根据要求改写锯齿波程序 将锯齿波变成三角波。4.实验软件框图:5.实验主要仪器设备和材料 PC机、DVCC-8086JH实验系统及连接导线。6.实验方法、步骤及结果测试(1)根据实验原理图正确连接好实验线路(2)正确理解实验原理(3) 实验步骤:a:按“调试”按钮(它包括编译、联接、传送功能)。b:选“窗口”下拉菜单里的“进入示波器窗口”(这是模拟示波器)然后将其最小化。c:按“运行
29、”按钮。d :将模拟示波器窗口打开,选择“串行口2”,再按“Ctrl+F2开关”即可看到波形。在DVCC-8086JH数码管上显示“0832-2”,用真示波器测量DAC0832下AOUT插孔,应有锯齿波输出。e:根据要求改写锯齿波程序 将锯齿波变成三角波三 实验程序,要求写注释。(以下是以最高点0FFH,最低点00H,的三角波程序)CODE SEGMENTASSUME CS:CODE /初始化一些常量值DAPORT EQU 0070H /0832数据口地址CONTPORT EQU 00DFH /8279命令控制口地址DATAPORT EQU 00DEH /8279数据口地址DATA EQU 0500H/-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1