当前位置:范文大全 > 调查报告 > 接口课设实验报告

接口课设实验报告

发布时间:2021-11-02 10:14:12

接口课设实验报告 本文关键词:接口,实验,报告

接口课设实验报告 本文简介:接口课设实验报告计算机0206班熊兰君(012002013804)一.绪论本实验是一个利用接口硬件平台开发的微机模拟系统,它不仅考查了我们的对接口硬件的掌握和理解程度,同样了锻炼了我们的编程能力。在组长的带领下我们顺利完成了这次实验课设,并收获了很多的相关知识,而且锻炼了我们的团队精神,受益匪浅。二

接口课设实验报告 本文内容:

接口课设实验报告

计算机0206班

熊兰君(012002013804)

一.绪论

本实验是一个利用接口硬件平台开发的微机模拟系统,它不仅考查了我们的对接口硬件的掌握和理解程度,同样了锻炼了我们的编程能力。在组长的带领下我们顺利完成了这次实验课设,并收获了很多的相关知识,而且锻炼了我们的团队精神,受益匪浅。

二.实验目的

掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统;

掌握基本接口电路的综合应用

掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法

微机接口技术及接口芯片的综合应用(重点)

三.

实验题目及要求

选课系统

学生通过下位机进行选课,上位机对选课信息进行统计。进入系统需要密码,密码错误或者操作错误时报警。

系统由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。

四.

实验内容

这次我们所做的选课系统功能还比较强大,它主要由主控机,下位机,执行部件构成。

1.机实现管理员的功能,界面如下:

主界面主要是方便管理员管理学生基本信息,课程基本信息,选课基本信息。它的功能有:1.增加基本信息;2.删除基本信息;3.查询基本信息。注意,所有的数据信息都存放在Sql

server

数据库上,程序先分析管理员的指令,然后通过ODBC(Open

DataBase

Connecttion)接口操作数据库。另外,主控机程序实现的另一个功能,也就是本程序的核心功能,就是接受下位机的选课信息。当操作员按下“接受选课”按钮后,主控机程序开始接受远程选课信息,接收后会将该信息存入Sql

server

数据库中。

2.下位机是给选课学生的信息窗口,它同时也起到了主控机和执行部件信息传送的作用,而实现这个功能是通过接口实验台上的可编程串行接口芯片8251。

但是选课还是通过执行部件,而不是通过下位机,这一点是十分重要的。以下就下位机的界面:

下位机程序的功能是接受用户选课信息,然后将该信息发送给上位机。需要选课的学生,可以先点击“开始选课”的按钮,然后用拨码开关输入想要选择的功能。

功能1代表选课,功能2代表查询所有课程,功能3表示结束选课。

选功能2后,程序会通过文本框输出所有可供选择的课程的相关信息。选功能1后,程序会一步一步提示用户来操作。这里有两个问题,第一是如果学生输入的密码错误,上位机会发送回代表错误的信息,下位机根据该信息驱动LED显示灯报警;第二,如果学生所选的课程不存在,上位机亦会发送回相应错误代号,下位机根据该代号启动报警程序。

3执行部件由接口实验台上的芯片:可编程的并行I/O接口芯片8255,可编程计数器8253,LED显示灯,手动开关和一个按钮开关组成。它主要做为学生选课的输入和警报提示。

学生通过手动开关拨出用户名密码,还有想选的课程号,按下按钮表示确定。还可以选择查看课程号和课程名。

以上就是本系统的大致功能,当然这只是一个模拟的系统,它实现的功能都很简单。真正要达到实用的阶段,还有很多细节需要完善。但基本的框架,在本系统中已经得到了体现。

五.实施计划及分工

分工如下:首先夏永同学负责整个系统框架的设计,odbc数据源的配置以及界面的设计。吴莎同学和武孟梦同学负责上位机各个功能的实现以及与下位机的通信。我和贾玉芳同学负责下位机各个功能的实现以及硬件连接。同时我们所有人都参与了系统的测试工作。

首先是硬件的连接,按照我们的大概的设计,下位机有一个很重要的的功能,就是反馈执行部件的选择信息,而这项功能除了软件的设计外,最重要的就是硬件连接。对于执行部件与下位机的通信重要是靠可编程并口8255实现的,对于8255我们用到了它的A口进行输出,B口进行输入,C口作为控制口。PA0~PA7依次连接的是实验台上的八个灯,其作用是当用户名和密码不符合主控机中已存的相应的用户名和密码时,这八个灯就会轮回闪烁产生报警的效果。PB0~PB7依次与实验台上八个拨码开关连接,当用户要输入数字信息时,通过这八个开关进行输入(注意这里的数字是用二进制输入而不是八位十进制数字),开始的时候我们将高低位接反了,直接导致整个系统混乱,因为功能项输入错误。PC0口作为SW1的输入口,当SW1按下时,会给PC0一个电平,程序轮询查看,若发现PC0口变为“1”时,就将拨码开关的数字传送给下位机进行处理,所以这里PC0作为控制作用,这里还要注意在连接SW1时,还要经过一个74SL373芯片,这个芯片的OE#口必须和8255的PC4口连接,用PC4口来控制74SL373,当PC4等于“1”时,74SL373关闭,这时SW1就没有任何作用了。还有就是负责双机通信的8251芯片,这里我们用一根连接线将主控机和下位机到26芯插座连接起来进行近距离通信,这个在实验平台已经完成好了,所以不再赘述。控制8251时钟的是8253芯片,它的OUT2端与

8251的

TxC和RxC相连进行控制,

而8253的时钟脉冲端CLK2与1MHZ脉冲信号进行连接,至于它的GATE2与8255的PC6口连接进行脉冲源的控制,以上就是下位机与执行部件的硬件连接。

接下来就是程序的设计了,我们开始用的C语言进行编写,后来因为要进一步完善系统功能,要用到ODBC连接数据库,还有界面的编写就将持续移植到VC上使用C++语言。程序主要实现的功能有:1.将用户名和密码输入并传给主控机进行正确性的判断;2.

当用户选择“1”号功能时,用户可以进行选课,下位机将选课信息(学生号和课程号)传给主控机并存储起来;3.

当用户选择“2”号功能时,用户可以查看选课信息(课程号和课程名);

4.当用户选择“3”功能时,退出选课系统。

这个程序按照功能来划分两大部分,一个是与传送信息有关程序,二者是与界面有关的程序。由于界面相关程序由夏永同学负责,所以这里就不多说了,我们主要负责的是传送信息有关的程序,大概如下:

#define

PORTTALK_TYPE

40001

#define

IOCTL_READ_PORT_UCHAR

/

CTL_CODE(PORTTALK_TYPE,0x904,METHOD_BUFFERED,FILE_ANY_ACCESS)

#define

IOCTL_WRITE_PORT_UCHAR

/

CTL_CODE(PORTTALK_TYPE,0x905,METHOD_BUFFERED,FILE_ANY_ACCESS)

#define

IOCTL_GETINTCODE_PORT_UCHAR

/

CTL_CODE(PORTTALK_TYPE,0x906,METHOD_BUFFERED,FILE_ANY_ACCESS)

unsigned

char

OpenPortTalk(void);

void

ClosePortTalk(void);

void

outportb(unsigned

short

PortAddress,unsigned

char

byte);

unsigned

char

inportb(unsigned

short

PortAddress);portb(unsigned

short

PortAddress);

//myport.cpp

#include

“stdafx.h“#include

“conio.h“#include

“windows.h“#include

#include

“myport.h“HANDLE

PortTalk_Handle

=

NULL;

/*界面相关*/

unsigned

char

OpenPortTalk()

{

PortTalk_Handle

=

CreateFile(“////.//MPNP1“,GENERIC_READ

|

GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

if(PortTalk_Handle

==

INVALID_HANDLE_VALUE)

{

return

-1;

}

return

0;

}

void

ClosePortTalk()

{

CloseHandle(PortTalk_Handle);

}

void

outportb(unsigned

short

PortAddress,unsigned

char

byte)

/*写字符传到对应地

{

/*址的端口

DWORD

dwError

=

0;

unsigned

int

error;

DWORD

BytesReturned;

unsigned

char

Buffer[3];

/*BUFFER和pBUFFER是传送过程中的

unsigned

char

pBuffer;

/*中间缓冲区

pBuffer

=

(unsigned

char)pBuffer

=

(unsigned

char)PortAddress

Buffer[2]

=

byte;

error

=

DeviceIoControl(PortTalk_Handle,IOCTL_WRITE_PORT_UCHAR,}

unsigned

char

inportb(unsigned

short

PortAddress)

/*读对应地址的端口的信息

{

unsigned

int

error;

DWORD

BytesReturned;

unsigned

char

Buffer[3];

/*BUFFER和pBUFFER是传送过程中的

unsigned

short

pBuffer;

/*中间缓冲区

pBuffer

=

(unsigned

short)pBuffer

=

(unsigned

char)PortAddress

error

=

DeviceIoControl(PortTalk_Handle,IOCTL_READ_PORT_UCHAR,return(Buffer[0]);

}

//

class

CClientDlg

:

public

CDialog

{

public:

CClientDlg(CWnd*

pParent

=

NULL);

void

Init8251(int

state,int

work);

/*初始化8251芯片

void

Trans(int

tran);

/*通过8251芯片传送数值tran

int

Recei();

/*接收发送到8251芯片的数值,便返回该值

void

set_bps(int

bps);

/*设置8253计数器的计数初值

void

sTrans(char

s);

/*传送字符串s

void

sRecei(char

s);

/*接受一个字符串,并存入s中

void

AddSC(int

sid,int

cid);

/*添加一个选课记录

void

sw();

/*检测开关sw1有没有按下,如没有按下,则等待

void

Warning(int

level);

/*当用户名和密码不对时进行报警

enum

{

IDD

=

IDD_SERVER_DIALOG

};

CEditm_Output;

/*系统信息

CStringm_sid;

/*学生信息中的学号信息

CStringm_sname;

/*学生信息中的学生姓名信息

CStringm_password;

/*密码信息

CStringm_cid;

/*课程信息中的课程号信息

CStringm_cname;

/*课程信息中的课程名信息

CStringm_ssid;

/*选课信息中的学生号信息

CStringm_ccid;

/*选课信息中的课程号信息

//}}AFX_DATA

//

ClassWizard

generated

virtual

function

overrides

//{{AFX_VIRTUAL(CServerDlg)

public:

virtual

LRESULT

DisplayMessage(WPARAM

wParam,LPARAM

lParam)

;

protected:

virtual

void

DoDataExchange(CDataExchange*

pDX);//

DDX/DDV

support

//}}AFX_VIRTUAL

protected:

//

Generated

message

map

functions

//{{AFX_MSG(CServerDlg)

virtual

BOOL

OnInitDialog();

afx_msg

void

OnSysCommand(UINT

nID,LPARAM

lParam);

afx_msg

void

OnPaint();

afx_msg

HCURSOR

OnQueryDragIcon();

afx_msg

void

OnDestroy();

afx_msg

void

OnButton1();//查询所有课程

afx_msg

void

OnButton2();//选课

afx_msg

void

OnButton3();//确定

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

//

CClientDlg.cpp

#include

“StdAfx.h“#include

“Server.h“#include

“ServerDlg.h“#include

“ServerDlg.h“#include

#define

factor

16

/*波特率因子16

unsigned

long

int

clk

=

1193182;

/*8251输入时钟频率(十六进制表示)

CClientDlg::

CClientDlg

(CWnd*

pParent

)

:

CDialog(CClientDlg::IDD,pParent)

{

//{{AFX_DATA_INIT(CServerDlg)

m_sid

=

_T(““);

m_password

=

_T(““);

m_cid

=

_T(““);

//}}AFX_DATA_INIT

}

//以上是程序面板上文本框对应的变量的定义

void

CClientDlg::DoDataExchange(CDataExchange*

pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CServerDlg)

DDX_Control(pDX,IDC_EDIT1,m_Output);

DDX_Text(pDX,IDC_EDIT2,m_sid);

DDX_Text(pDX,IDC_EDIT4,m_password);

DDX_Text(pDX,IDC_EDIT5,m_cid);

//}}AFX_DATA_MAP

}

//以上是变量与资源的对应关系

BEGIN_MESSAGE_MAP(CServerDlg,CDialog)

//{{AFX_MSG_MAP(CServerDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_WM_DESTROY()

ON_BN_CLICKED(IDC_BUTTON3,OnButton3)

ON_BN_CLICKED(IDC_BUTTON1,OnButton1)

ON_BN_CLICKED(IDC_BUTTON2,OnButton2)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//以上是消息与按钮对应关系的说明

void

CClientDlg::Init8251(int

state,int

work){

/*8251的初始化*/

outportb(IO_BASE+9,0x0)

;

/*

空操作*/

outportb(IO_BASE+9,0x40)

;

/*

内部复位(使D6=1)*/

outportb(IO_BASE+9,0x4e)

;

/*

方式命令字,,查课本p180*/

outportb(IO_BASE+9,0x27)

;

/*工作命令字,例子p183*/

}

void

CClientDlg::set_bps(int

bps){

/*计数器设置

int

i,sendhigh,sendlow;

i=clk/bps;

i=i/factor;//计算计数初值

sendhigh

=

(i>>8)

sendlow

=

i

outportb(IO_BASE+7,0xb6);

outportb(IO_BASE+6,sendlow);//装计数初值低字节

outportb(IO_BASE+6,sendhigh);//装计数初值高字节

}

void

CClientDlg::Trans(int

tran){//发送字符

int

state;

do

state=inportb(IO_BASE+9);

while(!(state=state

outportb(IO_BASE+8,tran);/*发送字符*/

}

int

CClientDlg::Recei(){//接收字符

int

r,state;

do

state=inportb(IO_BASE+9);

while(!(state=state

r=inportb(IO_BASE+8);/*接收字符*/

return

r;

}

void

CClientDlg::sTrans(char

s){//传送字符串

int

length=strlen(s);

Trans(length);

int

i=0;

for(;i

#include

“myport.h“HANDLE

PortTalk_Handle

=

NULL;

/*

Handle

for

PortTalk

Driver/

unsigned

char

OpenPortTalk()

{

PortTalk_Handle

=

CreateFile(“////.//MPNP1“,GENERIC_READ

|

GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

if(PortTalk_Handle

==

INVALID_HANDLE_VALUE)

{

return

-1;

}

return

0;

}

void

ClosePortTalk()

{

CloseHandle(PortTalk_Handle);

}

void

outportb(unsigned

short

PortAddress,unsigned

char

byte)

{

DWORD

dwError

=

0;

unsigned

int

error;

DWORD

BytesReturned;

unsigned

char

Buffer[3];

unsigned

char

pBuffer;

pBuffer

=

(unsigned

char)pBuffer

=

(unsigned

char)PortAddress

Buffer[2]

=

byte;

error

=

DeviceIoControl(PortTalk_Handle,IOCTL_WRITE_PORT_UCHAR,}

unsigned

char

inportb(unsigned

short

PortAddress)

{

unsigned

int

error;

DWORD

BytesReturned;

unsigned

char

Buffer[3];

unsigned

short

pBuffer;

pBuffer

=

(unsigned

short)pBuffer

=

(unsigned

char)PortAddress

error

=

DeviceIoControl(PortTalk_Handle,IOCTL_READ_PORT_UCHAR,return(Buffer[0]);

}

//ServerDlg.h

:

class

CServerDlg

:

public

CDialog

{

public:

CServerDlg(CWnd*

pParent

=

NULL);

void

Init8251(int

state,int

work);//初始化8251芯片

void

Trans(int

tran);//通过8251芯片传送数值tran

int

Recei();//接收发送到8251芯片的数值,便返回该值

void

set_bps(int

bps);//设置8253计数器的计数初值

int

getPassword(int

ssid);//返回学号为ssid的同学的密码

int

checkCid(int

ccid);//检查课号为ccid的课程是否存在

void

sTrans(char

s);//传送字符串s

void

sRecei(char

s);//接受一个字符串,并存入s中

void

AddSC(int

sid,int

cid);//添加一个选课记录

enum

{

IDD

=

IDD_SERVER_DIALOG

};

CEditm_Output;

CStringm_sid;

CStringm_sname;

CStringm_password;

CStringm_cid;

CStringm_cname;

CStringm_ssid;

CStringm_ccid;

//}}AFX_DATA

//

ClassWizard

generated

virtual

function

overrides

//{{AFX_VIRTUAL(CServerDlg)

public:

virtual

LRESULT

DisplayMessage(WPARAM

wParam,LPARAM

lParam)

;

protected:

virtual

void

DoDataExchange(CDataExchange*

pDX);//

DDX/DDV

support

//}}AFX_VIRTUAL

protected:

//

Generated

message

map

functions

//{{AFX_MSG(CServerDlg)

virtual

BOOL

OnInitDialog();

afx_msg

void

OnSysCommand(UINT

nID,LPARAM

lParam);

afx_msg

void

OnPaint();

afx_msg

HCURSOR

OnQueryDragIcon();

afx_msg

void

OnDestroy();

afx_msg

void

OnButton3();

afx_msg

void

OnButton1();

afx_msg

void

OnButton2();

afx_msg

void

OnButton5();

afx_msg

void

OnButton4();

afx_msg

void

OnButton6();

afx_msg

void

OnButton7();

afx_msg

void

OnButton11();

afx_msg

void

OnButton12();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

//

ServerDlg.cpp

#include

“StdAfx.h“#include

“Server.h“#include

“ServerDlg.h“#include

“ServerDlg.h“#include

#define

factor

16

//波特率因子16

unsigned

long

int

clk

=

1193182;//8251输入时钟频率(十六进制表示)

CServerDlg::CServerDlg(CWnd*

pParent

)

:

CDialog(CServerDlg::IDD,pParent)

{

//{{AFX_DATA_INIT(CServerDlg)

m_sid

=

_T(““);

m_sname

=

_T(““);

m_password

=

_T(““);

m_cid

=

_T(““);

m_cname

=

_T(““);

m_ssid

=

_T(““);

m_ccid

=

_T(““);

//}}AFX_DATA_INIT

}

//以上是程序面板上文本框对应的变量的定义

void

CServerDlg::DoDataExchange(CDataExchange*

pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CServerDlg)

DDX_Control(pDX,IDC_EDIT1,m_Output);

DDX_Text(pDX,IDC_EDIT2,m_sid);

DDX_Text(pDX,IDC_EDIT3,m_sname);

DDX_Text(pDX,IDC_EDIT4,m_password);

DDX_Text(pDX,IDC_EDIT5,m_cid);

DDX_Text(pDX,IDC_EDIT6,m_cname);

DDX_Text(pDX,IDC_EDIT7,m_ssid);

DDX_Text(pDX,IDC_EDIT8,m_ccid);

//}}AFX_DATA_MAP

}

//以上是变量与资源的对应关系

BEGIN_MESSAGE_MAP(CServerDlg,CDialog)

//{{AFX_MSG_MAP(CServerDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_WM_DESTROY()

ON_BN_CLICKED(IDC_BUTTON3,OnButton3)

ON_BN_CLICKED(IDC_BUTTON1,OnButton1)

ON_BN_CLICKED(IDC_BUTTON2,OnButton2)

ON_BN_CLICKED(IDC_BUTTON5,OnButton5)

ON_BN_CLICKED(IDC_BUTTON4,OnButton4)

ON_BN_CLICKED(IDC_BUTTON6,OnButton6)

ON_BN_CLICKED(IDC_BUTTON7,OnButton7)

ON_BN_CLICKED(IDC_BUTTON11,OnButton11)

ON_BN_CLICKED(IDC_BUTTON12,OnButton12)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//以上是消息与按钮对应关系的说明

void

CServerDlg::Init8251(int

state,int

work){

outportb(IO_BASE+9,0x0)

;

outportb(IO_BASE+9,0x40)

;

outportb(IO_BASE+9,0x4e)

;

outportb(IO_BASE+9,0x27)

;

}

void

CServerDlg::set_bps(int

bps){

int

i,sendhigh,sendlow;

i=clk/bps;

i=i/factor;//计算计数初值

sendhigh

=

(i>>8)

sendlow

=

i

outportb(IO_BASE+7,0xb6);

outportb(IO_BASE+6,sendlow);//装计数初值低字节

outportb(IO_BASE+6,sendhigh);//装计数初值高字节

}

void

CServerDlg::Trans(int

tran){//发送字符

int

state;

do

state=inportb(IO_BASE+9);

while(!(state=state

outportb(IO_BASE+8,tran);/*发送字符*/

}

int

CServerDlg::Recei(){//接收字符

int

r,state;

do

state=inportb(IO_BASE+9);

while(!(state=state

r=inportb(IO_BASE+8);/*接收字符*/

return

r;

}

int

CServerDlg::getPassword(int

ssid){//根据学号ssid查询数据库中该记录的pssword

CDatabase

database;

database.Open(_T(“select“));//数据源名称

CString

temp=““;

int

pass;

CRecordset

recset;

recset.m_pDatabase=

CString

str=““;

CDBVariant

var;

str.Format(“%d“,ssid);

CString

Req=“SELECT

FROM

St

where

sid=“+str+“;“;

str=““;

recset.Open(CRecordset::forwardOnly,Req,CRecordset::readOnly);

if(recset.IsEOF()){

m_Output.ReplaceSel(“用户不存在!“);

return

0;

}else{

m_Output.ReplaceSel(“该用户存在

!/r/n“);

recset.GetFieldValue(“password“,var

);

pass=var.m_iVal;

recset.Close();

return

pass;

}

}

int

CServerDlg::checkCid(int

ccid){

//检查课程号为ccid的课程是否存在

CDatabase

database;

database.Open(_T(“select“));//数据源名称

CString

temp=““;

CRecordset

recset;

recset.m_pDatabase=

CString

str=““;

CDBVariant

var;

str.Format(“%d“,ccid);

CString

Req=“SELECT

FROM

Co

where

cid=“+str+“;“;

str=““;

recset.Open(CRecordse

篇2:微机原理与接口技术复习总结

微机原理与接口技术复习总结 本文关键词:微机,复习,接口,原理,技术

微机原理与接口技术复习总结 本文简介:《微机原理与接口技术》期末复习要点(选择、填空、判断、简答、分析、设计)第一章微型计算机的基础知识1、二进制数、十进制数,十六进制数转化P162、CPU的数据线与计算机中表示的数值范围:只考无符号数P18n位最大数最小数无符号数√0补码源码第二章微处理器与系统结构1、8086CPU的两个独立的功能部

微机原理与接口技术复习总结 本文内容:

《微机原理与接口技术》期末复习要点

(选择、填空、判断、简答、分析、设计)

第一章

微型计算机的基础知识

1、二进制数、十进制数,十六进制数转化

P16

2、CPU的数据线与计算机中表示的数值范围:只考无符号数

P18

n位

最大数

最小数

无符号数√

0

补码

源码

第二章

微处理器与系统结构

1、8086CPU的两个独立的功能部件、各部件的组成与功能

P22~24(至少5题)

①名称:总线接口部件(BIU)和

执行部件(EU)

②BIU和EU的独立工作→→体现了一种指令流水技术

③BIU组成:20位地址加法器;4个段寄存器和1个指令指针寄存器;指令队列缓冲器;输入/输出控制电路。(记图)

EU组成:ALU(算术逻辑单元);8个通用寄存器;标志寄存器FR;执行部件控制电路;(记图)

④BIU功能:取指令、读/写存储器、读/写I/O接口(其实就是

访问存储器和接口电路)

EU功能:执行指令

2、CPU内部寄存器:SP、IP

P25、P26

CPU中共有14个寄存器。

典型的有SP/IP,不能直接修改,完成操作后值自动加减(隐含的)。

SP:堆栈指针寄存器(向下生成,栈底地址最大)

压栈

push

SP-2(占两个单元)

IP:指令指针寄存器(只加)

IP+指令长度

例如:32位,取一条指令+4

3、CPU的地址线数量与最大寻址空间

P27

地址线(根)

最大寻址空间

n

8086有20跟

4、标志寄存器的控制与状态位数及各标志位(ZF、IF、OF)表示的内容

P25~26

标志寄存器是:EU的组成部分

共9个。

表示状态的有6个,表示控制的有3个。

零标志ZF(Zero

Flag):若运算结果为0,则ZF=1;否则ZF=0。

中断标志IF(Interrupt

Enable

Flag):如果IF置“1”,则CPU可以接受可屏蔽中断请求;反之,则CPU不能接受可屏蔽中断请求。

溢出标志OF(Overflow

Flag):若运算过程中发生了“溢出”,则OF=1。

5、8086可屏蔽中断请求信号与中断响应信号的有效电平

P33、P34

(信号线名称、什么时候有效、响应的条件、8259A和8086的连接的信号线叫什么)

INTR(Interrupt

Request)可屏蔽中断请求信号,输入、高电平有效。

(Interrupt

Acknowledge)中断响应信号,输出、低电平有效。

6、CPU响应INTR引脚上来的中断请求的条件

P33或P104

条件:IF=1

第三章

存储器

1、存储器地址线、数据线与存储容量的计算

P40

存储容量=字数×字长

2、8086系统中的存储器奇、偶分体结构的连线图

PPT21

第四章

汇编语言及其程序设计

1、MOV、PUSH、POP、SHL、SHR指令功能与格式

P60、P71

判断改错题!

①两个操作数,类型不一致

②两个操作数都是存储器寻址类型

③移位运算

④CS不能跨段

⑤CS不能直接修改

举例:MOV

[AX],[EX]

×

SHL

AX,1

(只能是1)

或者用:MOV

CX,2

SHL

AX,CX√

PUSH

CS(读)

POP

CS(写)×

MOV

AX,CS[BX]×

MOV

CS,AX×

2、8086指令系统的七种寻址方式

P56~P59

立即寻址:MOV

AX,5678H寄存器寻址:MOV

BX,AX

直接寻址:MOV

AX,[5678H]间接寻址:MOV

AX,[SI]

基址寻址:MOV

[BX+6],AL变址寻址:MOV

[SI+6],AL

基址变址寻址:MOV

[BX+SI+5],AX

3、汇编语言程序设计

(具体参见实验指导书的实验二)

(1)、大小写字母转换

已知在以BUF为首地地址的字节存储区中,存放着一个以‘$’作结束标志的字符串,编写程序,显示该字符串,并要求将小写字母以大写字母形式显示出来。(小写a为61H,大写A为41H。)

STACK1

SEGMENT

DB

200

DUP(0)

STACK1

ENDS

DATA

SEGMENT

BUF

DB

add

AX,BX

sub

CX,10

MOV

dx,1234h

END$

DATA

ENDS

CODE

SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACK1

BEGIN:

MOV

AX,DATA

MOV

DS,AX

LEA

BX,BUF

LOPA:

MOV

DL,[BX]

CMP

DL,$

JE

EXIT

CMP

DL,a

JB

N

CMP

DL,z

JA

N

SUB

DL,20H

N:

MOV

AH,2

INT

21H

INC

BX

JMP

LOPA

EXIT:

MOV

AH,4CH

INT

21H

CODE

ENDS

END

BEGIN

(2)、编写人机对话程序

编写人机对话程序WHAT

IS

YOUR

NAME?

输入:My

name

is

.

,试编写程序。

DSEG

SEGMENT

DATA

DB

0AH,0DH,WHAT

IS

YOUR

NAME?$

BUF

DB

81

DB

?

DB

80

DUP(0)

DSEG

ENDS

STACK1

SEGMENT

DB

200

DUP(0)

STACK1

ENDS

CODE

SEGMENT

ASSUME

CS:CODE,DS:DSEG,SS:STACK1

START:

MOV

AX,DSEG

MOV

DS,AX

LEA

DX,DATA

MOV

AH,09H

INT

21H

LEA

DX,BUF

MOV

AH,0AH

INT

21H

MOV

AH,4CH

INT

21H

CODE

ENDS

END

START

第五章

I/O接口与中断技术

1、I/O接口的重要作用和主要功能

P95~P97

作用:解决CPU与外设之间1、速度不匹配问题;2、信号电平不匹配问题;

3、信号格式不匹配问题;

4、时序不匹配问题。

主要功能:1、数据缓冲功能;

2、设备选择功能(寻址);

3、信号转换功能;

4、对外设的控制和监督功能;

5、中断请求与管理功能;

6、可编程功能。

数据信息、控制信号与状态信号是怎么传送的?(数据线)

244、273芯片没有片内选择线。

8253有2根,DMA控制器、8250串口芯片有3根片内选择线。

片内选择线的根数,决定了芯片内部的端口的数目。

2、CPU与I/O接口之间的传送控制方式及其特点

P98

①查询方式。特点:中央处理器需要花费较多的时间去不断地“询问”外设,外设的接

口电路处于被动状态。

②中断方式。特点:中断方式提高了系统的工作效率,但中央处理器管理中断的接口比

管理查询复杂。

③直接存储器存取(DMA)方式。

特点:DMA方式一般用于高速传送数据量较大的

成组数据。

3、什么情况下适合于采用无条件传送方式、DMA主要用于什么设备之间

P98

有些输出设备随时可以接受数据;

有些数据传送的延迟时间是固定的;

输入设备准备数据时间是已知的。

②DMA主要用于:内存与硬盘之间的数据传送。

4、8259A芯片的接口类型(名称)及中断请求引脚和中断响应引脚

P108

8259A:可编程中断控制器

INT:中断请求信号引脚

:中断响应信号引脚

5、8259A及其级联可管理的中断级数

P107

1片8259A

能管理8(7n+1)级中断,通过级联用9片8259A可以构成64

级主从式中断系统。

6、8259A初始化命令字ICW1的端口地址

P111

ICW1对应的端口地址:A0

=

0。

7、根据中断向量表计算中断类型号和中断服务入口地址

(具体参见P116-13)

P116-13.已知中断向量表中,001C4H中存放2200H,001C6H中存放3040H,则其中断类型码是

71

H,中断服务程序入口地址的逻辑地址和物理地址分别为

3040

H:

2200

H和

32600

H。

中断类型码

×

4

=

偏移地址

物理地址=段地址×16+偏移地址(CS×16+IP)

逻辑地址

CS:IP

画出了图,算分配给ICW1的地址是什么地址步骤:

①列出图中CPU的所有地址线,高位在左。

②根据所选用片选信号线,确定C、B、A对应地址线的取值(标注CBA)。

③根据G1、、(有为低电平)所对应逻辑电路确定其它地址线的取值(采用试值法)。

④分析片内地址线

8、根据图示或已知条件具体说明CPU中断响应后的操作过程

P104

PPT51

(包含:读取中断向量号、保护断点;计算中断向量地址;取中断服务程序入口地址;转入中断服务程序并执行;中断返回,恢复断点)

过程:

①取中段类型号:21H,保护断点(标志寄存器RF,CS,IP);

②计算向量地址

21H×4=84H;

③根据向量地址查表,将便宜地址送入IP=1800H,段地址CS=F000H,物理地址F1800H;

④转入中断服务程序,进行中断处理。首地址:

CS×10+IP;

⑤中断返回,恢复断点(RF,CS,IP)(有才写,没有不用写)。

第六章

接口技术

1、8255A、8250、8253等芯片的接口名称及基本结构

P117、P131、P137

8255A:可编程并行接口。

8250:可编程串行接口。

8253:可编程定时计数器。

8259:可编程中断控制器。

2、8255A控制寄存器的端口地址

P120

8255A控制寄存器的端口地址:11

3、根据74LS138译码电路分析I/O端口地址

(参见P116-6)

PPT20

4、8253通道级联的连接方法及最大定时时间的计算

(参见P155-7)

将8253芯片的3个计数器级联,假设时钟输入为2MHz,画出级联框图。(采用二进制)

级联计数初值(最大)=最大通道0计数初值×最大通道1计数初值

最大定时时间=计数初值×最大基准时间周期

t

=

0.5us

×

=

采用BCD计数方式:

t

=

0.5us×××=

6、RS-232接口标准

P130

RS-232标准是异步串行通信标准。串行适合远距离,并行适用于近距离。

异步串行传输速率的计算:

例题:在串行数据传送中,若工作于异步方式,每个字符传送格式为数据位8位,奇偶校验位,起始位和停止位个1位,如其波特率为4800bit/s,则每秒传送多少个字符?

4800/(8+1+1+1)≈436.3=43

(假如结果为436.7,则为436,不是四舍五入)

7、串行通信与并行通信相比较,串行通信的传送速率

P128、P129

串行通信适合远距离,并行通信适用于近距离。

8、PCI是一种并行总线,它采用同步定时方式和集中式仲裁策略

P148

9、

USB的电气特性

P150

电源+5V;

4根芯线(2根传输数据,1根发送,1根接收);

USB接口是串行通信方式。

5、8253芯片的应用与初始化编程

(具体参见P145例题)

步骤:

篇3:20XX年自考微型计算机及其接口技术笔记串讲

2010年自考微型计算机及其接口技术笔记串讲 本文关键词:微型计算机,串讲,自考,接口,笔记

2010年自考微型计算机及其接口技术笔记串讲 本文简介:所有错题改正试卷第一单元四、照样子组成新字再写在括号里。口{七、读短文,按要求做。找春天春天到了,天气暖和了。燕子从南方飞回来了,在蓝天下自由地飞翔。小溪(xi)边,柳树发芽了,长出嫩(nen)绿的细叶。长长的枝条在春风中轻轻摇动。草地上,小草偷(tou)偷地从泥土里钻出来,伸出尖尖的脑(nao)袋

2010年自考微型计算机及其接口技术笔记串讲 本文内容:

所有错题改正

试卷

第一单元

四、照样子组成新字再写在括号里。

口{

七、读短文,按要求做。

找春天

春天到了,天气暖和了。

燕子从南方飞回来了,在蓝天下自由地飞翔。

小溪(xi)边,柳树发芽了,长出嫩(nen)绿的细叶。长长的枝条在春风中轻轻摇动。

草地上,小草偷(tou)偷地从泥土里钻出来,伸出尖尖的脑(nao)袋,呼吸着新鲜的空气。

菜地里,油菜花开了,闪起了一片金光,美丽极了!

池塘里,几只大眼睛的表蛙蹲(dun)在荷叶上唱起了欢乐的歌。

广场上,小朋友们放起了五光十色的风筝(zheng)。他们跑啊,笑啊,欢笑声在广场上回荡。

短文共有()自然段。

填一填。

嫩绿的(

)的油菜花

新鲜的(

)的枝条

欢乐的(

)的风筝

3.读一读,连一连。

蓝天下

青蛙歌唱。

小溪边

小朋友放风筝。

草地上

燕子飞翔。

菜地里

柳树发芽。

池塘里

小草钻出泥土。

广场上

油菜花金黄。

4.照样子,写句子

长长的枝条在春风中轻轻摇动。

第二单元

四.写出带有下面偏旁的字,再组词。

父――(

)(

九、阅读短文,回答问题。

好消息

三月的微(wei)风把好消息轻声告诉了一朵云,云儿背着许多小雨滴。

雨滴“噼(pi)噼啪(pa)啪”落下来,把好消息告诉了苹果树上的一朵花儿。

正在采蜜的小蜜蜂听到了好消息,就“嗡(weng)嗡”地唱着歌告诉山丘上的每一朵蒲公英。

蒲公英一句话也不说,它们金黄色的脸,在雨后的阳光下笑了。

现在每个人都知道了这个好消息------春天来了!

1、全文共有(

)个自然段。

2、在文中找出与下列词语意思相反的词。

哭------(

坏-----(

去-------(

3、短文中写了谁在传播好消息?请用

画下来。

4、你知道这个好消息是什么吗?写下来。

第三单元

六、组词语

洗(

赶(

七、请给下面的句子加上标点符号。

1、这是一条多么美丽的小路啊()

2、这条美丽的小路怎么不见了(

3、这是一条美丽的小路(

八、连一连。

专心地

高远的

松鼠

严肃地

听讲

活泼的

细雨

认真地

蒙蒙的

蓝天

十、读短文,回答问题。

我从中国来

一天晚上,一颗人造卫星经过月亮姐姐身边。月亮姐姐问:“小弟弟,你从哪儿来?在太空做什么?”人造卫星说:“我从中国来。科学家派我来传送电视节目”。

月亮姐姐高兴地说:“欢迎你,中国朋友!”

1、这篇文章有(

)个自然段。

2、题目中的“我”指的是

3、科学家派人造卫星去太空做什么?用

画出有关的句子。

第四单元

二、看拼音写词语。

Lai

wang

(

)

三、请你连一连。

碗筷

一场

小鸟

家务

一群

风景

电视

一棵

球赛

作业

一处

筷子

音乐

一双

小树

四、多音字组词

空kòng(

)

chang(

)

干gan(

)

K?ng(

)

zhang(

)

gan(

)

八、请将下面的古诗补充完整。

小池

所见

泉眼

惜细流,

树阴照

爱情柔。

樾。

露尖尖角,

欲捕鸣蝉,

有蜻蜓

忽然

十、读短文,想问题,在正确的答案下划线。

奇妙的鼻子

昆虫是没有鼻子的。它们靠什么来闻气味呢?

原来是昆虫头上有一对细长的须,叫做触角。昆虫的触角东摇西

摇,就能够闻到各种各样的气味。

如果把昆虫的触角剪掉,它就分辨不出气味了。

1、短文讲了什么?请用

画出来。

2、昆虫的鼻子是什么?请用(

)括起来。

3、昆虫是怎样闻气味的?

(1)张开翅膀飞来飞去。(2)触角东摇西摇。(3)双脚跳来跳去。

4、“如果把昆虫的触角剪掉,它就分辨不出气味了”。这句话的意思是:

(1)触角是多余的可以剪掉。(2)昆虫不需要鼻子。(3)触角就是昆虫的鼻子。

第六单元

一、

看拼音写词语

chui

feng

(

)

he

miao(

)

第七单元

一、

写出下面字母的大写字母,再按顺序排列小写字母。

I

u

q

d

p

b

g

y

t

(

)

(

)

(

)

(

)

(

)

(

)

(

)

(

)

(

)

a

f

r

n

e

(

)

(

)

(

)

(

)

(

)

二、读音节,写词语。

gong

gong

qi

che(

)

四、选字填空。

{长

)短

经(

六、填上合适的词语。

)的花朵

一(

)老师

)的狮子

)的孩子

一(

)房子

一(

)学生

八、把句子补充完整,并加标点。

1、

一边

一边

2、

十分

3、我常常

4、小狮子

九、阅读短文,回答问题。

大熊猫

大熊猫身子胖,尾巴短,毛很光滑,头和身子是白的,四肢和肩膀是黑的。它头上长着一对毛茸茸的黑耳朵,最逗人的是两个圆圆

的黑眼圈。

大熊猫爱吃新鲜的竹叶和竹笋。

大熊猫真是一种可爱的动物,它是我国的国宝。

1、短文共有(

)自然段。

2、填

大熊猫(

)(

)胖,(

)(

)短,(

)很光滑,(

)和(

)是白的,四肢和肩膀是(

)的,头上长着一对毛茸茸的(

)

(

)(

).

大熊猫爱吃(

)(

)的(

)(

)和(

)(

)。

大熊猫是我国的(

)(

)。

第八单元

一、

读拼音,写词语。

wan

hui

(

)

七、把句子补充完整,并加标点。

1、

多可爱呀

2、

3、你知道

4、

会捉

八、读短文,按要求做。

一天,

老山羊带着小兔、小猴、小象、小猫和袋鼠去山上采蘑菇。可是条河挡住了去路,河上没有桥,这可怎么办呢?

小猴说:“我有办法!”说着他抓起长长的藤条,荡过河去。

袋鼠说:“我有办法!”说完他两腿一蹬跳过河去。

小象不说话,它用长长的鼻子卷起一棵枯树,架到河面上,搭了一座独木桥。

小兔、小猫、和老山羊走过桥,对着小象眯眯笑,好像在说:“。

1、短文共有(

)个自然段。

2、读短文,给短文加上题目,写在“”上。

3、为了过河、小猴、小象、袋鼠分别想出了什么办法?请你在文中找一找。用“”画出来。

4、请你展开想象,把故事的最后一个自然段补充完整。

期中试卷

八、按课文内容填空

兰兰(

)(

)了全家为什么喜欢这张画。她(

)(

)地说:“等

我长大了,小手变成了大手,它(

)帮(

)(

学探诊

第一元

第一课

柳树醒了

三、选字填空

1、哥哥(

)一辆小汽车。2、她是我的好朋(

)。

3、我们和同学要(

)好相处。

五、读一读,填空。

Yong

liu

Bi

yu

zhuang

cheng

yi

shu

gao,

碧(

)(

)(

),

Wan

tiao

chui

xia

lu

si

tao。.

)(

)垂(

)(

)丝

绦。

Bu

zhi

xi

ye

shui

cai

chu,

)(

)(

)(

)(

)裁

出,

Er

yue

chun

feng

si

jian

dao。

)(

)(

)(

)

刀。

第二课

春雨的色彩

二、照样子,写一写。

例:月

(朋友)

第四课

古诗两首

四、请将下面的古诗补充完整。

晓,

闻啼鸟。

烟。

纸鸢。

第二单元

识字2

三、数一数,填一填。

父,共(

)笔,第三笔是(

)。

母,共(

)笔,第一笔是(

),第三笔(

)。

第五课

看电视

二、你能帮它们找一朋友吗?

第八课

月亮的心愿

三、用线连一连。

Lian

bei

zhuang

ling

gu

lei

bing

yi

qiao

li

hu

tai

七、连词成句,把序号写在横线上并加上标点

1、①是

②小学生

③我

④一年级

⑤的

2、①心愿

②美好的

③月亮

④有一个

第十课

松鼠和松果

二、给字注音,标好声调。

)(

)(

)(

)(

)(

四、读一读,选择正确的字,把序号填写在(

)里。

①玩

②完

爸爸告诉我要写(

)作业再(

)。

我(

)小红参加了学校的(

)唱队。

①以

)有,我不会做家务,现在,我(

)经会洗碗了,还可(

)为父母做许多事。

第十一课

美丽的小路

四、比一比,组词语。

先(

干(

)起(

)明(

元(

午(

)赶(

)朋(

放(

主(

)完(

)节(

收(

)王(

)定(

)草(

第十二课

失物招领

四、连词成句,再加上标点。

1、是个

爱清洁的

明明

孩子

2、树林里

吃草

一头牛

六、照样子,试着写句子。

1、鸭先生的小屋前有条长长的小路。2、我们是祖国的希望。

3、美丽的小路好香啊!

七、把下面的句子按顺序排列起来。

)我仔细一看,原来是一条蚯蚓。

)突然从泥土里钻出一条又细又长的虫子。

)爸爸说蚯蚓能松土是益虫,我们要保护它。

)我和爸爸正在菜园里拔草。

)我问爸爸蚯蚓是益虫还是害虫。

第四单元

识字4

二、把音节补充完整,标好声调。

qing

ting

q

y

h

d

k

d

五、照样子,写句子。

例:蜻蜓半空展翅飞。

1、小鸟

唱不休。

2、

水中游得欢。

3、

跑得快。

4、

第十三课

古寺两首

一、

选一选,把正确的圈起来,

(bu

pu)

蝉(dan

chan)

晴(

qing

jing)

阴(

yin

ying)

(suo

sou

)

池(di

chi)

三、选字真空

1、我和(

)学们一起去爬山。

1、国歌响起,我们(

)正站好。

2、我们是新中国的的少年儿(

)。

2、小明用(

)地把球踢进了球门。

四、请你把古诗补充完整。

牧(

)骑(

)(

),

泉(

)(

)声惜细流,

歌(

)振(

樾。

)阴照(

)爱情柔。

)欲捕(

)蝉,

)荷(

)露(

)(

)(

忽然(

)(

)(

)。

)有蜻蜓(

)(

)(

第十五课

夏夜多美

三、照样了连线。

四、填写合适的词语

青青的(

弯弯的(

蓝蓝的(

凉凉的(

大大的(

静悄悄的(

暖暖的(

红润润的(

五、读读,写写。

热闹的大山

一座大山,光秃秃的,好像一个皱着眉头的老人,真若恼啊!

有一天,来了一位老爷爷。他盖起一间小木屋,在山上住了下来。他带来两袋种子,把种子撒在了大山上。

早晨,太阳公公刚恂露出笑脸,老爷爷就醒来了。窗外一只小鸟啾啾地叫着:“老爷爷,我衔来了两颗柏树种子,把它们种在大山上吧!”老爷爷说:“谢谢你,小鸟。”

一只松鼠趴在窗台上,对老爷爷说:

老爷爷说:“谢谢你,小松鼠。”

1、小松鼠会对老爷爷说些什么呢?请你写在文中的

2、后来,

这座山会怎么样呢?请你展开想象写几句话吧。

第十六课

要下雨了

二、写出带有下面偏旁的字。

口:(

)(

)(

彳:(

)(

)(

日:(

)(

)(

辶:(

)(

)(

虫:(

)(

)(

木:(

)(

)(

三、比一比,再组词。

住(

)往(

)主(

)

四、造字填空,并加上标点。

1、兰兰快走(

)()

2、妈妈,今天您怎么回来的这么晚(

)()

3、你在干什么(

)()

4、我们祖国多大(

)()

5、你去过上海(

)()

六、读一读,说一说,写一写。

1、我们正忙着搬东西呢!

2、李老师正(

)呢!

3、(

)正(

)呢!

七、连词成句,按顺序把序号写在横线上。

1、自由自在地

鱼儿

游来游去

水草间

2、弯着腰

割草

小白兔

第五单元

识字五

二、读拼音,写词语。

Li

liang(

)

zui

da(

)

bu

pa(

)

Gen

tou

(

)

liang

feng(

)

shui(

)

三、连一连。

第六单元

二十四课

画家乡

二、读拼音,写词语。

Zi

ji

nan

ren

ai

xin

xiao

xia

xin

ai

cao

yuan

(

)(

)(

)(

)(

)(

)

Ke

ai

gong

yuan

you

gao

you

da

pao

lai

pao

qu

(

)(

)

)(

)(

ping

yuan

pao

dao

)(

版权所有:蓬勃范文网 2010-2024 未经授权禁止复制或建立镜像[蓬勃范文网]所有资源完全免费共享

Powered by 蓬勃范文网 © All Rights Reserved.。蜀ICP备20021444号