自行车测速仪的设计毕业论文


    XX大学邮电与信息工程学院 毕业设计(论文) 自行车测速仪的设计 Design of the Bicycle Speedometer 学生姓名 ********* 学 号 ********** 专业班级 ********* 指导教师 ********** 2013年X月 作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归XX大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: 年 月 日 摘 要 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车测速仪能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程、时间、温度等物理量。本论文主要阐述一种基于霍尔元件的自行车测速仪的设计。 本文以STC89C54RD+单片机为核心,霍尔传感器测转数,实现对自行车里程、速度、时间、温度的测量统计,能将自行车的里程及速度用LCD实时显示。文章详细介绍了自行车测速仪的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送LCD显示。软件部分用C语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,已达到设计目标。 关键词:速度;温度;霍尔元件;单片机 目 录 第1章 绪论 1 1.1 国内外自行车测速仪的发展现状及趋势 1 1.2 本论文的研究内容 2 第2章 自行车测速仪的总体设计方案 4 2.1 单片机选型 4 2.1.1 单片机介绍 4 2.1.2 单片机性能比较 4 2.1.3 最终方案 5 2.2 测速传感器选型 5 2.2.1 测速传感器的介绍 5 2.2.2 测速传感器的比较 6 2.2.3 最终结论 6 2.3 温度传感器选型 7 2.3.1 温度传感器介绍 7 2.3.2 温度传感器性能比较 8 2.3.3 最终方案 9 2.4 显示器选型 9 2.4.1 显示器介绍 10 2.4.2 显示器性能 10 2.4.3 最终方案 11 2.5 时钟芯片的选型 12 第3章 硬件设计 13 3.1 单片机外围电路 13 3.1.1 单片机的介绍 13 3.1.2 单片机外围电路图 15 3.2 速度模块的设计 15 3.2.1 霍尔元件的介绍 16 3.2.2 霍尔传感器硬件电路图 17 3.3 温度模块的设计 18 3.3.1 温度传感器的介绍 18 3.3.2 DS18B20硬件电路图 21 3.4 时钟模块的设计 22 3.4.1时钟芯片的介绍 22 3.4.2 DS1302硬件电路图 25 3.5 显示模块的设计 25 3.5.1 LCD芯片介绍 26 3.5.2 LCD硬件电路图 27 第4章 软件设计 28 4.1 主程序设计 28 4.2 计算速度里程程序设计 29 4.3 温度显示程序设计 30 4.4 时钟芯片程序设计 30 4.5 LCD1602软件设计 32 4.5.1 LCD1602时序介绍 32 4.5.2 LCD1602具体软件设计 33 第5章 测试 35 5.1 Proteus及Keil软件简介 35 5.1.1 Proteus软件 35 5.1.2 Keil软件 35 5.2 应用Keil软件进行程序调试 36 5.3 Proteus软件仿真 36 5.4 硬件软件联合调试 37 5.4.1 联调步骤 37 5.4.2 硬件静态调试 38 第6章 结论与展望 40 致谢 41 参考文献 42 附录1 PROTREUS仿真图 43 附录2 源程序 44 第1章 绪论 自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。本设计采用了STC89C54RD+系列单片机设计一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走的距离及运行的速度。 1.1 国内外自行车测速仪的发展现状及趋势 随着微型计算机可靠性提高和价格下降,用单片机测量电机转速技术已经成熟,但是这种技术目前主要还是用于工业生产方面,测速装置用于生活中还是少之又少。欲提高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求,必须采用数字测速的方法。转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法)。 由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场份额是较为稳定的,每年的增长率基本上保持在5%到10%之间。因为各种应用电机的部件、节气门位置的检测、各种阀体位置的检测、或者电磁感应的位置都会用到霍尔传感器。而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的使用量。随着它在电子消费市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战。而且,它还面临生产测试技术方面的挑战。 国内外现在已经有生产销售类似的自行车测速仪里程表,有些简单的产品功能比较单一,就是单单只有测速或里程的功能,然而一些复杂的产品除了测速和里程功能外,还集成了GPS全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。未来的发展趋势可能还将加入MP3和短信收发、新闻播报、通讯功能等,使得自行车测速仪更加的人性化、现代化、生活化。相信未来的测速仪会受到更多人的青睐,也将成为人类社会生活中的必需品。 1.2 本论文的研究内容 本课题主要是利用霍尔元件、单片机等部件设计一个可用LCD液晶显示器实时显示里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。 本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本次设计进行了系统的总结。 具体的硬件电路包括STC89C54RD+单片机的外围电路以及LCD显示电路等。软件设计包括:芯片的初始化程序、定时中断采样子程序、显示子程序等,软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。控制系统的方案设计框图如图1.1所示。 速度传感器 单片机 显示器 按键 时钟芯片 温度传感器 图1.1系统框图 第2章 自行车测速仪的总体设计方案 自行车测速仪是基于单片机的测速系统,该系统包括转速测量模块,温度测试模块,显示模块和电源模块。 2.1 单片机选型 单片机是自行车测速仪的核心部分,是决定各项设计指标的关键因素,不同的单片机有着不同的优势及其各自的缺点,我们要通过分析论证来选取相对于该设计来讲相对较优的方案。 2.1.1 单片机介绍 AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,AT89C52单片机适合于许多较为复杂控制场合应用。 STC89C54RD+是由深圳宏晶科技生产的低功耗,高性价比的单片机。采用8051的内核,与其他大部分单片机兼容,并且功能比普通的单片机强大,存储器(包括数据存储器和程序存储器)容量比普通的51 单片机更大,程序存储器主要采用flash存储器,可方便的擦写程序,同时还带一个8位的A/D转换器,最主要的是它采用ISP在线编程,配备了专门的程序下载软件,可直接通过串口将程序下载大单片机的flash程序存储区,并且掉电后不会丢失,用途非常广泛。 2.1.2 单片机性能比较 AT89C52片内含8K Bytes的可反复擦写的只读程序存储器(EPROM)和256 字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,AT89C52单片机适合于许多较为复杂控制场合应用。 STC89C54RD+具有16K在系统可编程Flash 存储器和1280B的随机存取数据存储器。片内程序存储器内含16KB的Flash程序存储器,片内数据存储器内含1280字节的RAM,具有3个可编程定时器,具有32根可编程I/O口线,串行口是具有一个全双工的可编程串行通信口,中断系统是具有8个中断源、4个级优先权的中断结构,具有一个数据指针DPTR,低功耗工作模式有空闲模式和掉电模式,具有可编程的3级程序锁定位,STC89C54RD+工作电源电压典型值为5V,STC89C54RD+工作频率为0~80MHz。 2.1.3 最终方案 就兼容性来讲,两种单片机都兼容51单片机,从存储容量来讲STC89C54RD+具有更大的存储容量,可以存储更多的数据,换句话来说,自行车可以行驶更远的距离。就价格和功耗来说,STC89C54RD+具有低功耗,正好满足现在的低碳理念,STC89C54RD+是国产的,而AT89C52是美国进口的,故STC89C54RD+更加便宜,选STC89C54RD+可以降低系统的成本。所以本文选用STC89C54RD+单片机作为本系统的控制核心。 2.2 测速传感器选型 测速传感器是自行车重要的硬件部分,它对被测物的运行速度进行测量并转化成可输出信号的传感器。测速传感器包括测量线速度传感器和测量转速度传感器。而测量转速的方式很多,常见的有:霍尔传感器(例如你提到的那一种)、光电传感器(还分反射式与透射式)、以旋转编码器等等。 2.2.1 测速传感器的介绍 LG-916传感器,由投光部、受光部及放大器组成的一体构造,从传感器发出光(红外线),照到旋转轴上产生反射光,再检测这个反射光的非接触式转速传感器。 霍尔传感器44E系列是Allegro MicroSystems公司生产的宽温、开关型霍尔效应传感器,其工作温度范围可达-40℃~150℃。它由电压调整电路、反相电源保护电路、霍尔元件、温度补偿电路、微信号放大器、施密特触发器和OC门输出极构成,通过使用上拉电阻可以将其输出接入CMOS逻辑电路。在测量、自动化、计算机和信息技术等领域得到广泛的应用。 2.2.2 测速传感器的比较 用LG-916传感器,从传感器发出光(红外线),照到旋转轴上产生反射光,再检测这个反射光的非接触式转速传感器。在旋转轴上通常要贴反射标签,LG-916是在其尖端部使用玻璃纤维束,其玻璃纤维束发出红外线光,同时接受反射回来的光。传感器内装小型放大器,对波形整形为矩形波输出。经过信号处理后输出到计数器或其他的脉冲计数装置,进行转速的测量。最大测量距离20mm (使用12mm见方专用反射标签)。 霍尔效应原理,将一块永久磁钢固定在电机转轴上的转盘边沿,转盘随侧轴旋转,磁钢也将跟着同步旋转,在转盘下方安装一个霍尔器件,转盘随轴旋转时,受磁钢所产生的磁场的影响,霍尔器件输出脉冲信号,其频率和转速成正比。脉冲信号的周期与电机的转速有式1.1关系: V=N×L (1.1) 式中:V为自行车车速;N为车轮单位时间内的脉冲数;L车轮的周长。根据上式即可计算出自行车当前的速度。 2.2.3 最终结论 综上所述,LG-916传感器要用玻璃纤维束发出红外线光,玻璃纤维束比较脆,很容易坏,不便长期使用,而且最大测量距离20mm (使用12mm见方专用反射标签),测量距离太短,再加上反射标签面积较小,易脱落,不利于固定,不能长期使用;而霍尔器件作为一种转速测量系统的传感器,它有结对磁场敏感、结构简单、体积小、频率响应宽、输出电压变化大、结构牢固、重量轻、寿命长、安装方便等优点,故本文采用霍尔传感器检测脉冲信号。 2.3 温度传感器选型 温度传感器是自行车测速仪体格拓展功能的重要硬件,温度传感器是利用物质各种物理性质随温度变化的规律把温度转换为电量的传感器。由于品种繁多,所以在工业应用中温度传感器分类的方式方法有很多种。 2.3.1 温度传感器介绍 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 AD590是AD公司利用PN结正向电流与温度的关系制成的电流输出型两端温度传感器。适用于150°C以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿。除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量。 2.3.2 温度传感器性能比较 DS18B20可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 其主要特点如下: (1)独特的单线接口仅需要一个端口引脚进行通信。 (2)多个DS18B20可以并联在惟一的总线上,实现多点组网功能。 (3)可通过数据线供电,电压范围为3.0~5.5V。 (4)测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)0.5℃。 (5)零待机功耗。 (6)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。 (7)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 AD590在4V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1µA/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25°C)时输出298.2 µA电流。适用于150°C以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿。除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量。AD590具有如下特征: (1)流过器件的电流(μA) 等于器件所处环境的热力学温度(开尔文) 度数如下式1.2: Ir/T=1 (1.2) 式中,Ir—流过器件(AD590) 的电流,单位为μA;T—热力学温度,单位为K; (2)AD590的测温范围为- 55℃~+150℃; (3)AD590的电源电压范围为4~30 V,可以承受44 V正向电压和20 V反向电压,因而器件即使反接也不会被损坏; (4)输出电阻为710 mΩ; (5)精度高,AD590在- 55℃~+-150℃范围内,非线性误差仅为±0.3℃。 2.3.3 最终方案 从电路的构造上来讲,AD590需要模拟转数字电路,电路繁多,而DS18B20只需要一个元件,电路简单;从测量精度和测温点数上来说,AD590测量精确度较差,测温点数量少,而DS18B20采用单总线的构造,可同时连接多个温点;从信号线的长度来讲,AD590对线阻有要求,不适合长距离传输,而DS18B20信号线距离远,适合长距离传输;从成本的角度来说,DS18B20比AD590便宜,用DS18B20可以减少成本,虽然DS18B20温度范围只能在-55℃~+125℃之间,但是用来测量自行车行驶时的环境温度已经足够了。总体来说DS18B20的优点都是弥补AD590的缺点的,故本文采用DS18B20温度传感器为本设计的测温芯片。 2.4 显示器选型 显示器是自行车测速仪的重要组成部分,没有显示器,系统测出的参数,将无法显示,供使用者得知,显示器的性能不行,显示的位数不够,将无法达到测量精度,所以显示器的选取至关重要。 2.4.1 显示器介绍 深圳市晶美光电科技有限公司是一家集研发、设计、生产、销售于一体,专业研制生产数码管,LED数码管。led数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。 用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶 2.4.2 显示器性能 LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。性能:防水,防尘,防紫外线,耐压,耐破裂,耐高低温,耐燃,超强抗冲击老化;防护等级:IP65级;工作电压范围:24V~220V;工作功率:8~12W;工作环境:-40度~+75度。正常寿命:>80,000小时。 图2.1 LED外形图 图 2.2 LCD1602外形图 1602采用标准的16脚接口,其中:第1脚:VSS为电源地。第2脚:VCC接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.3V或5V工作电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM,微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。 2.4.3 最终方案 完全用数码管做显示,该方案要求至少2排6位数码管,占空间,不适合便携式设备,耗费资源多;而1602一般只用于显示字母、数字和符号能显示16×2个字符,具有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单,价格低廉。由于考虑到设计中不需汉字显示且显示字符足够。因此,系统采用1602液晶显示。 2.5 时钟芯片的选型 时钟芯片是自行车测速仪的重要器件,整个系统能否正常运行取决于时钟芯片的时钟设置,要让系统按照单片机上的程序运作,首先要设置好时钟,下面就来介绍本系统时钟芯片的选取。 时钟芯片种类非常多,有内置晶振及充电电池类型,还有外置晶振类型,如现在流行的DS1302、 DS1307、PCF8485、SB2068等等。由于DS1302时钟芯片的电路接口简单,价格低廉、使用方便,被广泛地采用。在系统中采用了DS1302时钟芯片,该实时时钟电路是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,采用普通32.768kHz晶振。 DS1302时钟芯片是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 第3章 硬件设计 系统主要分成四个模块,分别是速度模块、温度模块、时钟模块、显示模块。温度及速度模块通过外部传感器对相应参数进行测量,将物理信号转换为电信号输入单片机,单片机对输入的电信号进行处理,最后通过显示器输出显示 3.1 单片机外围电路 单片机部分是本设计的核心部分,单片机部分设计的好坏将直接影响整个设机的工作情况,所以单片机的选择和电路的设计非常重要。本节将从单片机的介绍和单片机外围电路的设计两个部分进行介绍。 3.1.1 单片机的介绍 STC89C54RD+具有16K在系统可编程Flash 存储器和1280B的随机存取数据存储器。 (1)片内程序存储器内含16KB的Flash程序存储器; (2) 片内数据存储器内含1280字节的RAM; (3) 具有3个可编程定时器; (4) 具有32根可编程I/O口线; (5) 串行口是具有一个全双工的可编程串行通信口; (6) 中断系统是具有8个中断源、4个级优先权的中断结构; (7) 具有一个数据指针DPTR; (8) 低功耗工作模式有空闲模式和掉电模式; (9) 具有可编程的3级程序锁定位; (10) STC89C54RD+工作电源电压典型值为5V; (11) STC89C54RD+工作频率为0~80MHz。 STC89C54RD+单片机为40 脚双列直插封装的8 位通用微处理器,如图3.1所示,按其引脚功能分为四部分,下面对其进行简单的介绍。 (1) 主电源引脚VCC和VSS; (2) 外接晶体引脚XTAL1和XTAL2; (3) 控制或与其它电源复用引脚RST、ALE、PSEN和EA/VPP; (4) 输入/输出(I/O)引脚P0、P1、P2、P3(共32根)。 P0口是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载,故在使用P0口作为输入/输出口时需在外界接入上拉电阻。P1口是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2捕捉、重装触发,即T2外部控制端。对Flash编程和程序验证时,它接收低8位地址。 P2口是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对Flash编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。P3口是准双向8位I/O口,在MCS-51中,这8个引脚还有其第二功能,是复用双功能口。P3能驱动4个LS型的TTL负载。 图3.1 STC89C54RD+引脚图 3.1.2 单片机外围电路图 单片机外围电路图如图3.2所示。由于设计采用STC单片机,此系列单片机具有掉电自动复位的功能,所以在单片机中并未设计复位电路。且在仿真中,单片机晶振在其属性中可调,即在仿真电路中没有晶振电路。但是在实际的硬件电路中晶振必须要接入。因此,系统采用12MHz的晶振。图中的两个按键是调节时钟芯片的时间。由于在仿真图中并没有霍尔元件可功模拟,即在P3.2接入数字激励源,代替了实际的电路中的霍尔传感器。 图3.2 单片机外围电路图 3.2 速度模块的设计 速度模块是本设计不可缺少的部分,速度模块设计的好坏直接将影响本设计的测试结果,所以测速芯片及电路的选择尤为重要。本节将从两个方面进行讲解,分别为:霍尔元件的介绍和霍尔元件的硬件电路电路。 3.2.1 霍尔元件的介绍 根据霍尔效应,人们用半导体材料制成的元件叫霍尔元件。该芯片具有尺寸小、稳定性好、灵敏度高等特点。A3144E系列单极高温霍尔效应集成传感器是由稳压电源,霍尔电压发生器,差分放大器,施密特触发器和输出放大器组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压讯号。它是一种单磁极工作的磁敏电路,适用于矩形或者柱形磁体下工作。可应用于汽车工业和军事工程中。霍尔传感器的外形图和与磁场的作用关系如图3.3所示。 a 霍尔元件和磁钢 b 管脚图 图3.3 霍尔传感器的外形图 磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。霍尔传感器测量原理及转速测量方法如下: 1. 霍尔传感器测量原理 测量电机转速的第一步就是要将电机的转速表示为单片机可以识别的脉冲信号,从而进行脉冲计数。霍尔器件作为一种转速测量系统的传感器,它有结构牢固、体积小、重量轻、寿命长、安装方便等优点,因此选用霍尔传感器检测脉冲信号,其基本的测量原理如图3.4所示,当电机转动时,带动传感器运动,产生对应频率的脉冲信号,经过信号处理后输出到计数器或其他的脉冲计数装置,进行转速的测量。 图3.4霍尔传感器测量原理 2. 转速测量方法 转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法)。系统采用了第一种方法(测频法)。由于转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动。根据霍尔效应原理,将一块永久磁钢固定在自行车的轮毂上,随着自行车轮子的转动,磁钢也随着轮子同步转动,在自行车车体上安装一个霍尔传感器,当车轮转动时,受磁钢的影响霍尔传感器会输出脉冲信号,其频率和转速成正比。脉冲信号的周期与电机的转速有试(1.1)关系: V=N×L (1.1) 式中:V为自行车车速;N为车轮单位时间内的脉冲数;L车轮的周长。根据上式即可计算出自行车当前的速度。 霍尔器件是由半导体材料制成的一种薄片,在垂直于平面方向上施加外磁场B,在沿平面方向两端加外电场,则使电子在磁场中运动,结果在器件的两个侧面之间产生霍尔电势。其大小和外磁场及电流大小成比例。霍尔开关传感器由于其体积小,无触点,动态特性好,使用寿命长等特点,故在测量转动物体旋转速度领域得到了广泛应用。 3.2.2 霍尔传感器硬件电路图 霍尔传感器的的硬件电路图如图3.5所示,可测量外界磁信号。车轮每转一圈,则霍尔传感器能感应到固定在车轮上磁钢发出的信号。其中out引脚为霍尔传感器的脉冲输出引脚,且必须接入上拉电阻。 图3.5 霍尔传感器的电路图 3.3 温度模块的设计 温度模块是本设计的拓展部分,但同样也是重要的部分,本节将从温度传感器的介绍以及DS18B20的硬件电路图两个部分进行阐述。 3.3.1 温度传感器的介绍 DS18B20引脚如图3.6所示。 图3.6 DS18B20 DS18B20引脚定义如下: (1) DQ为数字信号输入/输出端; (2) GND为电源地; (3) VCC为外接供电电源输入端(在寄生电源接线方式时接地)。 DS18B20数据部件: (1) 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是DS18B20的地址序列码。 (2) DS18B20中的温度传感器可完成对温度的测量,如表3.1所示,以0.0625℃/LSB形式表达,其中S为符号位。 表3.1 DS18B20温度值格式表 LS Byte bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 26 25 24 23 22 21 20 2-1 MS Byte bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 S S S S S S S S 这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。 例如+125℃的数字输出为07D0H,-25.0625℃的数字输出为FF6FH。表3.2为DS18B20温度对照表。 表3.2 DS18B20温度对照表 TEMPERATURE DIGITAL OUTPUT (Binary) DIGITAL OUTPUT (Hex) +85.5℃ 0000 0000 1010 1010 00AAh +25.0℃ 0000 0000 0011 0010 0032h +0.5℃ 0000 0000 0000 0001 0001h 0℃ 0000 0000 0000 0000 0000h -0.5℃ 1111 1111 1111 1111 FFFFh -25.0℃ 1111 1111 1100 1110 FFCEh -55.0℃ 1111 1111 1001 0010 FF92h DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如图3.7所示。其中温度信息(第1,2字节)、TH和TL值(第3,4字节)、第6~8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。 温度灵敏元件 低温触发器TL 高温触发器TH 配置寄存器 存储器和控制器 8位CRC生成器 高速缓存储存器 64位ROM和单线接口 电源检测 图3.7 DS18B20内部储存器结构图 根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。后面还要具体讲述复位、读和写的时序。ROM指令表明了主机寻址一个或者多个DS18B20中的某个或某几个,或者读取某个DS18B20的64位地址。RAM指令用于主机对DS18B20内部RAM的操作。指令集如表3.3和表3.4所示。 表3.3 RAM指令表 指令 约定代码 100功能 温度转换 44H 启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节ROM中。 读暂存器 0BEH 读内部RAM 9字节内容。 写暂存器 4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节数据。 复制暂存器 48H 将RAM的第3、4字节的内容复制到EEPROM中。 重读EEPROM 0B8H 将EEPROM中的内容复制到RAM中的第3、4字节。 读供电方式 0B4H 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。 表3.4 ROM指令表 指令 代码 操作说明 温度转换 44H 开始启动DS18B20温度转换 读ROM 33H 读ROM内容 匹配ROM 55H 对指定器件操作 跳过 CCH 跳过器件识别 读暂存器 BEH 读暂存器内容 写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到ROM 重写调用RAM B8H 把RAM中的TH、TL字节写到暂存器TH、TL字节 3.3.2 DS18B20硬件电路图 DS18B20的电路图如图3.8所示,是测量外界环境温度的模块。通过串行通信将数据送至单片机处理并显示,其中DQ是串行数据输出口,必须加入一上拉电阻。VCC和GND分别接入的是电源和接地。电路连接简单,但由于数据输出口只有一个,所以编程比较复杂。 图3.8 DS18B20电路图 3.4 时钟模块的设计 时钟模块式本设计运作的非常重要的部分,本设计各个部分的工作的先后顺序,各个部分的配合都需要时钟模块的统一调配,时钟模块在本设计中有着不可取代的地位。本结将从时钟芯片DS1302的介绍和DS1302硬件电路两个方面进行介绍。 3.4.1时钟芯片的介绍 DS1302的引脚排列,其中VCC1为主电源,VCC2为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端,后面有详细说明,SCLK为时钟输入端。DS1302的引脚功能图如图3.9所示。 图3.9 DS1302引脚图 DS1302控制字如表3.5所示。 表3.5 DS1302控制字 7 6 5 4 3 2 1 0 1 RAM A4 A3 A2 A1 A0 RD (1) 控制字的最高有效位位7:必须是逻辑1,如果它为0,则不能把数据写入到DS1302中; (2) 位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据; (3) 位5至位1(A4~A0):指示操作单元的地址; (4) 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。 DS1302有关日历、时间的寄存器如表3.6所示。 表3.6 DS1302日历、时间寄存器 R W BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 RANGE 81h 80h CH 10Seconds Seconds 00-59 83h 82h 10Minutes Minutes 00-59 85h 84h 12/24 0 10 Hour Hour 1-12/0-23 AM/ PM 87h 86h 0 0 10Date Date 1-31 89h 88h 0 0 0 10Mon Mon 1-12 8Bh 8Ah 0 0 0 0 0 Day 1-7 8Dh 8Ch 10Year Year 00-99 8Fh 8Eh WP 0 0 0 0 0 0 0 — 91h 90h TCS TCS TCS TCS DS DS RS RS — 表3.6是DS1302内部的7个与时间、日期有关的寄存器图和一个写保护寄存器,我们要做的就是将初始设置的时间数据写入这几个寄存器,然后再不断地读取这几个寄存器来获取实时时间。这几个寄存器的说明如下: (1) 秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当初始上电时该位置为1,时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开始运行; (2) 小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是为1时,表示PM。在24小时模式时,位5是第二个小时十位; (3) 控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在对任何的时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。 所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表3.7所示。 表3.7 DS1302的工作模式寄存器 工作模式寄存器 读寄存器 写寄存器 时钟突发模式寄存器 CLOCK BURST BFh BEh RAM突发模式寄存器 RAM BURST FFh FEh DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短时,就可以用漏电较小的普通电解电容器代替。100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。 3.4.2 DS1302硬件电路图 DS1302电路图如图3.10所示,是系统的时钟模块,可实时的显示时间。实际的DS1302引脚图与仿真图中的引脚排列不同。但所仿真的功能基本一样,只是仿真图的排列方式更便于电路的连接。图中X1(引脚2)与X2(引脚3)所接入的是晶振,晶振的振荡频率为32768Hz。 图3.10的VCC1(引脚1)和VCC2(引脚8)都是电源引脚,在实际电路中,VCC1接入5V电源,VCC2接入电压为3V的纽扣电池。 图3.10 DS1302电路图 3.5 显示模块的设计 显示模块是本设计的重要部分,本节将从两个方面对显示模块进行介绍,首先将介绍LCD1602芯片的特性及其优点,稍后将介绍LCD1602 的外部电路图。 3.5.1 LCD芯片介绍 1602液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。显示器都是数字式的,单片机系统的接口更加简单可靠,操作更加方便。通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。LCD接口如表3.8所示。 (1)显示容量:16×2个字符; (2)芯片工作电压:4.5—5.5V; (3)工作电流:2.0mA(5.0V); (4)模块最佳工作电压:5.0V; (5)字符尺寸:2.95×4.35(W×H)mm。 表3.8 LCD引脚及引脚说明 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 3.5.2 LCD硬件连接图 图3.11 LCD电路连接图 图3.11中引脚3(VEE)为液晶显示偏压,主要是用来调节显示屏的亮度,在仿真电路中不需接入电位器,但是在实际的硬件电路连接图中必须要接入电位器来调节显示亮度,否则LCD无法正常显示。 在仿真图中LCD1602元件是只有14个引脚,而实际的LCD1602是16个引脚。仿真图中的LCD元件所缺少的是BLA(第15引脚)与BLK(第16引脚)。而在实际电路中这两个引脚也是必须要分别接到电源正极和电源负极上。否则LCD显示屏亮度不足以正常显示数据的。 第4章 软件设计 软件设计是本课题的控制核心部分,可以说软件和硬件是相辅相成的,光有软件没有硬件,本系统无法运作;光有硬件没有软件,本系统无法运作。本课题软件设计包括三部分,分别为:计算速度里程程序设计、温度显示程序设计和时钟芯片程序设计。下面便逐一介绍本系统的各部分软件的设计。 4.1 主程序设计 软件设计根据实际的工艺要求进行编写,要求是将DS18B20温度传感器、霍尔传感器、DS1302参数值送到单片机中,再由它将温度值、时间、速度等参数送至LCD显示器中进行显示。 主程序工作过程如图4.1所示。 初始化 开中断 温度,时钟工作 计算速度里程 显示时间温度速度里程 开始 图4.1 主程序流程图 4.2 计算速度里程程序设计 当单片机获取霍尔到传感器所感应的脉冲个数时,不能立马算出自行车的速度和里程,要经过数学计算后才能得出,系统中所默认车轮的直径为2.2m,使用者是可以根据自己的自行车直径更改程序里的数据。但是由于理论知识水平有限,没能成功设计有外界输入设定使用者的自行车车轮的直径数。本设计根据单片机每秒钟接收的脉冲个数来计算自行车的速度。再将每秒的速度相加,就可得出自行车的里程。在Proteus上仿真得到的结果与计算结果完全相同。 程序设计流程图如图4.2所示。 读秒寄存器个位 判断是否一秒 读计数器 开计数器 是 否 子程序开始 子程序结束 开始计数 关计数器 计算速度里程 图4.2计算速度里程流程图 4.3 温度显示程序设计 温度传感器采用DS18B20进行温度测试,并通过LCD1602进行显示。由于DS18B20数据输出线只有一条,所以必须采用一位读取,读取到的温度值分别存入高八位和低八位寄存器中。输出显示时必须将十六进制数值转换成十进制并输出到LCD显示屏中。 程序流程图如图4.3所示。 准备 初始化 复位 写命令 读温度 显示 计算 图4.3温度显示流程图 4.4 时钟芯片程序设计 时钟芯片采用的是DS1302,该时钟芯片内置年、月、日、星期、时、分、秒寄存器。可将时间数据分别存储到各个寄存器中,有外置晶振作为芯片的时钟周期,外部晶振的频率为32.768KHz使其工作频率与时间对应。在读取时间时,可从各个时间寄存器当中读取数据,然后进行显示。调时功能是通过脉冲检测,每当按键按下一次,该数据口电平为零,数据加一。由于按键按下去或者松手是有颤抖现象的,需进行去抖和松手检测,统称去抖。一般进行去抖和松手检测有两种方法:一、硬件去抖;二、软件去抖。由于硬件去抖电路复杂繁琐,所以设计中采用了软件去抖法,该法是通过软件延时的方法,软件去抖法是将颤抖时间用延时给掩盖,以近似的将颤抖现象去除。由于设计时欠考虑,所以调时按键只设计了2个,分别为“小时”和“分钟”,按键只能一直“加一”直至为0,而未设计“减一”按键。后来在调试当中发现比较麻烦,未实现人性化的设计要求。 时间显示和调试控制程序流程图如图4.4所示。 准备 初始化 复位信号置0 时钟脉冲信号置0 数据读取 复位信号置1 时钟脉冲信号置1 显示 数据分离并转换 结束 准备 按键 数据读取 初始化 松手检测 数据加一 数据分离并转换 结束 显示 图4.4 时间显示和调试控制程序流程图 4.5 LCD1602软件设计 LCD1602软件设计是本系统软件设计的一个重要部分,只有对其进行软件的编程,LCD1602才能正常使用,以完成显示本设计各个参数的功能。LCD1602软件设计包括两部分,分别为:LCD1602时序介绍和LCD1602具体软件设计,下面将分别介绍这两方面。 4.5.1 LCD1602时序介绍 如图4.5为LCD1602读操作时序图。 图4.5 LCD1602读操作时序图 如图4.6为LCD1602写操作时序图。 图4.6 LCD1602写操作时序图 如表4.1为LCD1602时序参数。 表4.1 LCD1602时序参数 时序参数 符号 极限值 单位 测试条件 最小值 典型值 最大值 E信号周期 t 400 --- --- ns 引脚E E脉冲宽度 t 150 --- --- ns E上升沿/下降沿时间 t、t --- --- 25 ns 地址建立时间 t 30 --- --- ns 引脚E、RS、R/W 地址保持时间 t 10 --- ---- ns 数据建立时间(读操作) t --- --- 100 ns 引脚DB0~DB7 数据保持时间(读操作) t 20 --- --- ns 数据建立时间(写操作) t 40 --- --- ns 数据保持时间(写操作) t 10 --- --- ns 4.5.2 LCD1602具体软件设计 LCD1602软件设计是本系统软件设计的重要部分,如图4.7为LCD1602液晶显示器的软件设计流程图,根据此图可清楚的看到LCD1602液晶显示器的工作流程,由此便可轻松的对LCD1602进行编程,以实现实时显示速度、里程、温度及骑车时间。 继续扫描并发出警报 开始 LCD1602初始化 按下或卡接近? 扫描按键 延时消抖 确定键值 密码正确? 释放按键? 键值转化为ASII码,存入寄存器 键值入栈保护 结束 显示 LCD1602写命令 扫描卡的有效性 N N N N Y Y Y Y Y 图4.7 LCD1602液晶显示器的软件设计流程图 第5章 测试 测试是本设计的一个重要部分,它能检验改设计是否能够达到预期的性能指标,确定方案的可行性。以下就来介绍仿真软件和仿真测试方法。 5.1 Proteus及Keil软件简介 5.1.1 Proteus软件 Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如LED、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。 5.1.2 Keil软件 KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Uvision与Ishell分别是C51 for Windows和For Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(ABS。ABS文件由OH51转换成标准的Hex文件,以供调试器DScope51或TScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 5.2 应用Keil软件进行程序调试 软件的调试必须在开发系统的支持下进行。先分别调试通过各个模块程序,然后调试中断服务程序,最后调试主程序,将各部分连接进行调试。调试的范围可以由小到大,逐步增加,必要的中间信号可以先做设定。通常交叉使用单步运行,断点运行,连续运行等多种方式,每次执行完毕后,检查CPU执行现场,RAM的有关内容,I/O接口的状态等。发现一个问题,解决一个问题,直至全部通过。 首先新建一个工程项目文件;其次为工程选择目标器件;再次为工程项目设置软硬件调试环境;并创建源程序文件并输入程序代码,及保存创建的源程序项目文件;最后把源程序文件添加到项目中。 5.3 Proteus软件仿真 原理图是在原理图编辑窗口中的蓝色方框内绘制完成的,通过文件中的新建设计选项,可以调整原理图设计页面大小。绘制原理图时首先应根据需要选取元器件,Proteus库中提供了大量元器件原理图符号,利用Proteus的搜索功能能很方便地查找需要的元器件。 首先根据需要选择器件。单击元器件列表窗口上边的按钮P,弹出如图3-1所示元器件选择窗口。在该窗口左上方的关键字栏内键入STC89C54RD+,窗口中间的结果栏将显示出元器件库中所有STC89C54RD+单片机芯片,选择其中的STC89C54RD+,窗口右上方将显示出STC89C54RD+图形符号,同时显示该器件的虚拟仿真模型,单击确定按钮后,STC89C54RD+ 将出现在器件列表窗口。照此方法选择所有需要的元器件。 器件选择完毕后,就可以开始绘制原理图了。先用鼠标从器件选择窗口选中需要的器件,预览窗口将出现该器件的图标。再将鼠标指向编辑窗口并单击左键,将选中的器件放置到原理图中。 放置电源和地线端时,要从终端按钮栏中选取。在两个元器件之间进行连线的方式 很简单,先将鼠标指向第一个器件的连接点并单击左键,再将鼠标移到另一个器件的连接点并单击左键,这两个点就连接到一起了。对于相隔较远,直接连线不方便的器件,可以用标号的方式进行连接。 连接后的部分硬件电路参见附录。 5.4 硬件软件联合调试 硬软件联调是测试的核心步奏,本节将介绍硬软件联调的方法步奏。 5.4.1 联调步骤 第一步安装Keil与Proteus。 第二步把Proteus安装目录下VDM51.dll文件复制到Keil安装目录的C51 BIN 目录中。 第三步修改Keil安装目录下Tools.ini文件, 在C51字段加入 TDRV5=BINVDM51.DLL(Proteus VSM Monitor-51 Driver)打开Proteus,画出相应电路。在Proteus 的Tools 菜单中选中Use remote debug monitor。 第四步在Keil中编写MCU的程序;及进入Keil的Proteus菜单Option for target工程名。在Debug选项中右栏上部的下拉菜选中Proteus VSM Monitor-51 Driver。在进入setting,如果同一台机IP名为127.0.0.1,如不是同一台机则填另一台的IP地址。端口号一定为8000注意:可以在一台机器上运行Keil,另一台中运行Proteus进行远程仿真。 第五步即最后在Keil中进行Debug,同时在Proteus中查看直观的结果。硬件调试按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。按电路图的位置将各元件安置好,首先放置核心元件,然后再放其他元件,特别注意顺序不能颠倒。在保证电路元器件完好及各元器件放置无误合理的情况下,开始对电路连接布线,由于本设计用面包板搭件,所以布线要无跨线并且工整。当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段。 5.4.2 硬件静态调试 (1) 排除逻辑故障 显示器部分调试为了使调试顺利进行,首先将STC89C54RD+与LCD显示分离,这样就可以用静态方法先测试LCD显示,用规定的电平加至位显示的引脚,看显示是否与理论上一致。不一致,一般为LCD显示器接触不良所致,必须找出故障,检测STC89C54RD+电路工作是否正常。对STC89C54RD+进行编程调试时,分为两个步骤:第一,对其进行初始化。第二,将STC89C54RD+与LCD结合起来,借助开发机,通过编制程序进行调试。若调试通过后,就可以编制应用程序了。对于一些逻辑故障来说,这类故障往往是由于设计和焊接过程中的失误所造成的。主要包括错线、开路、短路。排除的方法是首先将焊接好的电路板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。 (2) 排除元器件失效 造成这类错误的原因有两个:一个是元器件买来时就已坏了另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。 (3) 排除电源故障 在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V 之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。 第6章 结论与展望 本系统的设计与制作工作已经全部完成,基本达到了预期的目的与要求。系统的调试与仿真结果让人满意。动态显示、显示内容的实时更新、数据的准确度等方面做得比较好,但是由于时间仓促、条件有限,设计结果并不是很好,还存在诸如:显示内容的单一,数据波动、抗干扰能力差等问题,我准备在今后的工作实践过程多积累知识和经验,学习更多的新知识、新技术,从而来进一步完善此设计。 本文从选题到现在已经有半年的时间了,这个设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的具体化及论证、方案的确定、设计制板及硬件电路的完成、软件的调试、系统的调试,还包括论文的定搞,整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。 致谢 首先感谢我的导师杨老师。杨老师渊博的学识、认真的治学态度让我由衷的钦佩。这段时间来,我在杨老师的教诲和悉心指导下圆满地完成了毕业设计。我不仅学习到了很多有用知识,而且懂得了许多做人的道理。我相信这些对于我以后的生活是大有裨益的。本文是在导师的直接关怀和指导下完成的,在论文的选题、展开到论文的形成,导师也给予了充分的关心并倾注了大量的心血。我在此向导师致以最崇高的敬意和最衷心的感谢。还要感谢XX大学邮电与信息学院,感谢学校培养了我三年,学校完善的管理制度和良好的学风,不但让我学到了很多知识,还让我学会了做人。 由衷感谢所有帮助、支持和关心我的老师、同学、朋友。在此,我要向他们表示我深深的谢意和美好的祝福。 参考文献 [1] 佘新平. 数字电子技术[第二版][M]. 华中科技大学出版社, 2009-8 [2] 童诗白, 华成英. 模拟电子技术基础[第四版][M]. 高等教育出版社, 2001.1 [3] 韦建英, 徐安静. 模拟电子技术基础[M]. 华中科技大学出版社, 2010-8 [4] 宋受俊. 基于单片机的电机运动控制系统设计[J]. 机电产品开发与创新, 2006, 25(23): 56-58 [5] 樊尚春. 传感器技术及应用[M]. 北京航空航天大学出版社, 2004-8 [6] 李华. 单片机通用接口技术[M]. 北京: 北京航空航天大学出版社, 1999 [7] 潘永雄. 新编单片机原理与应用[M]. 西安: 西安电子科技大学出版社, 2003 [8] 楼然苗. 51系列单片机设计实例[M]. 北京航空航天大学出版社, 2003-03 [9] 陈享成, 耿长青. 基于单片机的LCD显示终端设计[J]. 电力自动化设备, 2007, 14 (9):14-16 [10] 胡汉才. 单片机原理及接口技术[M]. 北京: 清华大学出版社, 1999 [11] 陈伯时. 电力拖动自动控制系统[M]. 北京: 机械工业出版社, 2003: 103-107 [12] 陈兴文, 刘燕. 单片机应用系统硬件调试技巧[J]. 中国测控网, 2009-3 (23): 23-25 [13] 何立民. 单片机高级教程-应用与设计[M]. 北京航空航天大学出版社, 2007-1 [14] 邵显涛. DS18B20集成温度传感器原理及其应用[J]. 电子测试, 2008-2 (12): 40-42 [15] 徐爱钧. 单片机原理实用教程基于Proteus虚拟仿真[M]. 北京: 电子工业出版社, 2009 [16] 李学礼. 基于Proteus的8051单片机实例教程[M]. 北京: 电子工业出版社, 2008 附录1 Protreus仿真图 附录2 源程序 #include <reg51.h> #include <intrins.h> typedef unsigned char uchar; typedef unsigned int uint; typedef bit BOOL; sbit lcdrs=P2^6; sbit lcden=P2^7; sbit lcdrw=P2^1; sbit ds_rst=P2^5; sbit ds_io=P2^4; sbit ds_clk=P2^3; sbit ACC0=ACC^0; sbit ACC7=ACC^7; sbit dq=P2^2; sbit scan = P3^2; //低电平输入 sbit key0=P1^2; sbit key1=P1^3; uchar com,inf,num=0; int temper=0; uchar code table[]=“0123456789“; uchar ncounter; //转数 long int scounter; uchar T0counter; //T0 50ms计数 uchar SECsign; //秒信号 uchar speed; //速度 uchar cflag; //计数允许 uchar s=0; //以米为单位的路程 uchar sk=0; //以千米为单位的路程 uchar t_sec=0x00,sec1,sec2; uchar t_min=0x59,min1,min2; uchar t_hr=0x20,hr1,hr2; /*************************************** lcd1602的初始化程序 ***************************************/ void delay(uint z) //lcd的延时程序 { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } BOOL lcd_bz() { // 测试LCD忙碌状态 BOOL result; lcdrs= 0; lcdrw= 1; lcden = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (BOOL)(P0&0x80); lcden = 0; return result; } void write_com(uchar com) //写命令 { lcd_bz(); lcdrs=0; lcdrw=0; lcden=0; P0=com; delay(12); lcden=1; delay(12); lcden=0; } void write_dat1(uchar dat1) //写数据 { lcd_bz(); lcdrs=1; lcdrw=0; lcden=0; P0=dat1; delay(60); lcden=1; delay(60); lcden=0; } void init_lcd() //lcd初始化 { lcden=0; write_com(0x38); write_com(0x0c); //光标控制 write_com(0x06); write_com(0x01); //清屏 } //以下是ds18b20的控制程序 /*-----------------------*/ void delay18b20(uint time) //ds18b20的延时程序 { uint i,j; for(i=0;i<time;i++) for(j=0;j<1;j++); } uchar reset() //复位子程序 { uchar presence; dq=0; delay18b20(29); dq=1; delay18b20(3); presence=dq; delay18b20(25); return(presence); } uchar read_bit() //读位 { uchar i; dq=0; dq=1; for(i=0;i<3;i++) return(dq); } void write_bit(uchar dat) //写位 { dq=0; if(dat==1) dq=1; delay18b20(5); dq=1; } uchar read_byte() //读字节 { uchar dat=0; uchar i; for(i=0;i<8;i++) { if(read_bit()) dat|=0x01<<i; delay18b20(5); } return(dat); } void write_byte(uchar dat) //写字节 { uchar i,j; for(i=0;i<8;i++) { j=((dat>>i)&0x01); write_bit(j); delay18b20(5); } } int read_temp() //读温度 { uchar templ,temph; int temp; reset(); write_byte(0xcc); write_byte(0x44); delay18b20(1000); reset(); write_byte(0xcc); write_byte(0xbe); templ=read_byte(); temph=read_byte(); temp=templ+temph*256; return(temp); } /************************************* ds1302的程式模块 ***************************************/ void input_1byte(uchar td) { uchar i; ACC=td; for(i=8;i>0;i--) { ds_io=ACC0; ds_clk=1; ds_clk=0; ACC=ACC>>1; } } uchar output_1byte() { uchar i; for(i=8;i>0;i--) { ACC=ACC>>1; ACC7=ds_io; ds_clk=1; ds_clk=0; } return(ACC); } void write_ds1302(uchar ds_add,uchar ds_dat) { ds_rst=0; ds_clk=0; ds_rst=1; input_1byte(ds_add); input_1byte(ds_dat); ds_clk=1; ds_rst=0; } uchar read_ds1302(uchar ds_add) { uchar ds_inf; ds_rst=0; ds_clk=0; ds_rst=1; input_1byte(ds_add); ds_inf=output_1byte(); ds_clk=1; ds_rst=0; return(ds_inf); } /***************************************ds1302初始化程序 **************************************/ void init_1302() { write_ds1302(0x8e,0x00);//关闭写保护 write_ds1302(0x90,0xAA);//定义充电 write_ds1302(0x8e,0x80);//打开写保护 } /*************************************** 测速程式 **************************************/ void initialize( void ) //初始化程序 { ncounter = 0; T0counter = 0; SECsign = 1; speed = 0; cflag = 1; } void init_timer0( void ) //定时器0初始化 { TMOD = 0x01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; EA = 1; IT0=1; EX0=1; ET0 = 1; TR0 = 1; } void dis_speed( void ) { uchar bai = speed/100; uchar shi = speed%100/10; uchar ge = speed%10; uchar dian= (speed&0x0f)*62.5/100; write_com( 0x80+0x00 ); write_dat1( 0x30+bai ); write_dat1( 0x30+shi ); write_dat1( 0x30+ge ); write_dat1('.'); write_dat1(0x30+dian); } void dis_mileage( void ) //里程计算 { unsigned char qiankm,baikm,shikm,gekm,diankm; qiankm=(110*scounter)/100000000; baikm=((110*scounter)%100000000)/10000000; shikm=(((110*scounter)%100000000)%10000000)/1000000; gekm=((((110*scounter)%100000000)%10000000)%1000000)/100000; diankm=(((((110*scounter)%100000000)%10000000)%1000000)%100000)/10000; write_com( 0x80+0x40 ); write_dat1( 0x30+qiankm); write_dat1( 0x30+baikm); write_dat1( 0x30+shikm); write_dat1( 0x30+gekm); write_dat1('.'); write_dat1(0x30+diankm); } unsigned char TOBCD(unsigned char asc) //十进制转换成BCD码 { unsigned char shiwei,gewei,BCD; gewei=asc%10; shiwei=asc/10; BCD=shiwei*16+gewei; return BCD; } lcd_display() { /*********************************** 时间显示及其控制程序 ************************************/ t_sec=read_ds1302(0x81); sec1=t_sec&0x0f; sec2=t_sec>>4; t_min=read_ds1302(0x83); min1=t_min&0x0f; min2=t_min>>4; t_min=min2*10+min1; t_hr=read_ds1302(0x85); hr1=t_hr&0x0f; hr2=t_hr>>4; t_hr=hr2*10+hr1; write_com(0x80+0x4e); write_dat1(table[sec2]); write_com(0x80+0x4f); write_dat1(table[sec1]); write_com(0x80+0x4d); write_dat1(':'); write_com(0x80+0x4c); write_dat1(table[min1]); write_com(0x80+0x4b); write_dat1(table[min2]); write_com(0x80+0x4a); write_dat1(':'); write_com(0x80+0x49); write_dat1(table[hr1]); write_com(0x80+0x48); write_dat1(table[hr2]); /*测速静态显示*/ write_com( 0x80+0x46 ); write_dat1( 'k' ); write_com( 0x80+0x47 ); write_dat1( 'm' ); write_com( 0x80+0x05 ); write_dat1( 'm' ); write_com( 0x80+0x06 ); write_dat1( '/' ); write_com( 0x80+0x07 ); write_dat1( 's' ); /*************************************** 温度显示及其控制程序 ***************************************/ write_com(0x80+0x09); write_dat1('T'); delay(200); write_com(0x80+0x0a); write_dat1(':'); delay(200); temper=read_temp(); if(temper<0) { temper=0-temper; write_com(0x80+0x0b); write_dat1('-'); delay(200); write_com(0x80+0x0f); write_dat1(((temper+0x01)&0x000f)*62.5/100+0x30); } else { write_com(0x80+0x0b); write_dat1('+'); delay(200); write_com(0x80+0x0f); write_dat1((temper&0x000f)*62.5/100+0x30); } write_com(0x80+0x0c); write_dat1((temper>>4)%100/10+0x30); write_com(0x80+0x0d); write_dat1((temper>>4)%10+0x30); write_com(0x80+0x0e); write_dat1('.'); /*************************************** 测速控制程序 *************************************/ if( SECsign ) \ { dis_mileage( ); speed =1.1* ncounter; //周长为2.2M,两个霍尔传感器,一圈两个信号 ncounter = 0; dis_speed( ); SECsign = 0; TR0 = 1; //显示完后启动计数,减小误差 EA=1; } } /*************************************** 主函数 ************************************/ void main() { initialize( ); init_lcd( ); init_timer0( ); init_lcd(); delay(5); init_1302(); delay(5); P1=0xff; P3=0xff; while(1) { if(key0==0) { delay(50); if(key0==0) { t_hr++; delay(20); if(t_hr>=24) { t_hr=0; } t_hr=TOBCD(t_hr); while(!key0); write_ds1302(0x8e,0x00);//关闭写保护 write_ds1302(0x84,t_hr);//时 write_ds1302(0x8e,0x80);//打开写保护 } } if(key1==0) { delay(50); if(key1==0) { t_min++; delay(20); if(t_min>=60) { t_min=0; t_hr++; } t_min=TOBCD(t_min); while(!key1); write_ds1302(0x8e,0x00);//关闭写保护 write_ds1302(0x82,t_min);//分 write_ds1302(0x8e,0x80);//打开写保护 } } lcd_display(); } } void INT_timer0( void ) interrupt 1 //定时计数器0的中断函数 { TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; T0counter++; if( T0counter >=20 ) //每1秒发生一次中断 { TR0 = 0; //计时1s后停止 T0counter = 0; SECsign = 1; EA=0; } } void INT_int0(void) interrupt 0 { ncounter++; scounter++; } 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 8 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    《我设计的自行车》教学设计

    《我设计的自行车》教学设计《我设计的自行车》第一课时教学设计一、教学目标:1、知能目标:通过对自行车结构、功能的初步认识,指导学生设计自行车,用画笔描绘或运用各种综合材料创作自行车。2、方法目...

    7个月前   
    334    0

    毕业论文设计总结

    毕业论文设计总结  这次毕业设计让我更加熟悉了从理论到实践的跨越。从当初的查阅图书,到现在的网站成功运行,这中间有很多值得回味的地方。记得去年暑假在学校呆的时候,偶尔对php这门语言产生了浓厚...

    8年前   
    300    0

    自行车婚

    自行车婚黄河婚礼上一页 第3页/共3页下一页  《自行车环保婚礼》——新郎骑着自行车去迎娶自己可爱的新娘,引来了各大媒体的关注。 本文档由香当网(https://www.xiangdang.net)用户上传

    9年前   
    200    0

    未来的自行车

    我带他走到车库前,推出一辆乳白色的自行车,看着非常普通。虽然他是第一次骑,但是我也不用担心,因为我发明的这辆车里有自动平衡装备,无论你怎样骑,它都不会让你摔下来。啊!明明蹬的可快了,于是我又从车...

    3年前   
    703    0

    毕业论文(设计)评审表-本科

        中央广播电视大学 毕业设计(论文)评审表       题目 浅论幼儿园常规安全管理策略                                      ...

    5年前   
    10312    0

    毕业论文设计(精选多篇)

    毕业论文设计(精选多篇)第一篇:毕业论文设计关于初中蒙语文教学中的师生关系研究研究者:华国庆一、问题的提出(一)、研究初中蒙语文教学中的师生关系符合社会发展的要求和顺应时代的潮流,符合建设和谐...

    5年前   
    292    0

    动漫设计专业毕业论文

      动漫设计专业毕业论文 动漫作为一个文化产业,以其独特的优势,新颖的特点,广大的受众,政府的扶持,迅速在各个市级城市体现价值,各个地方也都把动漫产业作为经济新的增长点,与此同时,各个高校...

    2年前   
    1004    0

    开题报告-电动自行车电动机驱动系统的设计与仿真

    开题报告电气工程及自动化电动自行车电动机驱动系统的设计与仿真一、综述本课题国内外研究动态,说明选题的依据和意义1881年8月在巴黎举行的国际电气展览会上,法国人特鲁夫展出了世界上第一辆电动交通...

    10个月前   
    346    0

    戴花的自行车

    戴花的自行车       马 卫   阳碧只想要一辆自行车,也不是她要,而是要她的未婚夫必须买一辆自行车,还得是永久牌的,最差也得是飞鸽牌的。   阳碧才十八岁,十八岁的少女就想嫁...

    9年前   
    10847    0

    毕业论文:基于plc的电子密码锁毕业论文设计

    本毕业设计介绍了可编程序控制器(PLC)和PLC控制系统的基本知识,包括PLC的定义、特点、分类、技术指标、基本结构、工作原理、硬件知识及PLC控制系统等相关知识。采用松下公司系列的PLC,设计...

    2年前   
    1147    0

    小区物业管理系统的设计与实现毕业论文

    本文论述了物业管理信息系统的开发过程。分析了国内物业管理信息系统的发展和使用现状,指出了现阶段存在的问题,阐述了物业管理信息化的必要性。从业务需求出发,建立了小区物业管理系统的功能模型和实现方案...

    2年前   
    2910    0

    本科毕业论文(设计)指导教师评分表

      表Ⅱ-3 ***学院本科毕业论文(设计)指导教师评分表 论文题目 管理层收购的融资风险与规避研究 学生姓名   学  号   指标 评分要素 最高分 评分 基本 ...

    4年前   
    2778    0

    2018年设计毕业论文18开题报告

    设计毕业论文18开题报告  1.本课题的目的及研究意义  研究目的:  张爱玲与电影有过长期亲密的接触,在小说写作中创造性地化用了电影化技巧,使她的文字组合带有丰富的视像性和表现力。文本以恐怖...

    3年前   
    149    0

    平面设计广告类毕业论文

     XX职业技术学院 毕 业 论 文 题 目: 平面广告的设计 专 业: 工艺美术与电脑设计 年 级: ...

    2年前   
    830    0

    2017年毕业论文(设计)工作条例

    毕业论文(设计)工作条例  毕业论文(设计)是本科专业教学计划的重要组成部分,是网络教育培养目标要求的重要教学环节。为了切实做好毕业论文(设计)工作,规范毕业论文(设计)教学过程的管理,努力提...

    4年前   
    171    0

    2018年毕业论文(设计)的基本规范要求

    毕业论文(设计)的基本规范要求  1、毕业论文(设计)要求选用a4纸打印。  2、毕业论文(设计)文本结构:  (1)封皮  (2)成绩评议表  (3)毕业论文(设计)任务书  (4)指导教师...

    2年前   
    191    0

    2018年毕业论文设计格式要求规范

    毕业论文设计格式要求规范  临近毕业了,大家的论文写好了吗,下文是毕业论文设计格式要求,希望大家有所收获!  一、论文(设计)组成  本科毕业论文(设计)(以下简称为毕业论文)由封面、成绩评定...

    3年前   
    224    0

    网络工程设计毕业论文

    目录 项目背景 1 一、网络分析 2 1.项目分析: 2 2.按拓扑结构分类 3 3.局域网的发展趋势 4 二、办公网络的规划设计 4 1.办公网络的功能 4 2.办公网络网设...

    2年前   
    832    0

    毕业论文设计开题报告格式范文

    毕业论文设计开题报告格式范文  毕业设计开题报告范文(1)  1.毕业设计开题报告范文(1)之课题名称:  钢筋混凝土多层、多跨框架软件开发  2.毕业设计开题报告范文(1)之项目研究背景: ...

    7年前   
    260    0

    施工组织设计毕业论文

     本科毕业设计(论文) *******施工组织设计 学院名称 ****** 专业名称 ******* 学生姓名 *** 学号 ******* 指导教师 *** X...

    2年前   
    615    0

    文档贡献者

    文***品

    贡献于2021-05-19

    下载需要 8 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档