《第五次实验报告.doc》由会员分享,可在线阅读,更多相关《第五次实验报告.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 东南大学微机实验及课程设计实验报告实验六 8255并行输入输出姓 名: 学 号: 专 业: 自动化 实 验 室: 计算机硬件技术 实验时间: 2013年04月23日 报告时间: 2013年05月13日评定成绩: 审阅教师: 一. 实验目的与内容(一) 实验目的1)掌握计数器/定时器8253的基本工作原理和编程应用方法;2)了解掌握8253的计数器/定时器典型应用方法(二)实验内容及要求1) 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。2) 将计数器0、1分别设置在方式3,计数初值设为1000
2、,用逻辑笔观察OUT0电平的变化。二. 实验基本原理(一)8253计数器基本原理选择8253计数器0,gate接高电平,选择工作方式2,手动逐个输入单脉冲,当输入n+1个脉冲后out0变为高电平。1)实验接线图 2)程序流程图 开始设置计数器0为工作方式2送计数初值读计数器值显示计数器值y有无键输入N结束(二)8253定时器基本原理选择8253计数器0,计数器1,gate接高电平,选择工作方式,3,用级联的方式输出1hz的波形 1)实验接线图 2)程序流程图 开始设置计数器0为工作方式3向计数器0送计数初值1000,先送低字节再送高字节,设置计数器1为工作方式3向计数器1送初值1000,先送低
3、字节再送高字节结束三 方案实现与测试(或调试)1.在Windows 环境下获取板卡资源:ioport equ 0b800H-0280H (TPC 设备的I/O 基址)2.先用动态调试的方法用端口输出命令写初始化字和初值,用端口读硬件检查硬件是否正常。输出调试指令:O b283 36hO B280 FFHO B280 FFH检查结果不符合要求,发现实验箱有问题,更换后实验箱后发现out0接灯,可以使灯规律的亮灭。3、编译运行8253计数器程序:ioportequ 0b800H-0280H ;tpc卡中设备的io地址io8253aequ ioport+283H ; 8253控制寄存器地址io825
4、3bequ ioport+280H ;计数器0地址stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacksmov ss,ax mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,alZZZ: in al,dx ;读计数初值 call disp ;调显示子程序 push d
5、x mov ah,06h mov dl,0ffh int 21h pop dx jz ZZZ mov ah,4ch ;退出 int 21hmain endpdisp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否=9 jle num ;若是则为0-9,ASCII码加30H add dl,7 ;否则为A-F,ASCII码加37Hnum: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h po
6、p dx ret ;子程序返回 disp endp code endsend start4.编译运行8253定时器程序:ioportequ 0b800h-0280h ;tpc卡中设备的io地址io8253aequ ioport+280h ;计数器0地址io8253bequ ioport+281h ;计数器1地址io8253cequ ioport+283h ; 8253控制寄存器地址stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax
7、,stacksmov ss,axmov dx,io8253c ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,io8253cmov al,76h ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hmain endp code endsend start四分析与总结通过本次实验,我将课本的理论知识与实际实验结合了起来,8253是很实用的计数器和定时芯片,本次试验让我掌握了它的典型应用:计数和定时,虽然一开始实验不是很顺利,但是经过调试后8253可以正常工作,主要原因是实验箱性能不是很稳定,其中8253编程比较重要的就是控制字和初值的设定,同时可以利用级联的方法扩大范围。
限制150内