毕业设计论文参考文献.docx
《毕业设计论文参考文献.docx》由会员分享,可在线阅读,更多相关《毕业设计论文参考文献.docx(19页珍藏版)》请在冰豆网上搜索。
毕业设计论文参考文献
毕业设计论文参考文献
第一章系统功能分析
1.1多时段控制器的特点
时间是重要的物理量,时间的测量和控制,在工业生产和科研工作中都非常重要。
在生活领域、医疗领域、科学研究、生产实践中均有着广泛应用。
如测量病人体温、分析气温变化、控制某个生产加工车间的时钟等。
本课题设计利用单片机结合传感器技术而开发设计了这一时钟控制系统。
1.2多时段控制器的组成框图
第二章电路工作原理
2.1电路的整体工作原理
整个系统主要可分为键盘设置部分,控制电路,单片机处理部分,数码管显示部分。
本设计控制器本身为一个电子钟。
有时、分显示。
在时、分之间的小点闪烁为秒在走动。
可以对时、分进行校准,每次校准秒自动清零。
同时且相互不影响的控制两个相互独立的用电器。
两个基本点时段可通过按键进行切换。
每一路控制我设计了两个时段,可供用户使用,并且两个时段的(上、下时段)都是可调整的。
上、下时段是可以切换显示的。
同时设计了一个复位键,按下复位键可以是机器复位,所有时段达到初始状态。
每一路数,我现在用的是红灯显示。
当时间运行到设定的时间段内时,红灯会亮起来。
代表控制用电器运行。
虽然只设计了两路,每一路只有两个时间段,以后可以在此基础上对该电路进行改进,达到真正的多路多时段控制器。
另外对大型的用电器的控制可以通过继电器来完成。
在这次的设计上我也表现出来了。
红灯的点亮就是通过继电器来完成的。
。
利用A/D转换器件对模拟量的测量,通过P3.5口采集信号,通过AT89C51进行数据处理,通过P2口进行数码管的动态3位显示。
本设计的应用相当的广泛可以对任何模拟信号进行测量、显示。
本设计的主要问题在于对A/D转换的了解,不选用合适的A/D转换方法,本设计就是采用V/F的A/D转换中一种,利用V/F转换更接近本设计的设计要求。
整形电路则是为了V/F转换后的频率波形进行整形,达到单片机中断输入的要求,为单片机的数据处理减小误差。
单片机则是对整形电路输出的频率信号在规定时间内计数,并通过内部计算求出频率,再通过一系列的计算求出所需要的值。
最后将单片机计算出的值送到显示电路进行数码显示。
电路功能的实现完全靠A/D转换的参数的设定和单片机程序电脑的实现,所以在设计时要对这两部分有严密的设计思维能力。
硬件电路包括时钟测量部分、A/D转换,数据处理,数码显示
(1)数码显示
数码管显示电路有动态和静态显示两种。
发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴显示器。
1位显示器由八个发光二极管组成,其中七个发光二极管A—G控制七个笔画的亮或暗,另一个控制小数点的亮和暗,这种笔画式的七段显示的字符较少,字符的形状有些失真,但控制简单,使用方便。
所谓静态显示,就是当显示器显示一个字符时,相应的发光二极管恒定的导通和截止,例如七段显示器的A、B、C、D、E、F导通,G截止时显示“0”。
这种显示方式的每一个8位输出口控制。
所谓动态显示,就是一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。
显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位口(称为扫描口),控制各位显示器所显示的字型也需要一个8位口(称为段数据口)。
本设计的显示电路则采用动态显示,由P2.0、P2.1、P2.2、口来控制要显示的三个数码管,7447控制数码管的数据信号的输出。
第三章、硬件电路的参数计算与芯片简介3.1LM331简介
LM331是美国NS公司生产的性能价格比较高的集成芯片,可用作精密频率电压转换器、A/D转换器、线性频率调制解调、长时间积分器及其他相关器件。
LM331采用了新的温度补偿能隙基准电路,在整个工作温度范围内和低到4.0V电源电压下都有极高的精度。
LM331的动态范围宽,可达100dB;线性度好,最大非线性失真小于0.01%,工作频率低到0.1Hz时尚有较好的线性;变换精度高,数字分辨率可达12位;外接电路简单,只需接入几个外部元件就可方便构成V/F或F/V等变换电路,并且容易保证转换精度。
3.2AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.374LS47简介
74LS47是一个7段码数码管的驱动芯片,通过它解码,可以直接把数字转换为数码管的显示数字,从而简化了程序
74LS47是一个7段码数码管的驱动芯片,通过它解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的IO开销。
因此是一个非常好的芯片!
但是由于目前从节约成本的角度考虑,此类芯片已较少用,大部份情况下都是用动态扫描数码管的形式来实现数码管显示
74LS47接线图
第四章软件程序
4.1软件的设计方案
多时段控制器以单片机晶振为基础,将模拟变量转换成数字量显示出来。
所以选择合适的A/D转换芯片则是本设计的关键,对于本设计是对电压的测量所以选用LM331作为转换的部件更为方便,LM331不需要转换程序,所以只需要改变外围转换的器件值就可以,改变频率的输出,选择合适的频率变换则成为A/D转换的关键,LM331的V/F转换遵循一个转换的关系:
F=Vin*R1/(2.09R2*RtCt);
整个设计可分为时钟测量模块、A/D转换模块,显示模块,整形模块。
(1)软件设计方法
本设计的软件主要采用中断计频率的方法,因为单片机不可以直接计频率,所有只有间接的求的。
我们知道F=N/T,N是指计的数,T是指时间间隔。
本公式就是指在一个时间间隔内,通过单片机的外部T1中断计数来得到这段时间内出现的脉冲数,在通过简单的计算就可以求出输入单片机的频率值,再根据V/F之间的转换数据就可以求得电压值通过数码管将这些值显示出来。
本程序的难点在与对中断的初始化定义,不同中断采用不同的初始化功能。
还有在程序中回出现一些简单的计算程序,所以对汇编语言的运用也是一个挑战。
在软件设计中,主要的是测频率的编写,根据单片机中断测量的相同时间不同的计数值来求得输入的频率,来编写程序,整个设计电路主要是由A/D转换形成的,而通过LM331的转换不需要软件程序,所以整个电压测试电路电路的硬件很简单,只不过在软件中要掌握好芯片的测试原理。
显示电路采用的是动态显示电路,只要控制好程序的编写和数码管的闪动问题,加适当的延时消除闪动,我们选用7447输出数据,利用三极管来控制数码管的开或关,所以对于数码管显示电路在程序没有太大的难度,主要还前部分的单片机测量电路。
(2)扩展功能
本设计的功能扩展主要通过软件来实现的,通过采样得到不同的频率值可以粗略或精确的来计算出电压变化值,再由电压与时钟之间的转换关系推导出时钟值,给数码管显示,这些功能只要对程序的计算更精确就行了。
而改变A/D转换的参数可以扩大测量时钟的范围,所以本设计可采用多位位数码管显示,即可以显示小数位,还可以实现整数的输出。
同时可以通过一个控制模块对多路时钟系统进行检测,而检测显示电路可以利用液晶显示。
将各路时钟的检测值送到液晶显示器显示。
再利用按键可对各路信号进行切换显示。
4.2功能流程
1、功能思路:
整个设计电路作到每个部件都考虑完美,理论上的知识和实际中出现的知识是经常回不一样的。
第五章调试
5.1硬件调试
5.1.1硬件调试
本设计采用的V/F转换直接是对电压信号进行转换,与本设计的设计思路正好符合。
通过LM331进行V/F转换,转化的关系是改变LM331周围的不见,根据公式:
F=Vin*R1/(2.09R2*RtCt)
所以首先在对硬件调试是先检测V/F转换是否正常进行,V,F之间的转换关系。
利用直流电压源和频率计开始输入LM331的7脚,用频率计检测频率的变化值。
再将电压升到0.2V时,输入的电压与频率之间的转换不存在线性的关系。
只时候的电压就是本设计可测得的最大电压值,相反由于LM331的最大频率输出为100K,因此如果调试后的V-F数据值呈现线性关系那么100K时对应的电压值即为最大电压测试范围。
V-F线性关系完全由LM331周围部件的值设定,所以对电压测试的范围可由LM331外围部件决定。
相反如果对硬件参数设置不合理,完全可能出现V-F转换不能进行。
所以对于V/F转换硬件的设置直接影响到对单片机数据的处理。
5.2软件调试
5.2.1MEDWIN简介
MedWin是万利电子有限公司Insight®系列仿真开发系统的高性能集成开发环境。
集编辑、编译/汇编、在线及模拟调试为一体,VC风格的用户界面,内嵌自主版权的宏汇编器和连接器,并完全支持Franklin/KeilC扩展OMF格式文件,支持所有变量类型及表达式,配合Insight®系列仿真器,是您开发80C51系列单片机的理想开发工具。
1.MedWin集成开发环境的特点
1)完美的Windows版集成开发环境MedWin
2)内自主版权的宏汇编器A51和连接器L51,并支持Keil/Franklin编译、连接工具
3)具有分别独立控制项目文件的工程项目管理器
4)在工程项目管理下,实现多模块和混合语言编程调试
5)VC风格的窗口停驻、窗口切分和工作簿模式界面
6)在线编辑、编译/汇编、连接下载运行和错误关联定位
7)符合编程语言语法的彩色文本显示
8)完全的表达式分析,支持所有数据类型变量的观察
9)无须点击的感应式鼠标提示功能
10)外部功能部件编程向导
11)不限制打开数据区观察窗口的数目
12)调试状态下用户程序自动重装能
13)提供真实的软件模拟仿真开发环境
2.启动MedWin
第一步:
启动MedWin
(1)由安装MedWin集成开发环境,直接启动MedWin
(2)或点击Windows[开始|程序/Manley/MedWin中文版]启动中文版MedWin
(3)如果已经连接仿真器,屏幕上出现MedWin的初始画面,进入启动MedW的第三步。
(4)如果没有连接仿真器,屏幕上出现端口选择画面,进入MedWin
第二步:
选择进入在线仿真或模拟仿真
(1)由于仿真器供电电源、通讯电缆连接问题,请检查并使仿真器工作正常后,点击对话框中[仿真器]按钮,进入在线仿真状态。
(2)如果确认需要进行模拟仿真,点击[模拟仿真]按钮,进入模拟仿真状态。
经过以上步骤,屏幕上出现MedWin集成开发环境的初始画面,并渐渐消失,出现MedWin集成开发环境的系统画面。
第三步:
设置工作目录
进入MedWin集成开发环境后,系统首先提示默认的工作目录为C:
\MedWin。
我们建议用户根据需
要选择合适的工作目录,例如将工作目录改为D:
\WorkDir(用户可自行定义目录名称)。
注意:
不得使用长文件名作为工作目录!
更改MedWin集成开发环境工作目录的步骤,必须在Windows环境下进行:
(1)打开Windows的资源管理器
(2)选择我的电脑->本地磁盘D:
(3)单击鼠标右键,选择新建文件夹,命名为WorkDir当建立WorkDir文件夹后,在MedWin集成开发环境点中,点击当前工作目录左侧按钮选择驱动器D盘后,打开文件夹(目录)WorkDir,确认后,工作目录设置即告完成。
系统将提示进行下一步设置:
编译/汇编/连接器的配置。
第四步:
配置编译/汇编/连接器及环境
MedWin集成开发环境初始默认编译/汇编/连接环境为使用万利电子自主版权的宏汇编和连接器,使用默认设置,汇编连接信息和错误关联均为中文提示。
当选择用户设置编译/汇编/连接环境时,必须注意选择合适的路径和程序:
如
(1)编译器路径为C:
\C51\BIN\C51.exe
(2)汇编器路径为C:
\C51\BIN\A51.exe
(3)连接器路径为C:
\C51\BIN\BL51.exe
系统头文件、库文件的环境为:
(1)编译器系统头文件路径为C:
\C51\INC
(2)编译器系统库文件路径为C:
\C51\LIB
MedWin集成开发环境默认源程序的扩展名为:
(1)C源程序文件的扩展名为.C
(2)汇编源程序文件的扩展名为.ASM
当您已经存在编译器/汇编器/连接器时,建议按照下列目录存放:
(1)C:
\C51\BIN存放C51.exe,A51.exe,L51.exe或BL51.exe
(2)C:
\C51\INC存放C程序的头文件
(3)C:
\C51\ASM存放汇编程序的嵌入文件
(4)C:
\C51\LIB存放C程序连接所需的库文件
用户可按照上面提示的路径设置编译器/汇编器/连接器及环境;如编译器/汇编器/连接器存放在其它目录,则必须在输入框中设置合适的路径或点击按钮选择相应的文件及路径。
当您使用Keil编译器时,其连接器应设为BL51.exe,当您使用Franklinl编译器时,其连接器应设为L51.exe。
第五步:
设置文本编辑器
设置文本编辑器可以用于设置文本窗口的前景字符的颜色、背景颜色、字体和编辑文件类型。
3、MedWin开发入门
MedWin集成开发环境提供了以下两种方式开发用户应用程序:
(1)不使用MedWin集成开发环境项目管理方式——对源程序文件直接进行汇编/连接,兼容传统开发习惯。
(2)使用MedWin集成开发环境项目管理方式——可进行多模块、混合语言编程的,同样也适合单模块程序的开发。
用户无论是单模块或多模块的程序开发,我们都建议使用项目管理方式管理应用程序。
不使用项目管理方式开发应用程序不使用MedWin集成开发环境项目管理方式,只能对单模块方式下的应用程序开发,具有很大的局限性。
以下是不使用MedWin集成开发环境项目管理方式开发应用程序的步骤:
第一步:
关闭当前项目文件
命令:
[项目管理/关闭当前项目]
不使用MedWin集成开发环境项目管理方式开发应用程序,用户必须关闭已经打开的项目,此时MedWin集成开发环境关闭界面上所有的窗口。
因为当打开项目文件后,MedWin集成开发环境默认所有编译/汇编、产生代码的过程都是对项目或项目所包含的文件进行的。
第二步:
在文件菜单下打开应用程序
命令:
[文件|新建]或[文件|打开]
单模块方式下的文件调试可以按照以下方法新建或打开文件:
(1)点击[文件|新建],输入文件名和扩展名,新建文件
(2)点击[文件|打开],选择文件捡取框中的文件将其打开。
第三步:
编译/汇编
命令:
[项目管理|编译/汇编]
MedWin集成开发环境根据文件的扩展名,自动对当前激活的文件选择调用外部编译器或汇编器:
(1)如果当前文件的扩展名为ASM或系统定义的扩展名,编译/汇编命令调用外部汇编命令对当前文件汇编
(2)如果当前文件的扩展名为C或系统定义的扩展名,编译/汇编命令调用外部C编译命令对当前文件编译执行[项目管理|编译/汇编]命令后产生的结果显示在消息框中。
如果需要设置文件编译/汇编的命令行参数,可以选择[项目管理|文件属性]命令设置
第四步:
错误信息关联
MedWin集成开发环境调用外部命令编译/汇编后产生的结果,显示在消息窗口中,消息窗口可由热键Ctrl+9激活。
当编译/汇编发生错误时,消息窗口中的错误信息自动与源文件关联,提示出错的位置。
在消息窗口中错误提示处双击鼠标左键或键入回车,可将错误信息与源文件的错误位置关联:
(1)如果编译/汇编没有错误,可进入第五步操作
(2)如果编译/汇编出现错误,在修改源文件后重复进行第三步操作
第五步:
产生代码并装入仿真器调试
命令:
[项目管理|产生代码]或[项目管理|产生代码并装入]
产生代码或产生代码并装入命令对经过编译/汇编无误后产生的OBJ文件进行连接产生用于下载的代码。
此命令自动地对修改过的源程序进行编译或汇编,对没有修改过的程序将越过编译或汇编过程,然后连接所有的OBJ,LIB文件,再装载代码到仿真器,完成调试程序所需的准备工作。
装载完成后,出现“Loadingprogram“(项目名)”...Completed的字样。
第六步:
产生代码并装入仿真器
命令:
[项目管理|产生代码]
命令:
[项目管理|产生代码并装入]
命令:
[项目管理|重新产生全部代码]
产生代码或产生代码并装入命令,对经过编译/汇编无误后产生的OBJ文件进行连接,产生用于下载的代码。
此命令对修改过的源程序自动进行编译或汇编,否则将越过编译或汇编过程进行连接,并装载代码到仿真器,完成调试文件所需的准备工作。
(1)使用产生代码命令,项目管理器会自动判别文件是否需要重新编译/汇编,提高调试效率
(2)使用产生代码并装入命令,项目管理器会自动判别文件是否需要重新编译/汇编,并将连接产生的代码下载到仿真器,提供调试运行使用重新产生全部代码命令,项目管理器会对所有文件重新编译/汇编,并将连接产生的代码下载到仿真器,提供调试运行。
2、烧入软件的简介
ADEK51HB是由上海航虹高科技有限公司生产的AEDK系列仿真器中的中档仿真器之一。
它无须任何仿真头即可仿真MCS-51系列的8X5X、89CX051、78C系列和90C系列等CPU,而且支持ASM51、PLM51和C语言。
其在DOS及Windows95/98系统中具有夭折处理动能,自带8X5X仿真口和EPROM固化。
5.2.2总程序调试
1、根据系统要求将事先调试好的子程序结合起来,以总的程序进行汇编,在汇编过程中发现一些错误,比如,将阿拉伯数字的;“零”写成字母“o”;子程序最后少“RET”;程序最后少了“END”
2、调试总程序时,总共有以下几个问题:
(1)有的地方数字0写成o时,就会出现编译错误警告。
有的子程序没有RET指令,那么在他执行结束时就返回不了,程序就会错误的执行下去。
(2)学到了一些窍门:
比如遇到暂时不用的语句,可以在编译时在前面加上一个分号,这样在程序运行时就