接口课设实验报告 本文关键词:接口,实验,报告
接口课设实验报告 本文简介:接口课设实验报告计算机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
(
)(
)