毕业论文范文单片机(精选3篇)由网友“jzgc89”投稿提供,下面是小编整理过的毕业论文范文单片机,欢迎大家阅读分享借鉴,希望对大家有所帮助。
篇1:关于单片机的毕业论文:单片机管理器
课题研究的目的和意义
手动变速箱在换挡时,如果两个齿轮轮齿转速不相等时强制挂挡,由于两齿轮间存在巨大的速度差,会发生冲击和噪音。这种情况不仅会使挂挡动作变得非常困难,同时会使齿轮的齿端磨损加剧,甚至会造成轮齿折断。所以,在换挡过程中必须使待啮合的齿轮转速相等,即同步,才能平顺的挂挡而不至于给齿轮造成巨大的损害。这就是同步器的作用。 所以说,同步器的性能好坏直接决定了手动变速箱换挡品质的优劣,同步器质量的好坏也直接决定了手动变速箱的使用寿命的长短[4][5]。汽车是一个由许多零部件组成的复杂机械系统,由于汽车的机械系统的复杂性和同步器工作过程的复杂性,同步器工作过程尚不能通过理论计算或者仿真的手段来进行准确的分析,只有通过试验的手段才可得到更贴近实际情况的结果。
国内外研究现状
法国的一家独立的实验室 etsm 专业技术与服务实验室(etsm expertise technology & services )在 年开发了一套用于测试同步器的摩擦性能的试验台,如图 1.1 所示。该试验台用电惯量的方法模拟同步器的惯量,用气动的驱动方式作为同步器加载时的轴向力,其控制和数据采集使用了 ni 公司的 labview及其他配合使用的套件,它能够用于测试同步器的动力学特性和摩擦性能[8]。
第二种思路的同步器试验台的设计方法是在不拆解变速箱的情况下设计试验台来研究同步器的性能和寿命。 以整个变速箱为试验对象来检测同步器性能和寿命的的试验方法在国外较早开始了研发,其中日本在这方面的研究较早,已经研发了不同类型的试验台,并申请了相关技术专利。具有代表性的是新日本特机株式会社利用电惯量研发的手动变速器试验台,该试验台机构简单,以步进电机和启动系统混合驱动装置作为动力,可以在不拆解变速箱的情况下进行同步性能试验、同步耐久性试验 [10]。
同步性能相关理论分析
解锁阶段——两圆锥面的转速相同( 0)后,接合套8 沿锁环倒角斜面向前滑动与锁环 3 啮合,此时,接合套 8 可以继续向前移动; 啮合阶段——接合套8平稳而快速的越过同步环3并与待啮合齿轮接合齿圈2 进入啮合; 换挡完成阶段——在发动机传递来的动力作用下,接合套 8 和待啮合齿轮接合齿圈 2 上的犬齿齿端的倒斜面结构将会继续保持接合套 8 的接合状态,驾驶员将会停止施加换挡操作力。
同步器试验要求
全国汽车标准化技术委员会在 2017 年发布并实施了中华人民共和国汽车行业标准 qc/t568.3-2017《汽车机械式变速器台架试验方法‐中型》,该标准明确规定了中型汽车机械式变速器台架试验方法,qc/t 568.3-2017 主要适用于输入扭矩为 400nm~800nm,挡位数为 4 挡~7 挡的汽车机械式变速器总成[26][27]。
同步器性能测试的主要内容是测试同步器换挡过程的动态性能。同步器性能测试有以下要求[20]:一、性能测试之前需要进行磨合,一般试验要求是同步器在设计条件下进行300 次换挡,完成 300 次换挡后要更换润滑油;二、换挡杆上需要安装测量换挡力的传感器,并进行标定;三、试验时可采用相邻两挡间交替换挡或者单向换挡方式进行;四、每次测试需要进行三次试验取平均值;五、记录变速器一轴转速、换挡时间、换挡力(同步力矩)之间的关系曲线,并计算出同步冲量。
篇2:电气工程系专业单片机毕业论文
电气工程系专业单片机毕业论文
关键词:单片机 ; ; 计时 时钟 绪论
1.1课题背景
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。
1.2课题来源
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,
可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。
第二章 MCS-51单片机的结构
MCS-51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。
2.1 控制器
控制器是单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
单片机执行指令是在控制器的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送至指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到单片机的各个部件去进行相应的操作。这就是执行一条指令的全过程,执行程序就是不断重复这一过程。控制器主要包括程序计数器、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及时序控制逻辑电路。
2.2 存储器的结构
MCS-51单片机存储器采用的是哈佛结构,即程序存储器空间和数据存储器空间截然分开,程序存储器和数据存储器各有自己的寻址方式,寻址空间和控制系统。
这种结构对于单片机面向控制的实际应用极为方便,有利.在8051/8751弹片击中,不仅在片内集成了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有极强的外存储器的扩展能力,寻址能力分别可达64KB,寻址和操作简单方便.MCS-51的存储器空间可划分为如下几类:
1. 程序存储器
单片机系统之所以能够按照一定的次序进行工作,主要是程序存储器中存放了经调试正确的应用程序和表格之类的固定常数。程序实际上是一串二进制码,程序存储器可以分为片内和片外两部分。8031由于无内部存储器,所以只能外扩程序存储器来存放程序。
MCS-51单片机复位后,程序存储器PC的内容为0000H,故系统必须从0000H单元开始取指令,执行程序.程序存储器中的0000H地址是系统程序的启动地址.一般在该单元存放一条绝对跳转指令,跳向用户设计的主程序的起始地址。
2. 内部数据存储器
MCS-51单片机内部有128个字节的随机存取存储器RAM,作为用户的数据寄存器,它能满足大多数控制型应用场合的需要,用作处理问题的数据缓冲器。
MCS-51单片机的片内存储器的字节地址为00H-7FH.MCS-51单片机对其内部RAM的存储器有很丰富的操作指令,从而使得用户在设计程序时非常方便。地址为00H-1FH的32个单元是4组通用工作寄存器区,每个区含8个8位寄存器,编号为R7-R0。用户可以通过指令改变PSW中的RS1,RS0这二位来切换当前的工作寄存器区,这种功能给软件设计带来极大的方便,特别是在中断嵌套时,为实现工作寄存器现场内容保护提供了极大的方便。
3. 特殊功能寄存器(SFR-Special Function Register)
特殊功能寄存器反映了MCS-51单片机的状态,实际上是MCS-51单片机各功能部件的状态及控制寄存器.SFR综合的,实际的反应了整个单片机基本系统内部的工作状态及工作方式.SFR实质上是一些具有特殊功能的片内RAM单元,字节地址范围为80H-FFH.特殊功能寄存器的总数为21个,离散的分布在该区域中,其中]有些SFR还可以进行位寻址.128个字节的SFR块中仅有21个字节是由定义的.对于尚未定义的字节地址单元,用户不能作寄存器使用,若访问没有定义的单元,则将得到一个不确定的随机数.
2.3 并行I/O口
MCS-51单片机共有4个双向的8位并行I/O端口(Port),分别记作P0-P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。实际上P0-P3已被归入特殊功能寄存器之列。这四个口除了按字节寻址以外,还可以按位寻址。由于它们在结构上有一些差异,故各口的性质和功能有一些差异。
P0口是双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。P1口是8位准双向I/O口,可驱动4个LS 型负载。P2口是8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。P3口是8位准双向I/O口,是双功能复用口,可驱动4个LS型TTL负载。P1口、P2口、P3口各I/O口线片内均有固定的上拉电阻,当这3个准双向I/O口做输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态,故称为双向三态I/O 口。
2.4 时钟电路与时序
时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。MCS-51单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机应在唯一的时钟信号控制下,严格地按时序执行进行工作,而时序所研究的是指令执行中各个信号的关系。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类,一类用于片内对各个功能部件的控制,这列信号很多。另一类用于片外存储器或I/O端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。这也是单片机应用系统设计者普遍关心的`问题。
2.5 单片机的应用领域
单片机应用领域可以归纳为以下几个方面。 1.智能仪表
用单片机系统取代老式的测量、控制仪表,实现从模拟仪表向数字化、智能化仪表的转化,如各种温度仪表、压力仪表、流量仪表、电能计量仪表等。 2. 测控系统
用单片机取代原有的复杂的模拟数字电路,完成各种工业控制、数据采集系统等工作。 3.电能变换
应用单片机设计变频调速控制电路。 4.通信
用单片机开发通信模块、通信器材等。 5.机电产品
应用单片机检测、控制传统的机械产品,使传统的机械产品结构简化,控制智能化,提高了机电产品的可靠性,增强了产品的功能。 6.智能接口
在数据传输中,用单片机实现外部设备与微机通信。
第三章 系统设计要求
3.1基本功能
(1)能够显示时分秒 (2)能够调整时分秒
3.2 扩展功能
(1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能
第四章 硬件总体设计方案
用一扬声器来本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片
机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。
4.1系统功能实现总体设计思路
如图4-10 所示为AT89S51芯片的引脚图
图4-10 AT89S51芯片外部引脚图
此设计原理框图如图4-11所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。
图4-11 设计原理框图
经多方论证硬件我们小组采用AT89C51单片机和7SED八位共阳极数码管等来实现单片机电子时钟的功能。
详细元器件列表如表4.12所示:
表4.12 详细元器件列表
4.2各部分功能实现
(1) 单片机发送的信号通过程序控制最终在数码管上显示出来。 (2) 单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3) 为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数
码管上显示的时间。
单片机通过控制闹铃电路来完成 定时闹钟的功能
4.3系统工作原理
设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及校正电路。
详细电路功能图如图4-30:
详细电路功能图如图4-30
本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
4.4时钟各功能分析及图解 (1) 时钟运行图
仿真开始运行时,或按下key4键时,时钟从12:00:00开始运行,其中key2键对分进行调整,key3对小时进行调整,key6可以让时钟暂停。
时钟运行图如图 4-41 所示: (2)秒表计时图
当按下key1键进入秒表计时状态,key6是秒表暂停键,可按key4键跳出秒表计时状态。
秒表计时图如图 4-42所示:
图4-41 时钟运行图
图4-42 秒表计时图
(3)闹铃设置图及运行图
当按下key5,开始定时,分别按key2调分,key3调时设置闹铃时间,然后按下key4键恢复时钟运行状态(图4-43)当闹铃设置时间到时,蜂鸣器将发出10秒中蜂鸣声(图4-44)。
图4-43 闹铃时间设置图
该数字钟是用一片AT89C51单片机通过编程去驱动8个数码管实现的。通过6个开关控制,从上到下6个开关KEY1-KEY6的功能分别为:KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3, 调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与P1.0~P1.5口连接.其中:
A通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.
B从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。
图4-44 闹铃运行图
4.5电路功能使用说明
(1) 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
(2) AT89C51单片机,通过编写程序对数码显示进行控制。 (3) 八个7段数码管显示时钟和秒表信号
第五章 软件总体设计方案
5.1 主程序流程图
软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。如图5-10:
5.2
图5-20 中断流程图
时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时。如上图图5-20。 A. 秒表中断程序流程
秒表功能通过另一个程序来实现。通过保护主程序的数据来进行秒表功能。程序中需要设置秒表的具体显示方法。如图5-3:
图5-3秒表中断程序流程图
B.按键程序流程
图5-4为时钟和闹钟的调节,程序中通过扫描来判断按键是否按下进行时间和闹钟的调节。
图5-4按键程序流程图
图5-5为进入中断和清零图,程序中通过扫描来判断按键是否按下进行执行相应
图5-5 中断和清零程序流程图
5.3控制电路的C语言源程序
根据流程图,经过认真分析得出控制电路的源程序如下: #include #define uchar unsigned char #define uint unsigned int #define delay_time 3/*宏定义*/ uchar k,dat[]={0,0,0,0,0,0,0,0}; uint tcount,t,u;
uchar dat1[]={0,0,0,0,0,0,2,1}; uchar dat2[]={0,0,0,0,0,0,0,0}; uchar alarms[]={0,0,0,0,0,0,0,0}; uchar
dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned
char
code
SEG7[11]={0xC0,/*0*/ 0xF9,/*1*/
0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/
0xBF,/*-*/
};/*数字显示数组*/ sbit miaobiao1=P1^0; sbit tminute=P1^1; sbit thour=P1^2; sbit miaobiao2=P1^3; sbit alarm=P1^4; sbit P0_0=P0^0;
sbit P1_5=P1^5; sbit P1_6=P1^6;
sbit P1_7=P1^7;/*端口定义*/ uchar ms=0; uchar flag=0; uchar sec=0; uchar minit=0; struct
time{uchar
second;uchar
minute;uchar hour;}time1; uchar n,i; void delay(n) {while(n--)
{
for(i=120;i>0;i--); }
} /*延时子程序*/ void modify(void)
{ EA=0; if(thour==0) { if(flag==0)
{
dat1[6]++;delay(280); if(dat1[6]>9)
{
dat1[6]=0; dat1[7]++; }
else
if((dat1[7]>1)&&(dat1[6]>3)) {dat1[7]=0;
dat1[6]=0;
} }
if(flag==1) {
alarms[6]++;delay(300);
if(alarms[6]>9) { alarms[6]=0;alarms[7]++;
if(alarms[7]>2) { alarms[7]=0;
}
}
dat[6]=alarms[6];
dat[7]=alarms[7]; }
}
if(tminute==0) { if(flag==0) {
dat1[3]++;delay(280); if(dat[3]>=9) { dat1[4]++;dat1[3]=0; if(dat1[4]>5) {
dat1[4]=0; }
}
}
if(flag==1)
{
alarms[3]++; delay(300); if(alarms[3]>9) { alarms[4]++;alarms[3]=0;
if(alarms[4]>5) { alarms[4]=0;
}
}
dat[3]=alarms[3]; dat[4]=alarms[4]; }
}
if(miaobiao1==0)
{TR0=0;ET0=0;TR1=1;ET1=1; }
if(miaobiao2==0) {
TR0=1;ET0=1;TR1=0;ET1=0;
dat2[0]=0; dat2[1]=0; dat2[3]=0; dat2[4]=0; dat2[6]=0; dat2[7]=0; ms=0; sec=0; minit=0; }
if(P1_5==0) {
TR0=0;ET0=0;TR1=0;ET1=0;
}
if(alarm==0) {
TR0=0;ET0=0;TR1=0;ET1=0;flag=
{
P3=dis_bit[k];
P2=SEG7[dat[k]]; delay(1); 1;
dat[0]=0; dat[1]=0; dat[2]=10; dat[3]=0;
dat[4]=0; dat[5]=10; dat[6]=0; dat[7]=0;
} EA=1; }/*按键扫描*/ void init(void) {
TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF;
ET0 = 1;
ET1=1; //
TR1=1; TR0=1; tcount=0; ms=0; sec=0; minit=0;
EA = 1;
}/*初始化*/ void test(void){ for(k=0;k<8;k++)
//10ms
P3=0X00;
}
}/*数字显示*/ void main {init(); delay(10); while(1) {
modify();
test(); } }/*主函数*/
Void diplay() interrupt 1 { ET0=0; TR0=0; TH0 = 0xDB; TL0 = 0xff; TR0=1;
tcount++; if(tcount==100) {
time1.second++; tcount=0; dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10;
}
if(time1.second==60) { dat1[0]=0; dat1[1]=0; time1.second=0; time1.minute++;
dat1[3]=(time1.minute)%10; dat1[4]=(time1.minute)/10;
}
if(time1.minute==60) {
time1.minute=0; time1.hour++; dat1[6]=time1.hour%10; dat1[7]=time1.hour/10; }
if(time1.hour>23) {
time1.hour=0; } dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0; P0=0x01;
if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat1[4])&&(alarms[3]==dat1[3])&&(dat1[1]<1)) {
P0=0x00; } ET0=1;
}
void time_2(void)interrupt 3 {
EA=0; TR0=0; TH1=0xDB; TL1=0xFF; TR1=1; ms++;
dat2[0]=ms%10; dat2[1]=ms/10; if(ms>=100) { ms=0; sec++;
dat2[3]=sec%10; dat2[4]=sec/10; if(sec>=60) {
sec=0;
minit++; dat2[6]=minit%10; dat2[7]=minit/10; } } dat[5]=10; dat[2]=10; dat[0]=dat2[0]; dat[1]=dat2[1]; dat[3]=dat2[3]; dat[4]=dat2[4]; dat[6]=dat2[6]; dat[7]=dat2[7]; EA=1
第六章 课程设计结果分析
此时钟设计是利用protues仿真软件进行仿真,基本上实现了课程设计要求实现的功能。
硬件部分设置了的六个按键。当按键一按下时,进入秒表显示状态,秒表开始计时,当按键六按下时,秒表暂停;当按键四按下时恢复到时间显示功能;当按键二按下时,进入调分状态,按一次,分加一,60一循环;按键三按下时,进入调时状态,按一次,时加一,60一循环;按键五按下时,进入闹铃设置功能,紧接着按下按键二和按键三进行时和分的设置,再按下按键4恢复显示时间,当显示的时间和定时设置的时间一致时,蜂鸣器发出蜂鸣声,蜂鸣时间我们设置为10秒。
另外,闹铃电路有音乐闹钟的扩展的功能(可以将蜂鸣器换成扬声器再加一段音乐程序即可实现)。
调试阶段,出现一些问题。比如,实际小时显示到29才归零,分钟显示到60才进一„„经过软件调试,以上问题均一一排除,结果达到预期目标。但时间有限,部分扩展功能不能
及时实现,比如音乐闹铃。
第七章 结论与展望
7.1 结论
单片机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。可以通过按键操作和数字显示。该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。该系统的设计为向家庭数字化方向发展又前进了一步。同时又扩大了单片机的应用领域。
7.2 单片机的发展趋势
自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势:
1.采用先进结构以实现高性能
在过去的一段时间内,单片机的指令运行速度一直在10MIPS以下,这对于应用在工业控制领域内的单片机来说是足够了,但当单片机被应用在通讯及DSP领域作为高速运算、编码或解码时,就会出现因指令运行速度不够而限制单片机应用的情形,因此提高单片机指令运行速度已经成为迫切需要解决的问题。
2.进一步降低功耗、
基于80C51的飞利浦低功率、低系统成本微控制器51LPC系列是业界推动单片机向低功耗方向发展的主导单片机系列之一。51LPC系列单片机采用以下三种方法降低功耗:
(1)使系统进入空闲模式,在空闲模式下,只有外围器件在工作,任意的复位及中断均可结束空闲模式;
(2)使系统进入低功耗模式,在低功耗模式下,振荡器停止工作,是功耗降到最小
(3)使系统进入低电压EPROM操作;EPROM包含了模拟电路,当Vcc高于4V时,可通过软件使这些模拟电路掉电以降低功耗,在上电情况下可使系统退出该模式。
3.采用Flash Memory
随着半导体工艺技术的不断进步,MPU的Flash版本逐渐替代了原有的OTP版本。Flash MPU具有以下优点:与多次可编程的窗口式EPROM相比,Flash MPU的成本要低得多;在系统编程能力以及产品生产方面提供了灵活性,因为Flash MPU可在编程后面再次以新代码重新编程;可减少已编程器件的报废和库存;有
助于生产厂商缩短设计周期,使终端用户产品和、更具有竞争力。
4.集成更多功能及兼容性
目前单片机的另一个发展趋势是在芯片上集成更多的功能。如模拟功能,包括模拟比较器、A/D和D/A转换器等。具体表现在:兼容性作为设计的第一考虑;额外的新的特点是透明的;使用同一种编程器;OTP使器件快速提升及标准化成为可能。
5.强抗干扰能力
不断加强抗干扰能力是单片机进一步发展的必然趋势。ST Microelectronics公司推出的ST62系列单片机在这方面是佼佼者,其优良的抗干扰能力使得许多大公司将其应用在系统中的关键部件上。许多单片机开发商也正朝着这个方向努力。
6.朝系列化、全面化方向发展
各大单片机开发商在增加产品功能的同时效力于形成产品的系列化=全面化,以满足各种控制领域的要求,这也是单片机发展的趋势之一。日本TOSHBA公司开发了从4位到64位的多系列单片机,日立公司也有从4.位到32位的单片机,目前还没有哪个厂家生产的单片机比东芝公司的种类多。
随着单片机性能的不断提高,不断的克服和弥补自身的不足。在各种控制领域,单片机将拥有更加广阔的使用天地。在很长的一段时间内,它将一直是工程设计人员的首选控制芯片之一。
篇3:基于单片机的超声波测距仪的设计与实现毕业论文
中文摘要 本设计基于单片机AT89C52,利用超声波传感器HC-SR04、LCD显示屏及蜂鸣器等元件共同实现了带温度补偿功能可报警的超声波测距仪。我们以AT89C52作为主控芯片,通过计算超声波往返时间从而测量与前方障碍物的距离,并在LCD显示。单片机控制超声波的发射。然后单片机进行处理运算,把测量距离与设定的报警距离值进行比较判断,当测量距离小于设定值时,AT89C52发出指令控制蜂鸣器报警,并且AT89C52控制各部件刷新各测量值。在不同温度下,超声波的传播速度是有差别的,所以我们通过DS18B20测温单元进行温度补偿,减小因温度变化引起的测量误差,提高测量精度。超声波测距仪可以实现4m以内的精确测距,经验证误差小于3mm。
关键词:超声波;测距仪;AT89C52;DS18B20;报警
Design and Realization of ultrasonic range finder based
ABSTRACT The design objective is to design and implement microcontroller based ultrasonic range finder. The main use of AT89C52, HC-SR04 ultrasonic sensor alarm system complete ranging production. We AT89C52 as the main chip, by calculating the round-trip time ultrasound to measure the distance to obstacles in front of, and displayed in the LCD. SCM ultrasonic
transmitter. Then the microcontroller for processing operation to measure the distance and set alarm values are compared to judge distance, when measured distance is less than the set value, AT89C52 issue commands to control the buzzer alarm, and control each member refresh AT89C52 measured values. Because at different temperatures, ultrasonic wave propagation velocity is a difference, so we DS18B20 temperature measurement by the temperature
compensation unit, reducing errors due to temperature changes, and improve measurement
accuracy. Good design can achieve precise range ultrasonic distance within 4m, proven error is less than 3mm.
Keywords:Ultrasonic;Location;AT89C52;DS18B20;Alarm
目录
第一章 前言 ..................................................................................................................................................... 1
1.1 课题背景及意义 .............................................................................................................................. 1
1.1.1超声波特性 .............................................................................................................................. 1
1.1.2超声波测距 .............................................................................................................................. 2
1.2 超声波模块基本介绍 ........................................................................................................................ 3
1.2.1 超声波的电器特性 ............................................................................................................... 3
1.2.2 超声波的工作原理 ............................................................................................................... 5
1.3主要研究内容和关键问题 .............................................................................................................. 6
第二章 方案总体设计 ..................................................................................................................................... 7
2.1 超声波测距仪功能 ............................................................................................................................ 7
2.2设计要求 ............................................................................................................................................. 8
2.3系统基本方案 ..................................................................................................................................... 9
2.3.1方案比较 .................................................................................................................................. 9
2.3.2方案汇总 ................................................................................................................................. 11
第三章 系统硬件设计 ................................................................................................................................... 13
3.1 单片机最小系统 .............................................................................................................................. 13
3.2 超声波测距模块 ............................................................................................................................. 13
3.3 显示模块 .................................................................... 15
3.4温度补偿电路 ................................................................ 15
3.5 蜂鸣报警电路 ................................................................................................................................. 16
第四章 系统软件设计 ................................................................................................................................... 17
4.1 AT89C52程序流程图 ...................................................................................................................... 17
4.2 计算距离程序流程图 ...................................................................................................................... 19
4.3 报警电路程序流程图 ...................................................................................................................... 19
4.4 超声波回波接收程序流程图 .......................................................................................................... 20
第五章 系统的调试与测试 ......................................................................................................................... 21
5.1 安装 .................................................................................................................................................. 21
5.2 系统的调试 ...................................................................................................................................... 21
第六章 总结 ................................................................................................................................................... 23
参考文献......................................................................................................................................................... 24 致 谢........................................................................................................................... 错误!未定义书签。
附录 ................................................................................................................................................................ 26
附录1 整机电路原理图 ........................................................................................................................ 26
附录2 超声波温度和速度的关系 ........................................................................................................ 27
附录3 部分源程序 ................................................................................................................................ 29
第一章 前言
1.1 课题背景及意义
1.1.1超声波特性
众所周知,振动产生声波。通常每秒声波振动的次数被称为频率,单位是Hz。人的听觉范围为20?20,000Hz,即我们无法获取振动频率小于20Hz和大于20,000Hz的声波。所以科学家把声波按照人类的听觉范围进行了分类:振动频率大于20,000Hz的成为超声波,小于20Hz的称为次声波。
超声波是一种超越人类听力极限的声波,频率大于20KHz,是在弹性介质中的机械振荡。超声波能够在固体、液体和气体中传播,不同的传播介质传播的速度不相同。超声波和其他机械波一样,在传播的过程中也会因折射和反射而衰减。超声波有以下特性:
1.波长
通常我们把波的传播速度用波长乘以频率来表示。电磁波传播的速度非常快,高达3×108m/s,但是声波传播的速度很慢,在空气中常温常压下仅为343m/s(20℃、101KPa)。在波传播的速度比较低的情况下,波长非常短,更容易辨识,如果用超声波来测距,也就代表着我们能够在距离和方向上获得更高的分辨率。有了更高的分辨率,才可能使我们在测量过程中得到更高的精度。
2.反射特性
通过捕获在目标上反射的超声波,从而检测到物体的存在。因为金属、水泥、玻璃、木材、橡胶与纸能够反射将近100%的超声波,用超声波能够很轻易地找到这些对象。但是像布匹、棉毛等材料,它本身吸收超声波,用超声波来检测它们很困难。同时,要想探测位于凹凸表面和斜坡表面上的物体,由于被测物的不规则使得反射波变得不规则,测量难度会加大。超声波本身的特性决定了空旷的场所是超声波的理想测试环境,并且被测物体一定要能够反射超声波。
3.温度效应
超声波在空气中传播是随环境温度温度变化的,可以用c =331.5+0.607t(m/s)来表示声波的传播速度。 其中“c”为声波传播速度(m/s),“t”表示温度(℃)。所以,要想精确地测量障碍物的距离,实时检测环境温度并进行补偿是非常必要的,尤其冬季
室内外温差较大,对超声波测距的精度影响很大,此时可用温度补偿模块来减小温度变化所带来的测量误差。考虑到本设计的测试环境是在室内,而且超声波主要是用于实现避障功能,对测量精度要求不高,所以关于温度效应对系统的影响问题在这里不做深入的探讨。超声波在空气中传播时,温度与速度的关系会在附录中,供查阅。
4.衰减
在空气中传播的超声波,会因为在球形表面上发生衍射现象导致能量扩散损失,也会因介质吸收能量造成吸收损失,并且波强衰减量与距离是成正比的。超声波的衰减率还与频率成正比。如图6所示,超声波的频率增高,衰减率就越高,传播的距离也就越短。由此可见超声波的衰减特性直接影响了超声波传播的有效距离。
1.1.2超声波测距
在现实生活中某些特殊场合,有些传统的测距方式存在着难以克服的缺陷,例如电极法测量液位,运用差位分布电极,通过给电或发射脉冲来进行液面检测,由于电极长时间浸泡在液体中,非常容易被腐蚀和电解,进而失去灵敏性。使用超声波测距就能够很好地解决这些问题。当下市面上超声波测距系统存在体积庞大、价格昂贵、精度偏低等种种问题,使其在一些中小规模的测距中难以得到普遍的使用。在这样的背景下,本文设计了一款基于AT89C52单片机的低成本、高精度、微型化的超声波测距仪。
超声波较之于其他机械波,具有以下特有性质:超声波为定向传播,绕射少,反射能力强;超声波衰减很小,穿透能力强,在空气中传播速度较慢,也可在液体固体中传播;当超声波从一种介质入射到另一种介质时,由于在两种介质中的传播速度不同,在介质面上会产生反射、衍射等现象。因此,它在军用,农牧业,医学,工业有广泛的应用。并且能够实现洗涤、焊接、粉碎、测速测距等功能。
虽然目前的技术水平,人类利用超声波传感器的技术成果还是很有限的,但是随着科学技术的飞速发展,超声波传感器的应用领域将越来越广泛。这是一个蓬勃发展的技术和工业领域,有着无限的发展前景。展望未来,超声波传感器在各方面都是一个新的重要的工具,将有巨大的发展空间。在运动测距中将有更高精度的方向定位,以满足社会日益增长的需求。声纳定位的精度的提高,可以满足未来秘密武器进行打击的需要。无需多言,未来的超声波传感器、自动化智能集成联合其他的传感器,可以实现多传感器的一体化协同作业。伴随传感器技术的进步,传感器将具有简单的学习功能,自动确定发展方向的功能,并最终具有创造性。
2
1.2 超声波模块基本介绍
1.2.1 超声波的电器特性
1.声压特性
声压级 (S.P.L.) 是表示音量的单位,利用下列公式予以表示。
S.P.L.= 20logP/Pre (dB)式中,“P”为有效声压 (μbar),“Pre”为参考声压 (2×10-4μbar)如图1所示为几种常用超声波传感器的声压图。
图1 超声波传感器的声压图
2.灵敏度特性
灵敏度是一个用来表示声音接收级的单位,如下式所列。
灵敏度= 20log E/P (dB),此式中,“E”是产生的电压 (V),“P”是输入的声压(μbar)。超声波收发器的灵敏度直接决定系统的测距范围,如图8所示为几种中常见超声波传感器的灵敏度图,从图中可以发现40KHz时传感器的声压级最高,也就是说40KHz时所对应的灵敏度最高。
3
图2 超声波传感器灵敏度示意图
3.辐射特性
把超声波传感器安装在台面上。然后,测量角度与声压 (灵敏度) 之间的关系。为了准确地表达辐射,与前部相对比,声压 (灵敏度) 级衰减6dB的角度被称为半衰减角度,用θ1/2表示。超声波设备的外表面尺寸较小易于获得精确的辐射角度。图3展示的是几种常见的超声波传感器的辐射特性。
图3 超声波传感器的辐射特性
分析以上研究结果不难看出超声波传感器工作在40KHz范围内具有最大的声压级和最高的灵敏度,这为设计中选择合适的超声波传感器指明了方向。
4
1.2.2 超声波的工作原理
市面上常见的超声波传感器多为开放型,
超声波传感器的内部结构如图4所示,复合式振动器巧妙地固定在底座上。这种复合振动器是由谐振器、金属片和电陶片构成的双压电晶片的元件振动器。谐振器是圆锥形的,目标是可以有效辐射因振动而产生的超声波,而且能够有效地聚合超声波于振动器中心。
当电压被施加到压电陶瓷,用于机械形变的电压与频率将会改变。另外,振动会使压电陶瓷产生电荷。运用这个原理,由两片压电陶片或者一片压电陶片和一片金属片组成的振子称作双压电晶片元件,当向其时间电信号时,它将弯曲振动产生超声波。反向操作,即将超声波振动施加到双压电晶片元件,就会产生电信号。
图4 超声波传感器内部结构图
图5 声压在不同距离下的衰减特性
5
1.3主要研究内容和关键问题
因为超声波检测更加快捷、便利,并且运算简便,更易完成实际控制。所以超声波测距在移动机器人领域得到广泛使用。在实际工业运用中,用超声波测距可以使机器人在移动中自动避开障碍物。也因此要求系统必须能够及时获取障碍物的位置信息(距离和方向)。因为超声波测距系统的这些特点,其在车辆倒车雷达的制造上也已被广泛使用。
本设计主要研究通过单片机控制各模块工作,是通过单片机来控制各模块协同工作,控制超声波发射器发射超声波信号,使超声波接收器捕捉辨识回波信号,利用发射回收波信号的时间差,再利用温度补偿函数从而换算测量距离。
生活中运用本设计时,测量距离可能会随时改变,为了及时捕捉改变的距离值,即提高超声波测距仪的灵敏度,通过设定采样周期来实现实时测距。
主要有以下问题需要解决:
1.超声波回波检测
超声波信号发送后,会在障碍物表面进行反射和衍射,有些反射波可能会经过多次反射,超声波接收器会接收到多个回波信号,如何在众多回波中正确辨别是一个难点。
因为本设计研究的是短距离测距,那么如果在发射波后,一段时间内没有接收到回射波,我们就判定为超距,结束本次作业,返回清零,重新开始测距。
2.温度的影响
超声波在空气中传播时,它的速度是受外部温度影响的,我仔细的查阅了不同温度下对应超声波速度值,发现温度会严重影响测量精度。所以使用一种方法将外部温度对超声波测距精度的影响降到最低显得十分迫切。
3.如何报警
当测量距离小于一定范围时,属于危险范围,因为不论是机器人还是汽车,在与障碍物距离很近时,由于惯性原因难以避免与其相撞,所以与障碍物相距一定范围内时,要求系统会自动报警。报警通过什么实现,用什么方式,如何判定,这便成为我研究的另一个问题。我们考虑的是设计的实用性,用何种方法简便快捷的实现是研究重点。
6
第二章 方案总体设计
2.1 超声波测距仪功能
为了实现测距,本设计由硬件和软件两部分组成。主要由MCU控制单元、温度补偿模块、超声波模块、按键输入模块、显示模块、报警模块等组成。在这个设计中的核心模块是单片机。其中硬件有单片机、各功能模块、输入输出设备和各组成电路,软件是所有工作程序的统称。单片机通过系统急性比较处理,从而控制蜂鸣器报警。系统总体的功能方框图如图5所示。
图5系统功能方框图
主控制模块由AT89C52构成,就相当于人的大脑,主要起到控制协调各模块作业的作用。通过超声波发射接收的往返时间差,利用 L= vt/2精确测量出障碍物的距离,并显示在液晶屏上,同时显示当前温度T及该报警设定值。
由AT89C52控制的定时器负责产生超声波脉冲并计时,遇到障碍物后反射, 超声波接收模块对声波进行捕捉,再次计时。然后根据超声波往返的时间差、当前温度下超声波传播的速度代入温度补偿后的算式L=vt/2算得障碍物距离。超声波接收模块以及超声波发射模块就相当于人的眼睛,是获取外部信息最主要的通道。
按键输入模块有四个按键组成,主要作用是设置超声波测距仪的最小报警距离。 测温模块由主要作用是测量实际温度,把数据传输到主控模块,从而提取出相应温度下超声波在空气中传播的速度
显示模块由LCD1602构成,主要作用是显示测距结果、温度、以及最小报警距离。
7
报警模块由蜂鸣报警器组成,主要作用是在所测距离小于设置最小距离时发出蜂鸣、报警。应用如倒车雷达,当车尾离障碍物的实际距离小于一定值后,倒车雷达会报警提示。
信号通过单片机的各个模块处理进行综合分析,实现超声波测距仪的功能。在此基础上,完成系统方案的总体设计,并最后通过硬件和软件实现各功能。并附有硬件电路图、程序流程图、功能框图,特定系统配置、电路的原理与程序设计相伴。该系统的控制是很容易的、可靠的、测距精度高、可读性和流程明了等优势。实现后的作品可用于需要测量距离参数的各种应用场合。
2.2设计要求
考虑到设计的应用,本设计主要有以下设计要求:
1.主控模块
本设计旨在设计实现微型超声波测距仪,语言要求:C语言
低成本的51单片机是很好的选择,要求使用者要熟悉51单片机集成开发环境,单片机的内部结构、资源以及硬件和软件调试设备的基本方法和技能,而且可以使用C语言编写项目文件。
2.测量距离范围:4m
超声波测距仪,由于超声波方向性强、渗透力强、容易得到声能等较集中的优势,因为声衰减问题,因此并不适用于长距离范围。目前主要应用于倒车雷达,导航失明,视力矫正等。
盲人导航主要是判断当前方向的障碍物距离,从而帮助盲人选择正确的路线,此设计可以搭配GPS导航、语音播报等系统共同协助视力障碍者选择正确的前进路线。
视力矫正主要适用于坐姿不正确,读书、看电视、玩电脑离书本和屏幕太近的人群,首先根据实际需要设定报警距离,当使用者超过报警距离后自动报警。
以上都是短距测距,所以本设计4m的测量距离完全可以满足测量需要。
3.误差范围:3mm
超声波测距可能因为障碍物不规则、温度影响等原因影响测量精度,本设计添加了
8
温度补偿模块,大大提高了测量精度,知道老师要求精度优于1%,考虑到在实际中的应用,我查取了相关资料,觉得控制在3mm误差范围内是比较合适且可实现的。
4.温度补偿
自行构建基于单片机的最小系统,完成相关硬件电路的设计实现
5.显示
利用数显装置显示障碍物的距离值(以cm为单位,误差不超过1cm);了解超声波测距原理,温度补偿实现方法。
6.报警
当被测距离小于预定的距离时,向蜂鸣器发送信号报警。
2.3系统基本方案
2.3.1方案比较
1. 主控制器模块
方案1:
系统的核心部件选择一块CPLD(复杂可编程逻辑器件,诸如EPM7128LC84-15),以实现功能的控制和处理。 CPLD具有速度快、易于编程、资源丰富、开发周期短等优点,可以用VHDL语言开发编写。与单片机相比,CPLD在控制上有很大的不足。还有,CPLD的处理速度是异常迅速的,但是超声波测距处理速度的要求不会太高,则对系统处理信息的要求也不会过高,在这一点上,MCU足以胜任了。使用该方案,在控制上会遇到很多困难。出于这个原因,我们不使用这种方案的,所以产生第二个方案。 方案2:
机为系统的核心,用其超声数据处理,以实现其既定的性能指标。进行系统的全面分析,关键在于实现超声波测距,但在这一点上,单片机展示了其优势――控制简单、方便、快捷。其结果是,该微控制器可以充分发挥其资源丰富,有更强大的控制功能和位寻址的操作功能,价格低廉等特点。所以,较为理想的是第二个方案。
综上所述,我们选择了方案2。
2. 超声波模块
9
方案1:
由一块T40-16作为超声波模块。此模块具有1-1000cm非接触式的测距功能,但其造价高,很难有更广泛的应用。故放弃此方案。
方案2:
使用HC-SR04来实现超声波的收发,它可以进行2―400cm的非接触式距离检测,其测距误差不超过3mm。该模块包含反射超声波的超声波发射器、接收回波的接收器和控制电路。其物美价廉,测距精度高,故采用第2方案。
3. 电源模块
出于本设计使用便捷性的考虑,选择便携电源供电,故提出以下两种供电方案。 方案1:
采用12V蓄电池向系统供电。蓄电池拥有很强的电流驱动能力,和稳定的电压输出性能。但是蓄电池的体积太大,使用非常不方便。所以我们放弃了这个方案。
方案2:
采用3节1.5 V干电池共4.5做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。
综上所述采用第2套方案。
4. 显示模块
方案1:
数码管显示。由于数字显示速度快、简单易用、简洁的显示等特点使它得到广泛应用。在这里我们需要显示的是测得的距离值和温度值以及报警距离的设置,不足以满足使用需要,因此我们放弃了此方案。
方案2:
使用LCD1602液晶显示屏。由于其清晰的液晶显示屏、丰富的内容、清晰地显示信息、便于使用、显示速度快等优点已被广泛使用。对于此系统我们要求不仅能显示测量距离、温度,还要显示报警距离的设定,故用物美价廉的LCD1602显示,充分发挥出LCD的显示优势。因此我们选择了此方案。
10
5. 温度补偿模块
方案1:
使用PT100温度传感器用于温度补偿电路。 PT100铂电阻传感器是利用其随温度变化的阻值、并显现出一定的函数关系的特点来进行温度补偿的,具有抗震动性、稳定性、精度高、耐高压等特点。但其操作较为复杂。
方案2:
温度补偿电路使用DS18B20作为温度传感器。通过“一线”总线(1-Wire是一种独特的数字信号的总线协议,独特的电源线和信号线的复合一起只使用一个口线;每个芯片独有的编码,支持网络寻址和零功耗等待等,这条总线需要的硬件连线最少)。DS18B20数字温度输出这种独特的方法允许多个DS18B20容易建立传感器网络,从而提供更多地可能性给整个测量系统的建立和组合。这已经比其他的温度传感器在转换时间、测量精度、分辨率、传输距离等有了长足的进步,为用户提供了更便捷的使用和更让人满意的结果。
相比之下,DS18B20数字温度直接输出,无需采取纠正措施,故选择方案2。
6. 报警模块
方案1:
使用语音芯片进行提示,优点可以自由设定要提示的声音。缺点使用复杂,需要专门的编程软件,成本高控制复杂,不便于普及。
方案2:
采用蜂鸣器提示,电路简单实用,可靠性高。
综上所述我们选择方案2。
2.3.2方案汇总
我们最终确定了如下方案:
1、主控芯片采用AT89C52单片机作为主控制器。
2、使用HC―SR04超声波模块
11
3、用3节干电池供电。
4、用LCD1602显示。
5、采用DS18B20做温度补偿。
6、使用蜂鸣报警器报警
12
第三章 系统硬件设计
3.1 单片机最小系统
对单片机的认识源于大一时电子爱好者协会的一次讲座。当时大三的学长们在做智能车,精彩的演讲和有趣的知识吸引了我,也让我对单片机产生了兴趣。他告诉我,单片机就相当于人的大脑,它不能像电脑那样做出特别复杂的运算,但它足以完成很多操作任务。他当时用的也是51单片机,因为感觉性能比较稳定,运算速度快,而且物美价廉。后来通过大三对单片机课程的学习,进一步对AT89C52了解,因此本次设计选用AT89C52作为主控制器。主控制系统电路如图6所示。
图6 单片主控电路
单片机通过发送信号来控制主控制电路协调超声波发射模块,超声波接收模块,显示模块,温度模块,报警模块。
超声波测距仪中各模块主要由单片机主控电路进行控制和协调,从而有条不紊的进行工作。
3.2 超声波测距模块
使用现成的超声波模块HC―SR04, 它的工作原理是:向IO口TRIG发送信号,加大于10us的高电平;该模块能够自动发送8个频率40KHz 的方波,且处于工作状态是检测是否有回波信号;如有返回信号,会在IO口向ECHO传输一个高电平信号,此高电平延续的时间便是超声波的往返时间。l(测试距离)=v(声速)t(高电平时间)/2。实物如下图7。其中VCC能够提供4.5V电源,GND为接地,TRIG可以触发输入信号,
ECHO
13
则为含有回波信号的四条线。
图7 超声波模块实物 图8 超声波接口
T/R-40-12型超声波传感器的震荡频率为40KHz,传播10米超声波信号强度便衰减到40个声压级,此时超声波接收探头就很难接收到回波信号。因此,从理论上分析,本设计超声波测距部分的实际范围是10cm―400cm,理想的避障范围是10cm―100cm,所以实际壁障安全距离应设在50cm―80cm之间。
图9 避障原理
图9中,超声波指向性地发送一段超声波并计时,超声波经过在空气中传播后,遇到障碍物反射回来被超声波接收器捕捉到,同时停止计时。利用时间差计算法算出距离。
14
图10 超声波接口电路图
3.3 显示模块
显示模块采用数LCD1602,连接图如图所示
图11 LCD显示电路
显示模块主要用来显示测量的距离值、温度传感器测量的温度值以及最小的报警距离。
3.4温度补偿电路
温度补偿电路采用DS18B20传感器,P2.4接DS18B20数据总线,由单片机控制DS18B20温度转换和数据的传输,并且将10k的`上拉电阻连接到数据总线。该系统采用外接电源
15
DS18B20的优点是I / O接口不需要强拉,总线控制器并不需要在温度很高的情况下转换。因此转换在可以允许的范围内,单线总线上附加数据的传输,如图15所示的硬件结构。
图12温度补偿电路DS18B20
3.5 蜂鸣报警电路
如图13所示,蜂鸣报警电路由蜂鸣器、三极管、接到单片机上P13引脚上的电阻组成。
图13 蜂鸣报警电路图
16
第四章 系统软件设计
4.1 AT89C52程序流程图
如图14所示为超声波测距单片机AT89C52程序流程图。
图14 系统软件的整体流程图
17
流程图具体细分如下:
1、系统初始化
单片机AT89C52、LCD1602、蜂鸣报警器、超声波测距模块通过上电复位并自行运行单片机清零程序。
2、发射超声波
自动读取超声波测距程序,AT89C52控制HC―SR04指向性地发射超声波并且记录时间,待捕捉到回波时终止计时,算得回波时间。
3、判断是否检测到回波
超声波接收电路出于运行状态。如超声波接收电路收到回波,则将信号发送到单片机并再次计时,通过温度补偿后的算式算得障碍物当前距离;如超声波接收电路未在设定时间收到回波,则返回。
4、显示
显示距离、当前温度、设置的报警距离。
5、是否小于超声波报警距离
将测得距离与报警值进行比较,如小于报警值,则进行报警。
6、再次检测等待下次报警
18
4.2 计算距离程序流程图
图15 计算距离程序流程图
首先调用温度函数进行温度补偿,得到当前温度下的超声波传播速度v;然后调用时间函数t,即超声波发射与超声波回波的时间差;再将以上函数代入算式=vt/2算得当前温度下障碍物的距离;最后返回。
4.3 报警电路程序流程图
首先调用测量函数l,然后与报警设定值进行比较,如测量值l小于报警设定值0.5m,则向蜂鸣器发送报警信号,蜂鸣器进行报警;如测量值l大于报警距离0.5m,则不报警,返回调用测量函数。
19
图16报警电路程序流程图 图17 超声波回波接收程序流程图
4.4 超声波回波接收程序流程图
如图17所示,首先单片机控制超声波发射器发射超声波,同时计时开始,超声波接收器处于工作状态,如接收到回波,则再次计时,计算超声波往返时间差t;如未收到超声波回波,则返回超声波放射,重新发射并计时。
20
第五章 系统的调试与测试
5.1 安装
1.检查元件
按电路图购买好元件后,首先需要检测元件是否完好。按照各种元件检测的方法分别进行检测,这项任务虽然重复繁琐,但是我觉得这是必做的工作,因为只要有一个元件出了问题,设计就不能实现它的功能。同时需要细心对照原理图,使其一一对应,多次检查确保正确后才可以上件、焊件,以防因元件错误不便修正,导致功能无法实现。
2.放置、焊接各元件
出于对本设计便携的要求,选用了正好可以容纳所有器件的小块洞洞板。然后依照原理图对应放置各元件,此过程中先安放、焊接低层元件,最后焊高层的和要求较高的元件。特别要注意易损元件的焊接,我把它们放在最后,同时要注意集成芯片上焊接不能连续焊接超过10s,并且注意芯片的安装方向。
5.2 系统的调试
打开电源开关,电源指示灯亮起,LCD1602正常显示。距离0.90m,温度28°C,设定报警距离0.5m。向障碍物进一步靠近。
21
当靠近后,距离显示为0.44m,发出蜂鸣警报。
软件调试正常,屏幕正常显示,正常工作。
经过多次测试调试,与实际温度对比、实际距离对比,该设计能够在一定范围内稳定的工作,并测出距离,并且误差小于3毫米。设计成功。
22
第六章 总结
在台老师的悉心指导下,自己从初拿题目的一头雾水,到一步步地学习、设计、改正,再改正,到最后完成本设计,这个过程让我收获良多。
这是我16年的学生生涯中最后一次完成作业,一份特别的作业。学校的教育是有限的,更重要的是我在这个过程中培养的独立思考、独立完成任务的能力以及终生学习的信念。我觉得这才是一所高等学府应有的教育模式,人脑不是计算机,也不是储存器,比起存储,我相信现在的一台普通电脑就比人一辈子记忆量还大。我认为大脑是一个特殊的信息加工处理器,较之电脑,它拥有更多地创造性以及无限可能。我想求学这么多年,可能学习、锻炼的正是这种能力。在信息爆炸的年代,知识在飞速的更新,有可能我们现在学习的知识已经过时很多年,但为什么还要学习这些知识,这种行为并不是没有意义的,它让我们学会了学习方法,在掌握前人知识的基础上,我们可以更好更快地创造。
这次经历,对于我个人的成长来说意义深远。这个过程不像我最初想的那么简单,原以为可以一边工作一边完成设计的我,也辞掉了刚刚入门的工作,专心地投入其中。专注本身就是一种历练,本身也是人的一种优秀的品质。
大一的时候,自己对于大学的一切都很新鲜,着迷,先后参加院学生会,创业大赛等组织及活动,丰富了自己的课余生活,也在实践与学习中加深了对世界、人生、价值的思考。大二经历了一年的颓废,基本上课余时间都在寝室打游戏,挂了科,付出了代价。大三时迷恋上了市场营销、心理学,先是看了三十二本世界各领域名人的传记,从初中高中时的模仿到了总结分析,认识到成功的路虽不同,但是成功者的许多特质都是相同的,然后开始全心扎入市场营销的学习中,拜读了科特勒、泰勒、德鲁克等名师大家的许多著作,同时自己的三观有了新的提升,但这期间由于想法极端,耽误了大学学业。由于大三的积累,到了大四就有些急于求成了,想尽快融入社会,实现自我价值。却忘记了应该先把应该走的路走好,才能走自己想走的路。
这次宝贵的经历,让我明白,路是走出来的,不是想出来的。我会把我对梦想的渴望,拆分成一步步可以执行的计划,按部就班地完成。
23
参考文献
[1] 宋文绪. 传感器与检测技术[M]. 北京: 高等教育出版社, 2004.
[2] 余锡存. 单片机原理及接口技术[M]. 西安: 西安电子科技大学出版社, 2000.
[3] 李全利. 单片机原理及接口技术[M]. 北京: 北京航空航天大学出版社, 2004.
[4] 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用[M]. 西安: 西安交通大学出版社, 2005.
[5] 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计[M]. 北京: 北京航空航天大学出版社, 2006.
[6] 康华光. 电子技术基础(模拟部分)[M]. 北京: 高等教育出版社, 2004.
[7] 胡萍.超声波测距仪的研制[J]. 计算机与现代化,2003,7(10):21~23.
[8] 时德刚,刘哗. 超声波测距的研究[J]. 计算机测量与控制,2002,9(10):31~33.
[9] [美]J.马库斯. 电子电路大全[M]:卷1,日用电路. 北京:计量出版社,1985.
[10] 苏长赞. 红外线与超声波遥控[M]. 北京:人民邮电出版社,1993.7.
[11] 张谦琳. 超声波检测原理和方法[M]. 北京:中国科技大学出版社,1993.10.
[12] 九州. 放大电路实用设计手册[M]. 沈阳:辽宁科学技术出版社,2002.5.
[13] 樊昌元,丁义元. 高精度测距雷达研究[J]. 电子测量与仪器学报,2000,9(8):3537.
[14] 苏伟,巩壁建. 超声波测距误差分析[J]. 传感器技术,2004,3(4):17~20.
[15] 赵保全. 中国集成电路大全[M].北京:国防工业出版社,1985.
[16] 肖景和. 数字集成电路应用精粹[M]. 北京:人民邮电出版社,2003. [17] 陈晓文. 电子线路课程设计[M].北京:北京电子工业出版社.2004.
[17] 陈卿,侯薇. 家电控制与检测用集成电路[M].北京:中国计量出版社,2005. [20] 何希才. 传感器技术及应用[M]. 北京:北京航空航天大学出版社,2005.
[18] 余成波. 传感器与自动检测技术[M]. 北京:高等教育出版社,2004.
24
25
附录
附录1 整机电路原理图
26
附录2 超声波温度和速度的关系
27
28
附录3 部分源程序
温度补偿程序 void init2() {
//T2CON=0x0c;
RCAP2H=(65536-5)/256; RCAP2L=(65536-5)%256; TH2=(65536-5)/256; TL2=(65536-5)%256; EA=1; ET2=1; TR2=1;
// PT2=1; //T2}
void main() {
init1(); //xianshi(); //init2(); //T2tx=0;
IT0=0; //init(); //while(1); }
void timer1() interrupt 3 {
tx=~tx; k++; if(k==3) { k=0; TR0=0;
设为高优先级 液晶初始化 温度字母 初始化 外部中断低电平触发定时器初始化 29
TR0=1;
delaynus(6); //除共振 EX0=1;
//for(d=0;d
void int0() interrupt 0 {
IE0=0; //中断触发位 EX0=0; //关中断 TR1=0; ET1=0; TR0=0; ET0=0;
date=TH0*256+TL0; date+=500; if(TZ>=0&&TZ
jl=(date*0.161); }
if(TZ>10&&TZ
jl=(date*0.169); }
if(TZ>20&&TZ
jl=(date*0.172); }
if(TZ>30&&TZ
jl=(date*0.174); }
30
if(TZ>40&&TZ
jl=(date*0.175); }
xianshic();
for(d=800;d>0;d--); TH0=0x00; TL0=0x00; ET1=1; TR1=1; O++; if(O==100) { O=0; TR1=0; ET1=0; TR2=1; ET2=1; }
}
void timer0() interrupt 1 //{ TR1=0; TR0=0; TH0=0X00; TL0=0X00; TR1=1; }
void timer2() interrupt 5 { TF2=0; EXF2=0; TR2=0;
31
计时
ET2=0;
xianshi(); //温度字母 readyread(); TL=readonechar(); TH=readonechar(); TZ=TH*16+TL/16; xianshiwen(TZ); delay(10); TR1=1; }
#include //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int #include #include
//数码管段选定义 0 1 2 3 4 5 6
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
7 8 9 //断码
uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //数码管位选定义
uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};
uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uint code wendu_buchang1[46] = {
//温度补偿表格
// 0-9度 //10-19度 //20-29度 //30-39度
//40-45度
331,332,333,333,334,334,335,336,336,337, 337,338,339,339,340,341,341,342,342,343, 343,344,345,345,346,346,347,348,348,349, 349,350,351,351,352,352,353,354,354,355, 355,356,357,357,358,358 };
sbit smg_we1 = P3^4; sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7;
32
ET1=1;
//无符号整型 宏定义 变量范围0~65535
//数码管位选定义
sbit dq = P2^4; //18b20 IO口的定义 uint temperature ; // sbit c_send = P3^2; sbit c_recive = P3^3;
//超声波发射 //超声波接收
sbit beep = P2^3; //蜂鸣器IO口定义 uchar smg_i = 3; //显示数码管的个位数 bit flag_300ms ;
long distance; //距离 uint set_d; //距离 uchar flag_csb_juli; //超声波超出量程
uint flag_time0; //用来保存定时器0的时候的 uchar menu_1; //菜单设计的变量
/***********************小延时函数*****************************/ void delay_uint(uint q) { while(q--); }
/**********************1ms延时函数****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i
/**********************处理距离函数***************************/ void smg_display() {
dis_smg[0] = smg_du[distance % 10]; dis_smg[1] = smg_du[distance / 10 % 10]; dis_smg[2] = smg_du[distance / 100 % 10] & 0x7f; }
/***************把数据保存到单片机内部eeprom中****************/ void write_eeprom()
33
{
SectorErase(0x2000);
byte_write(0x2000, set_d % 256); byte_write(0x2001, set_d / 256); byte_write(0x2058, a_a); }
/******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() {
set_d = byte_read(0x2001); set_d
set_d |= byte_read(0x2000); a_a = byte_read(0x2058); }
/**************开机自检eeprom初始化*****************/ void init_eeprom() {
read_eeprom(); if(a_a != 1) { set_d = 50; a_a = 1; write_eeprom(); } }
/********************独立按键程序*****************/ uchar key_can; //按键值 void key() //独立按键程序 {
static uchar key_new;
key_can = 20; //按键值还原 P2 |= 0x07;
if((P2 & 0x07) != 0x07)
//按键按下
34
//先读
//新的单片机初始单片机内问eeprom
{
delay_1ms(1); //按键消抖动 if(((P2 & 0x07) != 0x07) && (key_new == 1)) {
//确认是按键按下
key_new = 0; switch(P2 & 0x07) {
case 0x06: key_can = 3; break; case 0x05: key_can = 2; break; case 0x03: key_can = 1; break; } } } else key_new = 1; }
/*******************数码管的位选******************/ void smg_we_switch(uchar i) { switch(i) {
case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break; case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break; case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break; case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break; } }
/***********************数码显示函数***************************/ void display() {
static uchar i; i++; if(i >= smg_i)
35
//得到k2键值 //得到k3键值 //得到k4键值
i = 0;
smg_we_switch(i); P1 = dis_smg[i]; }
/***********************18b20初始化函数************************/ void init_18b20() { bit q; dq = 1; dq = 0; dq = 1; q = dq; dq = 1; }
/*******************写18b20内的数据*********************/ void write_18b20(uchar dat) { uchar i; for(i=0;i
//写数据是低位开始
dq = 0;
//把总线拿低写时间隙开始
//把总线拿高 //给复位脉冲 //750us
//把总线拿高 等待 //110us
//读取18b20初始化信号 //200us
//把总线拿高 释放总线
delay_uint(1); //15us delay_uint(80); delay_uint(10); delay_uint(20);
//位选 //段选
dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; dat >>= 1; } }
/*******************读取18b20内的数据*********************/ uchar read_18b20()
36
//释放总线
{
uchar i,value; for(i=0;i
//把总线拿低读时间隙开始 //读数据是低位开始 //释放总线 //开始读写数据
value >>= 1; if(dq == 1) value |= 0x80;
delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 }
return value; }
/******************读取温度的值、读出来的是小数***************/ uint read_temp() { uint value; uchar low; init_18b20();
//在读取温度的时候如果中断的太频繁了,就应该把中断给关 //初始化18b20
了,否则会影响到18b20的时序
write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); init_18b20();
//500us //初始化18b20
//返回数据
write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA = 0;
low = read_18b20(); //读温度低字节 value = read_18b20(); //读温度高字节 EA = 1; value
//把温度的高位左移8位
//把读出的温度低位放到value的低八位中 //转换到温度值
37
value *= 0.0625;
return value; }
//返回读出的温度
/*********************小延时函数********************/ void delay() {
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }
/*********************超声波测距程序************************/ void send_wave() {
c_send = 1; delay(); c_send = 0; TH0 = 0; TL0 = 0; TR0 = 0; TR0=1; while(c_recive) {
flag_time0 = TH0 * 256 + TL0;
if((flag_time0 >40000)) //当超声波超过测量范围时,显示3个888 {
38 //执行一条_nop_()指令就是1us
//10us的高电平触发
//给定时器0清零
//关定时器0定时 //当c_recive为零时等待
while(!c_recive);
//当c_recive为1计数并等待
TR0 = 0; flag_csb_juli = 2; distance = 888; break ; } else {
flag_csb_juli = 1; } }
if(flag_csb_juli == 1) { TR0=0; //
//关定时器0定时 //读出定时器0的时间
distance =flag_time0; 0.017M 算出来是米
if(temperature
distance *= wendu_buchang1[temperature] / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米
else
distance *= 358 / 2.0 * 0.0001; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米
if((distance >500)) {
distance = 888; } } }
/*********************定时器0、定时器1初始化******************/ void time_init() {
EA = 1;
//开总中断
TMOD = 0X11; //定时器0、定时器1工作方式1
39
distance *= 340 / 2 * 0.0001; // 0.017 = 340M / 2 = 170M =
//距离 = 速度 * 时间
//如果大于3.8m就超出超声波的量程
ET0 = 1; TR0 = 1; ET1 = 1; TR1 = 1; }
//开定时器0中断 //允许定时器0定时 //开定时器1中断 //允许定时器1定时 1
/****************按键处理数码管显示函数***************/ void key_with() {
if(key_can == 1) //设置键
{
menu_1 ++; if(menu_1 >= 3) {
menu_1 = 0; smg_i = 3; //只显示3位数码管 }
if(menu_1 == 1) {
smg_i = 4; //只显示4位数码管 } }
if(menu_1 == 1) //设置报警
{
if(key_can == 2) {
set_d ++ ; //加1
if(set_d >400) set_d = 400; }
if(key_can == 3) { set_d -- ;
//减1
if(set_d
40
set_d = 1; }
dis_smg[0] = smg_du[set_d % 10];
//取小数显示
dis_smg[1] = smg_du[set_d / 10 % 10] ; //取个位显示 dis_smg[2] = smg_du[set_d / 100 % 10] & 0x7f ; //取十位显示 dis_smg[3] = 0x88; //a write_eeprom(); } }
/****************报警函数***************/ void clock_h_l() {
static uchar value; if(distance
value ++; //消除实际距离在设定距离左右变化时的干扰 if(value >= 2) {
beep = ~beep; //蜂鸣器报警 } } else {
value = 0; beep = 1; } }
/****************主函数***************/ void main() { beep = 0;
//开机叫一声
delay_1ms(150); P0 = P1 = P2 = P3 = 0xff;
41 //保存数据
//取消报警
send_wave(); //测距离函数
smg_display(); //处理距离显示函数 time_init(); //定时器初始化程序 init_eeprom(); //开始初始化保存的数据 send_wave(); send_wave(); while(1) {
if(flag_300ms == 1) {
flag_300ms = 0;
temperature = read_temp(); //先读出温度的值 clock_h_l(); //报警函数 send_wave();
//测距离函数
if(menu_1 == 0)
smg_display(); //处理距离显示函数 if(menu_1 == 2) {
dis_smg[0] = 0xff;
dis_smg[1] = smg_du[temperature % 10]; //取温度的个位显示 dis_smg[2] = smg_du[temperature / 10 % 10] ; //取温度的十位显示 dis_smg[3] = 0xff; } } key(); {
key_with(); } } }
/********************定时器1中断服务程序********************/ void time1_int() interrupt 3
42 //测距离函数 //测距离函数
//显示温度
//按键函数
if(key_can
//按键处理函数
{
static uchar value;
//定时2ms中断一次
TH1 = 0xf8;
TL1 = 0x30; //2ms display(); //数码管显示函数
value++; if(value >= 150) { value = 0; flag_300ms = 1; } }
43
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期: 指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名: 日 期:
44
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
45
导师签名: 日期: 年 月 日
46
【毕业论文范文单片机(精选3篇)】相关文章:
电子信息工程专业毕业生的自荐信2023-10-31
嵌入式软硬件开发应届毕业生个人简历2022-05-02
压阻传感器在真空度控制的应用论文2022-05-27
单片机实习总结及体会2022-05-06
电子信息科学技术毕业论文开题报告2022-12-30
试论项目教学法在法学基础理论课程教学中的应用论文2023-06-13
机电系毕业论文2023-10-07
电子信息工程毕业论文参考文献2022-12-08
野外信息采集系统设计的论文2024-01-11
利用网络教学提高大学英语教学质量的探讨论文2023-06-08