计算机接口技术大作业
简答题(计算机接口技术小作业)
简答题(计算机接⼝技术⼩作业)计算机接⼝技术简答题1. 8086/8088的EU与BIU各表⽰什么含义?各⾃的功能是什么?答:EU是8088/8088微处理器的执⾏部件,BIU是8088/8088微处理器的总线接⼝部件。
EU的功能是执⾏指令,BIU的功能是使8086/8088微处理器与⽚外存储器或I/o接⼝电路进⾏数据交换。
2.“8086执⾏了⼀个总线周期”,是指8086做了哪些可能的操作?基本总线周期如何组成?在⼀个典型的读存储器总线周期中,地址信号、ALE信号、RD信号、数据信号分别在何时产⽣?答:(1)是指8086对⽚外的存储器或I/O接⼝进⾏了⼀次访问,读写数据或取指令。
(2)基本总线周期由4个时钟周期组成,分别记为T1,T2,T3,T4。
(3)地址信号、ALE信号在T1周期内产⽣,RD信号在T2周期内产⽣,数据信号⼀般在T3内产⽣,若T3来不及提供数据,可在某Tw内产⽣有效数据。
3. 简述uP,uc,ucs三者的区别。
答:uP微处理器⼀般也称为中央处理单元(CPU,Central processing unit),它本⾝具有运算能⼒和控制功能。
uc,微型计算机是由MP、存储器、输⼊/输出接⼝电路和系统总线构成。
ucs微型计算机系统是以微型计算机为主体,配上软件系统和外部设备⽽构成的。
4. 8255A⼯作于⽅式2,采⽤中断传送,CPU如何区分输⼊中断还是输出中断?答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态字,判断~OBFA(PC7)和IBFA(PC5)位的状态来区分是输⼊中断还是输出中断,并据此转向相应的输⼊或输出操作。
5. 对可编程I/O接⼝进⾏初始化时,往往通过⼀个⼝地址写⼊⼏个控制字,如何保证控制字正确写⼊?试分别举例说明。
答: ①按特征位区分。
如8255的控制字②按顺序区分。
如8259的控制字6. 试说明8255A在⽅式1输出时的⼯作过程。
计算机接口技术实验报告优选全文
最新精选全文完整版(可编辑修改)《计算机接口技术》实验报告专业:电信息科学与技术班级:姓名:学号:年月日实验一:8255A并行口实验实验目的:掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。
实验内容:一、实验原理实验原理图如图5-9所示,PB4 ~ PB7和PC0 ~ PC7分别与发光二极管电路L1~ L12 相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
8255A的PB4~ PB7对应黄灯,PC0 ~ PC3对应红灯,PC4~ PC7对应绿灯。
8255A 工作于模式0,并置为输出。
由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。
二、实验线路连接(1) CS-8255插孔连译码输出Y7插孔。
(2) L1 - PC4 L4 - PC5 L7 - PC6 L10 - PC7L2 - PB4 L5 - PB5 L8 - PB6 L11 - PB7L3 - PC0 L6 - PC1 L9 - PC2 L12 - PC3三、实验软件清单见随机光盘,文件名为H8255-2.ASM四、实验步骤1、按图5-9连好实验线路2、运行实验程序在DVCC-8086JHN上显示"8255-2"。
同时L1~L12 发光二极管模拟交通灯显示。
CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073H ;设置控制端常量IOAPT EQU 0070H ;设置数据端口A地址常量IOBPT EQU 0071H ;设置数据端口B地址常量IOCPT EQU 0072H ;设置数据端口C地址常量IOBDATA EQU 0500HCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0640HSTART: JMP IOLEDIOLED: CALL FORMATCALL LEDDISPMOV AX,0HMOV DS,AXMOV AL,82HMOV DX,IOCONPT ;写8255控制字,三个口均工作于方式0OUT DX,AL ;往控制端口写控制字,设置A口工作在方式0输入,B方式0输出MOV DX,IOBPT ;读PB口数据存0601H单元IN AL,DXnot almov al,00hnopnopMOV BYTE PTR DS:[0501H],ALMOV DX,IOCONPT ;写方式控制字均为输出MOV AL,80HOUT DX,ALMOV DX,IOBPT ;置PB0,PB4~PB6为1,其余为0MOV AL,DS:[0501H]OR AL,0FH ;使PB0~PB3为1,PB4~PB7为0OUT DX,AL ;即熄灭红灯,点亮绿灯MOV DX,IOCPT ;使PC1,PC4~PC6为1,其余为0MOV AL,0FH ;使PC0~PC3为1,PC4~PC7为0OUT DX,ALCALL DELAY1 ;延时IOLED0: MOV AL,01011010B ;使2,4路口绿灯亮,1,3口红灯亮MOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭2,4路口绿灯OUT DX,ALMOV CX,8H ;只计数器值为8IOLED1: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,01011111B ;点亮2,4路口黄灯OUT DX,ALCALL DELAY2 ;短暂延时and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED1 ;黄灯闪烁8次MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2MOV AL,10100101B ;点亮1,3口红灯和2,4路口绿灯OUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭掉红灯OUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,10101111B ;点亮1,3路口黄灯OUT DX,ALCALL DELAY2and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2JMP IOLED0 ;循环DELAY1: PUSH AXPUSH CX ;延时子程序MOV CX,0030HDELY2: CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1: LOOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0640H],405BHADD BX,2MOV WORD PTR DS:[BX+0640H],4040HADD BX,2MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0640H],7F5BHRETCODE ENDSEND START实验二:定时/计数器实验目的:1. 学会8253芯片和微机接口原理和方法。
计算机接口技术课堂大作业1
计算机接口技术课堂大作业参考答案(1)姓名:班级:学号:成绩:——————————————————————————————————一.填空题(每空2分,共30分)1.接口的编址方式有(统一编址)和(独立编址)。
2.数据输入/输出的三种基本方式是(查询)、(中断)和(DMA)。
3.8086CPU的外部中断引脚有(INTR)和(NMI)。
4.在8086CPU系统中,设某中断源的中断类型号为08H,中断矢量为0100H:1000H,则相应的中断矢量存储地址为(0020H);从该地址开始,连续的4个存储单元存放的内容依次为(00H、10H、00H、01H)。
5.定时器/计数器8254的地址范围是304H~307H,则控制端口的地址是(307H)。
6.如用译码器74LS138的输出信号与8086CPU的WR信号组合后成为8255A的片选控制信号,应选用下列哪中逻辑电路(B)。
A.与门 B.和门C.与非门D.和非门7.在某一存储器系统中,设有只读存储器16KB,随机存储器48KB,用16根地址线来寻址,如只读存储器位于低地址段,则其地址范围是(C)。
A. 0000H—2BFFHB. 0000H—0FFFHC. 0000H—3FFFHD. 0000H—4AFFH8.键盘硬中断的类型号是9,它对应的中断向量指针是( 0000:0024H )。
(包括段地址和徧移量)9.在给接口编址的过程中,如果有5根地址线没有参加译码,则可能产生(32)个重叠的地址。
10.某8254A定时器/计数器0的CLK0输入时钟频率是1MHz,要求的定时时间是10ms,则定时器/计数器0的定时常数应该是(10000)二.简答题(每小题5分,共40分)1.什么是端口?8086共有多少端口?答:一个I/O地址称为一个端口;8086共有65536个端口。
2.请用74LS138设计一个产生308H~30FH的PC机译码电路。
答:3.请简述在8254A定时器/计数器中,什么是硬件触发和软件触发?答:软件触发特点:8253A初始化后,只要写入定时/计数常数,8253A就开始计数.。
计算机接口技术大作业
计算机接口技术大作业LT哈尔滨工业大学本科毕业设计(论文)哈尔滨工业大学本科毕业设计(论文)摘要学习计算机组成原理和计算机接口技术之中,“中断”是一个必须要学习的美容,计算机之所以能够“智能”的运行起来使得其更容易被人使用很重要的一点就是有了中断技术。
因为中断计算机从一个只靠计算速度和存储量来来博得人们喜爱的机器变成了一个用户有好的聪明的机器。
本文将从几个问题入手来来逐一介绍计算机中断技术和中断系统。
一:什么是中断?1.1 中断的定义在计算机科学中,中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。
发出这样的信号称为进行中断请求(interrupt request,IRQ)。
硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。
中断在计算机多任务处理,尤其是实时系统中尤为有用。
这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。
上面是来自维基百科对中断定义。
个人认为中断就是计算机在执行程序的过程中,当出现异常情况或者是特殊请求时,计算机停止执行现行程序的运行,转向对这些异常情况或特殊请求的处理,处理后再返回到现行程序的间断处,继续执行原程序,这就是中断。
哈尔滨工业大学本科毕业设计(论文)图1.1中断处理过程打一个不太恰当的比方。
比如说你正在看书那么你就是CPU,看书就相当于你正在执行的程序,当你电话响了或者是有其他的事情发生导致你必须停下正在看的书去做另一件事(接电话)。
那么这就是一个中断,在这个中断中现行程序是看书,中断时电话响了,CPU是你自己。
当你接完电话之后(假设接完电话就没其他特殊的事了)那么你就回去看书,也就相当于定义中的返回执行原程序。
接口大作业
基于8088的电子钟设计-----《微控制器与微处理器原理》综合设计数媒08作者: XXX学号:030508概述文章从对《微机原理与接口技术》教材内容与计算机技术的近期发展的关联、比较中,指出该课程的教学重点。
针对我们学生的畏难情绪和缺乏兴趣“学习通病”,提倡“模块记忆”和“形象比喻教学”。
还主张把配套的课程实验划分为验证性实验、设计性实验和综合提高性实验,分别拟定教学目的和要求、编写实验指导书,达到逐级提高我们学生解决实际问题能力的目的。
引言:1978年Intel公司开发出比8086性能更出色的8088处理器,并成功将其销售给IBM全新个人计算机部门,使得8088成为全新热销的IBM PC的大脑。
从8088开始,个人计算机的概念开始在全世界范围内发展起来。
标志着一个新时代的开始。
虽然处理器的发展速度非常迅猛,但是作为里程碑式的8088,仍然作为实验工具被使用。
本文就是基于8088处理器的电子钟的开发。
本实验利用Protel绘制原理图,使用微机原理仿真试验箱,利用系统提供的8253计数器/定时器,中断器8259,6个LED实现了电子钟的基本功能,在电子钟上显示时,分,秒,并具有设置时间,计时,闹钟的功能。
使用汇编语言进行编程。
Abstract:In 1978 Intel Corporation developed 8088 processors. The 8088 processor is more superior than the 8086 processor. The Intel Corporation sold the 8088 processor to the PC department of IBM. Then the concept of PC started to develop all over the world. Even the development of processors is fast, the classical 8088 processor is still used in the experiments. This paper is about the development of eletron clock based on the 8088 processor.This paper ueses Protel to draw the schematic diagram and uses the microcomputer simulation texting box including the 8253 counter/timer,8259 interrupter and six LEDs to realize the basic function of electron clock. The electron clock can display the hour , the minute and the second. It can set the time and count .It can also have the function of alarm clock. This paper uses compiling language to program.一、总设计:1设计内容利用TDS—MD微机实验系统设计数字电子钟及钟控显示装置软硬件。
微型计算机接口技术大作业
微型计算机接口技术大作业学院(系):软件学院专业:软件工程班级:姓名:学生学号:电话:2011年6月5日P2P语音聊天工具一、程序简介程序实现了文字聊天和语音聊天,程序即可以作为服务器端侦听其他用户的连接请求,也可以作为客户端主动连接其他用户。
程序使用了Win32 API提供的用于多媒体服务的函数接口,主要涉及波形音频设备的相关内容。
程序主要分为四个模块:1.主程序模块(消息处理和界面控制)2.负责接收连接的服务器Socket模块3.负责接收和发送数据的客户端模块4.声卡数据的采集和播放模块二、流程图主模块流程图:负责接收连接的服务器Socket模块:负责接收和发送数据的客户端模块:声卡数据的采集和播放模块流程图:三、代码实现代码主要是用MFC对话框程序框架编写的,对于界面上的控件和消息传递的部分,此处略去,仅仅给出主要程序的代码。
主模块代码://初始化端口号、聊天消息框和输入框CExample2_ChatRoomDlg::CExample2_ChatRoomDlg(CWnd* pParent /*=NULL*/) : CDialog(CExample2_ChatRoomDlg::IDD, pParent){//{{AFX_DATA_INIT(CExample2_ChatRoomDlg)m_sInputString = _T(""); //输入框m_sShowString = _T(""); //聊天消息框m_uPort = 4000; //端口号//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}//初始化服务器IP地址(默认设置为本机的IP地址)BOOL CExample2_ChatRoomDlg::OnInitDialog(){CDialog::OnInitDialog();ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, FALSE);if(AfxSocketInit(NULL)==0){AfxMessageBox("CSocketInital Error");}BYTE f0,f1,f2,f3;CString name;CClientSocket::GetLocalHostName(name); //获取本机名CClientSocket::GetIpAddress(name,f0,f1,f2,f3); //获取本机IP//设置服务器IP为本机IP((CIPAddressCtrl *)(GetDlgItem(IDC_IPADDRESS)))->SetAddress(f0,f1,f2,f3);m_bInit=false;m_bClient=false;m_willchating=TRUE;return TRUE;}//显示主窗体BOOL CExample2_ChatRoomApp::InitInstance(){AfxEnableControlContainer();#ifdef _AFXDLLEnable3dControls();#elseEnable3dControlsStatic();#endifCExample2_ChatRoomDlg dlg; //创建窗体实例m_pMainWnd = &dlg;intnResponse = dlg.DoModal();if (nResponse == IDOK){}else if (nResponse == IDCANCEL){}return FALSE;}//对于用户更改聊天窗口内容的判断void CExample2_ChatRoomDlg::OnInputText(){if(!m_bInit) //如果用户还没有连接就输入聊天内容,提示用户先连接{AfxMessageBox("还没有连接到服务器!");return;}//如果用户按下Enter按钮,且焦点在输入窗口中,则对当前聊天室中的所//有用户发送消息CString in;CMessgmsg;GetDlgItemText(IDC_INPUTTEXT,in);if(in.GetLength()<1){return;} //如果用户没有输入内容,返回if(in.GetAt(in.GetLength()-1)=='\n'){in.TrimRight(" ");SetDlgItemText(IDC_INPUTTEXT,"");if(in.GetLength()>2){m_sMsgList+=in;SetDlgItemText(IDC_SHOWTEXT,m_sMsgList);Intm_iLineCurrentPos=((CEdit*)(GetDlgItem(IDC_SHOWTEXT)))->GetLineCount();((CEdit*)(GetDlgItem(IDC_SHOWTEXT)))->LineScroll(m_iLineCurrentPos);msg.m_strText=in;if(!m_bClient){POSITION pos;for(pos=m_connectionList.GetHeadPosition();pos!=NULL;){ //循环遍历所有建立连接的用户,分别发送消息CClientSocket * t= (CClientSocket *)m_connectionList.GetNext(pos);t->SendMessage(&msg);}}else{m_clientsocket.SendMessage(&msg);}}}}//建立服务器按钮void CExample2_ChatRoomDlg::OnSetserver(){if(!m_bInit){m_bClient=false; //作为服务器端m_bInit=true;if(m_pListenSocket.Init(GetDlgItemInt(IDC_PORT),this)==FALSE){ //初始化服务器(建立套接字并侦听,详见Server模块)m_bInit=false;return;}}}//连接服务器按钮void CExample2_ChatRoomDlg::OnConnectserver(){if(!m_bInit){BYTE f0,f1,f2,f3;CString name;//读取服务器IP输入框中的数据((CIPAddressCtrl *)(GetDlgItem(IDC_IPADDRESS)))->GetAddress(f0,f1,f2,f3);CStringip;ip.Format("%d.%d.%d.%d",f0,f1,f2,f3);m_bClient=true;m_clientsocket.Create();if(m_clientsocket.Connect(ip,GetDlgItemInt(IDC_PORT))) //连接服务器{m_clientsocket.Init(this);SetDlgItemText(IDC_SHOWTEXT,"成功连接到服务器.");m_bInit=true;}else{m_clientsocket.Close();AfxMessageBox("连接服务器失败!");m_bInit=false;}}}//用户按下语音聊天按钮void CExample2_ChatRoomDlg::OnNewsend(){if(m_willchating==TRUE){m_sound.Init(this); //初始化音频m_sound.Record(); //开始录音SetDlgItemText(IDC_NEWSEND,"停止语音聊天");m_willchating=FALSE;}else{CSingleLocklock(&m_mutex,TRUE);m_sound.StopRecord(); //停止录音SetDlgItemText(IDC_NEWSEND,"语音聊天");m_willchating=TRUE;lock.Unlock();}}负责接收连接的服务器Socket模块代码://服务器初始化BOOL CServerSocket::Init(UINT port, CExample2_ChatRoomDlg* dlg){m_uPort=port;m_dlg=dlg;if(Create(m_uPort)==FALSE) //创建套接字{AfxMessageBox("Server Socket Create Error");return FALSE;}if(this->Listen()==FALSE) //侦听{AfxMessageBox("Server Listen Error");return FALSE;}m_dlg->SetDlgItemText(IDC_SHOWTEXT,"正在侦听其他用户的连接请求!");return TRUE;}//当有连接请求时把该用户加入连接队列中void CExample2_ChatRoomDlg::ProcessPendingAccept(){CClientSocket* pSocket = new CClientSocket(); //为该用户分配一个套接口if (m_pListenSocket.Accept(*pSocket)) //接收连接请求{CMessgmsg;msg.m_strText="一个游客进入聊天室了\n";m_sShowString+="一个游客进入聊天室了\n";POSITION pos;//向所有用户发送消息for(pos=m_connectionList.GetHeadPosition();pos!=NULL;){CClientSocket * t= (CClientSocket *)m_connectionList.GetNext(pos);t->SendMessage(&msg);}pSocket->Init(this);m_connectionList.AddTail(pSocket);}elsedeletepSocket;}负责接收和发送数据的客户端模块代码://发送消息BOOL CClientSocket::SendMessage(CMessg * msg){if (m_aSessionOut != NULL){msg->Serialize(*m_aSessionOut);m_aSessionOut->Flush();return TRUE;}else{//对方关闭了连接m_bClose=true;CloseSocket();m_dlg->CloseSessionSocket();return FALSE;}}//接收消息voidCClientSocket::OnReceive(intnErrorCode){CSocket::OnReceive(nErrorCode);do{CMessg temp;temp.Serialize(*m_aSessionIn);m_dlg->m_sMsgList+=temp.m_strText; //添加条目m_dlg->SetDlgItemText(IDC_SHOWTEXT,m_dlg->m_sMsgList);if(temp.m_tag==1&&m_dlg->m_willchating==FALSE)//如果有声音过来并且本机的声音设备已经准备好了则首先在本机发出声音{memcpy(m_dlg->m_sound.m_cBufferOut,temp.m_buffer,MAX_BUFFER_SIZE);}intlinenum=((CEdit*)(m_dlg->GetDlgItem(IDC_SHOWTEXT)))->GetLineCount();((CEdit *)(m_dlg->GetDlgItem(IDC_SHOWTEXT)))->LineScroll(linenum);if(!m_dlg->m_bClient) //如果是服务器端的话,转发消息{for(POSITIONpos=m_dlg->m_connectionList.GetHeadPosition();pos!=NULL;){CClientSocket * t = (CClientSocket*)m_dlg->m_connectionList.GetNext(pos);if(t->m_hSocket!=this->m_hSocket){t->SendMessage(&temp);}}}}while (!m_aSessionIn->IsBufferEmpty());}声卡数据的采集和播放模块代码://初始化voidCSound::Init(CExample2_ChatRoomDlg *dlg){int result;m_dlg=dlg;if(waveInGetNumDevs()==0) //是否有音频输入设备{AfxMessageBox("There is no sound input device");}if(waveOutGetNumDevs()==0) //是否有音频输出设备{AfxMessageBox("There is no sound output device");}//指定录音格式m_soundFormat.wFormatTag=WAVE_FORMAT_PCM;m_soundFormat.nChannels=1;m_soundFormat.nSamplesPerSec=8000;m_soundFormat.nAvgBytesPerSec=16000;m_soundFormat.nBlockAlign=2;m_soundFormat.cbSize=0;m_soundFormat.wBitsPerSample=16;int res=waveInOpen(&m_hWaveIn,WAVE_MAPPER, &m_soundFormat, (DWORD)m_dlg->m_hWnd,0L,CALLBACK_WINDOW); //打开录音设备if(res!= MMSYSERR_NOERROR){AfxMessageBox("Error in waveInOpen function");return ;}res=waveOutOpen(&m_hWaveOut,WAVE_MAPPER, &m_soundFormat, (DWORD)m_dlg->m_hWnd,0L,CALLBACK_WINDOW); //打开录音设备if(res!= MMSYSERR_NOERROR){AfxMessageBox("Error in waveOutOpen function");return ;}//inm_pWaveHdrIn[0].lpData=m_cBufferIn;m_pWaveHdrIn[0].dwBufferLength=MAX_BUFFER_SIZE;m_pWaveHdrIn[0].dwBytesRecorded=0;m_pWaveHdrIn[0].dwFlags=0;result=waveInPrepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR) ); //准备内存块录音if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot InPrepareHeader !"));return;};//增加内存块result=waveInAddBuffer(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR));if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot InAddBuffer !"));return;};//outm_pWaveHdrOut[0].lpData=m_cBufferOut;m_pWaveHdrOut[0].dwBufferLength=MAX_BUFFER_SIZE;m_pWaveHdrOut[0].dwBytesRecorded=0;m_pWaveHdrOut[0].dwFlags=0;waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR)); //准备内存块录音waveOutWrite(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR));}//开始录音voidCSound::Record(){waveInStart(m_hWaveIn);//开始录音}//播放本地声音voidCSound::Play(){memcpy(m_cBufferOut,m_cBufferIn,MAX_BUFFER_SIZE);}//停止录音voidCSound::StopRecord(){waveInStop(m_hWaveIn); //停止录音waveInReset(m_hWaveIn); //清空内存块}//清空录音缓冲区voidCSound::FreeRecordBuffer(){intresult=waveInUnprepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot UnInPrepareHeader !"));return;}; //inm_pWaveHdrIn[0].lpData=m_cBufferIn;m_pWaveHdrIn[0].dwBufferLength=MAX_BUFFER_SIZE;m_pWaveHdrIn[0].dwBytesRecorded=0;m_pWaveHdrIn[0].dwFlags=0;result=waveInPrepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR) ); //准备内存块录音if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot InPrepareHeader !"));return;}; //inresult=waveInAddBuffer(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); //增加内存块if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot InAddBuffer !"));return;}; //in}//清空输出缓冲区voidCSound::FreePlayBuffer(){staticbool once=true;int result;result=waveOutUnprepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(W AVEHDR));m_pWaveHdrOut[0].lpData=m_cBufferOut;m_pWaveHdrOut[0].dwBufferLength=MAX_BUFFER_SIZE;m_pWaveHdrOut[0].dwBytesRecorded=0;m_pWaveHdrOut[0].dwFlags=0;result=waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAV EHDR)); //准备内存块录音if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot OutPrepareHeader !"));return;}; //outresult=waveOutWrite(m_hWaveOut,&m_pWaveHdrOut[0],sizeof(WAVEHDR)); //增加内存块if (result!= MMSYSERR_NOERROR){AfxMessageBox(_T("Cannot OutWrite !"));return;}; //out}//输入缓冲区满的时候触发的发送音频消息函数void CExample2_ChatRoomDlg::WriteBufferFull(LPARAM lp,WPARAMwp){m_sound.Play();//发出本地声音CSingleLocklock(&m_mutex,TRUE);CMessgmsg;msg.m_strText="";msg.m_tag=1;memcpy(msg.m_buffer,m_sound.m_cBufferIn,MAX_BUFFER_SIZE);if(!m_bClient){POSITION pos;for(pos=m_connectionList.GetHeadPosition();pos!=NULL;){ //如果是服务器端,就给所有客户端发送音频CClientSocket * t= (CClientSocket *)m_connectionList.GetNext(pos);t->SendMessage(&msg);}}else{m_clientsocket.SendMessage(&msg);}m_sound.FreeRecordBuffer();m_sound.FreePlayBuffer();lock.Unlock();}四、程序运行结果截图五、心得与体会通过学习大作业和平时的小作业,了解并掌握了网络通信编程、视频和音频传输技术,对于MPI、语音识别技术也有了一定的了解。
计算机接口专业技术大作业
计算机接口技术大作业————————————————————————————————作者:————————————————————————————————日期:计算机中断技术大作业题目深入理解中断系统哈尔滨工业大学本科毕业设计(论文)目录一:什么是中断? (2)1.1中断的定义 (2)1.2中断技术差生的原因 (3)1.3中断技术差生的优点 (5)1.4中断技术差生的缺点 (7)二:基本概念 (8)2.1中断源 (8)我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
在上面看书的例子中,打断你看书的时间就是中断源(电话响了)。
(8)2.2中断嵌套 (8)2.3中断级联 (9)图2.3 (10)2.4软中断,硬中断 (10)2.5NMI(不可屏蔽中断)&可屏蔽中断 (11)2.6中断请求号&中断向量 (11)2.7中断响应INTA&中断周期 (11)中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0; (11)2.8单步中断&IF中断允许标志位 (12)2.9IMR中断屏蔽字&中断优先级 (12)2.10中断控制器&APIC (12)2.11中断共享&中断冲突 (12)2.12MSI-X中断(PCI E)、中断处理子程序 (13)2.130号中断、1号中断 (13)2.14中断描述符、中断描述符表 (13)2.15异常 (13)2.16中断门、OS的事件、消息 (14)三:中断资源相关 (14)3.1我的电脑中断相关资源占用情况 (14)3.2ISA中断 (18)3.3PCI中断 (22)3.4IRQ0-15中断请求外的 (22)四:中断系统 (22)4.1中断系统怎样协调完成中断过程 (23)哈尔滨工业大学本科毕业设计(论文)五:多处理器系统的中断 (24)5.1怎么连接 (24)5.1如何处理 (25)六:硬件、软件是怎么配合完成中断处理的 (25)七:编写8251查询发送、中断接收的自检程序 (27)哈尔滨工业大学本科毕业设计(论文)摘要学习计算机组成原理和计算机接口技术之中,“中断”是一个必须要学习的美容,计算机之所以能够“智能”的运行起来使得其更容易被人使用很重要的一点就是有了中断技术。
计算机接口技术大作业
计算机接口技术大作业课题名称:单路中断方式A/D采集及8355LED显示驱动班级:B13082041姓名:高炼学号:132208100055一.技术要求及说明1.一路检测,在LED上显示。
2.判断上下限并区别显示,下限LED全灭,上限LED全亮。
二.硬件原理及说明1.8259芯片内部结构原理如图2. 8255A内部结构8255芯片编程模型A口方式控制输出结构图8255方式选择控制字3.ADC0809内部结构图ADC0809通道选择表如图74HC138的作用:就是选择芯片时用的,提供芯片的入口地址74HC138集成译码器原理图5.电位器作用电位器的作用就是产生模拟信号,输送到模数转换器,然后模数转换器将模拟信号转变为数字信号。
6.LED灯LED灯的亮灭由8255的PA口控制,8个PA口中输出高电平的PA口对应的LED灯就会发光。
三.总体流程及重要子程序流程设计与分析四.收获与体会模数转换,电位器产生模拟信号,产生的模拟信号就通过模数转换器转变成数字信号,产生的数字信号输入到8259中断控制器中,使8259在适当的时候产生中断,通过中断控制8255的工作方式,而译码器的作用就是提供每个芯片的入口地址。
五.程序清单程序源代码:#define PA8255 0x8000 //8255 PA输出地址#define CTL8255 0x8003#define CS0809 0x9000#define mode 0x82#define ICW1 0x13 //单片8259, 上升沿中断, 要写ICW4#define ICW2 0x20 // 中断号为20H#define ICW4 0x01 // 工作在8086/88 方式#define OCW1 0xfe // 只响应INT0 中断#define CS8259A 0xd000#define CS8259B 0xd001extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v); extern void DISABLE(void);extern void ENABLE(void);extern void SETINT(unsigned char NO, unsigned int *ENTER); unsigned char buf;unsigned char Read0809(){unsigned char i;OUT(CS0809, 0); //起动A/Dfor (i=0; i<0x80; i++) ; //延时>100usreturn(IN(CS0809)); //读入结果}interrupt IEnter(){if(buf == 0x00) //下限{OUT(PA8255, 0x00);}else if(buf == 0xff) //上限{OUT(PA8255, 0xff);}else{OUT(PA8255, 0x3c);}OUT(CS8259A, 0x20); //中断服务程序结束指令}void IInit() //初始化{OUT(CS8259A, ICW1);OUT(CS8259B, ICW2);OUT(CS8259B, ICW4);OUT(CS8259B, OCW1);}void main(){OUT(CTL8255,mode);DISABLE(); //关闭中断响应IInit();SETINT(ICW2, &IEnter); //中断入口地址ENABLE(); //打开中断响应while (1){buf = Read0809();}叮叮小文库}欢迎有需要的朋友下载!!11。
微型计算机接口技术 大作业
小组成员:赖…,欧…,李…..一、设计任务及要求编写一实现电子琴的程序,并实现若干扩展功能。
基本功能:用8257键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:1、录音:记录所弹奏曲目2、放录音:任意时刻重放最新记录曲目3、在程序中可预设一曲目,按一键实现播放该曲目。
4、在播放录制曲目或预设曲目时,按8279键盘上任意键可以暂停播放,再按一次从暂停处继续播放。
5、程序运行时有友好的用户介面二、元件与仪器介绍本设计所要用到的元器件有:计时器8253,使用8088芯片的键盘控制器,并行控制器8255A,实验箱。
2.1 8253的介绍8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。
2.1.1 8253的工作原理8253是可编程的计数器/定时器,其CLK0~CLK2是计数器0~2的时钟脉冲输入端, GATE0~GATE2是门控脉冲输入端, OUT0~OUT2是输出端及内部结构见下图。
当用8253做外部事件计数器时,在CLK端所加的计数脉冲由外部事件产生,这些脉冲的间隔可以不相等。
如果要用它做定时器,则CLK端应输入精确的时钟脉冲。
这时, 8253所能实现的定时时间决定于计数脉冲的频率和计数器的初值,即定时时间=时钟脉冲周期t c ×预置的计数初值n8253的控制逻辑由5个控制信号WR、CS、A1和A0组成,对应的操作见表1。
8253编程时,要对其控制字寄存器写入相应的控制字,控制字寄存器格式如表2所示。
其中: SC1, SC0———通道选择位。
为00, 01, 10分别表示选择0, 1, 2通道。
RL1, RL0——读/写操作位。
00 表示锁存数据,可随时读取计数器中的计数值; 01 表示只读/写低8位,高8位自动置为0; 10表示只读/写高8位,低8位自动置为0; 11表示读/写16位数据,先低8位,后高8位。
成人教育《计算机接口技术》期末考试复习题及参考答案
《计算机接口技术》练习题A一、单项选择(每小题有四个备选答案,只有一个是正确的)1. DAC1210的分辨率是()。
A.8位 B.10位 C.12位 D.16位2. 微型计算机采用的是()键盘。
A.非编码键盘 B.编码键盘 C.多功能电子键盘 D.上诉三者均采用3. 在中断响应周期内,将IF置0是由()。
A.硬件自动完成的 B.用户在编制中断服务程序时设置的C.关中断指令完成的 D.堆栈指令完成的4. 若同时锁存8254的0通道和1通道的状态和计数值,则其对应的回读命令字为()。
A.1100 0110 B.1110 0110 C.1100 1110 D.1110 01115. 当CPU不使用总线时进行DMA操作,这种占用总线的方式是()。
A.CPU停机方式 B.周期扩展方式C.周期窃取方式 D.请求传送方式二、填空题1.8255A的________端口可工作于位控方式,________端口可工作于双向方式。
2.8237A的四种传送方式分别是单字节传送方式,数据块传送方式,________和________。
3.MC146818有三种中断方式,分别是________,________和________。
4.MC14433是________芯片。
5.打印机按其结构分为________和________两种。
三、简答题1. 异步通信与同步通信的区别表现在哪些方面?2. 什么是接口?接口的功能是什么?3. 设计一个查询式输入的接口电路,并根据这一电路编写相应的查询输入程序。
4. 简述模数转换的基本过程。
5. 在异步串行通信中,为什么接收时时钟频率一般是波特率的16倍频?四、利用DAC 0832 设计的一个三角波信号发生器,接口电路如图所示,要求:1.指出DAC 0832的端口地址。
2.编写三角波信号输出控制程序。
五、 PC/XT机控制ADC 0809构成一个压力参数采集系统,要求以查询方式采集400个压力值,存入ADBUF开始的存储单元,试设计硬件接口电路,并编写程序。
华工计算机接口技术作业-网院接口技术课后作业全解
第一题:名词解释主频、字长、总线、单片机、RAM ROM接口、端口、统一编址、I/O端口独立编址、中断、中断向量、DMA并行通信、数模转换、模数转换、串行通信、波特率、异步通信、同步通信1、主频:即CPU内核工作的时钟频率2、字长: 字长是直接用二进制代码指令表达的计算机语言,指令是用0和1 组成的一串代码,它们有一定的位数,并分成若干字长段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息3、总线:是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号4、单片机:把构成一个微型计算机的一些功能部件集成在一块芯片之中的计算机。
5、R AM:又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)6 ROM:只读存储器。
断电后信息不丢失,如计算机启动用的BIOS芯片。
存取速度很低,(较RAM而言)且不能改写7、接口:CPU和存储器、外部设备或者两种外部设备,或者两种机器之间通过系统总线进行连接的逻辑部件(或称电路)。
它是CPU与外界进行信息交换的中转站,是CPU和外界交换信息的通道。
8、端口:计算机中所有能被指令直接寻址的I/O 口。
每个端口都有各自独一无二的端口地址。
9、统一编址:从存储空间划出一部分地址空间给I/O设备,把I/O接口中的端口当作存储器单元一样进行访问,不设置专门的I/O指令。
10、I/O端口独立编址:对接口中的端口单独编址而不占用存储空间,使用专门的I/O指令对端口进行操作,大型计算机通常采用这种方式。
11、中断:CPU在正常运行程序时,由于内部/外部事件或由程序预先安排引起CPU暂停正在运行的程序,而转到为内部/外部或为预先安排事件服务的程序中去。
服务完毕再返回去继续执行被暂停的程序。
计算机接口技术课堂大作业(2)
计算机接口技术课堂大作业(2)计算机接口课堂大作业(2)一、选择题(每题1分,共20分)----------1. 8255A引脚信号WR=0,CS=0,A1=1,A0=1时,表示()。
(A) CPU向数据口写数据 (B) CPU向控制口送控制字 (C) CPU读8255A控制口 (D) 无效操作2. 在数据传送过程中,数据由串行变为并行,或由并行变为串行,这种转换是通过接口电路中的什么实现的()。
(A) 数据寄存器 (B) 移位寄存器 (C) 锁存器 (D) 状态寄存器 3. 8255A既可作数据输入、出端口,又可提供控制信息、状态信息的端口是()。
(A) B口 (B) A口 (C) A、B、C三端口均可以 (D) C口4. 设串行异步通信的数据格式是:1个起始位,7个数据位,1个校验位,1个停止位,若传输率为1200,则每秒钟传输的最大字符数为()。
(A)10个(B)110个(C)120个(D)240个5. 某系统采用8255A作并行I/O接口,初始化时CPU所访问的端口地址为0CBH,并设定为方式1输出,则A口的口地址应为()。
(A) 0C8H (B) 0CAH (C)0CH (D) 0EH6. DMA工作方式时,总线上的各种信号是由()发送的。
(A) 中断控制器(B) CPU(C) 存储器 (D) DMA控制器7. 异步串行通信的主要特点是()。
(A) 通信双方不需要同步 (B) 传送的每个字符是独立发送的 (C) 字符之间的间隔时间应相同 (D) 传送的数据中不含有控制信息8. 连接到68000H~6FFFF地址范围上的存储器用8K×8位芯片构成,该芯片需要()片。
(A)4 (B)8 (C)6 (D)12 9. 两片8259A接成级联缓冲方式可管理()个可屏蔽中断。
(A) 2(B) 15(C) 16(D) 25610. 两台微机间进行串行双工通信时,最少可采用()根线。
吉林大学2020大作业-计算机接口技术 (2)
MOVAL,00110010B
OUT21H,AL
MOVAL,00010011B
OUT21H,AL
(2)如果显示E,则端口A送出的数据是30H;
如果显示O,则端口A送出的数据是01H;
程序如下:MOVAL,10000000B
OUT63H,AL
MOVAL,30H
OUT60H,AL
MOVAL,01H
(3)(3)PR分析后,把当前最高优先级的中断请求由INT送至CPU
(4)(4) 若IF=1,CPU执行完当前指令后,连续发出2个INTA信号
(5)(5) 接到第1个INTA后,8259A的ISR和IRR对应位分别置1清0
(6) 接到第2个INTA后,8259A把中断类型号送上数据总线
(7)CPU将收到的中断类型号乘以4,到中断向量表中获取中断向量,转入相应
20200415批次计算机接口技术
一、综合题(共6道小题,共60分)
1设8255的4个端口地址力90H 93H,将口置成方式0出,阳置成方式输入,作为输入口。要求编82587始化程序并设计证码电蹈(可选用任意芯片
解:
2.
存储器系统连接如下图,请分别写出图中第一组(1#. 2#) .第二组(3#. 4#)的地址分配范围。(写出具体步骤)
请在纸页上作答,并拍照上传。(分数: 8分)
2.
中断可分为哪几个阶段?在执行中断响应后,要完成哪些主要功能? CPU在进入中断响应周期,通过总线控制器发出二个连续中断应答信号INTA,为什么?
答:(1)IRQ0~IRQ7有中断请求,8259A的IRR的相应位置1
(2)IRR与IMR相应位比较后,封锁或发送中断请求给PR
(3)写出实现上述功能的8253初始化程序。
计算机接口技术大作业
计算机接口技术大作业班级:姓名:学号:指导老师:设计内容:总结计算机接口技术发展,CPU可以选择8086或者单片机,应用所学芯片(不限于)8255、8251、8253、8237、8259、0809、0832、8279及总线接口相关知识,设计一套系统或一个小装置。
要求至少用到以上三款芯片或接口技术,提倡在proteus 中仿真,然后到实验室验证。
计算机接口技术发展微机系统中,接口处于微机总线与设备之间,进行CPU与设备之间的信息交换。
设置接口的目的有两条:通过接口实现设备与总线的连接;连接起来以后,CPU通过接口对设备进行访问,即操作或控制设备。
接口技术的基本内容包括设备接口设计和应用程序设计,实现把设备连接到用户总线(ISA)和完成对设备在应用层的访问。
接口技术的新内容包括总线接口设计和设备驱动程序设计,实现把用户总线(ISA)连接到PCI总线和完成对设备在windows操作系统核心层的访问。
设备驱动程序的程序结构,编程语言,开发工具和程序设计,调试,安装方法与应用程序完全不同,是现代微机接口技术的新内容。
接口技术的发展是随着微机体系结构(CPU,总线,存储器)和被连接的对象,以及操作系统应用环境的发展而发展的。
当接口的两端及应用环境发生了变化,作为中间桥梁的接口也必须发生变化。
这种变化与发展,过去是如此,今后仍然如此。
早期的计算机系统,接口与设备之间无明显的边界,接口与设备控制器做在一起。
到8位微机,在接口与设备之间有了边界,并且出现了许多接口标准。
早期计算机系统中并没有设置独立的接口电路,对外设的控制和管理完全由CPU直接操作。
由于微机技术的发展,其应用越来越广泛,外设品种和门类大大增加,且性能各异,操作复杂,因此,不设接口就不行了。
为了解决矛盾,开始在CPU与外设之间设置了简单的接口电路,后来逐步发展成为独立功能的接口和设备控制器,把对外设的控制任务交给接口去完成,这样大大减轻了主机的负担,简化了CPU对外设的控制和管理。
计算机接口技术总复习题及答案1 精品推荐
计算机接口技术总复习题及答案1章练习题一·单项选择题1. 8086微处理器可寻址访问的最大I/O空间是(②)。
① 1KB ② 64KB ③ 640KB ④ 1MB2.CPU的控制总线提供(④)。
①数据信号流②所有存储器和I/O设备的时序信号及控制信号③来自I/O设备和存储器的响应信号④前面②和③两项3. CPU的数据总线提供(①)。
①数据信号流②所有存储器和I/O设备的时序信号及控制信号③来自I/O设备和存储器的响应信号④地址信号流4. CPU的地址总线提供(④)。
①数据信号流②所有存储器和I/O设备的时序信号及控制信号③来自I/O设备和存储器的响应信号④地址信号流5. CPU在执行OUT DX,AL指令时,CPU往控制总线上送出的有效信号是(①)。
①IOW②MEMW③IOR④MEMR6. CPU在执行OUT DX,AL指令时,CPU往地址总线上送出的有效信号是(①)。
①DX寄存器所存放的地址② AL寄存器所存放的数据③IOR IOW④MEMR MEMW7. CPU在执行OUT DX,AL指令时,CPU往数据总线上送出的有效信号是(②)。
①DX寄存器所存放的地址② AL寄存器所存放的数据③IOR IOW④MEMR MEMW8. 8086 CPU寄存器中,能在操作数内存寻址时用作地址寄存器的是(②)。
① AX ② BX ③ CX ④ DX9. 8086CPU在作外设输入时,控制信号M/IO,DT/R必须是(②)。
① 11 ② 00 ③ 01 ④ 1010. 8086CPU基本总线周期中,地址信号在(①)时间发生。
① T1 ② T3 ③ T2 ④ T411. 8086CPU在作总线操作时,遇到READY=L后可插入(②)。
① 1个等待周期②等待周期个数由具体情况所定③ 2个等待周期④ 3个等待周期12. 8086系统中,SP(②)。
①只能指向奇地址单元②只能指向偶地址单元③最好指向偶地址单元④最好指向奇地址单元13. 8086 系统配置在最大方式比最小方式增加的一片专用芯片是(③)。
接口技术平时作业(201709)
1、8086主要控制信号M/IO,WR,RD,ALE,INTR,INTA,NMI,AD15-AD0的作用。
答:M/IO:低电平时表示CPU正在访问IO设备,高电平时表示CPU正在访问内存,输出信号。
WR:写控制信号,低电平有效,输出信号。
RD:读控制信号,低电平有效,输出信号。
ALE:地址锁存允许信号,高电平有效,输出信号。
INTR:中断请求信号,高电平有效,输入信号。
INTA:中断响应信号,低电平有效,输出信号。
NMI:非屏蔽中断请求信号,高电平有效,输入信号。
AD15-AD0:地址/数据复用信号,分时传输地址信息和数据信息,双向信号。
2、8086CPU有哪些寄存器?说出这些寄存器的作用。
答:8086有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。
(1)通用寄存器有8个,又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个).数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据. BH&BL=BX(base):基址寄存器,常用于地址索引;CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递。
他们的特点是,这4个16位的寄存器可以分为高8位:AH,BH,CH,DH.以及低八位:AL,BL,CL,DL。
这2组8位寄存器可以分别寻址,并单独使用。
另一组是指针寄存器和变址寄存器,包括:SP(StackPointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP(BasePointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(SourceIndex):源变址寄存器可用来存放相对于DS段之源变址指针;DI(DestinationIndex):目的变址寄存器,可用来存放相对于ES段之目的变址指针。
计算机接口大作业
《计算机接口技术及其应用》大作业电子琴设计班级:姓名 :学号 :指导老师:一、设计目的:1.掌握8255A、8253、DAC0832、8279的原理及连接方式,并学会综合应用;2.熟悉8255A、8253、DAC0832、8279芯片与PC机连接方式3.进一步巩固8255A、8253、DAC0832、8279的初始化和应用知识。
二、设计资料1.8255A8255A在使用前要写入一个方式控制字,共有三种;方式0 :基本的输入输出方式,即无须联络就可以直接进行的I/O方式。
方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1。
方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
2.82538253内部有三个计数器,分别成为计数器0、计数器1和计数器2。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
3.DAC0832一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
8279可按其功能分为:键盘功能块;显示功能块;控制功能块,与CPU 接口功能块控制功能包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和 显示功能块工作。
《计算机接口技术》大作业
苏州科技学院电子与信息工程学院《计算机接口技术》大作业专业:电子信息工程班级:姓名:学号:2012年6月1.设计内容:应用所学芯片8255、8251、8253、8237、8259、0809、0832及总线接口相关知识,在proteus中设计一套系统或一个小装置。
要求至少用到以上三款芯片或接口技术。
2.考核要求:1、设计具有基本完整的功能,具有可实现性;2、强调创新性和应用性,不与现有系统、产品雷同;3、硬件设计要求详尽,软件设计可以限于主要功能和关键部分4、自拟题目,题目要求新颖3.硬件设计3.1 设计思想硬件电路的搭建主要由8255A、8251和8253组成,利用地址译码器将8086芯片的端口地址分隔开,然后分给各个芯片。
3.2主要元器件介绍3.2.1 8255A模型8255共有40个引脚,采用双列直插式封装,各引脚功能如下:D0--D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。
CS:片选信号线,低电平有效,表示芯片被选中。
RD:读出信号线,低电平有效,控制数据的读出。
WR:写入信号线,低电平有效,控制数据的写入。
Vcc:+5V电源。
PA0--PA7:A口输入/输出线。
PB0--PB7:B口输入/输出线。
PC0--PC7:C口输入/输出线。
RESET:复位信号线。
A1、A0:地址线,用来选择8255内部端口。
GND:地线。
其控制逻辑为:8255内部包括三个并行数据输入/输出端口,两个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。
各部分功能概括如下:(1)端口A、B、CA口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。
B口:是一个8位数据输入/输出锁存器/缓冲器和一个8位数据输入锁存器。
C口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器(输入不锁存)。
通常A口、B口作为数据输入/输出端口。
C口作为控制/状态信息端口,它在“方式控制字”的控制下可分为两个4位端口,每个端口有一个4位锁存器,分别与A口、B口配合使用,作为控制信号输出或状态信息输入端口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机接口技术大作业文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]计算机中断技术大作业题目深入理解中断系统目录一:什么是中断 (2)中断的定义 (2)中断技术差生的原因 (3)中断技术差生的优点 (5)中断技术差生的缺点 (7)二:基本概念 (8)中断源 (8)我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
在上面看书的例子中,打断你看书的时间就是中断源(电话响了)。
(8)中断嵌套 (8)中断级联 (9)图 (10)软中断,硬中断 (10)NMI(不可屏蔽中断)&可屏蔽中断 (11)中断请求号&中断向量 (11)中断响应INTA&中断周期 (11)中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0; (11)单步中断&IF中断允许标志位 (12)IMR中断屏蔽字&中断优先级 (12)中断控制器&APIC (12)中断共享&中断冲突 (12)MSI-X中断(PCI E)、中断处理子程序 (13)0号中断、1号中断 (13)中断描述符、中断描述符表 (13)异常 (13)中断门、OS的事件、消息 (14)三:中断资源相关 (14)我的电脑中断相关资源占用情况 (14)ISA中断 (18)PCI中断 (22)IRQ0-15中断请求外的 (22)四:中断系统 (22)中断系统怎样协调完成中断过程 (23)五:多处理器系统的中断 (24)怎么连接 (24)如何处理 (25)六:硬件、软件是怎么配合完成中断处理的 (25)七:编写8251查询发送、中断接收的自检程序 (27)摘要学习计算机组成原理和计算机接口技术之中,“中断”是一个必须要学习的美容,计算机之所以能够“智能”的运行起来使得其更容易被人使用很重要的一点就是有了中断技术。
因为中断计算机从一个只靠计算速度和存储量来来博得人们喜爱的机器变成了一个用户有好的聪明的机器。
本文将从几个问题入手来来逐一介绍计算机中断技术和中断系统。
一:什么是中断中断的定义在计算机科学中,中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。
发出这样的信号称为进行中断请求(interrupt request,IRQ)。
硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。
中断在计算机多任务处理,尤其是实时系统中尤为有用。
这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。
上面是来自维基百科对中断定义。
个人认为中断就是计算机在执行程序的过程中,当出现异常情况或者是特殊请求时,计算机停止执行现行程序的运行,转向对这些异常情况或特殊请求的处理,处理后再返回到现行程序的间断处,继续执行原程序,这就是中断。
图中断处理过程打一个不太恰当的比方。
比如说你正在看书那么你就是CPU,看书就相当于你正在执行的程序,当你电话响了或者是有其他的事情发生导致你必须停下正在看的书去做另一件事(接电话)。
那么这就是一个中断,在这个中断中现行程序是看书,中断时电话响了,CPU是你自己。
当你接完电话之后(假设接完电话就没其他特殊的事了)那么你就回去看书,也就相当于定义中的返回执行原程序。
中断技术差生的原因讲了上面的内容也许你对中断概念有了一定的了解。
那么为什么会产生中断呢为了介绍为什么会产生中断我们有必要对计算机的组成结构和工作的过程来了解一下。
下图是计算机的组成结构。
图计算机组成结构可以看到计算机石油输入输出设备控制器运算器和存储器组成的,那么计算机是如何工作的呢计算机工作时,首先由键盘等输入设备。
输入程序和数据,程序和数据信息,通过J/O接口电路,经数据总线送入主存贮器中,接着CPU开始运行输入的指令,并处理输入的数据。
CPU要进行下列工作:⑴将指令的地址放到地址总线;⑵按着上述地址,通过数据总线在主存贮器中找到并取出指令,由指令译码器对该指令进行分析译码;⑶根据译码结果,取出指令所要处理的数据地址及相应的数据;⑷执行指令所代表的具体操作;⑸检查是否还有其它的控制信号,若有,则对定进行处理;⑹把执行指令后所得的指令结果、状态的标志信号、控制信号和定时信号提供给整个微机系统;⑺继续处理用户输入的程序和数据。
可以看到上在计算机工作过程中要始终检查有没有控制信号,而这控制信号中就有关于中断的控制信号。
在计算机系统中中断的例子有很多。
用户敲击键盘,每击一次键都要产生一个中断信号。
告诉CPU有“键盘输入发生了”,要求CPU读入键值。
至于为什么必须要读入键值呢其实很简单,在执行程序和用户控制两个事件之间显然是用户控制事件的优先级要高于执行程序的优先级。
要不你按下键盘电脑半天没有反应那你还不得把电脑踢了以I/O中断为例。
在I/O设备与主机交换信息时,由于设备本身机电特性的影响,其工作效率较低,与CPU无法匹配。
因此,CPU启动之设备之后,往往需要等待一段时间才能实现与I/O设备之间的信息交换。
如果在设备准备同时,CPU不做无所谓的等待,而继续执行现行程序,只有当I/O设备就绪向CPU提出请求后在暂时中断CPU现行程序转入I/O服务程序,这便产生了I/O中断。
中断是用以提高计算机工作效率、增强计算机功能的一重要技术。
最初引入硬件中断,只是出于性能上的考量。
如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busy waiting,反复轮询该设备是否完成了动作并返回结果。
这就造成了大量处理器周期被浪费。
引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。
这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的、切换上下文所引发的时间代价。
后来被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软件方式进入中断处理(软中断)的概念。
中断技术差生的优点先让我们感受一下中断机制对并发处理带来的帮助。
让我们用程序来探讨一下烧水问题,如果没有“中断”(注意,我们这里只是模仿中断的场景,实际上是用异步事件——消息——处理机制来展示中断产生的效果。
毕竟,在用户空间没有办法与实际中断产生直接联系,不过操作系统为用户空间提供的异步事件机制,可以看作是模仿中断的产物),设计如下:voidStayInKitchen(){boolWaterIsBoiled= false;while(WaterIsBoiled!= true ){boolVaporGavenOff= false;if(VaporGavenOff)WaterIsBoiled=true;elseWaterIsBoiled=false;}n”);n”);}voidwatching_tv(){while(1){编程异常通常叫做软中断2.? 软中断是通讯进程之间用来模拟硬中断的一种信号通讯方式。
3.? 中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能4.? 软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。
?硬中断:1.? 硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。
2.? 硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),软中断的中断响应周期,CPU不需发中断回合信号。
3.? 硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H);软中断的中断号由指令直接给出,无需使用中断控制器。
4.? 硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断不可屏蔽。
区别:1.? 软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的2.? 软中断是由程序调用发生的,而硬中断是由外设引发的3.? 硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间NMI(不可屏蔽中断)& 可屏蔽中断非屏蔽中断是出现在NMI线上的请求,不受标志位IF的影响,在当前指令执行完以后,CPU就响应。
这种中断通常用于电源故障。
非屏蔽中断的优先权高于屏蔽中断。
可屏蔽中断I/O设备发出的所有中断(IRQ)都可以产生可屏蔽中断,受标志位IF的影响,根据中断循序标志的设置来判断CPU是否响应中断请求。
中断请求号 & 中断向量中断请求号就是中断编号。
中断向量中断服务程序的入口地址。
在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。
中断响应INTA & 中断周期中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0;当8259A接收到第二个/INTA有效的负脉冲后,就将其中断类型号送入数据总线。
中短周期:当CPU采用中断方式实现I/O交换信息时,CPU在每条指令执行结束之后检查是否又中断请求,如果有就执行中断响应,又称中短周期。
单步中断 & IF中断允许标志位单步中断:执行一条指令中断一次。
IF中断允许标志位:标识寄存器中的一位,可以屏蔽可屏蔽中断请求INTR如果外设有可屏蔽中断请求INTR,而此时CPU内IF=0,那么CPU不会响应中断只有可屏蔽中断请求INTR和IF有关系,内中断和不可屏蔽中断NMI,都不受IF的影响IMR中断屏蔽字 & 中断优先级IMR中断屏蔽字:以实现对各中断的屏蔽。
中断优先级:为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
中断控制器 & APIC中断控制器:中断控制器的功能就是在多个中断源的系统中,接收外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到CPU的INTR 端;当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责外部的中断请求的管理。
比如当某个外部中断的请求的优先级高于当前正在处理的中断优先级时,中断控制器会让此中断通过而到达CPU的INTR端,从而实现中断的嵌套,反之,对其它的级别较底的中断则给予禁止。