精密测控与系统课程设计20131100

合集下载

测控系统技术课程设计

测控系统技术课程设计

测控系统技术课程设计一、教学目标本课程旨在让学生掌握测控系统技术的基本原理、方法和应用,培养学生的实际操作能力和创新意识。

通过本课程的学习,学生应达到以下目标:1.知识目标:(1)理解测控系统的基本概念、组成和分类;(2)掌握测控系统的硬件和软件设计方法;(3)熟悉信号处理、数据采集和控制算法等方面的知识。

2.技能目标:(1)能够运用测控系统技术解决实际工程问题;(2)具备测控系统硬件选型、软件设计和系统调试的能力;(3)熟练使用相关仪器仪表和编程软件。

3.情感态度价值观目标:(1)培养学生的团队合作精神和责任意识;(2)激发学生对测控系统技术的兴趣,培养创新思维;(3)使学生认识到测控系统技术在现代社会中的重要性和应用价值。

二、教学内容本课程的教学内容主要包括以下几个部分:1.测控系统概述:介绍测控系统的定义、组成、分类和应用领域;2.测控系统硬件:讲解传感器、信号处理电路、执行器等硬件组件的选择和设计;3.测控系统软件:涵盖控制算法、数据采集、人机界面等方面的内容;4.测控系统实例分析:分析实际工程中的测控系统案例,让学生学以致用;5.实验操作:进行测控系统实验,培养学生动手能力和实际操作技能。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:系统地传授测控系统的基本原理和知识;2.讨论法:学生针对实际案例进行讨论,培养解决问题的能力;3.案例分析法:分析典型测控系统实例,帮助学生更好地理解理论知识;4.实验法:让学生亲自动手进行实验,提高实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统性的学习资料;2.参考书:提供相关的参考书籍,丰富学生的知识体系;3.多媒体资料:制作课件、视频等多媒体资料,提高课堂教学效果;4.实验设备:配置完善的实验设备,确保学生能够进行实际操作。

五、教学评估为了全面、客观地评估学生的学习成果,本课程将采取以下评估方式:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性;2.作业:布置适量的作业,检查学生对知识点的掌握程度和应用能力;3.实验报告:评估学生在实验过程中的操作技能和问题解决能力;4.考试:设置期中和期末考试,全面测试学生的知识水平和应用能力。

精密测控与系统

精密测控与系统

2012/2013学年第一学期《精密测控与系统》期末大型作业班级:_____测仪0901______姓名:洪月明学号:_____0911400101____1、每人一组,独立完成,不得抄袭,发现抄袭视为作弊。

2、将每一小问的具体完成步骤写清楚、仿真曲线、控制效果图、模糊规则库、模糊化步骤等要求清晰(作为成绩评分的主要标准)3、可以借助网络和其他资源查阅、引用相关资料,但不得抄袭。

4、将最终完成的作业和封面(封面上写明:姓名、学号、班级)一起装订上交。

日期:2012 年11 月25 日直流电机转速控制问题,直流电动机物理模型如下图所示。

电动机产生的转矩与电枢电流成正比,即:t t T K i =,电枢绕组的反电动势与转速成正比,即:ed e K dtθ=,牛顿第二定律:22d TJdtθ=,其中J 为电机轴上的转动惯量。

已知:转动惯量:220.01kg.m /sJ =,机械系统摩擦系数:0.1N.m.s b =,电动机力矩系数:0.01N.m/Aet KK ==,电阻:1R =Ω,电感:0.5H L =。

假设电机转动系统刚性,输入量为直流电压V ,输出量为电机转速θ 。

问题1:建立该系统的时域数学模型。

lt t t t ei K T i K T T T b Js dtd Ke edtdi L Ri V ==-=+=++=∙∙θθθ 式中:T ——负载转矩;l i ——负载电流。

对上面的式子进行拉式变换得)()()()()()()()()(s I K s I K s b s Js s K E s E s LsI s RI s V l t t e -=+=++=∙∙∙θθθ由上式可得出传递函数为et tK K Rb s RJ Lb LJsK s V s ++++=∙)()()(2θV T而系统的时域数学模型为l t t t tRi Ke K BRdt d K BL K JR dtd K JL V +⎪⎪⎭⎫ ⎝⎛++⎪⎪⎭⎫ ⎝⎛++=∙∙∙θθθ22* 问题2:给出该系统的传递函数,用Matlab 计算该系统的阶跃响应曲线,给出阶跃响应的特征参数。

精密测量技术课程设计

精密测量技术课程设计

精密测量技术课程设计前言精密测量技术是当今世界上不可或缺的一项技术,其应用范围广阔,如航空、航天、机械、电子、化学、医疗等领域都有着广泛的应用。

因此,精密测量技术的培训和学习极为重要。

本文档的目的是为精密测量技术的学习和应用提供一定的辅助,以期达到学习和应用的最佳效果。

课程设计教学目标本次课程设计的教学目标为:•了解精密测量技术的基本概念;•掌握精密测量仪器的使用方法;•能够选择合适的精密测量仪器进行测量;•能够正确理解和分析测量结果;•能够熟练运用精密测量技术进行实际应用。

教学内容1.精密测量技术概述1.精密测量技术的定义和基本概念2.精密测量的分类3.精度、精密度和可靠性概念2.精密测量仪器的分类与原理1.传感器、调节器、计量器2.静电电容传感器、电磁铁式传感器、激光间接式测量仪3.测量误差和精度分析1.误差类型和误差来源2.精度评定方法3.趋势线拟合处理法4.精度检验和校准技术1.精度检验方法2.校准技术和标准器的使用3.校准方法及计算5.精密测量技术在实际应用中的案例分析1.机械工业、电子工业、化工工业、医疗工业中的应用案例2.案例分析和讨论教学方法本次课程设计的教学方法主要包括:1.授课法:通过讲授精确的理论知识,使学生掌握基本的概念和原理;2.演示法:通过实际演示操作,使学生了解仪器的具体使用方法;3.实验法:通过实验使学生熟练运用精密测量技术;4.讨论法:通过案例分析和比较,加强学生的实际应用能力。

教学资源此次课程设计所需要的教学资源包括:1.精密测量仪器2.具有理论基础的教材和参考书3.实验室教学评估本次课程设计的评估主要分为:1.学生的实验和报告2.学生的课堂表现和学习能力3.期末考试结论本文档主要是针对精密测量技术课程设计的教学目标、教学内容、教学方法、教学资源和评估等方面进行的说明。

通过本次课程设计的学习,学生们将对精密测量技术有一个比较全面和深入的认识,同时也将掌握精密测量技术的使用方法和实际应用技能,为以后的学习和工作打下坚实的基础。

精密测控与系统课程设计报告周航版

精密测控与系统课程设计报告周航版

精密测控与系统课程设计报告激光自准直角度测量系统设计摘要半导体光电位置传感器(即PSD)是一种基于横向光电效应的新型半导体光电位置敏感传感器。

它除了具有光电二极管阵列和CCD的定位性能外,还具有灵敏度高、分辨率高、响应速度快、电路配置简单等特点,因而被人们所重视。

PSD的发展趋势是高分辨率、高线性度、快响应、及信号采集处理等多功能集成。

1.激光自准直角度测量的工作原理和测量方法的理解。

用光学自准直原理,选用激光二极管(LD)为光源,位置敏感探测器(PSD)为光电探测器,构建了一种基于互相关分析的激光自准直小角度测量系统.为了提高小角度测量精度,该系统对光源进行正弦调制,利用互相关分析解调出待测小角度信息.根据互相关分析理论,设计了信号处理系统,对影响系统精度的主要因素进行了分析.实现了测量样机,并进行了性能测试实验.实验表明,互相关解调系统有效地抑制了噪声的影响,样机具有较高的二维小角度测量精度和示值稳定性,在4-150”范围内。

最大非线性误差为o.6”,重复性误差为0.2”,漂移为0.4'74 h.激光自准直测角技术自从20世纪60年代出现以来,已成为一门日益重要的小角度精密测试技术,在实现小角度的多维、非接触测量中具有独特的优点,基于该技术研制的测角系统具有灵敏度高、结构简单、使用方便、可以实现二维角度的静态和动态测量等特点。

激光自准直测量系统要能够完成独立的测量,首要的任务就是要建立测量系统的数学模型。

数学模型一方面是对系统的物理结构的数学描述,使系统更好地被理解;另一方面可以运用数学工具对系统设计中的每一个可变量进行定性分析和定量计算,为系统结构的优化设计提供科学的依据。

激光自准直测量模型建立的方法主要有近似模型公式法]和多项式法。

近似模型公式法是直接利用正切关系计算平面镜偏转的角度,这种方法精度差.多项式法是通过系统标定,获得一系列标定数据,采用多项式拟合的方法得到测量系统的数学模型,该方法测量精度高,计算量适中。

2013测控课程设计说明书

2013测控课程设计说明书

检测技术与仪器课程设计说明书信息学院2013年11月20日一、课程设计目的与要求课程设计是一项综合性实践教学环节,是对理论课程和实验课程的综合和补充。

它主要使学生加深对理论的理解,训练学生如何综合运用学过的理论和技能去分析解决实际问题的能力,从而增强学生的实践能力和创新能力。

检测技术课程设计是在《微型计算机原理与接口技术》、《单片机原理与应用》等课程基础上,由学生独立完成一个较为完整的实践性测控应用系统设计。

通过设计,使学生掌握测控系统以及常用接口电路的设计及调试方法,掌握常用工具软件的使用方法,熟悉如何用汇编语言和或C语言管理硬件设备等。

通过课程设计,训练学生如何综合运用所学知识去分析和解决实际问题,掌握系统硬件和软件设计及调试的基本过程,并学习如何撰写总结报告,以培养学生严谨的工作作风和科学态度以及探索创新精神。

指导教师负责课程设计的任务布置、设计指导和成绩评定。

课程设计任务包括题目名称、设计要求、技术手段、参考文献等。

学生在接受任务以后,进行系统的方案选择、系统设计、电路板设计、监控软件设计以及系统的安装调试等工作,最后写出设计报告。

二、课程设计时间安排第一周:系统整体设计;功能模块设定;芯片选择(传感器;信号调理;放大器;A/D;CPU;显示;键盘等);第二周:系统硬件设计;原理图绘制(有能力的可以完成PCB图);第三周:系统软件设计(数据采集、数据处理、显示、输入、上限设定、超限报警等程序的编制);第四周:完成整个系统的软件调试;撰写课程设计报告。

上交报告与成绩评定三、测控系统设计的步骤1、接受设计任务:接受任务后,充分理解设计任务及要求,分析系统功能、性能指标、人机接口等内容。

2、方案选择:根据系统要求,确定系统功能,在完成设计要求的前提下,充分考虑系统成本、安装调试、系统维护等因素,给出最佳设计方案。

3、系统外观设计:确定显示模式和操作方式,从实用出发,设计机器外型(外壳)、人机接口、外形尺寸等。

测控系统课程设计报告

测控系统课程设计报告

测控系统课程设计报告一、教学目标本课程的教学目标是使学生掌握测控系统的基本原理、方法和应用,具备分析和解决实际问题的能力。

具体目标如下:1.知识目标:(1)理解测控系统的组成、工作原理和分类;(2)掌握测控系统中信号的采样与量化、误差分析、数据处理等基本方法;(3)熟悉常见测控设备及其应用场景;(4)了解测控技术的发展趋势和前沿领域。

2.技能目标:(1)能够运用所学知识分析实际测控问题;(2)具备使用测控设备进行数据采集、处理和分析的能力;(3)能够设计简单的测控系统,并进行调试和优化。

3.情感态度价值观目标:(1)培养学生的创新意识和团队合作精神;(2)增强学生对测控技术的兴趣和责任感;(3)引导学生关注测控技术在国家战略和民生中的应用,提高国家意识和社会责任感。

二、教学内容本课程的教学内容主要包括以下几个方面:1.测控系统的组成与分类:介绍测控系统的的基本组成部分,如传感器、信号处理电路、执行器等,以及不同类型的测控系统及其应用场景。

2.信号的采样与量化:讲解信号采样、量化原理,分析采样频率、量化位数对信号质量的影响。

3.误差分析与数据处理:介绍测控系统中的主要误差来源,分析误差的性质和影响,探讨数据处理方法,如插值、滤波等。

4.常见测控设备及其应用:介绍常见的测控设备,如传感器、执行器、控制器等,分析其在实际应用中的工作原理和性能。

5.测控系统的设计与实践:讲解测控系统的设计方法,包括硬件选型、软件开发等,结合实际案例进行分析。

6.测控技术的发展趋势:介绍测控技术的发展动态和前沿领域,如物联网、大数据、智能制造等。

三、教学方法为了提高教学效果,本课程采用多种教学方法相结合,包括:1.讲授法:通过教师的讲解,使学生掌握测控系统的基本原理和方法。

2.案例分析法:通过分析实际案例,使学生了解测控系统在工程中的应用和设计方法。

3.实验法:学生进行实验,培养学生的动手能力和实践技能。

4.讨论法:鼓励学生积极参与课堂讨论,提高学生的思维能力和创新能力。

精密工程测量课程设计

精密工程测量课程设计

精密工程测量课程设计一、课程目标知识目标:1. 学生能理解精密工程测量的基本概念,掌握测量的重要性和应用领域。

2. 学生能够掌握精密工程测量的基本原理,包括测量误差、精度和准确度等关键概念。

3. 学生能够了解并描述各类精密工程测量工具和设备的工作原理及其适用场合。

技能目标:1. 学生能够运用所学知识,使用测量工具进行简单的实际测量操作,并正确记录数据。

2. 学生能够分析测量数据,识别和处理测量误差,提高测量的精确度。

3. 学生能够通过小组合作,设计并实施简单的精密测量实验,提升实际操作能力。

情感态度价值观目标:1. 学生能够培养对精密工程测量科学的兴趣,认识到测量技术在工程领域的重要作用。

2. 学生通过实践活动,培养严谨的科学态度和精准细致的工作作风。

3. 学生能够在团队合作中学会相互尊重、沟通协作,增强集体荣誉感和责任感。

分析课程性质、学生特点和教学要求:本课程设计针对高年级工程技术相关专业的学生,结合课本内容,注重理论与实践相结合。

课程性质偏向应用技术类,要求学生在掌握理论知识的基础上,能够动手操作并解决实际问题。

学生特点为具有较强的逻辑思维能力和动手能力,对工程技术感兴趣。

教学要求以学生为中心,通过启发式教学法和实践活动,激发学生的学习兴趣,提高其解决实际问题的能力。

通过本课程目标的实现,旨在为学生未来的专业发展打下坚实基础。

二、教学内容1. 精密工程测量基本概念:包括测量的定义、分类和基本要求,结合课本第一章内容,阐述精密工程测量的重要性及其在工程领域的应用。

2. 测量误差与数据处理:讲解测量误差的来源、分类和影响,引入课本第二章内容,学习误差分析及数据处理方法,提高数据的可靠性和准确性。

3. 精密测量工具与设备:介绍常见的精密测量工具、仪器和设备,如游标卡尺、千分尺、激光测距仪等,结合课本第三章内容,分析其工作原理、性能和适用范围。

4. 实际测量操作:依据第四章内容,组织学生进行实际测量操作,包括直线测量、角度测量、表面粗糙度测量等,指导学生掌握操作要领,正确记录和处理数据。

测控系统原理与设计课程设计

测控系统原理与设计课程设计

测控系统原理与设计课程设计测控系统是用于测量、监测、控制物理量的技术系统。

现在几乎所有的工业和科技领域都离不开测控系统的应用,因此测控系统成为了重要的技术专业。

本文将介绍测控系统原理与设计课程设计的内容。

一、课程设计目的和基本要求本次课程设计旨在通过对测控系统理论知识的学习和实践,让学生深入了解测控系统的工作原理、设计流程和实现方法,提高学生的综合能力和实践能力。

设计要求学生能够独立完成一个小型的测控系统方案设计,为学生将来的测控系统设计和实践奠定基础。

二、课程设计内容本次课程设计分为两部分。

第一部分为理论授课,主要包括测控系统基础、传感器与信号处理、数据采集与传输、控制策略等内容;第二部分为实践操作,学生需要完成一个小型的测控系统方案设计的实验项目。

1. 理论授课1.1 测控系统基础测控系统的定义、基本组成和发展历程。

测量误差及其来源,精度的分析与控制,测量精度的提高方法。

测控系统常用量的名称、表示方法和单位。

1.2 传感器与信号处理传感器的概念、分类、特点、参数和应用。

传感器的静态和动态特性,传感器的选择和匹配。

信号条件与调理,采集信号的处理方法,各种传感器信号的处理示例。

1.3 数据采集与传输传统数据采集系统的介绍及其优缺点。

现代数字化数据采集系统特点、结构和工作原理。

数据无损传输介质的分类和特点,传输协议和传输方式的选择。

1.4 控制策略控制系统的基本结构、类型、性能指标以及各类控制对象。

控制策略选择的依据和方法。

比例、积分和微分控制对控制系统的作用。

高级控制技术及其实际决策。

2. 实践操作学生需要完成一个小型测控系统的方案设计实验项目,具体要求如下:•选定测量对象并确定测量参数•选定传感器并进行参数匹配和电路设计•选用合适的数据采集方式并进行数据采集与传输设计•选定控制策略并设计控制程序•利用实验装置进行模拟实验并进行调试•给出实验结果并进行分析和评价三、课程设计要求1. 理论学习要求学生应认真学习课程理论知识,完成课堂作业和实验预习。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西南交通大学课程设计名称:微机与单片机课程设计院(系):机械工程学院专业:测控技术与仪器年级: 2013级指导教师:李艳萍姓名:贺申羽学号: 201311002016年11月一、软件设计任务1了解DICE—5212K开放式综合实验/仿真系统的硬件结构及原理2设计相应的软件程序3利用DICE—5212K开放式综合实验/仿真系统完成硬件、软件调试4完成设计报告二、系统单元模块原理及程序流程图2.1键盘主要功能:通过键盘输入指定要显示的数字。

键盘输入应解决的问题:按键识别、消除按键抖动、串键保护具体说明:①.键盘:它是由一组按压式或触摸式开关构成的阵列。

智能仪表键盘的设置应由该仪表具体的功能来决定,因此,智能仪表往往采用专用的功能键盘。

②.矩阵式键盘:按键电路可以有2种方式:一种方式是直接按键设计,这种设计电路适用于按键较少的控制;另一种方式是矩阵式键盘的设计,它适用于按键数量较多的场合。

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。

在按键数量较多的场合,矩阵式键盘比独立式键盘要节省很多的I/O口。

图1:矩阵式键盘连接示图③.行扫描法:它是采用步进扫描方式,CPU通过输出口把一个“步进的0”逐行加至键盘的行线上,然后通过输入口检查列线的状态。

由行线、列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位置。

2.2LED数码管主要功能:显示经由键盘输入的数字。

具体说明:数码管显示原理通常采用的数码管是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。

八段数码管是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。

数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。

本文采用共阴极编码其中两个COM端连在一起,为公共端,共阴数码管要将其接地。

一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。

显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。

数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。

所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阴极的数码管0~f的段编码为:unsigned char code table[]={//共阴极0~f数码管编码0x3f,0x06,0x5b,0x4f,//0~30x66,0x6d,0x7d,0x07,//4~70x7f,0x6f,0x77,0x7c,//8~b0x39,0x5e,0x79,0x71//c~f};LED动态扫描方式:动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。

其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。

CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。

而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。

动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。

如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。

图:LED显示电路图:LED 动态扫描电路 图:按键与显示器组合显示电路2.3DICE-5212K 单片机试验开发系统简介DICE-5212K 多功能单片机实验开发系统是《MCS-51 单片机原理与接口》《C8051 嵌入式单片机控制技术》《自动化控制》《CPLD/FPGA 技术》《传感器控制》等课程教学的最佳配套实验设备。

以小系统、多功能、易扩展为设计思想,系统的地址总线、数据总线、控制总线全部引出,对用户开放,并留有扩展单元(区),这样学校可以从需要出发,灵活选配各种扩展模块,为各类院校的教学实验、课程设计、毕业设计提供了良好的实验开发环境,也是科研、开发工作者的得力助手。

52单片机接口电路按键显示PWM 控制驱动速度反馈直流电机MAX 7219M系统硬件构图2.4 系统开关设置(1)SW1(EA 端):程序空间选择开关,SW1—>IP,选择 CPU 内部(一般不设置此模式,如果将目标程序通过烧写器写入单片机内部 FALSH ROM 中,要运行写入的程序时需设置到该模式,一般用于工程人员的目标系统开发),SW1—>UP(出厂模式),选择 CPU 外部,此时可脱机运行 EPROM 中固化的程序,也可用仿真器进行联机实验。

(用短路块选择)(2)SW3、SW4、SW5:为键盘/显示选择开关,开关置 ON(出厂模式),键盘/显示控制选择系统配置的 8155 接口芯片,反之由用户选择自定义的 I/O 接口芯片控制,在本机实验中,除 8279 实验外,键盘/显示为出厂模式。

(3)KB1 开关:KB1 开关有两种工作模式,平时都工作在“一般模式”,当我们用到单片机 ISP 在线编程功能时,将 KB1 开关打在“编程模式”。

(ISP 在线可编程 AT89SX 系列单片机)。

(4)KB2 开关(用短路块实现):为“MCS-51 系统”与“C8051F 系统”读写信号切换开关。

当使用“MCS-51 系统”时,将两个短路插在‘1’和‘2’位置,使用“C8051F 系统”时,将两个短路块插在‘2’和‘3’位置。

(5)JF_1 (IDC34)口为公司 DICE-3000 仿真器专用接口,如果配DICE-KEIL USB 仿真器,该接口无须连接。

2.5可编程并行接口芯片8255A微机系统的信息交换有两种方式:并行通信接口方式和串行通信接口方式。

接口电路在CPU和I/O设备之间起着信号的变换和传输的作用。

8255A可为CPU 与外部设备之间提供并行输入/输出的通道。

由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用8255A连接外部设备时,通常不用再附加外部电路,使用教方便。

并行接口是在多根数据线上,以数据字节/字与I/O设备交换信息。

在输入过程中,输入设备把数据送给接口,并且使状态线“输入准备好”有效。

接口把数据存放在“输入缓冲寄存器”中,同时使“输入回答”线有效,作为对外设的响应。

外设在收到这个回答信号后,就撤消数据和“输入准备好”信号。

数据到达接口中后,接口会在“状态寄存器”中设置输入准备好标志,或者向CPU发一个中断请求。

CPU可用查询方式或中断方式从接口中读取数据。

接口中的数据被读取后,接口会自动清除状态寄存器中的标志,且撤消对CPU的中断请求。

在输出过程中,每当输出寄存器可以接收数据,接口就会将状态寄存器中“输出准备好”状态置1或向CPU发一个中断请求,CPU可用查询或中断方式向接口输出数据。

当CPU输出的数据到达接口后,接口会清除“输出准备好”状态,把数据送往外设,并向外设发一个“数据输出准备好”信号。

外设受到驱动后,便接收数据,并向接口电路发一个“输出回答”信号,接口收到该回答信号后,又将状态寄存器中“输出准备好”置位,以便CPU输出下一个数据。

三、软件设计3.1程序流程图:3.2键盘扫描显示原理及程序流程图键盘输入的三大问题:1.按键识别:通常有行扫描法和线反转法。

本次采用的是行扫描法。

即如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。

这样就可以通过输出的列码和读取的行码来判断按下的是什么键。

2.消除按键抖动:一般的按键所用开关都是机械弹性开关,由于机械触点的弹性作用,按键开关在闭合时不会马上稳定地连接,在断开也不会马上完全的断开,在闭合和断开的瞬间均有一连串的抖动。

按键按下和松开的时候都存在着抖动。

抖动时间的长短因按键的机械特性不同而有所不同,一般为5ms~10ms。

3.串键保护:由于操作不慎,可能会导致同时有几个键同时按下,成为串键。

处理技术有三:①两键同时按下:只有一个键按下才读取键盘,最后仍被按下的是有效的正确按键——软件扫描键盘;当第一个按键未松开时,按第二个按键不产生选通信号。

②n键同时按下:不理会所有按下的键,或者将所有的按键信息存储,然后逐个处理。

③n键锁定:只处理一个键,任何其它按下又松开的键不产生任何代码。

通常第一个按下或最后一个松开的按键产生代码。

程序流程图:四、源代码程序8255各个功能口的地址如下图所示:8255方式控制字如下所示:D7:标志位,D7=1;D6、D5:A组工作方式选择。

0 0 A口和C口高4位工作于方式0。

0 1 A口和C口高4位工作于方式1。

1 * A口工作于方式2。

D4:D4=0,A口为输出口;D4=1,A口为输出口。

D3:D3=0,C口高4位为输出口;D3=1,C口高4位为输入口。

D2:B组工作方式选择。

0 B口和C口低4位工作于方式0;1 B口和C口低4位工作于方式1D1:D1=0,B口为输出口;D1=1,B口为输入口。

D0:D0=0,C口低4位为输出口;D0=1,C口低4位为输入口。

连接方式:用排线将P0口和8255数据端连接起来,用排线将8255的PA 口与SW4、 PB口与SW3连接,用排线将PC口SW5连接起来。

// 数码管按键显示//#include<reg51.h>#include<absacc.h>//--定义使用的IO口--////--定义PA、PB、PC端口及命令端口地址--//#define PA XBYTE[0x0FF28]#define PB XBYTE[0x0FF29]#define PC XBYTE[0x0FF2A]#define COM XBYTE[0x0FF2B]//--定义矩阵键盘使用的8255接口--//#define GPIO_KEY_0 PA#define GPIO_KEY_1 PC#define GPIO_DIG PB//--定义全局变量--//unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsigned char KeyValue;//用来存放读取到的键值unsigned char KeyState; //记录按键的状态,0没有,1有unsigned char DisplayData[8];//用来存放要显示的2位数的值//--声明全局变量--//void Delay10ms(unsigned int c); //误差 0usvoid KeyDown(); //检测按键函数void DigDisplay(); //动态显示函数//main主函数//void main(void){KeyState=0;COM=0X99;while(1){KeyDown();if(KeyState==1){DisplayData[3]=DisplayData[2];DisplayData[2]=DisplayData[1];DisplayData[1]=DisplayData[0];DisplayData[0]=DIG_CODE[KeyValue];KeyState=0;}DigDisplay();}}//数码管显示//void DigDisplay(){unsigned char i;unsigned int j;COM=0X89;for(i=0;i<8;i++){switch(i) //位选,选择点亮的数码管,{case(0):GPIO_KEY_0=0X01; break;//显示第0位case(1):GPIO_KEY_0=0X03; break;//显示第1位case(2):GPIO_KEY_0=0X13; break;//显示第4位default:GPIO_KEY_0=0X33; break;//显示第5位}switch(i){case(0):GPIO_DIG=DisplayData[0];case(1):GPIO_DIG=DisplayData[1];case(2):GPIO_DIG=DisplayData[2];default:GPIO_DIG=DisplayData[3];}//发送段码j=10; //扫描间隔时间设定while(j--);GPIO_DIG=0x00;//消隐}}//检测有无按键按下并读取键值//void KeyDown(void){unsigned int a=0;GPIO_KEY_0=0xff;if(GPIO_KEY_0!=0xff){Delay10ms(1);a++;a=0;if(GPIO_KEY_0!=0xff){KeyState=1;//有按键按下//测试列GPIO_KEY_0=0XFF;// Delay10ms(1);switch(GPIO_KEY_0){case(0X3F): KeyValue=0;break;case(0XCF): KeyValue=15;break;case(0XF3): KeyValue=14;break;case(0XFC): KeyValue=13;break;// default: KeyValue=17; //检测出错回复17意思是把数码管全灭掉。

相关文档
最新文档