序号9--毕业设计论文(论文)正文.结论.致谢.参考文献
引言
单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。单片机具有功能强,工作模式多,寻址空间大,有利于操作系统的运行等特点。目前单片机已用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。
文中将对芯片、各部分电路及怎样对软硬件的检测作详细介绍。整个系统的核心是对电器设备多时段定时控制,设计后的系统具有操作方便,控制灵活等优点,完成了课题所有要求。
第一章 系统功能分析
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.1 LM331简介
LM331是美国NS公司生产的性能价格比较高的集成芯片,可用作精密频率电压转换器、A/ D 转换器、线性频率调制解调、长时间积分器及其他相关器件。LM331 采用了新的温度补偿能隙基准电路, 在整个工作温度范围内和低到 4.0V 电源电压下都有极高的精度。LM331 的动态范围宽, 可达 100dB ; 线性度好, 最大非线性失真小于 0.01% ,工作频率低到0.1Hz时尚有较好的线性;变换精度高,数字分辨率可达12位; 外接电路简单,只需接入几个外部元件就可方便构成 V/F 或 F/V 等变换电路,并且容易保证转换精度。
3.2 AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能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.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器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分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。
2012届毕业设计论文 第 8 页 共 ?? 页
石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.3 74LS47简介
74LS47是一个7段码数码管的驱动芯片, 通过它解码, 可以直接把数字转换为数码管的显示数字,从而简化了程序
74LS47是一个7段码数码管的驱动芯片, 通过它解码, 可以直接把数字转换为数码管的显示数字, 从而简化了程序,节约了 单片机的IO开销。 因此是一个非常好的芯片!但是由于目前从节约成本的角度考虑, 此类芯片已较少用, 大部份情况下都是用动态扫描数码管的形式来实现数码管显示
74LS47接线图
2012届毕业设计论文
第 9 页 共 ?? 页
第四章 软件程序
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转换的参数可以扩大测量时钟的范围,所以本设计可采用多位位数码管显示,即可以显示小数位,还可以实现整数的输出。
2012届毕业设计论文 第 10 页 共 ?? 页
同时可以通过一个控制模块对多路时钟系统进行检测,而检测显示电路可以利用液晶显示。将各路时钟的检测值送到液晶显示器显示。再利用按键可对各路信号进行切换显示。
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.1 MEDWIN简介
MedWin 是万利电子有限公司Insight 系列仿
发系统的高性能集成开发环境。集编辑、编译/ 汇编、
及模拟调试为一体,VC 风格的用户界面,内嵌自
权的宏汇编器和连接器,并完全支持Franklin/Keil C
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 集成开发环境的系统画面。
第三步:设置工作目录
的初择画
2012届毕业设计论文 第 13 页 共 ?? 页
进入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 程序的头文件
关联环境
2012届毕业设计论文
(3) C:\C51\ASM 存放汇编程序的嵌入文件
(4) C:\C51\LIB 存放C 程序连接所需的库文件 第 14 页 共 ?? 页
用户可按照上面提示的路径设置编译器/ 汇编器/ 连接器及环境;如编译器/ 汇编器/ 连接器存放在其它目录,则必须在输入框中设置合适的路径或点击按钮选择相应的文件及路径。
当您使用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 文件,再装载代码到仿真器,完成调试程序所需的准备工作。装载完成后,出现“Loading program“ (项目名) ”...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)学到了一些窍门:比如遇到暂时不用的语句,可以在编译时在前面加上一个分号,这
样在程序运行时就可以不执行这条语句了。
(3)刚开始调试时,p3.5口没有信号输出。在确定仿真机和仿真系统完好的情况下我们采
用了最简单的语句,就是让p3.5口一直输出一个5kHz的矩形脉冲。我们就是使用这样的方法检验各个子程序及电路的正确性的。
2012届毕业设计论文
5.2.3 软件调试步骤
第 17 页 共 ?? 页
在对软件程序编写时,首先要保证语句的正确性。
基本
与硬
真很编写完语句后,利用仿真软件对编写的语句进行最的检查,而要对软件进行功能行的检查还需要软件件联机进行调试才能表现出来。所以对本程序的仿
简单,步骤如下:
(1) 第一步:程序写入MEDWIN界面,将程序载入并产生代码(如右图)
(2) 第二步:载入程序和代码后,纠正在程序中的出现的语法错误
(3) 第三步:纠正程序中出现的错误,就可以对软件进行调试了。不过对软件的功能实现
还是要通过与硬件结合调试才能显示出来。
图5.4.1 图5.4.2 根据原理在中断程序设计上,定时器T1
即常数自动装入的8位定时器,并将其初值
这样,每1S发生一次定时器T1中断,在T1
处(001BH)对中断的次数进行计数。定时器
1,计数方式。在计数开始时使用SETB P3.1置为方式1,置为3CB0,中断的入口T0置为方式指令开启闸门(74LS08),T0开始计数,1S后关闭闸门,CPU将计数结果送入21H和22H单元,21H、22H单元分别存放TLO和TH0的值,然后调用二进制转化为BCD码子程序,转化后的BCD码结果存入35H,36H,显示子程序则将BCD码经查表指令译为7段LED字型码,然后进行显示
在对软件的调试中要注意最基本语法语句和存储器定义要求,语句中的数字标记和定义
的语句相反对应上出现错误。LM331的转换要与硬件的连接相协调。
2012届毕业设计论文 第 18 页 共 ?? 页
对软件的调试可分别对各部分功能的分析,再通过模拟运行,查看寄存器存储值对程序的运行状态进行判断。
5.3 整体电路调试
通过仿真机对程序和硬件进行联机调试。首先对每个子程序进行调试,可以分单步对程序的流程进行检查。结合实际电路的工作原理,检查程序的可行性。
在对硬件电路搭建完成后,对硬件电路检查完毕,确认无误后,即可以对系统进行仿真。对程序调试过程中出现的问题,要结合硬件电路一起检查电路。在调试过程中,保证外部计数输入单片机要打开INTO,否则程序就无法正确执行下去。对A/D转换时的转换参数设计也要求设计合理,不同的参数选择 ,对频率的输出起到很大的影响。
对数码管显示进行显示检测时候,可以通过专门的数码管显示电路,判断寄存器中的值是否与数码管显示一样,如果不一样证明在数码管的管脚接入上面存在问题的或软件中的查表程序出现了问题,如果没有显示则证明电路的接触上面或软件显示上出现了问题。可以通过调节软件程序加以改正。
(1) 时钟显示时,有一段不亮。由于在安装时数码管显示时正常的,开始就没考虑是数码管坏的,于是在检查电路,检查那一段是不是断路了,检查程序是不是对的。但是检查都是对的,到最后才查出是数码管在安装时损坏了。
(2) 没有数字显示,在上电后数码管显示一直为0。后来在硬件电路中检测发现7474芯片烧坏了,在更换芯片后即能够显示时钟。
(3) 最后结合所有的部分,将程序连接起来,就可以组合成最后的程序了,不过在结合的过程中要注意自己定义的标题名不能够出现重复。寄存器也不能出现相同的地址同时被使用。
通过每部分的软件测试可最后实现整个系统的功能。但要保证整个系统对频率测量的精确度。通过仿真机连接硬件后显示是正常的结果后,即可利用仿真机进行烧入程序了,将程序烧入单片机后即可脱机运行。
结 论 接近一年的课题设计已经结束了,这次设计是大学生所学的理论和实践相结合的一个重要环节,是对我们所学知识的一个综合的训练及考核,是对我们所学知识的应用能力和大学所学理论知识对实践技能相结合的全面的考核。并对我们如何根据要做的课题对现有的资料进行理解和运用的能力的考核。在这一年中我学到了很多东西,不管在硬件上还是在软件上都受益匪浅,感到自己以前所学到的知识没有深刻的理解,关键时刻还得求助于老师和书本,觉得以后要做的事还很多,需要不断的自学并深化学习以前的知识。
在这次课题设计终于到了很多的困难:首先,就是不会使用Protel画图,在同学的教导和自己努力下,终于能够比较熟练的画出原理图,接着就是利用Protel自动生成PCB板图,由于Protel自动生成的PCB图比较乱,所以还得进行修改。。但在软件设计时,出现了一系列的问题,给我的调试带来了很大的影响,后来在整机调试过程中也遇到类似的问题,经过相互的讨论合作,成功地解决掉所遇到的问题,最后完成了课题设计。在这次课题设计过程中给我的感触很深,也是我明白了只有团结在一起,才能真正地把事情做好。
(空2行) 致 谢(小3号黑体,居中)
在这次课题设计中,主要重点是电路的安装调试,及软件程序的设计,整机调试。但在实际做的过程中,发现本设计是软硬结合的,不能从单一方面考虑,所以在做的过程中向同组的同学询问软件如何实现功能,集合实际选择合适的电路,从而使软硬件结合起来。通过这次课题设计使我充分的认识到课题设计的重要性和必要性,使我们大有受益,不但拓宽我们的知识面,而且培养了我们在分析问题、解决问题和实际技能等各方面的操作能力。这次能够顺利的完成课题设计,完全是依靠同组同学的鼎力相助,在这里我非常感谢他们。
老师治学严谨,学识渊博,品德高尚,平易近人,在我课题设计不仅传授了做学问的秘诀,还传授了做人的准则。这些都将使我终生受益。无论是在理论学习阶段,还是在课题设计的选题、资料查询、开题、制作、调试的每一个环节,无不得到导师的悉心指导和帮助。我愿借此机会向导师表示衷心的感谢!
2012届毕业设计论文
第 21 页 共 ?? 页
参 考 文 献
[1]单片微型计算机大学读本, 北航出版社
[2]单片机基础 , 北航出版社
[3]单片机原理及接口技术, 中国轻工业出版社
[5] 徐仁贵《微型计算机接口技术及应用》 北京:机械工业出版社
[6] 洪志权 洪学海《现代计算机接口技术》北京:电子工业出版社
[7] 谭浩强《微机原理与接口技术》 北京:电子工业出版社
[8] 高鹏 安涛 寇怀成《电路设计与制版》北京:人民邮电出版社
[9] 韩晓东《Protel电路设计入门与应用》 北京:中国铁道出版社