东南大学-微机原理-微机系统与接口-实验五-六-实验报告-自动化学院.doc
《东南大学-微机原理-微机系统与接口-实验五-六-实验报告-自动化学院.doc》由会员分享,可在线阅读,更多相关《东南大学-微机原理-微机系统与接口-实验五-六-实验报告-自动化学院.doc(13页珍藏版)》请在咨信网上搜索。
《微机实验及课程设计》实验报告 学号 08011 东南大学 《微机实验及课程设计》 实验报告 实验五 8253 计数器/定时器 实验六 8255 并行输入输出 姓 名: 学 号: 08011 专 业: 自动化 实 验 室: 计算机硬件技术 实验时间: 2012年04月27日 报告时间: 2013年05月15日 评定成绩: 审阅教师: 一. 实验目的 实验五: 1)掌握计数器/定时器 8253 的基本工作原理和编程应用方法; 2)了解掌握 8253 的计数器/定时器典型应用方法 实验六: 1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示; 2)掌握8段数码管的动态刷新显示控制; 3)分析掌握 8255工作方式1时的使用及编程,进一步掌握中断处理程序的编写。 二. 实验内容 实验五: 必做: 5—1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化.(参考程序p63) 5—2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。(参考程序p64) 实验六: (1)8255方式 0:简单输入输出实验电路如图一,8255C口输入接逻辑电平开关K0~K7,编程A口输出接 LED显示电路L0~L7;用指令从 C口输入数据,再从A口输出。 图一 8255简单输入输出 (2)编程将A口 L0—L7控制成流水灯,流水间隔时间由软件产生;流水方向由K0键在线控制,随时 可切换;流水间隔时间也可由K4~K7键编码控制,如 0000对应停止,0001对应 1秒,1111对应 15 秒,大键盘输入 ESC键退出。 (3)8段数码管静态显示:按图二连接好电路,将 8255的 A口PA0~PA6分别与七段数码管的段码 驱 动输入端a~g相连,位码驱动输入端 S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输 入一位十进制数字(0~9),在七段数码管上显示出来。 图二 单管静态显示 (4) 8段数码管动态显示:按图三连接好电路,七段数码管段码连接不变,位码驱动输入端S1、S0 接8255 C口的PC1、PC0。编程在两个数码管上显示“56”. 图三 双管动态显示 二. 实验原理与接线 实验五: 5—1 参考图 3。6-1 虚线连接电路,将计数器 0 设置为方式 0,计数器初值为 N(N≤0FH) ,用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 变高电平) l 8253的CS接280H l 8253的GATE0接+5V l 8253的CLK0接单脉冲1或2 l 8253的OUT0接逻辑笔(高电平LED12亮,低电平LED13亮) 5-2 按图 3。6-2连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值设为 1000,用逻辑笔观察OUT1 输出电平的变化(频率 1Hz) l 8253的CS接280H l 8253的GATE0和GATE1接+5V l 8253的CLK0接1MHz l 8253的OUT0接CLK1 l 8253的OUT1接逻辑笔 编辑提示: 1、8253定时器0地址 280h 8253定时器1地址 281h 8253定时器2地址 282h 8253控制口地址 283h 2、实验参考程序中的口地址和代号是随意的,看程序的时候要注意。 实验六: 八段式LED数码管的符号和引脚 共阴极七段数码管字型数码 实验接线图 实验接线图(静态显示) ¨ PA0~PA6分别接数码管的a~g ¨ PC0~PC7分别逻辑电平开关的K0~K7 ¨ 位选端S1接+5V ¨ 位选端S0接地 ¨ 数码管dp端接地 实验接线图(动态显示) ¨ PA0~PA6分别接数码管的a~g ¨ 位选端S0 、S1接8255C口的PC0、PC1端 编程提示: 1、实验台的七段数码管为共阴性,段码同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码的输入端高电平选中。 2、8255的A口、B口、C口和控制口的端口地址分别为288H~28BH。编程首先要设置控制字输出到控制口。 3、逻辑电平开关向上拨到“1”时输出高电平;向下拨到“0”时输出低电平。 4、动态显示时应先从A口输出段码,然后再从C口输出位码,然后应该延时一段时间才能看到数码管的显示. 其中段码需要查表 Led db 3fh,06h,…………71h 位码分别为:左边的数码管xxxxxx10 右边的数码管xxxxxx01 5、动态显示时为了使两个数码管的字符可以同时看到,应注意延时的时间。 6、注意字符变换之间应使段位全灭,避免影子。 四.实验源程序(主要部分)和流程图 实验五: 源程序: 5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。(参考程序p63) ioport equ 0b800H—0280H ;tpc卡中设备的io地址 io8253a equ ioport+283H ; 8253控制寄存器地址 io8253b equ ioport+280H ;计数器0地址 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,10h ;设置8253通道0为工作方式0,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al ZZZ: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz ZZZ mov ah,4ch ;退出 int 21h main endp disp 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码加37H num: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回 disp endp code ends end start 实验现象:计数器:当手动输入单脉冲时,屏幕显示F,E,D,C,B,A……1,然后输出逻辑笔显示一个高电平。原因:计数器:程序中设定的计数初值为0FH,故从0FH递减至1计数,每计完一次,输出一个高电平. 上图为计数过程中逻辑笔红灯亮. 5—2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。(参考程序p64) ioport equ 0b800h—0280h ;tpc卡中设备的io地址 io8253a equ ioport+280h ;计数器0地址 io8253b equ ioport+281h ;计数器1地址 io8253c equ ioport+283h ; 8253控制寄存器地址 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 dx,io8253c ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah out dx,al ;后写入高字节 mov dx,io8253c mov al,76h ;设8253通道1工作方式2 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h main endp code ends end start 定时器:逻辑笔输出频率为1Hz的信号。 定时器:初始信号为1MHz,经过2级1000~0的记数,频率变为原来的1000000倍,即1Hz,实现1s的周期信号. 流程图: 实验六: 1. 8255简单输入输出程序 ioport equ 0b800h-0280h ;tpc卡中设备的io地址 io8255a equ ioport+288h ;8255A口地址 io8255b equ ioport+28bh ;8255控制寄存器端口地址 io8255c equ ioport+28ah ;8255C口地址 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 dx,io8255b ;设8255为C口输入,A口输出 mov al,8bh out dx,al inout: mov dx,io8255c ;从C口输入一数据 in al,dx mov dx,io8255a ;从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS int 21h main endp code ends end start 实验现象:开关K0~K7的高低电平分别表示1和0,设置K0~K7的值,在流水灯L0~L7中用灯的亮与灭来显示。下图将k0,k1设置为高电平,对应的灯亮起。 2。 流水灯 start: mov ax,stacks mov ss,ax mov dx,io8255b ;设8255为C口输入,A口输出 mov al,8bh out dx,al inout: mov cl,01h mov dx,io8255c ;从C口输入一数据 in al,dx test al,01 jne right ;k0为高电平时向右 jmp left ;k0为低电平时向左 right: mov dx,io8255c ;从C口输入一数据 in al,dx and al,11110000b ;判断高四位 cmp al,00h ;判断延时,ah=00时停止,ah=10时延时移动显示 je right mov al,cl call delay1 rol cl,1 mov dx,io8255c ;从C口输入一数据 in al,dx test al,01 jne right ;k0为高电平时向右 jmp left left: mov dx,io8255c ;从C口输入一数据 in al,dx and al,11110000b ;判断高四位 cmp al,00h ;判断延时,ah=00时停止,ah=10时延时移动显示 je left mov al,cl call delay1 ror cl,1 mov dx,io8255c ;从C口输入一数据 in al,dx test al,01 jne right ;k0为高电平时向右 jmp left delay1 proc near mov dx,io8255a ;从A口输出刚才自C口 out dx,al ;所输入的数据 call delay mov al,0 out dx,al call delay ret delay1 endp DELAY PROC NEAR ;延迟子程序 push cx push bx mov bx,0fffh cc: mov cx,0ffffh ccc: loop ccc dec bx jnz cc pop bx pop cx ret DELAY ENDP code ends end start 实验现象:流水灯的流水方向可由K0键控制,K0为高电平时向左,K0为低电平时向右。但是流水间隔时间可由K4~K7来控制,但按ESC键也不能退出流水灯。虽然我们尝试修改了代码,不过最后还是没能实现按下esc退出。 3. 8段数码管静态显示程序段: start: mov ax,stacks mov ss,ax mov ax,data mov ds,ax mov dx,io8255b ;将8255设为A口输出 mov al,80h out dx,al mov di,offset buffer1 ;设di为显示缓冲区 loop2: mov bh,02 lll: mov byte ptr bz,bh push di dec di add di, bz mov bl,[di] ;bl为要显示的数 pop di mov al,0 mov dx,io8255a out dx,al mov bh,0 mov si,offset led ;置led数码表偏移地址为SI add si,bx ;求出对应的led数码 mov al,byte ptr [si] mov dx,io8255c ;自8255A的口输出 out dx,al mov al,byte ptr bz ;使相应的数码管亮 mov dx,io8255a out dx,al mov cx,3000 delay: loop delay ;延时 mov bh,byte ptr bz shr bh,1 jnz lll mov dx,0ffh mov ah,06 int 21h je loop2 ;有键按下则退出 mov dx,io8255a mov al,0 ;关掉数码管显示 out dx,al mov ah,4ch ;返回 int 21h code ends end start 实验现象: 从键盘输入一个0~9的数字后数码管中显示出该数字。 键入的数字6: 数码管显示6: 4. 8段数码管动态显示程序段 data segment ioport equ 0c800h—0280h io8255a equ ioport+288h io8255b equ ioport+28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,’Input a num (0--9h):’,0dh,0ah,’$' data ends stacks segment stack db 100 dup (?) stacks ends code segment assume cs:code,ds:data,ss:stacks start: mov ax,stacks mov ss,ax mov ax,data mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov ax,80h out dx,al sss: mov dx,offset mesg1 ;显示提示信息 mov ah,09h int 21h mov ah,01 ;从键盘接收字符 int 21h cmp al,’0’ ;是否小于0 jl exit ;若是则退出 cmp al,’9’ ;是否大于9 jg exit ;若是则退出 sub al,30h ;将所得字符的ASCII码减30H mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp sss ;转SSS exit: mov ah,4ch ;返回DOS int 21h code ends end start 实验现象:两个数码管动态显示出“56”。 流程图 图四 8255简单输入输出程序流程图 图五 8255动态显示56程序流程图 五.提高与创新研究 实验五: 1。图3。6-2系统中最大定时时间为多长,如果需要获得20秒的精确定时该如何处理? CLK0:0.0000001s CLK1、OUT0:0.0001s CLK2、OUT1:1s 所以最大定时时间为一秒。 如果要获得20秒的精确定时应将OUT1接CLK2,OUT2接输出,当OUT2输出20个方波时,为20s。 2。计数器选用方式三的原因:应要将OUT0接CLK1,所以输出最好为占空比为1:1的方波,而只有方式3输出为占空比为1:1的方波,故选用方式三。 实验六: 递增00~99 计数器 在电路图3的基础上,编程实现递增00~99 计数器(选作与探索实验一),编程如下: data segment ioport equ 0e000h—0280h io8255a equ ioport+28ah io8255b equ ioport+28bh io8255c equ ioport+288h led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码 buffer1 db 0,0 ;存放要显示的十位和个位 bz dw ? ;位码 data ends stacks segment stack db 100 dup (?) stacks ends code segment assume cs:code,ds:data,ss:stacks start: mov ax,stacks mov ss,ax mov ax,data mov ds,ax mov dx,io8255b ;将8255设为A口输出 mov al,80h out dx,al mov di,offset buffer1 ;设di为显示缓冲区 loop1: mov cx,0300h ;循环次数 loop2: mov bh,02 diy: mov byte ptr bz,bh push di dec di add di, bz mov bl,[di] ;bl为要显示的数 pop di mov bh,0 mov si,offset led ;置led数码表偏移地址为SI add si,bx ;求出对应的led数码 mov al,byte ptr [si] mov dx,io8255c ;自8255A的口输出 out dx,al mov al,byte ptr bz ;使相应的数码管亮 mov dx,io8255a out dx,al push cx mov cx,0ffffh ;如果显示过快,可更改cx值为最大0ffffh delay: loop delay ;延时 pop cx mov bh,byte ptr bz shr bh,1 jnz diy loop loop2 ;循环延时 mov ax,word ptr [di]gg cmp ah,09 jnz set cmp al,09 jnz set mov ax,0000 mov [di],al mov [di+1],ah jmp loop1 set: mov ah,01 int 16h jne exit ;有键按下则转exit mov ax,word ptr [di] inc al aaa mov [di],al ;al为十位 mov [di+1],ah ;ah中为个位 jmp loop1 exit: mov dx,io8255a mov al,0 ;关掉数码管显示 out dx,al mov ah,4ch ;返回DOS int 21h code ends end start 六。 实验结果以及遇到的问题和解决办法 实验五: 实验五的目的主要是通过实验对芯片8253的工作机理有了更加清楚地认识。通过本次实验,我熟悉了8253定时器/计数器的内部工作原理,透彻理解了8253的方式控制字,状态字等功能的实现原理,这是本次实验最大的收获!并且,掌握了对8253的初始化以及运行的过程,让我对于课本上讲的8253的工作方式有了更深刻的体会。 实验六: 通过这次实验我了解了一些8255简单输入与输出的使用方法.8255的简单输入输出实验完成的比较顺利,但是流水灯做了好久,不知道是不是线或者试验箱的问题,我们运行一次是好的,但是再回来运行一次又观察不到现象了。还有按下esc退出的问题,我们仿照下一个实验数码管静态显示的实验来做,但是不按键灯就不动。后来几次尝试还是失败了。 数码管的静态动态显示也比较顺利,我们更加熟悉了8255的使用方法,也加强了对于数码管显示机理的理解。 总之,虽然在调试中会遇到各种各样的问题,但程序的调试提高了我解决问题的能力,学会了在设计中独立解决问题,也包括怎样去查找问题,只有自己亲手去操作才会在脑海中留下深刻的印象。 12- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 微机 原理 系统 接口 实验 报告 自动化 学院
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文