打靶系统接口课程设计报告-刘树伟
- 格式:doc
- 大小:104.50 KB
- 文档页数:11
《微机接口技术》课程设计报告设计题:人工降雨系统指导老师:谭支鹏、熊自立、陈永平设计时间:2013.10.28 至2013.11.1人工降雨系统设计一、课程设计目的1、掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统。
2、掌握基本接口电路的综合应用。
3、掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。
4、微机接口技术及接口芯片的综合应用。
5、在干旱了一段时间后,进行人工降雨。
不同的季节,大自然不降雨对生活生产的影响不同,要控制好等待多久才进行人工降雨,以及降雨的量。
二、课程设计要求设计一个模拟的微机应用系统。
要求该系统综合应用实验台上的多种资源(并行接口、串行接口及其它接口和传感器)设计满足选题要求的符合实际应用的硬件系统,编制主控程序;执行元件驱动程序;通信程序等相应的软件,实现主控中心微机与终端机的远距离传送以及远程控制或监测功能。
由一个主控机(上位机)和若干个下位机组成,上位机与下位机利用串行通讯接口进行连接,构成一个完整系统。
主控机负责数据处理,下位机负责接口访问,接口所需的芯片功能需要通过FPGA自己设计实现。
基于FPGA设计的芯片功能可以是一个完整的功能芯片,也可以只是你在应用需要的芯片某项功能即可。
验收的时候会根据实现的情况作出评价。
(1)主控机:在屏幕上用数字、图形、表格、曲线等方式直观地显示数据/状态处理的结果和过程。
(2)下位机:用实验台的声光部件描述当前监控/操作的工作状态,按主控机的命令驱动执行元件并返回状态和结果。
题目要求:1.用实验台上的信号电源模拟湿度计的信号电压。
2.用实验台上的LED和扬声器模拟加湿动作及报警信号。
3.用实验台上的步进电机模拟水泵动作。
4.上位机实现图形监控。
(模拟)三、课程设计内容及过程1.系统总体结构图1) 系统硬件由主控机(其中一台微机)、终端机(另一台位微机)和执行部件组成。
1 引言1.1 课题研究背景及发展方向在军队射击训练和各种体育射击比赛中,示靶、检靶、报靶和成绩的记录统计,是训练和比赛过程中的主要保障工作。
目前,这些保障工作大部分还是依靠人工来完成的。
人工报靶有着工作量大、效率低、安全性差的特点。
想要提高射击比赛或训练中报靶的效率,最主要是要解决自动报靶的问题[1]。
因此,设计制作并采用安全有效的自动报靶系统具有重要的现实意义也是迫切的现实需求。
当今较为先进的报靶系统包括光电坐标靶、图像处理坐标靶、CCD线阵靶、声电坐标靶、光纤编码坐标靶刚、双电极短路坐标靶等[2][3]。
但以上这些方法也存在着各自的不足:有的技术过于复杂、有的不能用于野外实弹射击报靶、有的成本过高、有的着弹实报率较低、不适用于连发射击训练等缺点。
目前应用较多的还有红外光电定位测试、基于图像处理模板匹配法、基于声电坐标定位法、基于光纤编码定位法、广义Hough变换法(基于图像处理)、面阵CCD 精度靶等报靶系统,都是较有效的测试方法[3]。
近年来发展起来一种新型智能自动报靶系统,与传统的实弹射击准备工序繁琐且隐藏着极大的安全隐患比较,利用这种报靶系统开展的训练将会更安全高效。
这一智能自动报靶系统由主机、从机、靶面传感器三部分构成。
具有可对射击过程全程监控,并作数据处理、自动统计以及查询成绩等功能,还可对射手存在的问题作出分析,极大地提高了训练效率[4]。
可以预见,这种新型智能自动报靶系统将会在不远的将来取代传统自动报靶系统并向更加智能化、自动化、数字化方向发展,它将可能成为未来研制报靶系统的新趋势。
1.2 基于激光坐标定位法实现的自动报靶系统简介激光坐标定位法在一些资料中也称为光电坐标定位法,光电靶是由X、Y两个方向上的激光网络构成,如图l 所示。
图1.1 光电靶将普通靶纸置于激光网络之前并与之同轴,当子弹打破靶纸,并穿越激光网络时,会阻断相应位置处X和Y两个方向上的各一路激光,从而使接收装置(光敏管)开关状态发生变化[5][6]。
南华大学计算机科学与技术学院实验报告(2011 ~2012学年度第1学期)课程名称微型计算机接口技术及应用实验名称实验三可编程定时器/计数器(8253)实验五七段数码管实验九中断实验十可编程并行接口(二)(8255方式1)实验十三数字录音机课程实验总结姓名阙凤林李楠林育芳学号200944402032009444022320094440243专业计算机科学与技术班级本09计算02班地点8-210 教师刘芳菊小组自评在本次实验中,本小组三人协同完成了实验内容,现将本次实验做个简单的自评:本次实验取得成功的同时,也存在很多不足。
比如:小组成员林育芳不懂汇编语言,在小组实验中,讲解汇编语言耽误了部分时间;对8253、8255、8259芯片理解不透测,实验时还得查阅课本相关章节。
在以后的学习实验中,小组成员将克服弱点,有所进步。
学号姓名实验中所担当角色、完成事项自评成绩20094440203 阙凤林解读实验原理、实验代码,帮助搭线,书写实验报告。
优秀20094440223 李楠实验平台搭线,实验运行结果图片拍摄。
优秀20094440243 林育芳帮助搭线,学习汇编语言。
查找资料。
优秀实验三可编程定时器/计数器(8253)一、实验目的掌握 8253 的基本工作原理和编程方法。
二、实验原理本实验采用8253A作为技术芯片。
8253有三个独立的16位计数器,每个计数器都有六种不同的工作方式,均可由程序设置和改变。
8253计数器波希早写入控制字和技术初值后才启动工作,所以在编写程序的时候应分为两步,先写入控制字,再写入计数初字。
三、实验内容1.按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图5-1实验预期效果:外无脉冲输入时,计数器值不变,屏幕也就不显示,当且仅当有脉冲输入,计数器计数值改变时才显示一次计数值,当输入N+1个脉冲后OUT变高电平。
微机接口系统设计课程设计报告课程设计:数字计算器的汇编语言实现姓名:学号:班级:自动化081成绩:指导教师:罗松江时间:第4周二O一一年制一、课程设计的目的本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。
二、课程设计的任务在设计过程中要遵循模块化、结构化的编程思路;程序必须正确运行;程序简明易懂,多标明注释,具有良好的程序书写风格;适当优化程序,提高程序的运行效率。
三、课程设计的内容1.分析问题根据题目要求,可以把程序的工作过程划分为运算表达式输入、计算、结果输出三部分。
因此在编写程序时可以按此把程序大致划分为三个模块。
该程序设计的关键是要根据四则运算中()、*、/、+、-、= 的优先级设置符号的权值,其中(、*、/、+、-、)、= 的权值分别设置为5、4、4、3、3、1、0 ,然后根据权值的大小进行运算。
程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。
程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。
需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MARK中覆盖符号(、)、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时当括号内表达式的运算及乘除运算结束后存储区MARK中只有‘ +、-’运算符及紧跟着的权值,然后按照+、- 运算符的左右顺序从左到右进行‘ +、- ’运算,当最后遇到等号‘ = ’时输出表达式的数值,然后再根据提示判断是否继续执行下一个四则运算表达式。
华科微机接口课程设计报告范文指导老师:周功业学生姓名:李中亚学生学号:U202214238所在班级:计算机0803班同组成员:崔泽波、扈泓达、傅强设计题:货物计费计数运输系统设计时间:2022.9.5至2022.9.9一、课程设计目的学习并行接口、步进电机、开关量接口、声光系统、并行通讯、8253定时/计数器、波特率时钟、串行通信接口、A/D,D/A转换器、数据采集程序的设计原理与方法,掌握其控制程序的编写。
1.掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统;2.掌握基本接口电路的综合应用3.掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法;二、课程设计任务结合实际应用,设计一微机应用系统,要求该系统综合应用并行接口、串行接口,定器接口、中断接口、模拟接口等等,实现主控中心微机与下位机实现远距离传送,以及远程控制、监测功能。
三、课程设计要求由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。
主控机:在显示屏上用数字、图形、表格、曲线等直观数据处理的过程。
下位机:在显示屏上或用实验台的声光描述当前监控的工作状态。
四、课程设计内容(一)选题及题目要求设计方案选择:货物计费计数运输系统1.用实验台上的开关信号模拟上货请求信号。
2.用实验台上的LED和扬声器模拟上/下货时状态信息。
3.用实验台上的步进电机的正反转模拟运输动作。
4.上位机实现图形监控。
(模拟)(二)设计功能说明1.上货过程:在下位机通过键盘输入货物类型、数量,按上货按钮SW2开始请求上货,这时下位机向上位机发送一个上货请求和货物类型、数量,上位机接收到上货请求后通过界面显示请求的货物类型和数量,按下SW2按钮允许上货,下位机接收到允许命令,扬声器响起,开始上货,LED计数器由零开始加1,步进电机开始正转,直到上货结束,此时下位机LED灯显示的数字为货物数量;2.下货过程:在下位机通过键盘输入货物类型、数量,按下货按钮SW3开始请求下货,这时下位机向上位机发送一个下货请求和货物类型、数量,上位机接收到下货请求后通过界面显示请求的货物类型和数量,按下SW4按钮允许下货,下位机接收到允许命令,扬声器响起,开始下货,LED计数器由零开始加1,步进电机开始反转,直到下货结束,此时下位机LED灯显示的数字为货物数量;3.当上/下货结束时,由主机计算费用,将费用数据传给下位机并显示,下位机按下交费按钮SW4表示交费结束,上位机和下位机均回到初始状态。
湖南科技大学潇湘学院信息与电气工程系《微机原理与接口技术》课程设计报告题目:基于D/A转换器DAC0832的波形发生器设计专业:通信工程班级:通信002班姓名:刘黎辉学号:0954040217指导老师:欧青立陈君宋芳课程设计任务书目录一、课程设计的目的及意义 (1)1.设计目的 (1)2.设计意义 (1)二、方案论证 (1)1.设计要求 (1)2.方案论证 (1)三、硬件电路设计 (2)1.波形产生电路 (2)2.按键控制电路 (4)3.地址译码电路 (6)四、程序设计 (7)1.波形发生原理 (7)2.程序流程图 (7)五、硬件连接及调试 (8)1.硬件连接 (8)2.电路调试 (8)六、体会与心得 (8)七、参考书目: (9)八、附录 (9)1.电路原理图............................................................................................ 错误!未定义书签。
2.程序源码................................................................................................ 错误!未定义书签。
一、课程设计的目的及意义1.设计目的(1)掌握计算机应用系统特别是微机接口系统的设计。
(2)掌握接口电路设计技术,初步掌握电子设计软件Protel99使用。
(3)掌握微机接口程序的编制与调试技术。
(4)掌握DAC0832芯片的使用方法。
(5)利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。
2.设计意义波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。
《微机接口技术课程设计报告》设计题:大型闸门开关系统设计时间:2010.9.19至2010.9.25微机接口技术课程设计一、设计目的:模拟大型闸门的开启与关闭,熟悉接口设计的流程。
编程模拟实现产品监测。
二、设计要求:总体的系统由主控机(上位机)和下位机组成,上位机与下位机利用串行接口进行连接,利用俩个(或者两个以上功能部件)构成一个完整系统。
主控机负责数据处理,下位机负责接口控制。
具体的功能要求如下:1、用实验台上的信号电源模拟闸门位移传感器获得信号电压。
2、用实验台上的LED和扬声器模拟闸门到位报警。
3、用实验台上的步进电机或伺服电机模拟控制闸门的升降。
4、上位机模拟控制中心调节闸门开度的大小。
三、设计内容:大型闸门开关系统:系统总体的结构如下所示:1、成。
主控机和下位机通过串行通信线连接。
2、执行部件:由接口电路等组成,将接收的数据送入到下位机或将下位机输出的数据送到执行部件。
3、下位机:与主控机通信,控制执行部件。
4、主控机:与所有下位机进行数据交换,必要时需建数据库,进行数据处理等。
5、主控机程序:串行(RS232)通信程序,数据处理程序等。
6、下位机程序:串行(RS232)通信程序,执行部件控制程序。
闸门信号采用实验平台上的信号电源通过ADC0809采样数模转换来得到。
通过8255将采样数据送下位机,下位机通过串口通信将数据传给上位机,上位机来处理数据,并显示出数据的特性。
然后通过跟设置的一个阈值比较,来判断闸门是否到位,根据判断结果传送相应的信号控制给下位机,下位机根据信号做出相应的反应,设置相应的芯片。
如果闸门未到位,启动步进电机,模拟闸门升降的过程;如果闸门到位,则启动音乐发生器和LED灯,产生声光报警信号。
四、设计过程:首先,确定所需要的芯片及部件,我们要用到信号电源、ADC0809、8255、步进电机、音乐发生器以及一个报警用的LED灯。
利用ADC0809采样信号电源模数转换的得到的数据模拟闸门位移信号,通过8255传给下位机,下位机通过串行通信接口将数据传送给上位机,上位机对数据进行统计处理,然后传递给下位机一个信号位,表示闸门是否到位,下位机根据此信号位启动步进电机或产生声光报警。
洛阳理工学院课程设计报告课程名称单片机原理与应用设计题目基于STC89C52单片机的实验平台开发设计专业计算机科学与技术班级B110507学号B11050725姓名舒灿完成日期2013年12月24日基于STC89C52单片机的实验平台开发设计摘要利用STC89C52单片机控制器为核心,开发一种体积小、使用方便、实用性强的单片机综合实验实平台。
在Keil C环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功。
主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计该系统主要应用于高等学校、中等职业学校单片机技术的教学、实验、实训、综合设计和电子设计竞赛等,利用实训平台增加学生学习单片机技术的兴趣,从而提高学生单片机技术的实际应用能力。
关键词:STC89C52单片机,实验平台,数码管,流水灯,串口通信ABSTRACTUsing STC89C52 single-chip controller as the core, the development of a small volume, convenient to use, practical single-chip experiment training platform, and introduces in detail the experimental training platform hardware design ideas and function.Under the environment of Keil C software design, mainly including the water lights, digital tube display and LCD display module, successful in Protues simulation, validation successful downloaded onto a circuit board.Implement forward and reverse flow, water lamp interruption is applied to implement digital tube within 60 count and LCD displays different features of the characters.This system is mainly used in institutions of higher learning and secondary vocational school singlechip technology teaching, experiment, practical training, comprehensive design and electronic design contest, etc., using the training platform to increase students' interest in learning microcontroller technology, so as to improve the practical application ability of students microcontroller technology.KEYWORDS: STC89C52 microcontroller, comprehensive experimental board, software andhardware combined with, and the program development design目录摘要 (1)目录 (3)前言 (4)第1章系统概述 (6)1.1设计题目 (6)1.2系统设计目的和容 (6)1.2.1设计目的 (6)1.2.2设计容 (6)1.2.3设计要求 (7)1.2.4设计步骤 (7)第2章整体设计方案 (8)2.1开发板整体外观 (9)2.2整板电路PROTUES仿真电路 (8)2.3软件功能描述 (9)2.4仿真软件PROTUES中的效果图 (10)第3章硬件电路设计 (13)3.1两位一体共阴数码管 (13)3.1.1数码管概述 (13)3.1.2数码管部结构 (14)3.1.3两位一体共阴数码管和74LS374锁存器接口电路 (15)3.2LCD1602液晶 (15)3.2.1LCD1602液晶简介 (15)3.2.2LCD1602液晶引脚介绍 (16)3.2.3LCD1602液晶外围接口电路 (17)3.3 串口通信 (18)3.3.1串口通讯概述 (18)3.3.2MAX232接口电路 (19)第4章软件设计 (20)4.1程序整体流程图 (20)4.2程序清单 (21)第5章调试及故障分析 (25)5.1 焊接准备阶段元器件测试、电路原理图故障分析 (25)5.2 电路焊接过程中的故障分析 (26)5.3 程序编写过程中的故障分析 (26)5.4 实物演示效果 (26)结论 (27)辞 (28)参考文献 (29)附录 (30)前言高科技产品盛行的今天单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机原理及接口技术第五版课程设计1. 课程目的本课程旨在通过对单片机原理、接口技术的理论与实践的研究与设计,提高学生对单片机的理解及其应用能力。
2. 课程内容2.1 硬件原理•单片机的基本结构、指令系统、寄存器等•计数器/定时器的原理及应用•中断控制及后备寄存器的使用•ADC/DAC转换、传感器接口技术等2.2 软件设计•嵌入式系统设计流程•程序设计语言及常用库函数•实时操作系统基础概念及其在嵌入式领域的应用•嵌入式系统的调试方法2.3 课程设计任务每个学生需要完成以下任务:1.基于指定单片机和开发板,采用C语言进行单片机程序设计和调试,实现下列任务:•遥控电视,包括红外编码解码、遥控功能等。
•读取温度传感器数据并显示在数码管上。
•通过KEIL μVision调试软件实现IO口设置及读取输出等。
2.编写实验报告,包括设计思路、电路原理图和流程图、设计程序及测试结果等。
3. 课程评估课程的评估将包括以下三项内容:1.实验报告:学生们需要提交实验报告以便教师评定学生掌握的程度和技能。
2.代码实现:教师将会评估学生根据指定单片机实现的程序质量。
3.课堂表现:教师将会根据学生在课堂上表现以及参加课程讨论、答疑等情况对学生进行综合评估。
4. 实验设备本课程所使用的实验设备和材料如下:1.单片机:STC89C52RC或等价单片机。
2.开发板:MINI-F51开发板或等价开发板。
3.红外收发器:红外遥控发射接口或等价接口。
4.温度传感器:DS18B20或等价型号。
5.七段数码管。
6.LED灯。
7.杜邦线等辅助性材料。
5. 参考资料•《单片机原理及接口技术》第五版,罗俊等著,电子工业出版社,2017年。
•《开发板用户手册》v2.0,MINI-F51开发板,同济大学电子与信息学院,2019年。
6. 结论通过本课程的学习和实践,学生将会掌握基本的单片机原理、接口技术知识和嵌入式开发流程,并能够熟练地运用所学知识进行单片机的程序设计和实现。
接口课程设计报告说明书-模拟打靶系统班级:计算机0206班姓名:刘树伟学号:012002013810一.课程设计题目:模拟打靶系统二.题目要求:由一个主控机监控和若干下位机组成,主控机负责数据处理下位机负责访问接口。
既是:下位机上传打靶环数,主控机存储打靶环数并统计。
三.课程设计要求:掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统;掌握基本接口电路的综合应用;掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试件的一般方法;理解微机接口技术及接口芯片的综合应用。
四.设计思想:1.功能过程描述:用八位开关模拟打靶状况和打靶环数,8255A口接收打靶信息,8251读出A口信息并上传给主控机。
下位机8251接收上行机8251传过来数据,储存并处理,打靶计数结束后返回总环数。
下位机如果继续打靶,重新计数;如果结束停止打靶,主控机等待选择打靶是否结束的信号,结束信号来了就退出打靶程序。
⒉系统接口框图:五.程序流程:一)文字描述:1.初始化各个芯片,同时进行画靶程序,下行机显示一个圆靶。
2.8位开关的最高位的变化来代表是否进行打靶,不变则没有打靶。
改变后就有打靶并将低位数据送往上行机。
环数超过10环计为0(代表脱靶)。
3.每次打靶的结果显示在靶上。
4.上行机接收到靶数后存储处理并显示在上行机屏幕上。
5.打靶十次后下行机询问打靶者是否继续。
如继续则重新进行打靶计数,若退出则发送一个255给上行机(相当于11111111B),这时,上行机显示出下行机已退出打靶,讯问是否结束,选择结束则程序退出。
二)流程图:1.下行机框图:2.主控机程序框图六.源程序:1.下行机部分:#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <dos.h>#include <graphics.h>#define data51 0x308 /*8251数据口*/#define ctrl51 0x309 /*8251命令/状态口*/#define dataa55 0x300 /*8255数据A口*/#define datab55 0x301 /*8255数据B口*/#define datac55 0x302 /*8255数据C口*/#define ctrl55 0x303 /*8255命令口*/void int51();void int55();int send(int,int);void main(){ /*图形变量初始化*/int temp,temp2,total,count=0;int data,x0,y0,c=0;double ab,r,x,y;float e;int graphdriver=VGA,graphmode=VGAHI;int flag=0x00;int51();int55();/*struct fillsettingstype save;*/initgraph(&graphdriver,&graphmode," ");/*getfillsettings(&save);*/ /*得到初始化时填充模式*/ setbkcolor(EGA_BLUE);cleardevice();setcolor(12);circle(320,220,30); /*画靶*/circle(320,220,45);circle(320,220,60);circle(320,220,75);circle(320,220,90);circle(320,220,105);circle(320,220,120);circle(320,220,135);circle(320,220,150);circle(320,220,165);while(1){dotemp=inportb(datab55);while(flag==(temp&0x80)); /*当从8255b口读出的数据最高位改变时,跳出循环*/if(flag==0) { /*将标志flag改变*/flag=0x80;}else flag=0x00;data=temp&0x7f; /*将数据的最高位置0*/if(data>10) data=0;count++;c=c+19;e=c%100;e=e/100;if(data==0){;}else{r=(10-data)*15+22;x=r*e;ab=r*r-x*x;y=sqrt(ab);if(e>0.5){ /*随机决定点x0坐标的区间*/x0=320+x;}else x0=320-x;if(e>0.5){ /*随机决定点y0坐标的区间*/y0=220+y;}else y0=220-y;setcolor(15);circle(x0,y0,6);}/*转入发送程序*/total=send(data,count);if(count==10){/*getch();*/closegraph();count=0;flag=0x00;printf("\n**********************************************************");printf("\n ***************Welcome to our shooting game!********************");printf("\n**********************************************************");printf("\n*********************************************************************** **"); /*显示欢迎信息*/printf("\nyou have shot %d",total);printf("\npress anykey to restart");printf("\npress 2 to exit\n");scanf("%d",&temp2);if(temp2==2){count=send(0xff,0);break;}clrscr();/*struct fillsettingstype save;*/initgraph(&graphdriver,&graphmode," ");/*getfillsettings(&save);*/ /*得到初始化时填充模式*/setbkcolor(EGA_BLUE);cleardevice();setcolor(EGA_GREEN);circle(320,220,30);setcolor(12);circle(320,220,45);circle(320,220,60);circle(320,220,75);circle(320,220,90);circle(320,220,105);circle(320,220,120);circle(320,220,135);circle(320,220,150);circle(320,220,165);}}}int send(int data,int count){int status,rletter;dostatus=inportb(ctrl51); /*获取8251 TXRDY 状态*/while((status&0x01)==0); /*已准备好,则将数据发送出去*/outportb(data51,data);if(count==10){dostatus=inportb(ctrl51);/*已准备好,即有数据传送过来,则接收1个字符*/ while((status&0x02)==0);rletter=inportb(data51);return rletter;}else return 0;}void int51() /*8251初始化程序*/{outportb(ctrl51,0x00);delay(100);outportb(ctrl51,0x40);/*8251复位*/delay(100);outportb(ctrl51,0x4e);/*8251A方式命令*/delay(100);outportb(ctrl51,0x27);/*8251A工作命令*/}void int55(){ /*8255初始化程序*/outportb(ctrl55,0x92);}2.上行机部分:#include<stdio.h>#include<conio.h>#include<dos.h>#define data51 0x308 /*8251数据口*/#define ctrl51 0x309 /*8251命令/状态口*/#define dataa55 0x300 /*8255数据A口*/#define datab55 0x301 /*8255数据B口*/#define datac55 0x302 /*8255数据C口*/#define ctrl55 0x303 /*8255命令口*/#define COUNT 10 /*每局打靶的次数*/void int51()/*初始化函数*/{outportb(ctrl51,0x00);/*空操作*/delay(100);outportb(ctrl51,0x40);/*8251复位*/delay(100);outportb(ctrl51,0x4e);/*8251A方式命令*/delay(100);outportb(ctrl51,0x27);/*8251A工作命令*/}void main(void){int a[COUNT];int j;int b=0;int e;int i=0;int status;int temp;int51();printf(" **************************************\n\r ");printf(" * THE SHOOTING SYSTEM *\n\r ");printf(" * ver1.0 cz xn zm lsw *\n\r ");printf(" ********************************\n\r ");for(;;)/*总循环*/{if(i==COUNT){ /*如果一局打完输出此局各次的成绩和总成绩*/for(j=0;j<COUNT;j++){b+=a[j];}printf("\n***************************************");printf("\nYour total score is :%d",b);i=0;dostatus=inportb(ctrl51);/*获取8251 TXRDY 状态*/while((status&0x01)==0);/*已准备好,则将键入的字符发送出去*/outportb(0x308,b);b=0;for(j=0;j<COUNT;j++) /*将各元素的值清零*/a[j]=0;}dostatus=inportb(0x309);/*检测8251状态,若有数据传送过来,则接收1个字符*/while((status&0x02)==0);a[i++]=inportb(0x308);printf("\nThe score of your %dth %d",i,a[i-1]);if(a[i-1]==255){clrscr();printf("\nIf you want to EXIT:press Esc!\nCONTINUE:press any key!");if((e=getche())==0x1b)/*是ESC?是,则退出,并返回DOS*/break;}}}七.运行结果1.下行机显示圆靶和环数2.上行机显示统计资料八.心得体会:这次接口课程设计是四人合作而成的,我们既合起来讨论过程序如何实现的问题,也分工自己干自己的部分。