接口课设实验报告.docx
《接口课设实验报告.docx》由会员分享,可在线阅读,更多相关《接口课设实验报告.docx(139页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、接口课设实验报告接口课设试验报告 本文关键词:接口,试验,报告接口课设试验报告 本文简介:接口课设试验报告计算机0206班熊兰君(012002022804)一绪论本试验是一个利用接口硬件平台开发的微机模拟系统,它不仅考查了我们的对接口硬件的驾驭和理解程度,同样了熬炼了我们的编程实力。在组长的带领下我们顺当完成了这次试验课设,并收获了许多的相关学问,而且熬炼了我们的团队精神,受益匪浅。二接口课设试验报告 本文内容:接口课设试验报告计算机0206班熊兰君(012002022804)一绪论本试验是一个利用接口硬件平台开发的微机模拟系统,它不仅考查了我们的对接口硬件的驾驭和理解程度,同样了熬炼了我们的
2、编程实力。在组长的带领下我们顺当完成了这次试验课设,并收获了许多的相关学问,而且熬炼了我们的团队精神,受益匪浅。二试验目的驾驭接口硬件开发平台的运用方法,利用现有的试验平台和PC机,组成一个微机模拟应用系统;驾驭基本接口电路的综合应用驾驭接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法微机接口技术及接口芯片的综合应用(重点)三试验题目及要求选课系统学生通过下位机进行选课,上位机对选课信息进行统计。进入系统须要密码,密码错误或者操作错误时报警。系统由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。四试验内容这次我们所做的选课系统功能还比较强大,
3、它主要由主控机,下位机,执行部件构成。1.机实现管理员的功能,界面如下:主界面主要是便利管理员管理学生基本信息,课程基本信息,选课基本信息。它的功能有:1.增加基本信息;2.删除基本信息;3.查询基本信息。留意,全部的数据信息都存放在Sqlserver数据库上,程序先分析管理员的指令,然后通过ODBC(OpenDataBaseConnecttion)接口操作数据库。另外,主控机程序实现的另一个功能,也就是本程序的核心功能,就是接受下位机的选课信息。当操作员按下“接受选课”按钮后,主控机程序起先接受远程选课信息,接收后会将该信息存入Sqlserver数据库中。2.下位机是给选课学生的信息窗口,它
4、同时也起到了主控机和执行部件信息传送的作用,而实现这个功能是通过接口试验台上的可编程串行接口芯片8251。但是选课还是通过执行部件,而不是通过下位机,这一点是非常重要的。以下就下位机的界面:下位机程序的功能是接受用户选课信息,然后将该信息发送给上位机。须要选课的学生,可以先点击“起先选课”的按钮,然后用拨码开关输入想要选择的功能。功能1代表选课,功能2代表查询全部课程,功能3表示结束选课。选功能2后,程序会通过文本框输出全部可供选择的课程的相关信息。选功能1后,程序会一步一步提示用户来操作。这里有两个问题,第一是假如学生输入的密码错误,上位机会发送回代表错误的信息,下位机依据该信息驱动LED显
5、示灯报警;其次,假如学生所选的课程不存在,上位机亦会发送回相应错误代号,下位机依据该代号启动报警程序。3执行部件由接口试验台上的芯片:可编程的并行I/O接口芯片8255,可编程计数器8253,LED显示灯,手动开关和一个按钮开关组成。它主要做为学生选课的输入和警报提示。学生通过手动开关拨出用户名密码,还有想选的课程号,按下按钮表示确定。还可以选择查看课程号和课程名。以上就是本系统的大致功能,当然这只是一个模拟的系统,它实现的功能都很简洁。真刚要达到好用的阶段,还有许多细微环节须要完善。但基本的框架,在本系统中已经得到了体现。五.实施安排及分工分工如下:首先夏永同学负责整个系统框架的设计,odb
6、c数据源的配置以及界面的设计。吴莎同学和武孟梦同学负责上位机各个功能的实现以及与下位机的通信。我和贾玉芳同学负责下位机各个功能的实现以及硬件连接。同时我们全部人都参加了系统的测试工作。首先是硬件的连接,根据我们的也许的设计,下位机有一个很重要的的功能,就是反馈执行部件的选择信息,而这项功能除了软件的设计外,最重要的就是硬件连接。对于执行部件与下位机的通信重要是靠可编程并口8255实现的,对于8255我们用到了它的A口进行输出,B口进行输入,C口作为限制口。PA0PA7依次连接的是试验台上的八个灯,其作用是当用户名和密码不符合主控机中已存的相应的用户名和密码时,这八个灯就会轮回闪耀产生报警的效果
7、。PB0PB7依次与试验台上八个拨码开关连接,当用户要输入数字信息时,通过这八个开关进行输入(留意这里的数字是用二进制输入而不是八位十进制数字),起先的时候我们将凹凸位接反了,干脆导致整个系统混乱,因为功能项输入错误。PC0口作为SW1的输入口,当SW1按下时,会给PC0一个电平,程序轮询查看,若发觉PC0口变为“1”时,就将拨码开关的数字传送给下位机进行处理,所以这里PC0作为限制作用,这里还要留意在连接SW1时,还要经过一个74SL373芯片,这个芯片的OE#口必需和8255的PC4口连接,用PC4口来限制74SL373,当PC4等于“1”时,74SL373关闭,这时SW1就没有任何作用了
8、。还有就是负责双机通信的8251芯片,这里我们用一根连接线将主控机和下位机到26芯插座连接起来进行近距离通信,这个在试验平台已经完成好了,所以不再赘述。限制8251时钟的是8253芯片,它的OUT2端与8251的TxC和RxC相连进行限制,而8253的时钟脉冲端CLK2与1MHZ脉冲信号进行连接,至于它的GATE2与8255的PC6口连接进行脉冲源的限制,以上就是下位机与执行部件的硬件连接。接下来就是程序的设计了,我们起先用的C语言进行编写,后来因为要进一步完善系统功能,要用到ODBC连接数据库,还有界面的编写就将持续移植到VC上运用C+语言。程序主要实现的功能有:1.将用户名和密码输入并传给
9、主控机进行正确性的推断;2.当用户选择“1”号功能时,用户可以进行选课,下位机将选课信息(学生号和课程号)传给主控机并存储起来;3.当用户选择“2”号功能时,用户可以查看选课信息(课程号和课程名);4.当用户选择“3”功能时,退出选课系统。这个程序根据功能来划分两大部分,一个是与传送信息有关程序,二者是与界面有关的程序。由于界面相关程序由夏永同学负责,所以这里就不多说了,我们主要负责的是传送信息有关的程序,也许如下:#definePORTTALK_TYPE40001#defineIOCTL_READ_PORT_UCHAR/CTL_CODE(PORTTALK_TYPE,0x904,METHOD_
10、BUFFERED,FILE_ANY_ACCESS)#defineIOCTL_WRITE_PORT_UCHAR/CTL_CODE(PORTTALK_TYPE,0x905,METHOD_BUFFERED,FILE_ANY_ACCESS)#defineIOCTL_GETINTCODE_PORT_UCHAR/CTL_CODE(PORTTALK_TYPE,0x906,METHOD_BUFFERED,FILE_ANY_ACCESS)unsignedcharOpenPortTalk(void);voidClosePortTalk(void);voidoutportb(unsignedshortPortAdd
11、ress,unsignedcharbyte);unsignedcharinportb(unsignedshortPortAddress);portb(unsignedshortPortAddress);/myport.cpp#include“stdafx.h“#include“conio.h“#include“windows.h“#include#include“myport.h“HANDLEPortTalk_Handle=NULL;/*界面相关*/unsignedcharOpenPortTalk()PortTalk_Handle=CreateFile(“/./MPNP1“,GENERIC_R
12、EAD|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if(PortTalk_Handle=INVALID_HANDLE_VALUE)return-1;return0;voidClosePortTalk()CloseHandle(PortTalk_Handle);voidoutportb(unsignedshortPortAddress,unsignedcharbyte)/*写字符传到对应地/*址的端口DWORDdwError=0;unsignedinterror;DWORDBytesReturned;unsign
13、edcharBuffer3;/*BUFFER和pBUFFER是传送过程中的unsignedcharpBuffer;/*中间缓冲区pBuffer=(unsignedchar)pBuffer=(unsignedchar)PortAddressBuffer2=byte;error=DeviceIoControl(PortTalk_Handle,IOCTL_WRITE_PORT_UCHAR,unsignedcharinportb(unsignedshortPortAddress)/*读对应地址的端口的信息unsignedinterror;DWORDBytesReturned;unsignedcharB
14、uffer3;/*BUFFER和pBUFFER是传送过程中的unsignedshortpBuffer;/*中间缓冲区pBuffer=(unsignedshort)pBuffer=(unsignedchar)PortAddresserror=DeviceIoControl(PortTalk_Handle,IOCTL_READ_PORT_UCHAR,return(Buffer0);/classCClientDlg:publicCDialogpublic:CClientDlg(CWnd*pParent=NULL);voidInit8251(intstate,intwork);/*初始化8251芯片v
15、oidTrans(inttran);/*通过8251芯片传送数值tranintRecei();/*接收发送到8251芯片的数值,便返回该值voidset_bps(intbps);/*设置8253计数器的计数初值voidsTrans(chars);/*传送字符串svoidsRecei(chars);/*接受一个字符串,并存入s中voidAddSC(intsid,intcid);/*添加一个选课记录voidsw();/*检测开关sw1有没有按下,如没有按下,则等待voidWarning(intlevel);/*当用户名和密码不对时进行报警enumIDD=IDD_SERVER_DIALOG;CEdi
16、tm_Output;/*系统信息CStringm_sid;/*学生信息中的学号信息CStringm_sname;/*学生信息中的学生姓名信息CStringm_password;/*密码信息CStringm_cid;/*课程信息中的课程号信息CStringm_cname;/*课程信息中的课程名信息CStringm_ssid;/*选课信息中的学生号信息CStringm_ccid;/*选课信息中的课程号信息/AFX_DATA/ClassWizardgeneratedvirtualfunctionoverrides/AFX_VIRTUAL(CServerDlg)public:virtualLRESUL
17、TDisplayMessage(WPARAMwParam,LPARAMlParam);protected:virtualvoidDoDataExchange(CDataExchange*pDX);/DDX/DDVsupport/AFX_VIRTUALprotected:/Generatedmessagemapfunctions/AFX_MSG(CServerDlg)virtualBOOLOnInitDialog();afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);afx_msgvoidOnPaint();afx_msgHCURSOROnQueryDr
18、agIcon();afx_msgvoidOnDestroy();afx_msgvoidOnButton1();/查询全部课程afx_msgvoidOnButton2();/选课afx_msgvoidOnButton3();/确定/AFX_MSGDECLARE_MESSAGE_MAP();/CClientDlg.cpp#include“StdAfx.h“#include“Server.h“#include“ServerDlg.h“#include“ServerDlg.h“#include#definefactor16/*波特率因子16unsignedlongintclk=1193182;/*82
19、51输入时钟频率(十六进制表示)CClientDlg:CClientDlg(CWnd*pParent):CDialog(CClientDlg:IDD,pParent)/AFX_DATA_INIT(CServerDlg)m_sid=_T(“);m_password=_T(“);m_cid=_T(“);/AFX_DATA_INIT/以上是程序面板上文本框对应的变量的定义voidCClientDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CServerDlg)DDX_Control(pDX
20、,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,OnB
21、utton3)ON_BN_CLICKED(IDC_BUTTON1,OnButton1)ON_BN_CLICKED(IDC_BUTTON2,OnButton2)/AFX_MSG_MAPEND_MESSAGE_MAP()/以上是消息与按钮对应关系的说明voidCClientDlg:Init8251(intstate,intwork)/*8251的初始化*/outportb(IO_BASE+9,0x0);/*空操作*/outportb(IO_BASE+9,0x40);/*内部复位(使D6=1)*/outportb(IO_BASE+9,0x4e);/*方式吩咐字,,查课本p180*/outportb(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 实验 报告
限制150内