当前位置:文档之家› 微型计算机接口技术大作业

微型计算机接口技术大作业

微型计算机接口技术大作业
微型计算机接口技术大作业

微型计算机接口技术大作业

学院(系):软件学院

专业:软件工程

班级:

姓名:

学生学号:

电话:

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 Win32

m_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 _AFXDLL

Enable3dControls();

#else

Enable3dControlsStatic();

#endif

CExample2_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);

}

else

deletepSocket;

}

负责接收和发送数据的客户端模块代码:

//发送消息

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(POSITION

pos=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 ;

}

//in

m_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;

};

//out

m_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()

{

int

result=waveInUnprepareHeader(m_hWaveIn,&m_pWaveHdrIn[0],sizeof(WAVEHDR)); if (result!= MMSYSERR_NOERROR)

{

AfxMessageBox(_T("Cannot UnInPrepareHeader !"));

return;

}; //in

m_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;

}; //in

result=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;

}; //out

result=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、语音识别技术也有了一定的了解。限于时间原因,对于有些诸如linux下的接口技术没有进行研究。

自己以前也对网络通信方面的接口比较了解,通过这个大作业,将网络音频传输和编码技术融入到里面,对于整个程序的功能有了一个很大的提升。稍显不足的是,在网上搜集的视频通信的例子,都是基于一端是服务器,一端是客户端的程序,没有P2P类型的视频通信程序,而且我的大作业的语音聊天是基于多人聊天的,如果加入视频的话,可能会造成视频音频的混乱,所以在大作业中没有加入视频的元素。

这次的程序也是我在以前网络通信程序(只有文字聊天)的基础上改写的,主要是融入了音频通信技术,视频通信技术在学习过程中也有所掌握,感觉收获颇丰。

计算机接口技术复习题(含答案)

1.在8086CPU中,当M/ —— IO= 0, —— RD= 1, —— WR= 0时,CPU完成的操作是(D )。 (A)存储器读(B)I/O读 (C)存储器写(D)I/O写 2.在标志寄存器中,用于说明计算结果为0的标志是(C ) (A)C标志(B)A标志 (C)Z标志(D)S标志 3.两片8259A采用主从级连方式,最多能接收(B ) (A)8级中断(B)15级中断 (C)16级中断(D)级中断 4.异步通信所采用的数据格式中,停止位的位数错误的是( D ) (A)1位(B)1.5位 (C)2位(D)2.5位 5.下面哪一条语句是采用寄存器间接寻址的(B ) (A)MOV AX,BX (B)MOV AL,[BX] (C)MOV AX,20 (D)MOV AX,BUF 6.计算机系统总线按其功能可划分为数据总线、地址总线和(A ) (A)控制总线(B)同步总线 (C)信号总线(D)中断总线 7.在PC/XT机中,NMI的中断向量在中断向量表中的位置是( C ) (A)由程序指定的(B)由DOS自动分配的 (C)固定在0008H开始的4个字节中(D)固定在中断向量表首 8.在两片8259A级联的中断系统中,从片的INT端接到主片的IR4端,则初始化主、从片ICW3的数据格式分别是

(B ) (A)01H和40H (B)10H和04H (C)10H和40H (D)01H和04H 9.CPU与输入/输出端口是通过哪些指令来完成信息交换(C ) (A)MOV (B)MOVSB (C)IN或OUT (D)STOSB 10.在标志寄存器中,符号标志是(S ) (A)C标志(B)A标志 (C)Z标志(D)S标志 11.CPU与输入/输出接口电路是通过端口寄存器进行信息交换,这些端口寄存器包括了状态端口、控制端口和 (B ) (A)信息端口(B)数据端口 (C)存储器端口(D)命令端口 12.8088微处理器可寻址访问的最大I/O空间为( B ) (A) 1KB (B) 64KB (C) 640KB (D) 1MB 13.CPU与输入/输出端口是通过哪些指令来完成信息交换(C ) (A)MOV (B)MOVSB (C)IN或OUT (D)STOSB 14.在标志寄存器中,用于说明计算结果为0的标志是(C ) (A)C标志(B)A标志 (C)Z标志(D)S标志 15.下面哪一个命题是正确的(C )

计算机接口技术复习题(含答案)

1. 在8086CPU 中,当M/ ——IO = 0,——RD = 1,—— WR = 0时,CPU 完成的操作是( D )。 (A )存储器读 (B )I/O 读 (C )存储器写 (D )I/O 写 2. 在标志寄存器中,用于说明计算结果为0的标志是( C ) (A )C 标志 (B )A 标志 (C )Z 标志 (D )S 标志 3. 两片8259A 采用主从级连方式,最多能接收( B ) (A )8级中断 (B )15级中断 (C )16级中断 (D )级中断 4. 异步通信所采用的数据格式中,停止位的位数错误的是( D ) (A )1位 (B )1.5位 (C )2位 (D )2.5位 5. 下面哪一条语句是采用寄存器间接寻址的( B ) (A )MOV AX ,BX (B )MOV AL ,[BX] (C )MOV AX ,20 (D )MOV AX ,BUF 6. 计算机系统总线按其功能可划分为数据总线、地址总线和( A ) (A )控制总线 (B )同步总线 (C )信号总线 (D )中断总线 7. 在PC/XT 机中,NMI 的中断向量在中断向量表中的位置是 ( C ) (A )由程序指定的 (B )由DOS 自动分配的 (C )固定在0008H 开始的4个字节中 (D )固定在中断向量表首 8. 在两片8259A 级联的中断系统中,从片的INT 端接到主片的IR4端,则初始化主、从片ICW3的数据格式分别是( B ) (A )01H 和40H (B )10H 和04H (C )10H 和40H (D )01H 和04H 9. CPU 与输入/输出端口是通过哪些指令来完成信息交换( C ) (A )MOV (B )MOVSB (C )IN 或OUT (D )STOSB 10. 在标志寄存器中,符号标志是( S ) (A )C 标志 (B )A 标志 (C )Z 标志 (D )S 标志 11. CPU 与输入/输出接口电路是通过端口寄存器进行信息交换,这些端口寄存器包括了状态端口、控制端口和( B ) (A )信息端口 (B )数据端口 (C )存储器端口 (D )命令端口 12. 8088微处理器可寻址访问的最大I/O 空间为( B ) (A) 1KB (B) 64KB (C) 640KB (D) 1MB 13. CPU 与输入/输出端口是通过哪些指令来完成信息交换( C ) (A )MOV (B )MOVSB (C )IN 或OUT (D )STOSB 14. 在标志寄存器中,用于说明计算结果为0的标志是( C ) (A )C 标志 (B )A 标志 (C )Z 标志 (D )S 标志 15. 下面哪一个命题是正确的( C ) (A )负数的反码与其真值数相同 (B ) 负数的补码与其真值数相同 (C )正数的原码、反码、补码与其真值数相同 (D )[+0]反码 =11111111B 16. 在实模式下进行编写汇编程序,每一个逻辑段的大小不能超过( B ) (A )32KB (B )64KB

济南大学-微型计算机控制技术大作业

智能循迹小车——微型计算机控制技术考查作业 自动化与电气工程学院

随着现代化的不断发展,自动化越来越普及,对传感器的应用越来越多,要求精度越来越搞高,本设计面向机械自动化发展,采用了AT89S52单片机作为控制核心,利用红外对管传感器检测黑线达到循迹目的,以及自动停车,自动寻迹,整体系统的电路结构简单,可靠性能高。 采用技术主要有: (1)AT89S52单片机应用; (2)L298电机驱动及PWN电机调速; (3)传感器的有效应用; (4)程序算法的应用。 1、系统方案的选择 1.1 智能循迹小车的主控芯片的选择 方案一:采用Atmel公司的AT89S52单片机作为智能小车的主控芯片,AT89S52 是一种低功耗、高性能CMOS8位微控制器,工作电压为5V,32个I/O 口,具有 8K 在系统可编程Flash 存储器。该芯片价格便宜,应用广泛,操作简单,硬件与软件设计相对简单。大学生广泛用于单片机学习与创作。资源足够用于智能小车的设计。因此,本设计选择了此芯片。 方案二:采用德州仪器公司生产的F系列单片机MSP430F1611作为智能小车的主控芯片,MSP430F1611是一款超低功耗单片机,工作电压范围为1.8V-3.6V,48 位I/O 口线,16-Bit RISC架构,但相应硬件复杂,软件编写相对难度大,而且价格昂贵,用于智能小车资源过剩,造成浪费。经过讨论,我们放弃了此方案。 1.2智能循迹小车电源模块的选择 方案一:直接用直流电源供电。采用LM7812和LM7805稳压后产生12V和5V的直流电压,供给系统各个模块用。虽然直接用直流电源供电,功率大,但由于有电源供电线的限制,这样就会对小车的行动造成诸多不便,为了能使小车能够简便地行驶,只能放弃这一方案。

数据库大作业设计题目

《数据库原理及技术》大作业大纲 类同卷,网上抄袭,大作业格式不正确一律0分处理 一、课程设计的目的和要求 (1)培养学生运用所学课程《数据库原理及技术》的理论知识和技能,深入理解《数据库原理及技术》课程相关的理论知识,学会分析实际问题的能力。 (2)培养学生掌握用《数据库原理及技术》的知识设计计算机应用课题的思想和方法。 (3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 (4)通过课程大作业,要求学生在教师的指导下,独立完成大作业要求的相关内容,包括: ①通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。 ②基本掌握撰写小论文的基本步骤和写作方法。 ③根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。 ④根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。 ⑤创建数据库及各种数据库对象。 二、课程设计题目 要求: (1)任选下列一个题目,调查分析一个具体的或模拟的实例; (2)描述该实例的业务信息和管理工作的要求; (3)列出实体、联系; (4)指出实体和联系的属性; (5)画出E-R图; (6)将E-R图转换成关系模式,并注明主码和外码; (7)建立数据字典; (8)创建数据库; (9)根据题目的要求写查询、存储过程、触发器等。 题目: (1)学校图书借阅管理系统 功能要求: ●实现图书信息、类别、出版社等信息的管理; ●实现读者信息、借阅证信息的管理; ●实现图书的借阅、续借、归还管理; ●实现超期罚款管理、收款管理; ●创建触发器,分别实现借书和还书时自动更新图书信息的在册数量;

计算机应用课后作业习题

习题一 一、选择题 1.一台典型的微机是由主机、键盘、(1)组成。微机必须配上软件才能工作。我们将 配置了软件的微机称为基本的微机系统。因此,微机系统是由(2)两大部分组成。(1)A.鼠标和显示器 B.光驱和软件 C.显示器和程序 D.鼠标和程序(2) A.主机和软件 B.硬件和软件 C.主机和程序 D.硬件和程序 2.操作系统的特征是。 ①并发性②串行性③确定性④不确定性⑤共享性⑥虚拟性⑦独占性 A.①②③⑦ B. ①②⑤⑥ C. ①③⑤⑥ D. ①④⑤⑥ 二、填空题 1.主机安装在主机箱内,主机箱分为立式和卧式两种。在主机箱内有住板(系统板)、硬盘驱动器、软盘驱动器、电源、显示适配器等。一般主板上集成了一个软盘接口、两个IDE硬盘接口、一个并行接口、两个串行接口、两个USB接口、AGP总线、ISA总线和软盘接口。 2.I/O总线是指CPU互连I/O设备,并提供外设访问系统存储器和CPU资源的通路。在I/O总线上通常传送三种信号:数据、地址和控制信号。PC机上的I/O总线有ISA、EISA、PCI。 3.MS-DOS是一个16位的单用户单任务的操作系统。MS-DOS可分为DOS BIOS、DOS核心和命令处理程序三个基本层次。 4.MS WINDOWS3.X、WINDOWS95文件系统采用FAT、VFAT16,Windows NT文件系统采用NTFS(HPFS)。 5.多媒体的关键技术是数据压缩技术、大规模集成电路(VLSI)制造技术、CD-ROM 大容量光盘存储器、显示技术以及实时多任务操作系统等。 6.计算机病毒(Computer Virus)有传染性、隐蔽性、危害性三个特征。 三、回答问题 1.试述鼠标和键盘的区别 答:键盘是输入设备,用字符键和数字键输入文本信息,构成用户命令或对系统询问的回答;输入控制信息,既通过各种控制键,实现对界面的控制功能。鼠标也是输入设备是能代替键盘更方便的移动光标的输入装置。 2.简述操作系统的作用及其分类 答:操作系统的作用主要是(1)通过资源管理,提高计算机系统的效率,(2)改善人机界面,向用户提供友好的工作环境。按照功能分类:(1)批处理操作系统,(2)分时操作系统,(3)实时操作系统。按照计算机配置分类:(1)单机配置:大型机操作系统、小型机操作系统、微型机操作系统。(2)多机配置:网络操作系统、分布式操作系统。按照用户/任务分类:单用户和多用户。 3.实时系统与分时系统的区别

计算机接口技术大作业

计算机中断技术大作业题目深入理解中断系统

目录 一:什么是中断 (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)。 上面是来自维基百科对中断定义。 个人认为中断就是计算机在执行程序的过程中,当出现异常情况或者是特殊请求时,计算机停止执行现行程序的运行,转向对这些异常情况或特殊请求的处理,处理后再返回到现行程序的间断处,继续执行原程序,这就是中断。

计算机接口技术

1:当用 8259A中断控制器时,其中断服务程序执行EOI命令的作用是()。 2.清除该中断服务寄存器中的对应位,以允许同级或低级的中断能被响应 2:4KB容量的存储器系统,若首地址为A4000H,则末地址为 ( )。 2.A5000H 3:当CPU不使用总线时进行DMA操作,这种占用总线的方式是 ( )。 3.周期窃取方式 4:ADC 0809采用的转换原理是( )。 1.逐次逼近式 5:8255A使用了( )个端口地址。 4.4 6:在异步串行输入/输出接口中,实现并行数据与串行数据的转换 的主要功能部件是( )。 1.发送和接收移位寄存器 7:某一SRAM芯片的容量是512×8位,除电源和接地线外,该芯片 的其他引脚最少应为( ) 根。 4.19 8:设某存储器系统ROM容量为2KB,末地址为27FFH,已知其地址 是连续的,则该存储器系统的存储器首地址为( )。 3.2000H 9:属于辅助操作接口的是( )。 2.RAM接口 10:既然是在数据传输率相同的情况下,那么,又说同步字符传输速度要高于异步字符传输其原因是()。 2.附加位信息总量少 11:异步串行通信的主要特点是( )。 1.传送的每个字符 是独立发送的 12:在微型机中,主存是由( )组成。 4.RAM和ROM

14:8086对下列中断优先级响应最高的请求是( )。 3.内部软件中断 15:在存储器连线时,线片控制采用( )方式时,不存在( )的问题,即所分配的地址是连续的。 4.全译码;地 址浮动 16:主机与设备传送数据时,采用( ),CPU 的效率最高。 3.DMA 方式 17:总线握手的作用是( )。 3.控制每个总线操作周期中数 据传送的开始和结束 19:对于开关型设备的控制,适合采用的I/O 传送方式是( ) 。 1.无条件 20:8259A 全嵌套方式的主要特点是( )。 1.中断优先级 固定 21:针式点阵打印机的主要缺点是( )。 3.噪音大 22:设异步串行通信的波特率为2400波特,若传送1KB 的数据,每帧信息占10个数据位,则传送所需的时间为( )秒。 2.4.3 23:在Intel 8255A 中可以进行按位置位/复位的端口是( ) 。 3.端口C 25:采用SDLC/HDLC 方式时,标志场信息为( )。 1.01111110 26:在某一存储器系统中,设有只读存储器10KB ,随机存储器54KB ,使用16位地址来寻址,其中,只读存储器位于低地址段,其地址范围为( )。 1.0000 ~ 27FFH 27:I/O 口与主机信息的交换采用中断方式的特点是( )。

微型计算机原理作业第十二章 习题与思考题

第十二章习题与思考题 典型例题解析 例12-1 总线标准与接口标准的特点 答案:总线标准与接口标准在概念上是不同的,但是,往往把一些接口标准说成是总线标准。实际上两者之间是有其区别特征的。 (1)总线标准的特点 ①公用性,同时挂接多种不同类型的功能模块; ②在机箱内以总线扩展插槽形式提供使用; ③一般为并行传输; ④定义的信号线多,且齐全,包括分离的数据、地址和控制信号线以及电源线。 (2)接口标准的特点 ①专用性,一般是一个接口只接一类或一种设备; ②一般设在机箱外,以接口插头(座)形式提供使用; ③有并行和串行两种传输; ④定义的信号线少,且不齐全,一般是控制信号线、数据信号线、地址信号线共用。 例12-2 计算机系统采用“面向总线”的形式有何优点? 答案:面向总线结构形式的优点主要有: ①简化了硬件的设计。从硬件的角度看,面向总线结构是由总线接口代替了专门的I/O 接口,由总线规范给了传输线和信号的规定,并对存储器、I/O设备和CPU如何挂在总线上都作了具体的规定。所以,面向总线的微型计算机设计只要按照这些规定制作CPU插件、存储器插件以及CPU、存储器插件以及I/O插件等,将它们连入总线即可工作,而不必考虑总线的详细操作。 ②简化了系统结构。整个系统结构清晰,连线少,底板连线可以印刷化。 ③系统扩充性好。一是规模扩充,二是功能扩充。规模扩充仅仅需要多插一些同类型的插件;功能扩充仅仅需要按总线标准设计一些新插件。插件插入机器的位置往往没有严格的限制。这就使系统扩充即简单又快速可靠,而且也便于查错。 ④系统更新性能好。因为CPU、存储器、I/O接口等都是按总线规约挂到总线上的,因 而只要总线设计恰当,可以随时随着处理器芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,而这种更新只需更新需要新的插件,其他插件和底板连线一般不需更改。

oracle数据库大作业

o r a c l e数据库大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2013-2014学年第二学期《大型数据库技术》考查报告课题名称:图书管理系统系统 班级: 11软工java2班 学号: 1115115020 姓名:戴春奇 成绩: 2014年5月

1.课题概述 1.1 课题简介 随着社会的发展,人们对知识的需求也不断的增长。在这种形式下,人们就要不断的学习,不断的给自己充电,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学的管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展。图书馆作为一种信息资源的集散地,用户借阅资料繁多,包含很多的信息数据的管理。现今,有很多的图书馆都是初步开始使用,有些甚至尚未使用计算机进行信息管理。数据信息处理工作量大,容易出错;用于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出。因此一个好的图书馆管理系统是非常重要的。 1.2 功能描述 1.登录模块 用户登录:用户在登陆页面登陆,登陆成功进入系统。 管理员登陆:用于管理员的登陆,在后台登陆页面登陆,登陆成功进入系统。图书管理员与系统管理员后台功能不一样。查询用户表,对应用户名、密码正确则进入系统,对应用户名密码不正确则显示相应信息。 2.图书管理模块 对图书进行添加、查询、修改、删除、添加。

将输入的图书信息添加到数据库图书表中,以方便进行各种查询及更新操作,根据输入的图书名称或作者,查询数据库图书表中的相应记录并显示相应图书信息,更新数据库图书表中对应记录并显示更新后的图书信息,删除数据库图书表中对应记录。 3.副本信息模块 对图书的副本信息进行添加、修改、删除。将输入的图书副本信息添加到副本表中,并分配一个独立的中南码根据输入的中南码或国际标准图书编码,查询图书副本表,显示副本信息更新副本表的数据库、删除副本表中所对应的图书信息、修改副本表中错误的信息并更新数据库。 4.用户管理模块 对用户进行添加、删除、修改。将输入的用户信息添加到用户表中,并分配一个独立的用户号根据输入的用户名的姓名或生日,查询用户表,显示用户信息更新用户表的数据库、删除用户表中所对应的、修改用户中错误的信息并更新数据库。 2、数据库设计及实现 2.1 数据库表清单 1、图书信息-----Books表

微型计算机接口技术大作业

微型计算机接口技术大作业 学院(系):软件学院 专业:软件工程 班级: 姓名: 学生学号: 电话: 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 Win32 m_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);

计算机接口技术期末考试试题及答案

第1页 共7页 计算机接口技术复习题 一、 填空题: 1)8255A 端口B 可工作在_________0____、_____1________方式下 注:A 口工作在0、1、2方式下 2)中断分为两大类____内部中断_________和____外部中断_________。 3)CPU 与外设之间有交换的信息有_____状态信息________、_____控制信息________和数据信息。 4)8253定时/计数芯片中,CLK 和GATE 所起的作用分别是_____计数脉冲 ________和_____ 用于定时/计时的启动/停止,允许/禁止 ________。 5)控制微型计算机与外设之间的信息交换有4种方式,分别是程序控制方式、__DMA 控制__________方式、___中断控制方式__________方式、I/O 通道方式。 ????6)8255的A1和A0引脚分别连接在地址总线的A1和A0,当命令端口的地址为317H 时,则A 口、B 口、C 口的口地址分别为___314h__________、____315h_________、______316h_______。 7)1个中断类型号为01CH 的中断服务程序存放在0100H :3600H 开始的内存中,则中断向量存储在地址为 0070h 至 0073h 的四个内存单元中。 注: 一个中断类型号为01CH 的中断处理程序存放在0100H :3800H 开始的内存中,中断向量存储在地址为____0070H_____至___0073H_____的___4___个字节中 二、 单项选择题

??1、8255可编程并行接口芯片的C口具有位控能力,允许CPU用输出指令单独对C口的某一位写入‘0’或写入‘1’,正确的方法是通过( b )方式写入。 A 写入8255的C数据口 B 写8255的控制寄存器 C 读C口状态后对相应位做“或运算”或者“与运算”后写入C数据口 D 读C口状态后再直接写入8255的C数据口 //2、在串行数据传送中,若工作于异步方式,每个字符传送格式为数据位8位,奇偶校验位1位,停止位1位,波特率为4800,则每秒钟最多能传输的字符数是(a ) A 480 B 4800 C 436 D 600 3、8255具有3种并行工作方式,当两个CPU通过各自的8255并行连接进行双向数据交换时应当采用( c ) A 方式0 B 方式1 C 方式2 D 三种方式都不行 4、微机系统中要组成32KBX16的存储器,需要选用( a )片规格为2KBX8的芯片 A 32 B 16 C 64 D 8 5、下列芯片是串行接口的是( c ) A 8255 B 0809 C 8251A D 8259 6、下列说法中对半双工通信方式论述正确的是(c ) A 某一时刻通信双方能同时双向传送数据 B 通信双方只能单向传送数据 C 通信双方不能同时收发数据,但可以在不同时候在两个方向传送 D 以上说法均不对 7、用8259级连产生64级中断至少需要( b )片8259芯片。 A 8 B 9 C 7 D 10 ???8、下列关于中断说法正确的是(b ) A 软中断是随机发生的 B 硬中断是外部硬件产生的,包括不可屏蔽中断NMI与可屏蔽中断INTR 第2页共7页

微机原理大作业-测量电风扇转速的方案

测量电风扇转速的方案 0 引言 电风扇是每家每户都会有的一个电器,在 空调尚未普及之前,炎炎夏日人们能在风扇面 前吹着风就已经是很好的享受了。但是不知道 大家有没有想过,我们常见常用的风扇叶片的 转速究竟是多少呢。接下来我们便来探讨测量电风扇转速的一种方法。 1 可行性研究 1.1 背景 风扇转速是指风扇扇叶每分钟旋转的次数,单位是rpm。风扇转速由电机内线圈的匝数、工作电压、风扇扇叶的数量、倾角、高度、直径和轴承系统共同决定。在风扇结构固定的情况下,直流风扇(即使用直流电的风扇)的转速随工作电压的变化而同步 变化。风扇的转速可以通过内部的转速信号进行测量,也可以通过外部进行测量(外部测量是用其他仪器看风扇转的有多快,内部测量则直接可以到BIOS里看,也可以通过软件看。内部测量相对来说误差大一些)。风扇转速与散热能力并没有直接的关系,风量是决定散热能力的根本条件,更高的风扇转速会带来更高的噪声,选购散热器产品时如果风量差不多,可以选择转速低的风扇,在使用时会安静一些。

1.2 应用现状/对比案例 查阅资料可知,在其他的转速测量方法中,有一些采用了内部测量转速的方法需要采集的电子参数过多,电路逻辑分析也过于复杂(如图1、图2),故在电风扇转速的测量中,我们应尽量选用外部测量的方法,这样可以简化操作并有效减小误差。 图1其他方案转速采集电路仿真 图2其他方案控制系统示意图 1.3 效益分析 本方案中所选取的单片机、传感器均为常见且易得的器件,在花费上可以有效节省费用。 2 总体方案/初步设计

2.1 方案总述 针对在工程实践中很多场合都需要对转速这一参数进行精准测量的目的,采用以STC89C51 芯片为核心,结合转动系统、光电传感器、显示模块等构成光电传感器转速测量系统,实现对电风扇转速的测量。通过测试表明该系统具有结构简单、所耗成本低,测量精度高、稳定可靠等优点,具有广阔的应用前景。 2.2 总体方案 系统总体结构如图3所示,主要包含以单片机为核心的主控电路、以传感器为主的信息采集处理单元、转动系统、显示模块等。 图3系统总体结构 2.3 测量原理 单片机转速测量系统采用的主要原理一般情况下,大多数的单片机转速测量系统都会被视线安装在相应的设备上,同时还要通过对一些不同类型的传感器的使用来实现脉冲的产生,后才可以实行测评的方法对扇叶的转速进行有效的测量。但是对于那些临时性的转速测量系统来说,他们在进行转速测量过程中所选取的传感器主要是光电传感器,这就需要相关的技术工作人员提前在电机的转轴上安装一个能够产生脉冲的装置,从而实现对电机转速的频率测量。但是综合来看,不论是长期使用的单片机转速测量系统还是短期的测量系统,都可以通过微系统来对转轴上的转动系统 信号采集及其 处理 单片机处理电路 显示模块

数据库大作业期末

测绘专业数据库原理及应用期末大作业 一、要求 1、需求分析。 2、数据库设计。 2.1 概念结构设计(由需求得到E-R模型) 2.2 逻辑结构设计(把E-R模型转换为关系模型) 2.3 物理结构设计(根据关系模型设计表的结构和字段属性及约束) 3、数据库实现。(定义表格和索引等,录入数据,每个表格不少于8条数据) 4、数据库运行。(数据库操作的相关SQL语句,包括查询、增加、删除、修改等,不少 于20条,其中查询需覆盖简单、连接及嵌套三种语句) 5、18周之前交 二、可选题目 1.机票预定信息系统 系统功能基本要求: 能够实现多种关联查询 航班基本信息的录入:航班的编号、飞机名称、机舱等级等; 机票信息:票价、折扣、当前预售状态及经受业务员等; 客户基本信息:姓名、联系方式、证件及号码、付款情况等; 按照一定条件查询、统计符合条件的航班、机票等; 2.学校人事信息管理系统 系统功能基本要求: 能够实现多种关联查询 教职工基本信息:编号、姓名、性别、学历、所属部门、毕业院校、健康情况、职称、职务、奖惩等; 教师教学信息的录入:教师编号、姓名、课程编号、课程名称、课程时数、学分、课程性质等; 科研信息的录入:教师编号、研究方向、课题研究情况、专利、论文及著作发表情况等。 3.论坛管理信息系统 系统功能基本要求: 能够实现多种关联查询 作者信息:昵称、性别、年龄、职业、爱好等; 帖子信息:帖子编号、发帖日期、时间、等级等; 回复信息:回复作者昵称、回复时间等。 4.药品存销信息管理系统 系统功能基本要求:

能够实现多种关联查询 药品信息:药品编号、药品名称、生产厂家、生产日期、保质期、用途、价格、数 量、经手人等; 员工信息:包括员工编号、姓名、性别、年龄、学历、职务等; 客户信息:客户编号、姓名、联系方式、购买时间、购买药品编号、名称、数量等; 入库和出库信息:库存信息、药品存放位置、入库量、出库量。 5.职工考勤管理信息系统 系统功能基本要求: 能够实现多种关联查询 职工信息:包括职工编号、职工信息、性别、年龄、职称等; 出勤记录信息:上班打卡时间、下班打卡时间、缺勤记录等; 出差信息:出差起始时间、结束时间、统计总共天数等; 请假信息:请假开始时间,结束时间,统计请假天数等; 加班信息:加班开始时间、结束时间、统计加班时间等; 6.自选题目。具有一定实际意义,基本表不少于3个,能够实现多种关联查询。 报告格式模板见附录

计算机接口技术简答题及答案

计算机接口技术简答题及答案 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.简述8086/8088引脚信号HOLD、HLDA HOLD为保持请求信号(输入),当外部逻辑把HOLD引脚置为高电平时,8086在完成当前总线周期以后让出总线控制权。 HLDA为保持响应信号(输出),这是CPU对HOLD信号的响应。响应时,使HLDA输出高电平,8086的三态信号线全部处于高阻态。使外部逻辑可以控制总线。 1. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断? [答] OBF高电平无效时,是输出中断。IBF高电平有效时,是输入中断。 2. 对可编程I/O接口进行初始化时,往往通过一个口地址写入几个控制字,如何保证控制字 正确写入?试分别举例说明。 [答]: ①按特征位区分。如8255的控制字 ②按顺序区分。如8259的控制字 3. 试说明8255A在方式1输出时的工作过程。 [答]:输出过程是由CPU响应中断开始,在中断服务程序中用OUT指令通过8255A向外设输出数据,发出WR信号;WR的上升沿清除INTR中断请求信号,且使OBF=“L”(有效),通知外设取数;当外设接收数据后,发出ACK应答信号,一方面使OBF=“H”(无效),另一方面在ACK信号的上升沿使INTR=“H”(有效),以此向CPU发出新的中断请求,开始下一轮输出。 4. 简述 8255A在方式1下的输入过程。 [答] 方式1的输入过程如下(A口): 当外设准备好数据,把数据送给8255A的同时,送来一个选通信号ST B。8255A的A口数据锁存器在ST B 下降沿控制下将数据锁存。8255A向外设送出高电平的IBF,表示锁存数据已完成,暂时不要再送数据。如果PC4=1(INTE A=1),这时就会使INTR变成高电平输出,向CPU发出中断请求。CPU响应中断,执行IN指令把数据读走,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为低电平后,可以输入下一个字节。 5. 扼要说明8255A工作于方式0和方式1时的区别。 [答] 8255A工作于方式0是基本I/O方式,无联络线;方式1是选通I/O方式,有固定联络线。 1.为什么在长途串行通讯中需要加入Modem,常用的调制方法有哪几种? 答:二进制数据信号频带很宽,而通信线路往往使用公用电话线,电话线带宽有限,这会导致接收端信号严重失真。为此发送端必须加入Modem进行调制,接收端进行解调。调制方法有:调幅、调频、调相。2.串行传送与并行传送有何区别?各适用什么场合? 答:串行传送用一条线按位传送,线路成本低,但速度慢;适合远距离传送;并行传送多位同时传送,有多少位就要多少条线,线路成本高,但速度快。适合近距离快速传送。

计算机接口技术期末复习资料全

计算机接口技术期末复习资料 1.简述CPU发展历程? 答:自1946年在美国宾夕法尼亚大学生产的第一台电子计算机问世以来,可以吧计算机发展划分为四个阶段:第一个阶段(1946-1958)以电子管为主要元件,第二个阶段(1958-1964)以晶体管为主要元件,第三个阶段(1964-1970)以小规模集成电路为主要元件,到了第四个阶段(1970-今)主要以大规模集成电路为主要元件。 2.微机系统有哪些功能部件组成?他们各自具有什么结构?采用什么样的结构? 答: 3.说明程序存储及程序控制的概念。 答: 4.说明微机系统的工作过程。 答:采用程序存储思想,把计算机执行所需要的程序及数据都保存在计算机的存储器,运算器和控制器进行分析和处理所需要的指令和数据要从存储器中取出。 5.总线规的基本容是什么? 答:物理特性,功能特性,电气特性。 6.根据在微机系统的不同层次上做的总线分类,微机系统中共有哪几类总线? 答:片总线,局部总线,系统总线,通信总线。 7.同步总线传输是如何实现总线控制的?异步总线传送是如何实现总线控制的?半同步总线传送是如何 实现总线控制的?

答: 8.采用标准总线结构组成的微机系统有何优点? 答:小板结构,高度模块化,具有一整套高可靠措施,可长期工作在恶劣的环境下,结构简单。 9.说明存储器系统的主要性能指标。 答:存储容量,存取周期,存取时间,可靠性,性价比。 10.术语“非易失性存储器”是什么意思?PROM和EPROM分别代表什么意思? 答: 11.微机中常用的存储器有哪些类型?他们各有何特点?分别适用于那些场所? 答: 12.是比较静态RAM和动态RAM的优缺点。 答:

数据库大作业

华南理工大学数据库原理与设计大作业报告 专业:计算机科学与技术 班级: 2015春 学号: 20 学生姓名:陈亮 完成时间:

目录 目录 (2) 1、概述 (4) 2、需求分析 (6) 零售前台(POS)管理系统 (6) 后台管理系统 (7) 数据需求 (7) 3、数据库逻辑设计 (9) 概念结构设计 (9) 4、软件功能设计 (13) 逻辑结构设计 (13) 物理结构设计 (15) 完整性设计 (20) 安全性设计 (22) 5、界面设计 (24) 系统功能结构图 (24) 模块设计与实现(部分界面) (24) 6、结束语 (31)

7、参考文献 (33)

1、概述 超市管理信息系统是针对超级市场的销售而开发的。应用超市管理信息系统能够转变超市的工作方式,有效提高销售速度和服务水平,提高客户对超市的信任度和满意度,改善客户关系。运用超市管理信息系统,在销售商品时实行出口一次性付款,可以实现超市内部现代化管理,能够准确把握每一种商品的销售动态,防止商品断档或过量储备,商品开发方向、进货的适时化都可通过超市管理信息系统来完成。 超市管理信息系统将手工编制好的销售账目或根据原始超市销售记录直接在系统内制作超市销售信息,同时可对输入的超市销售信息进行修改、查询等操作。这种集约化的销售管理模式既便于对超市销售信息的收集、整理和加工,又便于操作员的需求信息在最短的时间内得到反馈,同时超市管理信息系统可自动分析各种商品销售变化规律,商品销售结构、居民消费变化等,从而为合理进货、经营、加工、库存、销售等提供科学的决策依据。 超市管理信息系统充分运用计算机管理信息技术,建立数据库,对超市的进销存过程进行详细分析,实现了对超市的进货、销售和库存的科学管理。

吉林大学2019-2020学年第一学期期末考试《计算机接口技术》大作业参考答案

吉林大学网络教育学院2019-2020学年第一学期期末考试《计算机接口技术》大作业 学生姓名专业 层次年级学号 学习中心成绩 年月日

作业完成要求:大作业要求学生手写,提供手写文档的清晰扫描图片,并将图片添加到word 文档内,最终wod文档上传平台,不允许学生提交其他格式文件(如JPG,RAR等非word 文档格式),如有雷同、抄袭成绩按不及格处理。 一、简答题(每小题8分,共80分) 1、计算机I/O接口有何用途?试列出8个I/O接口。 答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。例如:串行通讯口(COM口)、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(USB、SCSI等)。 2、简述系统总线,AGP总线,PCI总线及ISA总线的作用。 答:系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CPU与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或内存交换信息的通道。 3、存储单元的选择由什么信号控制?读、写靠什么信号区分? 答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作则要靠读、写信号区分。 4、详细叙述总线缓冲器的作用。 答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送避免相互冲突,当几路数据都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据与总线断开。 5、锁存器和寄存器有什么不同? 答:锁存器与寄存器都是用来暂存数据的器件,在本质上没有区别,不过寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。 6、说明2164芯片各引脚的功能。 答案:2164是一种64K×1位的动态RAM芯片,有8条地址线,可接受16位地址信号,因此必须采用地址多路器,使16位地址信号分成8位行地址和8位列地址分时送入2164的地址线。数据线有2条即DIN(输入数据)和DOUT(输出数据),用来写入或读出一位数据信息。还有三条控制信号线;RAS——行选通信号。用来锁定8位行地址:CAS——列地址选通信号,用来锁定8位列地址;WRITE——读写控制信号,用来控制对2164芯片的读与写。 7、简述CPU响应中断的过程。 答:进入中断周期后,中断响应的过程如下: (1)关中断。:CPU在响应中断后,发出中断响应信号,同时内部自动地关中断,以禁止接受其他的中断请求。

相关主题
文本预览
相关文档 最新文档