![智能化测控应用系统设计报告正文_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/0ccde284-93ea-451a-bfc4-2443c6756d30/0ccde284-93ea-451a-bfc4-2443c6756d301.gif)
![智能化测控应用系统设计报告正文_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/0ccde284-93ea-451a-bfc4-2443c6756d30/0ccde284-93ea-451a-bfc4-2443c6756d302.gif)
![智能化测控应用系统设计报告正文_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/0ccde284-93ea-451a-bfc4-2443c6756d30/0ccde284-93ea-451a-bfc4-2443c6756d303.gif)
![智能化测控应用系统设计报告正文_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/0ccde284-93ea-451a-bfc4-2443c6756d30/0ccde284-93ea-451a-bfc4-2443c6756d304.gif)
![智能化测控应用系统设计报告正文_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/0ccde284-93ea-451a-bfc4-2443c6756d30/0ccde284-93ea-451a-bfc4-2443c6756d305.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1前言22总体方案设计32.1方案对比32.1.1 方案一32.1.2 方案二42.2方案论证42.3方案选择53单元模块设计63.1各单元模块功能介绍及电路设计63.1.1 单元模块功能介绍64软件设计124.1软件设计原理及设计所用工具124.1.1 制图软件Altium Designer Winter 09124.1.2 Keil仿真软件134.2系统程序设计134.2.1 主程序流程图144.2.2 主程序设计流程155系统调试166结论177总结与体会188谢词199参考文献20附录121附录222附录323附录4241前言 自行车被发明及使用到现在已有两百多年的历史,这两百年间人类
2、在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。本设计采用了MCS-51系列单片机设计一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走
3、的距离及运行的速度。2总体方案设计根据本系统所要实现的功能为:1、设计以单片机和速度感器为核心的速度过高报警装置。2、能实现自行车轮子圈数信号的检测、传输和处理功能。3、当自行车速度超过一定值时报警。4、具有实时显示速度值或里程值和速度超高报警功能。所以根据设计要求制定了以下两种方案。2.1方案对比两种方案的设计思路是相同的,只是在某些模块上采用的形式不同,以下为两种不同的设计方案的具体实现形式: 2.1.1 方案一89C52 共阴数码管显示选择轮圈大小里程/速度显示的选择报警器 传感器 复位电路时钟信号图2.1 方案一的原理框图方案一中首先是对自行车轮圈大小的选择,再传感器对自行车车轮圈数进
4、行检测;将检测信号直接送进单片机,复位电路使单片机所有部位处于一个确定的初始状态,并从这个状态开始工作;时钟电路为CPU提供时钟脉冲;根据里程和速度的选择来显示电路用于显示所测得的里程或速度,报警器是当速度超过预定值时报警。2.1.2 方案二信号复位电路89C52传感器共阴数码管显示报警器时钟信号图2.2 方案二的原理框图方案二系统工作时,传感器采集到信号传输给单片机,单片机计数器统计脉冲个数,定时器记录相应时间长度,经过运算,将行驶里程、平均速度送给共阴数码管显示。报警器是当速度超过预定值时报警。2.2方案论证测量一定时间间隔t里自行车车轮转过的圈数q。假设车轮周长为c,则速度V=c*q/t
5、测量自行车车轮转过一圈的时间t,则速度V=c/t本里程表是根据第一个原理计算速度的。方案一采用了传感器具体的给出信号采集的方案,而且还增加了了轮圈大小的选择,可以测量多种型号的轮圈,并且对里程显示或者速度显示有选择,使使用者能自由选择显示里程还是速度,方案二比较的简单没有轮子大小的选择,也就说这个系统只能测量一个型号的自行车。其中在传感器方面我们也做出了比较和选择红外光电传感器。把红外对管分别安装在自行车车轮的两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响。开关型霍
6、尔传感器。霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。霍尔传感器的优点是稳定和安装简易,缺点是成本较高。干簧管。干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭合,单片机根据此信号可计算里程、速度等。干簧管的优点是成本低廉和安装简易,缺点是比较脆弱和不够稳定。本里程表选用干簧管,稳定、安装简易。2
7、.3方案选择比较两种方案可以看出,方案一和方案二的大概思路都差不多,只是单片机选择和显示模块不同,而方案一的设计比较具体使用一些,他可以对多种型号的自行车进行检测,二方案二只能测量一种型号的自行车,此外在里程和速度的显示上方案一给出了比较明确的选择,而方案二没有,所以我们选择了方案一做为本次课题的主要研究对象,本文也将注重介绍方案一的设计方法。3单元模块设计 采用STC89C52为控制核心,主要功能模块有:数据采集模块选用干簧管传感器,数据显示选用共阴数码管,里程和速度显示的选择以及轮子大小的设置用开关按钮,超速报警选用蜂鸣器和发光二极管。3.1各单元模块功能介绍及电路设计 为完成自行车里程和
8、速度显示的设计,本系统采用单片机为控制核心,以实现便携式里程速计仪的基本控制功能。系统主要功能内容包括:数据采集、数据处理、超速报警、数据显示等。本系统设计采用功能模块化的设计思想,系统主要分为总硬件和软件的设计两大部分。3.1.1 单元模块功能介绍1 单片机最小系统电路在课题设计的速度控制系统设计中,控制核心是STC89C52单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4K FLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1S。使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路以及存
9、储器选择模式(EA脚的高低电平选择),电路如下图3.1所示:图3.1 单片机最小系统(1)晶振电路单片机工作的过程中各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序,单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准,89c52的时钟产生方式有两种,一种是内部时钟方式,一种是外部时钟方式。内部时钟方式即在单片机的外部接一个晶振电路与单片机里面的振荡器组合作用产生时钟脉冲信号,外部时钟方式是把外部已有的时钟信号引入到单片机内,此方式常用于多片89C52单片机同时工作,以便于各单片机的同步,一般要求外部信号高电平的持续时间大于20ns.且为频率低于12MHz的方波。对于CH
10、MOS工艺的单片机,外部时钟要由XTAL1端引入,而XTAL2端应悬空。本系统中为了尽量降低功耗的原则,采用了内部时钟方式。在89C52单片机的内部有一个震荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振)就构成了自激振荡器并在单片机内部产生时钟脉冲信号,图中电容器C1和C2稳定频率和快速起振,电容值在530pF,典型值是22pF,晶振CYS选择的是12MHz。(2)复位电路 复位的意义单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄
11、存器)内容不确定可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据。因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态。复位电路原理当在89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。2 里程和速度显示的选择以及轮子大小的选择模块(1)轮圈大小的选择电路 图3.2 轮圈大小的选择电路通过对车轮大小的设计,就可以对不同型号的车子的数据进行检测,特别是在硬件设计是原想通过按钮来实现对尺寸大小的选择,但是通过按钮来实现的方式比较复杂,本次设计使用的是双排针来设置,通过
12、P1.4,P1.5,P1.6,P1.7四个口来分别设置轮圈的大小,假设车轮周长为c,则速度V=c*q/t测量自行车车轮转过一圈的时间t,则速度V=c/t本里程表是根据第一个原理计算速度的。通过圈数来统计里程。(2) 里程/速度显示选择电路 图3.3 里程/速度显示选择电路通过一个六脚开关对里程还是速度显示进行准确的选择,P2.6口的开关来确定显示的方式,当开关选择在低电平是时即接地则是共阴数码管显示速度,当开关选择在高电平时即接电源则共阴数码管显示里程。3 测量电路测量电路由干簧管传感器和磁铁组成。干簧管是一种磁敏的特殊开关。它的两个触点由特殊材料制成,被封装在真空 的玻璃管里。只要用磁铁接近
13、它,干簧管两个节点就会吸合在一起,使电路导通。因此可以作为传感器用,用于计数,限位等等。有一种自行车公里计,本次设计是在轮胎上粘上磁铁,在一旁固定上干簧管构成的把磁铁固定在自行车轮子上及跟随轮子的转动而转动,再将干簧管固定在车轮旁边,能与磁铁反应的距离但是不能跟随车轮转动,不然不能计数,每当车轮的磁铁经过干簧管的时候就将干簧管的开关吸合,产生一个数据信号给单片机,这就是对车轮圈数进行采集,通过单片机对此数据信号进行分析计算。4 数据显示电路 图3.4 数据显示电路本次设计使用的是3位的共阴数码管显示器,在设计是注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加
14、上一个小数点,共计8段。因此为显示器提供的编码正好是一个字节。本实验板用共阴显示器。 LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都
15、在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。本次设计使用的是静态显示方式。 5 报警和储存电路(1)报警电路 图3.5报警电路 当自行车速度超过预设值时应及时采取报警措施,实现单频音报警的接口电路比较简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加315V直流工作电压,就能产生3kHZ左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需10mA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,如图3.5所示。P2.7接三极管基极输入端,当P2.7输出高电平“1”时,三极管导通,蜂鸣器的
16、通电而发音,当P2.7输出低电平“0”时,三极管截止,蜂鸣器停止发音。同时本次设计还将发光二极管放在报警电路中,当报警器发声是同时发光二极管也导通而发光亮起来,起到更好的报警效果。(2) 存储电路 图3.6 存储器电路 本次设计使用的是24C01存储器,用于P1.0和P1.1EEPROM的存取控制。CAT24WC01/02/04/08/16 支持I2C 总数据传送协议,I2C 总线协议规定,任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模
17、式,通过器件地址输入端A0 A1 和A2 可以实现将最多8 个24WC01 和24WC02 。 这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0 24WC01 除外。当使用24WC01 或24WC02 时最大可级联8 个器件。如果只有一个24WC02 被总线寻址,这三个地 址输入脚A0 A1 A2 可悬空或连接到电源, 如果只有一个24WC01 被总线寻址,这三个地址输入脚A0,A1,A2 必须连接到电源。当使用24WC04 时最多可连接4个器件,该器件仅使用A1、 A2 地址管脚。A0 管脚未用,可以连接到电源或悬空。如果只有一个24WC04 被总线寻址,A1 和A2 地址
18、管脚可悬空或连接到电源。 当使用24WC16 时最多只可连接1 个器件,所有地址管脚A0 A1 A2 都未用,管脚可以连接到电源或悬空主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址。接下来的3 位(A2 A1 A0)为器件的地址位,用来定义哪个器件以及器件的哪个部分被主器件访问,1个CAT24WC16 可单独被系统寻址。从器件8 位地址的最低位,作为读写控制位1,表示对从器件进行读操作,0表示对从器件进行写操作。在主器件发送起始信号和从器件地址字节后,CAT24WC01/02/04/08/16 监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过SDA 线)。
19、CAT24WC01/02/04/08/16 再根据读写控制位R/W 的状态进行读或写操作。4软件设计本节将介绍本次设计中用到的Altium Designer Winter 09软件、Keil软件4.1软件设计原理及设计所用工具 我们运用Altium Designer Winter 09软件进行PCB制图,用Keil软件进行软件程序编写。4.1.1 制图软件Altium Designer Winter 09 Altium Designer Winter 09 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer Winter 09 在单一
20、设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer Winter 09成为电子产品开发的完整解决方案一个既满足当前,也满足未来开发需求的解决方案Altium 创新电子设计平台集成了广受好评的 Altium Designer Winter 09 一体化电子设计软件和 Altium 可重构硬件平台 NanoBoard 系列。 该方法将器件智能置于设计流程的核心。由此形成了一个完整的一体化电子设计环境,以全新的方式创建和推出智能型关联电子产品。 电子产品开发不再是独立的流程。A
21、ltium Designer Winter 09 统一了整个设计流程,可在单一、集成的设计流环境中管理开发的所有方面。Altium发布了其新一代电子设计解决方案Altium Designer的最新版本Winter 09。Altium持续在市场上推出一系列设计新概念和新技术,开发先进技术,帮助电子产品设计人员更快更好地将设计转化为产品。在最新版本Winter 09中,原来已有的三维PCB设计功能被提升到了一个更高速的新境界。新功能可以让工程师管理从产品设计到制造的过程转换,尝试新的设计技术并得以深度挖掘可编程器件的潜力。新增加的应用控制面板帮助工程师解决了FPGA测试上的难题,并可以远程监控FP
22、GA内的设计。新的即插即用型软件平台搭建器让系统的整合更容易,同时提供在可编程器件的“软”硬件环境里的一系列标准服务以供使用 Altium在最新的版本里扩充了其实时三维PCB设计功能。最新的版本支持三维建模的纹理映射,使设计师能过对设计板和元件进行表面处理。Altium提供增强的过孔功能,并允许在不同信号层上使用不同尺寸的焊盘。过孔的叠加可以支持更高的跟踪密度。工程师还可以通过元件焊盘来实现过孔的偏移。所有上述的增强型功能都提高了PCB设计的精确性,并为设计板布线和可视化提供了新的设计思路通过Altium NanoBoard可重构硬件平台,工程师可以很容易地“整合”出硬件平台上所需的软件服务。
23、这包括了电子设计中常见的设计元素:例如外设,通信模块,和支持正常工作所需要的各种驱动规则(由NanoBoard提供)。这样,基本但是必要的软件模块设计被简化成拖放预先配置软件模块到设计中,工程师得到了解放,能够真正地专注于核心的产品智能设计。软件平台搭建器提供一系列的驱动和软件规则来支持通过NanoBoard设计平台运行的外设。4.1.2 Keil仿真软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大
24、的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。1.系统概述 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。2.Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Is
25、hell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。4.2系统程序设计硬件是控制系统的物质基础,是软件赖以生存
26、的空间和活动场所,没有硬件就没有软件的支持,软件的功能就无从谈起。同样,软件是控制系统的灵魂,其逻辑关系的正确与否直接关系到整个系统是否正确工作。设计硬件后并不意味着设计工作的大功告成,还必须去设计控系统的软件,是硬件能够“活”起来,能够正常的完成既定的控制要求。软件的编写一般根据控制系统既定方案和控制要求来设计程序流程图,这一步是必须的,这样可以使后面程序的编写更具方向性。下面简单介绍一下该程序流程图的编写。4.2.1 主程序流程图系统主程序流程图如图4.1所示:开始初始化设置特殊寄存器、置定时定时常数开中断等待中断设置计数器关键字刷新里程、速度时间等INT0T0定时器秒自加1是否到1秒依次
27、秒、分、时进位中断开始否是中断返回图4.1 主程序流程图4.2.2 主程序设计流程(1) 初始化程序 在本系统初始化程序中,主要完成,将部分内存单元清零,设置轮子周长值,开中断及定时器,将EEPROM中的数据调入内存等。(2) 主程序主程序根据P2.7口的开关状态选择里程显示或速度显示,对14脚输入的圈数脉冲进行计数,为十六进制计数器。每计数一次后,对里程数据进行一次存储操作。(3) EEPROM存储程序本系统使用归一化IC串口存取子程序,使用一条数据线和时钟线,采用ATMEL公司的24C01串口存储器,应用简单方便。(4) 显示子程序当显示里程时,要先将圈数计数器中的数据进行运算,求出里程。
28、当要显示速度时,要将轮子的周长和转一圈的时间相除,然后换算成Km/h单位。最后进行数据的显示5系统调试 进行完硬件设计和软件设计后,剩下的工作就是对所设计的控制系统进行调试了。系统的调试一般也分为两步走,即软件调试和软硬件联合调试。 第一步:软件调试。对于编辑好的软件程序,首先应在编辑的环境下进行编译,检查一下所编辑的程序是否存在语法上的错误。如果有语法方面的错误,一定要认真修改,直到编译结果显示零错误为止。应当指出,尽管最后编译的程序提示没有错误,也不能保证程序完全正确。是否还存在逻辑功能上的错误?能否让控制系统实现预定的功能要求?要想验证这两点就得进行下面第二部的调试。 第二部:软硬件联合
29、调试。前面已指出,硬件是软件的载体,软件是硬件的灵魂,只有两者结合才能实现我们想要的控制功能。首先应该认真检查一遍硬件的线路,如检查一下传感器是否能正常检测,LCD能否正常显示等。这些没有问题后,通过编程器将编译好的程序下载到单片机中去,然后给系统上电,此时系统开始运行。将传感器置于磁铁旁引起传感器反应,然后再经过一段时间在让传感器与磁铁反应,让其有数据信号输出,在系统调试构成中,如果显示部分部分不能正常工作,要认真的从硬件和软件两个方面着手进行故障排查工作,看是软件与硬件逻辑不匹配还是硬件的连接问题,直到问题解决为止。如果显示电路部分工作正常,说明硬件部分设计合理,软件部分设计满足硬件的逻辑
30、控制要求,达到了任务最初既定的控制要求,任务得以成功。6结论 自行车里程/速度计是自行车的功能更齐全和完善,避免因速度过快而引发的安全事故发,它是使生活和锻炼更加有计划的仪器,具有广阔的市场空间与发展前景。 此次设计在对传感器和报警技术进行深入研究的基础上,全面比较国内外同类产品的技术特点,合理地确定系统的设计方案。并对仪器的整体设计和各个组成部分进行了详细的分析和设计。 该里程/速度计是由信号采集电路与单片机控制电路两大部分构成。根据设计要求、使用情况、成本等因素,选用干簧管传感器。该传感器是磁敏感器件。它的灵敏度适中,具有响应与恢复特性好,长期工作稳定性、重现性、不易受环境影响及抗温湿度影
31、响等优点。 在系统单片机控制电路的设计上,采用了 STC89C52 单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。使仪器具有结构简单、性能稳定、体积小、成本低等优点。由于传感器需要在运动状态下工作,温度越高,反应越快,响应时间和恢复时间就越快。为提高响应时间,保证传感器准确地、稳定地工作,需要将传感器的位置加固,避免数据检测不灵敏和不能检测。 在里程/速度计的设计中我们还特意加了报警器,当自行车速度超过一定值时候,发出声音报警。 在此基础上,可以再做适当的功能扩展,如还可以增加GPS导航功能,使自行车在行驶中更加方便于知道自身的位置。7总结与体会
32、 通过这次的课程设计我学到了很多,我们进行了一次较为完整、较规范的课程设计实践,比较系统的巩固了以前所学过的知识,由理论联系实际并结合单片机原理课程来解决实际设计问题,巩固、加深和扩展了有关单片机设计方面的理论知识。在这次的设计中很好的体现了团队合作的重要性,由于这次的设计又要进行实物制作,还要编写程序,也要制作设计报告,一个人完成这一系列的工作是比较困难的,这时,团队的重要性就体现出来了,我们经过分工合作,一人负责一个部分,很快本次设计任务就圆满的实现了。更加重要的是让我们养成了进行科学实验的习惯,在设计过程中一定要注意掌握设计进度,按预定计划完成阶段性的目标,在原理图设计阶段,注意设计计算
33、与结构设计画图交替进行,采用正确的设计方法。在整个设计过程中注意对设计资料和计算数据的保存和积累,保持记录的完整性。 由于这一次设计的实践,我们了解到,知识上的收获重要,精神上的收获更重要,让我们明白了学无止境的道理。我们永远都不应满足于现有的成果,要一次一次的勇攀高峰,通过这次课程设计的实践,我想在我们以后接触类似设计的时候我们会有更好的表现,现在的我已经不再局限于只敢尝试简单的设计了,我会向更加有难度、有深度的设计方向发展,使自己得实践动手能力和本身的知识面不断的提升。 最后,在此衷心感谢谢老师对我们的帮助,从课题的选择,电路的制作,元器件的确定到电路板的制作,程序的编写,功能的实现,老师
34、一步一步指导我们前进,以完成这次的设计工作。8谢词该课程设计是在我们的指导老师密切关心和悉心指导下完成的。老师在课题开题期间、实物制作和报告写作的过程中给予了我们许多指导,他总是以认真负责、一丝不苟的工作态度指出我们不足的地方,他优良的作风和严谨治学的态度深深影响着我,至此,向古老师致以最真挚的感谢和最崇高的敬意!同时我们的组员也是很努力的在完成这次的设计,我们一起在这一个月里一起成长,一起学习,这然让我们再一次懂得了团队合作的重要性。9参考文献1 李光飞、楼然苗.51系列单片机设计实例M.北京航空航天大学出版社,2003年3月 2 张毅刚.单片机原理及应用M.高等教育出版社,20103 王幸
35、之.AT89系列单片机原理与接口技术M.北京航空航天大学出版社,2004年5月 4 朱定华.单片机原理及接口技术M.电子工业出版社,2001年4月 5 赵茂泰.智能仪器原理及应用M.电子工业出版社,2004年2月 6 童诗白.模拟电子技术基础(第四版)M.高等教育出版社,20067 周明德.微型计算机系统原理及应用(第四版) M.清华大学出版社, 2002 8 张洪润.电子线路及应用M.北京:科学出版社, 2002 9 杨宝清.实用电路手册M.北京:机械工业出版社, 200210杜树春.单片机C语言和汇编语言混合编程实例详解M.北京航空航天大学出版社,200611宋素萍、睢丹.基于单片机的室内
36、多功能检测仪的研究J.微计算机信息,2007附录1原理图附录2PCB图附录3实物图附录4主要程序#include "iic.h"/对uchar的宏定义/*Function: void write_byte(uchar add,uchar dat)Description:在24c02某一地址写一位数据Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:add,datOutput;无Return:无Others:*/void write_byte(uchar add,uchar dat);/*Function: wri
37、te_page(uchar *buff,uchar n,uchar add)Description:在24c02某一地址开始,连续写一数组Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:*buff(数组名),n(要写数组的个数),add(开始写的地址)Output;无Return:无Others:采用指针进行数组的读操作*/void write_page(uchar *buff,uchar n,uchar add);/*Function: uchar read_byte(uchar add)Description:从24c02中任
38、一地址读取一位数据(随机读)Calls:iic_star(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:add(读数据的地址)Output;无Return:iOthers:使用随机读的方式,可对芯片内任一地址直接读操作*/uchar read_byte(uchar add);/*Function: uchar read_page(uchar *buff,uchar n,uchar add)Description:从24c02中任一地址开始连续读操作Calls:iic_star(),iic_ack(),iicwr_byte(),iic
39、re_byte(),iic_stop()Input:*buff(数组名),n(要读数组的个数),add(开始读的地址)Output;buffReturn:无Others:此函数之前需要定义一个合适大小的数组,调用本函数后,将24c02中数据读进数组中*/void read_page(uchar *buff,uchar n,uchar add); #include <reg52.h>#include "iic.h"#include "24c02.h"/*Function: void write_byte(uchar add,uchar dat)
40、Description:在24c02某一地址写一位数据Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:add,datOutput;无Return:无Others:*/void write_byte(uchar add,uchar dat)scl = 1; /初始化iic总线sda = 1;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);/写地址上iic_ack();iicwr_byte(dat);/要写的数据iic_ack();iic_stop();/*Function
41、: write_page(uchar *buff,uchar n,uchar add)Description:在24c02某一地址开始,连续写一数组Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:*buff(数组名),n(要写数组的个数),add(开始写的地址)Output;无Return:无Others:采用指针进行数组的读操作*/void write_page(uchar *buff,uchar n,uchar add)uint i; iic_start();iicwr_byte(0xa0);iic_ack();iicwr_b
42、yte(add);iic_ack();for(i=0;i<n;i+)iicwr_byte(buffi);/要写的数据iic_ack(); iic_stop(); /*Function: uchar read_byte(uchar add)Description:从24c02中任一地址读取一位数据(随机读)Calls:iic_star(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:add(读数据的地址)Output;无Return:iOthers:使用随机读的方式,可对芯片内任一地址直接读操作*/uchar read_byte(
43、uchar add)/随机读uchar i;scl = 1; /初始化iic总线sda = 1;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);iic_ack();iic_start();iicwr_byte(0xa1);iic_ack();i = iicre_byte();iic_noack();iic_stop();return i;/*Function: uchar read_page(uchar *buff,uchar n,uchar add)Description:从24c02中任一地址开始连续读操作Calls:iic_s
44、tar(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:*buff(数组名),n(要读数组的个数),add(开始读的地址)Output;buffReturn:无Others:此函数之前需要定义一个合适大小的数组,调用本函数后,将24c02中数据读进数组中*/void read_page(uchar *buff,uchar n,uchar add)uint i;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);iic_ack();iic_start();iicwr_byte(0
45、xa1);iic_ack();for(i=0;i<n;i+)buffi = iicre_byte();if(i!=n-1)iic_ack(); else iic_noack();iic_stop(); #include "reg52.h"#include "smg.h"unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c ,0x39 ,0x5e,0x79,0x71;/sbit wei4 = P10;sbit wei3 = P23;sb
46、it wei2 = P22;sbit wei1 = P21;void delayn(unsigned int xx)unsigned int x,y;for(x=xx;x>0;x-)for(y=110;y>0;y-);void display(unsigned char num)/*wei4 = 0; P0 = tablenum/1000%10;delayn(10);wei4 = 1; */wei3 = 0; P0 = tablenum/100%10;delayn(5);wei3 = 1;wei2 = 0; P0 = tablenum/10%10;delayn(5);wei2 =
47、1;wei1 = 0; P0 = tablenum%10;delayn(5);wei1 = 1; #ifndef _smg_H_#define _smg_H_void delay_nms(unsigned int xx);void display(unsigned char num);#endif #include <reg52.h>#include "24c02.h"#include "smg.h"uchar code shuzu=0x0f,0x12,0x14,0x19; /用数组 /内圈大小unsigned char hour,minut
48、e,second;unsigned char n,count;unsigned long lengthbuf,lengthvalue;sbit moshi=P26;sbit q1=P14;sbit q2=P15;sbit q3=P16;sbit q4=P17;sbit LED=P27;int timer();void Delay0(int Time);void delay1(void)/大约1ms延时,对24C02每读or写操作都有个过程,需要一个短延时uint a=1000;while(a-);void main(void)/uchar i;unsigned char i=0 ;unsign
49、ed int v=0; /运行速度unsigned char l; /内圈大小 unsigned int vnow; /当前速度/unsigned int a,b,c,d; /分别显示速度的十位,个位,十分位,百分位unsigned long quanshu; /定义车轮转动圈数unsigned long length;/length1,length2,length3,length4,length5,length6; /定义运行长度以及长度的各个进位,/unsigned int second1,second2,minute1,minute2,hour1,hour2;TMOD=0x51; /定时器T0,计数器T1,允许外部中断,T1工作方式01,T0工作方式01 TH1=0x00; /计数器T1高位装初值 TL1=0x00; /计数器T1低位装初值 ET1=1; /计数器0开中断 TR1=1; /计数器0开始工作 TH0=0XD8; /T0设置时间常数TL0=0XF0;ET0=1;EA=1;TR0=1;IT1=1; /外部中断1请求触发方式EX1=1;P0=0X00; /P0口装初值,用于LED七段管显示用write_page(shuzu,3,4);/delay1();/等待一下/delay1();/while(1)quansh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同大写金额标准写法
- DB6103T 83-2025巨菌草栽培技术规范
- 产业园区综合服务与物业管理合同
- 2025年环保技术项目研发合同
- 上海居民住房租赁合同细则
- 专利许可使用权转让合同
- 2025年借款合同范本:生活资金周转专用
- 产权清楚的商业车位买卖合同
- 三方人才派遣合同模板
- 互联网众筹合作合同范本(修订)
- 六年级数学上册100道口算题(全册完整版)
- 如愿三声部合唱简谱
- 高三数学开学第一课
- 水生野生动物保护与管理
- 115个低风险组病种目录
- 系统解剖学考试重点笔记
- 暖通空调基础知识及识图课件
- 防渗墙工程施工用表及填写要求讲义
- 交通信号控制系统检验批质量验收记录表
- 校园信息化设备管理检查表
- 新版抗拔桩裂缝及强度验算计算表格(自动版)
评论
0/150
提交评论