微机接口实验 报告 程序.doc_第1页
微机接口实验 报告 程序.doc_第2页
微机接口实验 报告 程序.doc_第3页
微机接口实验 报告 程序.doc_第4页
微机接口实验 报告 程序.doc_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

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

文档简介

题目一 实验二 交通灯控制实验 一、实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。二、实验内容如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255控制寄存器端口地址 28BH A口的地址 288H C口的地址 28AH2、十字路口交通灯的变化规律要求: (1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 转(1)重复。 三、参考流程图设置8255A口输出C口输出开 始南北路口黄灯闪,东西路口红灯亮南北路口绿灯亮,东西路口红灯亮长延时南北路口红灯亮,东西路口绿灯亮长延时是否有键按下NY返回DOS南北路口红灯亮,东西路口黄灯闪 四、源程序及注释;微机原理与接口技术实验,题目一,交通灯控制台DATA SEGMENT;数据段IOPORT EQU 0C400H-0280H;使用动态分配的io基地址代替0C400HIO8255 EQU IOPORT+028BH;寄存器IO8255C EQU IOPORT+028AH;8255的c口DATA ENDSEXTRA SEGMENT;附加段EXTRA ENDSSTACK1 SEGMENT PARA STACK;堆栈段STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRA;设置为高电平LED亮灯START:MOV AX,DATAMOV DS,AXMOV AL,80HMOV DX,IO8255OUT DX,AL;设置8255LOP:MOV DX,IO8255CMOV AL,00100100BOUT DX,AL;(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。CALL LDELAYMOV CX,4;(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。E1:MOV AL,01000100BOUT DX,ALCALL SDELAYMOV AL,00000100BOUT DX,ALCALL SDELAYLOOP E1MOV AL,10000001BOUT DX,AL;(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。CALL LDELAYMOV CX,4;(4)闪烁可选,南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。E2:MOV AL,10000010BOUT DX,ALCALL SDELAYMOV AL,10000000BOUT DX,ALCALL SDELAYLOOP E2 JMP LOPLDELAY PROC ;长延时子程序PUSH CXPUSH AXPUSH BXMOV BX,2T0: MOV CX,0FFFFH;外层循环T1: MOV AX,0FFFFHT2:DEC AXJNZ T2MOV AH,1INT 16HJNZ EXITLOOP T1DEC BXJNZ T0POP BXPOP AXPOP CXRETLDELAY ENDPSDELAY PROC ;短延时子程序PUSH CXPUSH AXMOV CX,0FFFHTH1: MOV AX,0FFFFHTH2:DEC AXJNZ TH2MOV AH,1INT 16HJNZ EXITLOOP TH1POP AXPOP CXRETSDELAY ENDPEXIT:MOV AH,4CHINT 21HCODE ENDSEND START五、总结第一次实验,我们熟悉了TPC-2003A的系统环境和软件编译步骤。本实验通过8255进行并口扩展,实现了交通灯的模拟控制,通过延时实现了灯的闪烁和亮一段时间。实验中需要用软件得到不同的被动分配的IO基地址:c400。1MOV AL,80HMOV DX,IO8255OUT DX,AL;设置8255设置8255A口输出C口输出。2在子程序中使用MOV AH,1INT 16HJNZ EXIT查询键盘状态是否退出,随时可以退出主程序。题目二 实验一 可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。二、实验内容1按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。2按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。三、参考流程图1、8253控制寄存器地址 283H计数器0地址 280H计数器1地址 281HCLK0连接时钟 1MHZ。2 四、源程序及注释内容1DATA SEGMENT;数据段IOPORT EQU 0C400H-0280H;使用动态分配的io基地址代替0C400HIO82530 EQU IOPORT+0280H;寄存器IO8253 EQU IOPORT+0283H;寄存器IO82531 EQU IOPORT+0281H;8255的c口NUM EQU 0AHDATA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP (?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AX,STACK1MOV SS,AX;核心程序MOV DX,IO8253;初始化MOV AL,10HOUT DX,ALMOV AL,NUMMOV DX,IO82530OUT DX,AL;赋初值MOV CL,NUMLOP: MOV DX,IO82530;读入计数值是否改变,改变则输出IN AL,DXcmp AL,CLJNE NEXTJMP LOPNEXT:MOV CL,AL;ASIC输出转换CMP AL,09HJLE ASICADD AL,7HASIC: ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV AH,1;任何键退出INT 16HJNZ EXITJMP LOPEXIT:MOV AH,4CH;return dosINT 21HCODE ENDSEND START内容2DATA SEGMENT;数据段IOPORT EQU 0C400H-0280H;使用动态分配的io基地址代替0C400HIO82530 EQU IOPORT+0280H;寄存器IO8253 EQU IOPORT+0283H;寄存器IO82531 EQU IOPORT+0281H;8255的c口DATA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP (?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AX,STACK1MOV SS,AX;核心程序MOV DX,IO8253MOV AL,00110110BOUT DX,ALMOV AX,1000MOV DX,IO82530OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,IO8253MOV AL,01110110BOUT DX,ALMOV AX,1000MOV DX,IO82531OUT DX,ALMOV AL,AHOUT DX,ALMOV AH,4CH;return dosINT 21HCODE ENDSEND START五、总结1、在读计数器的值并显示时,要用CL将原有初值保存,读入AL后比较,如果初值改变再进行输出,这是实用查询方法显示应特别注意的。2、技术结束后(N+1个脉冲)OUT0输出高电平,表示计数结束。题目三 实验六 中断实验(纯DOS)一、实验目的1、掌握PC机中断处理系统的基本原理2、学会编写中断服务程序二、实验内容1、实验原理PC机用户可使用的硬件中断只有可屏蔽中断由8259中断控制器管理中断控制器用于接收外部的中断请求信号经过优先级判别等处理后向CPU发出可屏蔽中断请求 IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源中断源中断类型号 中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0 IRQ7在主机的62线ISA总线插座中可以引出系统已设定中断请求信号为边沿触发普通结束方式对于PC/AT及286以上微机内又扩展了一片8259中断控制 IRQ2用于两片8259之间级连对外可以提供16个中断源中断源 中断类型号 中断功能 IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留PCI总线中的中断线只有四根 INTA# INTB# INTC# INTD# 它们需要通过P&P的设置来和某一根中断相连接才能进行中断申请2、实验内容实验电路如图5-8 直接用手动产单脉冲作为中断请求信号只需连接一根导线要求每按一次开关产生一次中断在屏幕上显示一次 TPC pci card Interrupt 中断10次后程序退出三、参考流程图1、1. 由于9054的驱动程序影响直写9054芯片的控制寄存器, 中断实验需要在纯DOS的环境中才能正常运行。2. 由于TPC卡使用PCI总线, 所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置。获取方法是在纯DOS环境中,运行一个读PCI配置空间的程序“PORTR.EXE”,该程序能够获得本机TPC板卡或所有PCI板卡的硬件资源,如IO、内存、中断占用情况。然后根据获得的中断请求号码来修改程序中的中断向量、中断掩码的参数,并重新编译链接后即可。3. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能代码如下:mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断in ax,dxor ax,0900hout dx,ax2其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址 ,每台微机可能都不同, 编程时 需要了解当前的微机使用哪段并进行设置,获取方法请参看汇编程序使用方法的介绍。+68H的偏移是关于中断使能的寄存器地址 设置含义如下: 设置INTCSR(68H)寄存器 中断模式设置 BITS 功能 8 1: 能够产生PCI中断 0 :禁止产生PCI中断 11 1: 能够LOCAL端输入的中断送到PCI端0: 禁止LOCAL端输入的中断送到PCI端其它位为零即可 更多内容参看9054芯片数据手册 四、源程序及注释DATA SEGMENT;数据段COUNT DB 10CHAR0 DB START,0AH,0DH,$CHAR DB TPC pci card Interrupt,0AH,0DH,$IOPORT_CENT EQU 0C000H;使用动态分配的io基地址代替0C000Hirq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零 irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零,本次实验为09H,对应向量号71HDATA ENDSEXTRA SEGMENT;附加段EXTRA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP(?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRASTART:MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV AX,STACK1MOV SS,AX;核心程序CLI;关中断MOV DX,IOPORT_CENT+68H;设置tpc卡9054芯片io口,使能中断IN AX,DXOR AX,0900HOUT DX,AXMOV AH,35HMOV AL,71H;保存原中断向量INT 21HPUSH ESPUSH BX;保存中断PUSH DSMOV AL,70H;需修改中断向量号,将中断处理函数写入向量OUT 21H,ALMOV AX,SEG INTPMOV DS,AXMOV DX,OFFSET INTPMOV AL,71Hmov AH,25HINT 21Hin al, 21h ;设置中断掩码and al, irq_mask_2_7out 21h, alin al, 0a1h;从片的地址A0H/A1Hand al, irq_mask_9_15out 0a1h, alIN AL,21H;读IMR 允许IR2请求AND AL,11111011BOUT 21H,ALPOP DSMOV DX,OFFSET CHAR0;output string startMOV AH,09HINT 21HWAITI: STI;开中断,等待中断CMP COUNT,0JNZ WAITIclimov bl, irq_mask_2_7 ;恢复中断掩码not blin al, 21hor al, blout 21h, almov bl, irq_mask_9_15not blin al, 0a1hor al, blout 0a1h, alPOP DXPOP ESMOV AX,ESMOV DS,AXMOV DX,BXMOV AL,71H;恢复向量MOV AH,25HINT 21HMOV DX,IOPORT_CENT+68H;设置tpc卡9054芯片io口,关闭中断IN AX,DXAND AX,0F7FFHOUT DX,AXMOV AH,4CH;return dosINT 21HINTP PROC;中断处理程序CLIPUSH DSPUSH AXPUSH DXMOV AX,DATAMOV DS,AXMOV DX,OFFSET CHAR;output string 提示MOV AH,09HINT 21HDEC COUNTJNZ NEXTIN AL,21HOR AL,00000100BOUT 21H,AL;屏蔽IR2NEXT: CLIMOV AL,20HOUT 20H,ALout 0a0h,al;中断结束命令,从片POP DXPOP AXPOP DSSTIIRETINTP ENDPCODE ENDSEND START五、总结1、通过PORTR.EXE的程序得到IOPORT_CENT EQU 0C000H中断源IRQ09 中断向量号71H不同于课本所介绍的,本系统使用主从两片8259,主片地址20H 21H,从片地址A0H A1H,对主片设定为主从工作方式,从片设定irq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零,本次实验为09H,对应向量号71H2、使用用户中断时先要保存原有中断的入口地址,退出前要恢复原有向量。题目四 实验四 模/数转换器一、实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。二、实验内容实验电路原理图如图5-5。通过实验台左下角电位器RW1输出05直流电压送入ADC0809通道0(IN0), 编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)图 模数转换电路三、参考流程图四、源程序及注释DATA SEGMENT;数据段NUM DB 0IOPORT EQU 0C400H-280H;使用动态分配的io基地址代替0C400HIN0 EQU IOPORT+298HIN1 EQU IOPORT+299HDATA ENDSEXTRA SEGMENT;附加段EXTRA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP(?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRASTART:MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV AX,STACK1MOV SS,AX;核心程序LP:MOV AH,1;任何键退出INT 16HJNZ EXITMOV DX,IN0MOV AL,0;启动OUT DX,AL;延时MOV CX,0FFFHWAIT: LOOP WAITIN AL,DXCMP AL,NUM;改变才输出JE LPMOV NUM,ALMOV BL,ALMOV CL,4SHR AL,CLAND AL,0FH;由于al有8位,要先对他的高4位进行输出,ASIC码只有4位MOV DL,ALCALL ASICAND BL,0FHMOV DL,BLCALL ASICJMP LPEXIT: MOV AH,4CH;return dosINT 21HASIC PROC;显示字符子程序PUSH AXPUSH DXCMP DL,9JLE NEXTADD DL,7NEXT:ADD DL,30HMOV AH,02HINT 21HPOP DXPOP AXRETASIC ENDPCODE ENDSEND START五、总结1、启动ADC0809后,要延时一段时间,解决好启动转换与读取数据这两个操作的时间配合问题。2、编的程序将读入的数据进行与上次读入保存的数据比较,只有数据改变才输出显示,实验中观察到模拟输入量有误差扰动,会出现滑动变阻器不动,但数据仍会改变的现象。题目五 实验五 PC机串行通讯实验一、实验目的1、进一步了解串行通信的基本原理。2、掌握串行接口芯片8250的工作原理和编程方法。3、熟悉PC机串行口的基本连接方法二、实验内容1、PC机RS-232串口自发自收。按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。2、两台PC机间RS-232串口通信。按照PC机RS-232串口直接互连的方法连接两台PC机。编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。三、连线图图5-6 DB-9连接器图5-7 双机近距离通信连接图四、源程序及注释1、PC机RS-232串口自发自收。;非自检CODE SEGMENT ASSUME CS:CODE START: MOV AL,10000000B ;8250初始化,设DLAB=1 MOV DX,3FBH OUT DX,AL MOV AX,30H MOV DX,3F8H OUT DX,AL ;写入除数低字节 MOV AL,AH MOV DX,3F9H OUT DX,AL ;写入除数高字节 MOV AL,00001011B ;8位数据,1位停止,奇校验 MOV DX,3FBH OUT DX,AL ;写入线路控制寄存器 MOV AL,00000000B ;非自检 MOV DX,3FCH OUT DX,AL ;写入MODEM控制寄存器 MOV AL,0 MOV DX,3F9H OUT DX,AL ;禁止中断WAIT_FOR: MOV DX,3FDH ;读线路状态寄存器 IN AL,DX TEST AL,00011110B ;出错否JNZ ERROR TEST AL,00000001B ;接收数据就绪否 JNZ RECEIVE ;转接收 TEST AL,00100000B ;发送器空否 JZ WAIT_FOR ;返回等待 MOV AH,1 INT 21H ;读键盘 MOV DX,3F8H ;发送 OUT DX,ALCALL DELAY;延时等待 JMP WAIT_FOR ;返回等待RECEIVE: MOV DX,3F8H ;读接收数据 IN AL,DX AND AL,01111111B CMP AL,! ;是!? JNZ CHAR MOV AX,4C00H ;返回DOS INT 21H CHAR: MOV DL,AL MOV AH,2 ;显示接受字符 INT 21H JMP WAIT_FOR ;返回等待 ERROR:MOV DL,? ;显示? MOV AH,02H INT 21H JMP WAIT_FORdelay proc push cx push dx mov cx,0 mov dx,1000 l1: loop l1 dec dx jnz l1 pop dx pop cx RETdelay endp CODE ENDS END START2、两台PC机间RS-232串口通信。;发送端CODE SEGMENTASSUME CS:CODESTART:MOV AL,80H;8250初始化,设DLAB=1MOV DX,3FBHOUT DX,ALMOV AX,0030HMOV DX,3F8HOUT DX,AL;写入除数低字节MOV AL,AHMOV DX,3F9HOUT DX,AL;写入除数高字节MOV AL,0AH;7位数据,1位停止,奇校验MOV DX,3FBHOUT DX,AL;写入线路控制寄存器MOV AL,03H;数据终端就绪,请求发送数据MOV DX,3FCHOUT DX,AL;写入Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL;写中断允许寄存器,屏蔽中断WAIT_FOR:MOV DX,3FDH;读线路状态寄存器IN AL,DXTEST AL,00100000B;发送寄存器空否,不空,返回等待JZ WAIT_FORSEND:MOV AH,1INT 21HCMP AL,21HJZ EXITMOV DX,3F8H;读键盘,若是!,返回DOS,若不是,则发送OUT DX,ALJMP WAIT_FOR;返回等待EXIT:MOV AX,4C00H INT 21HCODE ENDSEND START;接收端CODE SEGMENTASSUME CS:CODE START:MOV AL,80H;8250初始化,设DLAB=1MOV DX,3FBHOUT DX,ALMOV AX,0030HMOV DX,3F8HOUT DX,AL;写入除数低字节MOV AL,AHMOV DX,3F9HOUT DX,AL;写入除数高字节MOV AL,0AH;7位数据,1位停止,奇校验MOV DX,3FBHOUT DX,AL;写入线路控制寄存器MOV AL,03H;数据终端就绪,请求发送数据MOV DX,3FCHOUT DX,AL;写入Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL;写中断允许寄存器,屏蔽中断WAIT_FOR:MOV DX,3FDH;读线路状态寄存器IN AL,DXTEST AL,00000001B;接收数据就绪否JNZ RECEIVE;转接收JMP WAIT_FOR;返回等待RECEIVE:MOV DX,3F8H;读接收数据IN AL,DXAND AL,01111111B;保留7位数据CMP AL,21H;是!?JNZ CHARMOV AX,4C00H;返回DOSINT 21HCHAR:PUSH AXMOV DL,ALMOV AH,2;显示接收字符INT 21HPOP AXJMP WAIT_FOR;返回等待CODE ENDSEND START五、总结实验的自发自收在对MODEM进行设置时,没有采用自检方式,而是在实际电路中将RXD和TXD短接,实现自发自收。所以在发送数据后稍等一定的延时再去查询线路状态寄存器,在进行接收数据和发下一个数据。实验中,我们通过亲自操作,熟悉了串行通信的原理,对于复杂的理论又有了深的理解。题目六 实验三 竞赛抢答器一、实验目的、了解微机化竞赛抢答器的基本原理。、进一步学习使用并行接口二、实验内容竞赛抢答器(模拟)的原理图,逻辑开关K0K7代表竞赛抢答按钮07号,当某个逻辑电平开关置“”时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出来,并使喇叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。三、连线图四、源程序及注释DATA SEGMENT;数据段LIST DB 2FH,06H,5BH,4FH,66H,6DH,7DH,07H ;共阴极LIST1 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;共阳极IOPORT EQU 0C400H-280H;使用动态分配的io基地址代替0C400HIO8255A EQU IOPORT+288H;8255地址IO8255C EQU IOPORT+28AHIO8255 EQU IOPORT+28BHDATA ENDSEXTRA SEGMENT;附加段EXTRA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP(?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRASTART:MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV AX,STACK1MOV SS,AX;核心程序MOV BX,OFFSET LISTMOV DX,IO8255MOV AL,10001001B;C口入,a口出OUT DX,ALLP:MOV DX,IO8255CIN AL,DXCMP AL,0JZ LPMOV DL,ALMOV AL,0LOP: SHR DL,1;求组号INC ALCMP DL,0JNZ LOPDEC ALXLAT;查表MOV DX,IO8255AOUT DX,AL;OUTPUTMOV DL,7;响铃MOV AH,2INT 21HMOV AH,1INT 21HCMP AL, ;结束否JE LOP2MOV AH,4CHINT 21HLOP2:MOV AL,0 ;关闭显示MOV DX,IO8255AOUT DX,ALJMP LPCODE ENDSEND START五、总结1、设置8255为口输入、口输出,读取口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。 响铃的DOS功能调用: MOV DL, 7 ; 响铃ASCII码为07 MOV AH ,2 INT 21H。2、实验中使用的是共阴极数码管,使用查表的方法得到ag的状态;在读入开关状态时,数据并不是要输出的数据,需要经过移位得出某一开关按下时对应的八位二进制数,在经过A口输出。题目七 自主设计 8255与中断的混合编程一、自主设计功能使用脉冲输入产生中断,并在中断服务程序中调用8255通过A口输出脉冲个数的数值,由数码管显示。二、连线图、中断脉冲8255输出三、源程序及注释DATA SEGMENT;数据段LIST DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH ;共阴极LIST1 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;共阳极IOPORT EQU 0C400H-280H;使用动态分配的io基地址代替0C400HIO8255A EQU IOPORT+288H;8255地址IO8255C EQU IOPORT+28AHIO8255 EQU IOPORT+28BHCOUNT DB 0CHAR0 DB START TO DISPLAY:COUNT9,0AH,0DH,$IOPORT_CENT EQU 0C000H;使用动态分配的io基地址代替0C000Hirq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零 irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零,本次实验为09H,对应向量号71HDATA ENDSEXTRA SEGMENT;附加段EXTRA ENDSSTACK1 SEGMENT PARA STACK;堆栈段DW 100H DUP(?)STACK1 ENDSCODE SEGMENT;代码程序段ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRASTART:MOV AX,DATAMOV DS,AXMOV

温馨提示

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

最新文档

评论

0/150

提交评论