文档详情

实验六 8255并行输入输出.docx

发布:2017-06-18约4.42千字共8页下载文档
文本预览下载声明
东南大学《微机实验及课程设计》实验报告实验六 8255并行输入输出姓 名:学 号: 专 业:测控技术与仪器 实 验 室: 516同组人员: 评定成绩: 实验目的1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;掌握8段数码管的动态刷新显示控制;(1)实验内容(必做)6-1、8段数码管静态显示: 编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。(如56或7f) (2)实验内容(必做一题,选做一题)6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII码不是数字(0~9),数码管显示E字母。6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出)实验原理实验预备知识图 八段式LED数码管的符号和引脚6-1流程图:NY6-1源代码:data segmentioport equ 0ec00h-0280hio8255aequ ioport+288h ;8255A口地址io8255bequ ioport+28bh ;8255控制寄存器端口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码mesg1 db 0dh,0ah,Input a num (0--9h):,0dh,0ah,$;提示data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,axmov dx,io8255b ;使8255的A口为输出方式 mov ax,80h out dx,alsss: mov dx,offset mesg1 ;显示提示信息 mov ah,09h int 21hmov ah,01 ;从键盘接收字符 int 21hcmp al,0 ;是否小于0jl exit ;若是则退出cmp al,9 ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov bx,offset led ;bx为数码表的起始地址xlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出 out dx,aljmp sss ;转SSSexit: mov ah,4ch ;返回DOS int 21hcode endsend start(3)6-2接线图:6-2源代码:data segmentioportequ 0ec00h-0280hio8255aequ ioport+288hio8255cequ ioport+28ahio8255kequ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 5,6 ;存放要显示的个位和十位bz dw ? ;位码data endsstacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ds:data,ss:stacksstart:mov ax,data mov ds,axmov ax,stacks mov ss,ax mov dx,io8255k ;将8255设为A口输出 mov al,80h out dx,al mov di,offset buffer1 ;设di为显示缓冲区loop2:mov bh,02lll: mov al,0 ;送全灭断码 mov dx,io8255a ;自8255A口输出 out dx,al mov byte ptr bz,bh push di dec di
显示全部
相似文档