东南大学微机原理第六次实验报告.doc_第1页
东南大学微机原理第六次实验报告.doc_第2页
东南大学微机原理第六次实验报告.doc_第3页
东南大学微机原理第六次实验报告.doc_第4页
东南大学微机原理第六次实验报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机实验及课程设计实验报告实验一8253 计数器/定时器姓 名: 学 号: 专 业: 仪器科学与工程学院 实 验 室:计算机硬件技术 实验时间: 2014年05月29日报告时间: 2014年06月4日评定成绩: 审阅教师: 一. 实验目的1)掌握计数器/定时器 8253 的基本工作原理和编程应用方法; 2)了解掌握 8253 的计数器/定时器典型应用方法二. 实验内容必做:5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。(参考程序p63)5-2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。(参考程序p64)5-3在实验2的基础上,利用输出的1Hz的方波接入计数器2,设置计数器2初值为4,根据键盘输入的数字(05)来设置计数器2的工作方式,并将GATE2信号进行相应的连接(接5V或接单脉冲)用逻辑笔观察OUT2电平的变化。要求可以响应键盘的连续变化,直到按ESC键退出。5-4在实验2的基础上,将8253计数器1的工作方式改为方式0,输出OUT1接入8255的PA0,PC0连接任意一个发光二级管,8255A的CS接288H。编程使得发光二极管亮5秒,灭2秒,一直循环直到按任意键退出。(提示:PA0查询OUT1输出电平,PC0输出开关量控制二极管发光)二. 实验原理与接线5-1 参考图 3.6-1 虚线连接电路,将计数器 0 设置为方式 0,计数器初值为 N(N0FH) ,用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 变高电平)l 8253的CS接280Hl 8253的GATE0接5Vl 8253的CLK0接单脉冲1或2l 8253的OUT0接逻辑笔(高电平LED12亮,低电平LED13亮)5-2 按图 3.6-2连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值设为 1000,用逻辑笔观察OUT1 输出电平的变化(频率 1Hz)l 8253的CS接280Hl 8253的GATE0和GATE1接5Vl 8253的CLK0接1MHzl 8253的OUT0接CLK1l 8253的OUT1接逻辑笔编辑提示:1、8253定时器0地址 280h 8253定时器1地址 281h 8253定时器2地址 282h 8253控制口地址 283h 2、实验参考程序中的口地址和代号是随意的,看程序的时候要注三. 实验源程序(主要部分)和流程图源程序:5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。(参考程序p63)ioportequ 0b800H-0280H ;tpc卡中设备的io地址io8253aequ ioport+283H ; 8253控制寄存器地址io8253bequ ioport+280H ;计数器0地址stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacks mov ss,ax mov al,10h ;设置8253通道0为工作方式0,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,alZZZ: in al,dx ;读计数初值 call disp ;调显示子程序 push dx 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 pop dx ret ;子程序返回 disp endp code endsend start实验现象:计数器:当手动输入单脉冲时,屏幕显示F,E,D,C,B,A1,然后输出逻辑笔显示一个高电平。原因:计数器:程序中设定的计数初值为0FH,故从0FH递减至1计数,每计完一次,输出一个高电平。5-2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。(参考程序p64)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,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定时器:逻辑笔输出频率为1Hz的信号。定时器:初始信号为1MHz,经过2级10000的记数,频率变为原来的1000000倍,即1Hz,实现1s的周期信号。5-3ioport equ 0ec00h-280h io8253a equ ioport+283h io82530 equ ioport+280h ;计数器0 io82531 equ ioport+281h ;计数器1 io82532 equ ioport+282h;计数器2 stacks segment stack db 100 dup(?) stacks ends code segment assume cs:code,ss:stacks main proc far start:mov ax,stacks mov ss,ax mov al,34h mov dx,io8253a out dx,al mov ax,1000 mov dx,io82530 out dx,al mov al,ah out dx,al mov dx,io8253a mov al,76h out dx,al mov ax,1000 mov dx,io82531 out dx,al mov al,ah out dx,al ;-输出1Hz的脉冲next: mov al,90h push ax mov ah,01h int 21h cmp al,1bh je exit cmp al,0 jl next cmp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论