资源描述
目 录
1、绪论 1
1.1烟雾报警器的发展及现状 2
1.1.1 火灾探测技术 2
1.1.2 火灾探测器的发展趋势 2
1.2 论文研究的目的及意义 3
1.3论文内容 3
2、基于C51单片机的烟雾报警的设计方案 4
2.1 任务分析 4
2.2设计方案 4
2.2.2 总体框图 5
3、系统硬件实现 6
3.1主控电路设计 6
3.1.1 80C51系列 6
3.1.2 80C51的基本结构 7
3.1.3 80C51单片机的的封装和引脚 8
3.1.5 80C51单片机的复位 9
3.2外围接口电路设计 10
3.2.1 NIS-09烟雾传感器简介
3.2.2声光报警电路
3.3总电路设计
4、软件实现 19
4.1 编程KEIL环境介绍 19
4.2 程序流程
5、调试
5.1 调试的步骤
5.2调试过程中遇到的问题及解决方法
参考文献 26
结束语 27
谢 辞 28
1、绪论
1.1烟雾报警器的发展及现状
1.1.1 火灾探测技术
火灾作为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安全构成了极大的威胁。由此引发的重大安全事故比皆是,所以人类一直也未停止过对它的研究。
火灾的发生和发展是一个非常复杂的非平稳过程,它除了自身的物理化学变化以外还会受到许多外界的千扰,火灾一旦产生便以接触式(物质流)和非接触式〔能量流)的形式向外释放能量。接触式形式包括可燃气体、燃烧气体和烟雾、气溶胶等。非接触式如声音、辐射等。火灾探测技术就是利用敏感元件将火灾中出现的物理化学特征转换为另外一种易于处理的物理量。各种探测器对应的火灾物理参量及探测器如图1-1所示。
1.1.2 火灾探测器的发展趋势
探测器朝新探测技术的发展进一步拓展了火灾探测的应用领域,为一些传统探测器无法胜任的环境提供了有效的手段。相关技术的发展,如傅立叶近红外光谱技术弱信号处理技术、低功耗MCU技术进一步促进了传统探测技术的改进,使得传统探测器在技术和性能上有了显著的提高。由于它功能齐全,体积小,成本低,因此它可以应用到任何电子系统中去,同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。
1.2 论文研究的目的及意义
目的:随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。家庭火灾一旦发生,很容易出现扑救不及时、灭火器材缺乏及在场人惊慌失措、逃生迟缓等不利因素,最终导致重大生命财产损失。在现代城市家庭里,许多人因不懂家庭安全常识引起火灾事故,使好端端的幸福家庭眼间毁于一旦,有的导致家破人亡,而且一旦发生居民家庭火灾,处置不当、报警迟缓,是造成人员伤亡的重要因素。所以说,人们应该积极了解家庭火灾的主要起因,还有预防火灾的发生。
意义:在我国的一些大中城市,几乎每天都发生家庭火灾,所以防火是每个家庭必须时刻注意的问题。烟雾报警器对防家庭火灾,减少火灾损失具有现实意义。
一系列火灾造成的惨痛损失也使全国各界意识到了烟雾报警器的必要性。据调查,在最近发生火灾的大多数房屋都没有安装报警器。所以,烟雾报警器在预防火灾发生上有着非常重大的意义。
1.3论文内容
第一章 绪论 本章本主要介绍了烟雾报警器的发展史及发展趋势。对烟雾探测器进行了系统性的阐述。还有论文研究的目的和意义进行了简单的解释。
第二章 基于C51单片机的烟雾报警的设计方案 本章是根据论文的要求分析了论文的主要任务。继而概括出整个设计的主要思想和确定出设计方案。
第三章 系统硬件实现 本章针对的是系统硬件是设计。在对整个系统硬件设计时,我们主要从它的主控电路80C51(单片机的复位电路、时钟电路)的设计和外围电路(声光报警电路、A/D转换电路)的设计来具体介绍。还有对在设计中用到的烟雾传感器进行了重点介绍。
第四章 软件实现 本章是论文的软件部分。其中,我们熟悉了整个程序设计的运行环境keil。还有程序的编写过程,对程序做了相应的注释。
第五章 调试 本章着重与软件的调试。在运行环境中我们调试的步骤以及在运行中出现的问题及解决的方法。
2、基于C51单片机的烟雾报警的设计方案
2.1设计方案
2.1.1方案设计思想
此次设计是针对于单片机原理及其应用展开的。所学到的相关知识,运用我们所学的电工技术,传感器技术,单片机技术去设计基于单片机的烟雾报警系统。80C51单片机好比一个桥梁,联系着传感器和报警电路设备。当周围的环境达到我们设定的数值时,烟雾传感器把被测的物理量作为输入参数,转换为电量输出。物理量和测量范围的不同,传感器的工作机理和结构就不同。通常传感器输出的电信号是模拟信号。当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。而我们选择前者,不需要用放大器,选择数值符合A/D转换器的输入等级,这样就可以简化整个系统的设置。传感器将物理信号经过A/D转换器转化为可以利用识别的电信号给单片机,这里我们选择单片机的P1.0为输入方式,接收到信号的单片机经过程序的设定会由P2.0作为单片机的输出直接启动报警电路。此时,扬声器将发出高、低交替的2种叫声,同时二极管发光,这就达到了声光报警的效果。
2.1.2 总体框图
根据方案的设计思想,我们从中就可以得到了烟雾报警系统的总体框图如图2-1所示下:
图2-1烟雾报警系统的总体框图
使用80C51单片机,选用烟雾传感器作为敏感元件,利用AD574A转换器和声光报警电路,开发了可用于家庭或小型单位火灾报警的烟雾报警器。整个设计由4大部分构成:烟雾传感器、A/D转换电路、80C51单片机、声光报警电路。
综合考虑各因素,本文选择NIS-09烟雾传感器用作采集系统的敏感元件。火灾中气体烟雾主要是CO2和CO。NIS-09烟雾传感器能探测CO2,CO,甲烷、煤气等多种气体,它灵敏度高,稳定性好,适合于火灾中气体的探
测。A/D转换器选用AD574A转换器。
3、系统硬件实现
3.1主控电路设计
硬件设计中最核心的器件是单片机80C51,它一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字电压值经计算机处理得到
相应的二进制代码,与设定的值作比较。整个系统的软件编程就是通过汇编语言对单片机80C51实现其控制功能。
3.1.1 80C51系列
80C51系列单片机产品繁多,主流地位已经形成。多年来的应用实践已经证明,80C51的系统结构合理,技术成熟,许多单片机芯片倾力于提高80C51系列产品的综合功能,从而形成了80C51的主流产品的地位,近年来推出的与80C51兼容的主要产品有:
Philips公司推出的80C51、80C552系列高性能单片机;
ADI公司推出的AdμC8ⅹⅹ系列高精度ADC单片机;
LG公司推出的GMS90/97系列低压高速单片机;
Maxim公司推出的DS89420高速(50MIPS)单片机;
由此可见,80C51已经成为事实上的单片机主流系列,所以,本次设计选择80C51单片机。
3.1.2 80C51的基本结构
80C51的基本结构如图所示
图3-1 80C51的基本结构
由图可见,80C51单片机主要由以下部分组成:
(1)CPU系统
8位CPU,含布尔处理器;时钟电路;总线控制逻辑。
(2)存储器系统
4KB的程序存储器;128KB数据存储器;特殊功能寄存器SFR。
(3)I/O口和其他动能单元
4个并行I/O口;2个16位定时/计数器;1个全双工异步串行口;中断系统
3.1.3 80C51单片机的的封装和引脚
80C51系列单片机采用双列直插式和LCC形式封装。这里仅介绍常用的总线型DIP40封装。如图3-2所示。
40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚
(1) 电源:
VCC - 芯片电源,接+5V; VSS - 接地端;
图3-2 80C51单片机的的封装和引脚
(2)时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
(3) 控制线:控制线共有4根,
ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址
PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:外ROM读选通信号。
RST/VPD:复位/备用电源。
RST功能:复位信号输入端。
VPD功能:在Vcc掉电情况下,接备用电源。
EA/Vpp:内外ROM选择/片内EPROM编程电源。
EA功能:内外ROM选择端。
Vpp功能:片内EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
(4) I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号。
3.1.4 80C51单片机的复位
在整个烟雾报警系统中,要进行实验,必须对整个系统先复位。复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。
复位电路设计
上电复位利用电容器的充电实现。图3-3是80C51单片机的上电复位电路。图中给出了复位电路参数。图3-4是80C51单片机的上电+按键复位电路。
上电要求接通电源后,单片机实现自动复位操作。上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间,单片机就可以进行复位操作。该电路典型的电阻值和我电容参数为:晶振为12MHZ,电容值为10uF,电阻值为8.2K。
·
图3-3上电复位电路
图3-4上电+按键复位电路
复位状态:
初始复位不改变RAM的状态,复位后80C51片内各特殊功能寄存器的状态如表所示,表中“x”为不定数。
表3-2复位后的内部特殊功能寄存器状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TH0
00H
BSW
00H
TL0
00H
SP
07H
TH1
00H
DPTR
0000H
TL0
00H
P0~P3
FFH
SCON
00H
IP
xx000000B
SBUF
xxxxxxxxB
IE
0x000000B
PCON
0xxx0000B
复位时,ALE和成输入状态,即ALE== 1,片内RAM不受复位影响。复位后,P0~P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余专用寄存器清0。此时,单片机从起始地址0000H开始重新执行程序。
3.2外围接口电路设计
3.2.1 NIS-09烟雾传感器简介
在设计中我们之所以选用NIS-09烟雾传感器,是因为它的输出模拟量与我们所用的A/D转换器输入等级相符合。烟雾是比气体分子大得多的微粒悬浮杂气体中形成的,和一般的气体成分的分析不同,必须利用微粒的特点检测。这类传感器多用于火灾报警器,也是以烟雾的有无决定输出信号的传感器,不能定量的连续测量。
(1)散射式
在发光管和光敏电阻之间设置遮光屏,无烟时光敏元件接收不到信号,有烟雾时借助微粒的散射光使光敏元件发出信号。
(2)离子式
用放射性同位素镅Am241放射出微量的a射线,使附近空气电离,当平行平板电极间有直流电压时,产生离子电流Ik。有烟雾时,微粒将离子吸附,而且离子本身也吸收a射线,其结果是离子Ik减小。
若有一个密封装有纯净空气的离子室作为参比元件,将两者的离子电流比较,就可以排除外界干扰,得到可靠的检测结果。
在本次设计中,我们选用NIS-09烟雾传感器。它是离子式烟雾传感器,是NEMOTO公司专为检测延误而精心设计的新型传感器。
检测方式:离子型,一源两室。
放射参数:电源电压是DC 9v,输出电压是5.6+0.4v 电流损耗是27+3pA ,灵敏度是0.6+0.1v。
特性参数如下表所示:
a灵敏度特性
b电源电压特性
c温湿度特性 温度特性
d温度特性源: 放射元素是媚241,
放射量是平均33.3KBq.=0.9uCi。
工作环境: 电源电压是DC6.0-18.0V,最大24V;温度是0-50℃,最大-10-60℃,温度95﹪。保存温度-25-80℃,温度95﹪。
典型特性:
表3-3 特性参数
烟雾浓度 (%英尺)
输出电压(V)
误差(△V)
0
5.6±0.4
0
1
5.3±0.5
0.3±0.1
2
5.0±0.5
0.6±0.1
3
4.7±0.5
0.9±0.2
4
4.4±0.5
1.2±0.2
5
4.2±0.5
1.4±0.2
(a) 灵敏度特性
电源电压
输出电压(V)
6
3.3±0.3
9
5.6±0.4
12
8.0±0.7
15
10.0±0.85
18
13.0±1.0
(b)电源电压特性
温度(℃)
输出(V)
0
5.15±0.4
25
5.6±0.4
50
5.85±0.4
(C) 温湿度特性
温度(%C)
输出(V)
30
5.75±0.5
60
5.6±0.4
90
5.45±0.4
(d)温度特性
名称
方法
标准
高温储存特性
高温80℃±5不通电的情况下储存72小时
保持特性参数不变,不变形、不变色、不产生裂纹
低温储存特性
低温-300℃±5不通电的情况储存72小时
保持特性参数不变,不变形、不变色、不产生裂纹
高温储存特性
在40℃±5,85℃±5RH不通电的情况储存72小时
保持特性参数不变,不变形、不变色、不产生裂纹
震动实验
共振频率10-35HZ,振幅5HZ0.25,如果不产生共振,则用频率35HZ震荡4小时
保持特性参数不变,不变形、不变色、不产生裂纹
跌落实验
三个不同方向把器件从1M高度自由落体跌落到木板上
保持特性参数不变,不变形、不变色、不产生裂纹
长期稳定性测验如下表所示:
表3-4 长期稳定性测验
3.2.2 AD574A简介
AD574A型快速12位逐次比较式A/D转换器为美国模拟器件公司产品。一次转换时间为25μs,转换速率为40MSPS,分辨率12位,非线性误差小于±1/2LSB。采用28脚双立直插式封装,各引脚功能如图3-6所示,图3-7是其管脚图。
图3-6 D574A引脚功能
图3-7 管脚图
AD574A引脚功能:
DB11~DB0:12位数据输出线。DB11为最高,DB0为最低,它们可由控制逻
辑决定是输出数据还是对外成高阻状态。
12/8:数据模式选择。当此引脚输入为高电平时,12为数据并行输出;当此引脚为低电平时,与引脚A0配合,把12位数据分两次输入。应该注意,此引脚不与TTL兼容,若要此引脚为高电平,应直接按脚1;若要此引脚为低电平,应接引脚15.
A0:字节选择控制。此引脚有两个功能,一个功能是决定方式是12位是8位。若A0=0,进行全12位转换,转换时间为25us;若A0=1,仅进行8位转换,转换时间为16us,另一个功能是决定输出数据是高8位还是低4位。若A0=0,高8位数据有效;若A0=1,低4位有效,中间4位为“0”,高4位为高阻状态。因此,低4位数据读出时,应遵循左对齐原则。CS:芯片选择。当CS=0时,AD574A被选中;否则AD574A不进行任何操作。
R/C:读/转换选择。当R/C=1时,允许读取结果;当R/C=0,允许A/D转换。
CE:芯片启动信号。CE=1时,允许读取结果,到底是转换还是读取结果与R/C有关。
STS:状态信号。STS=1表示正在进行A/D转换,STS=0表示转换已完成。
REFOUT:+10V基准电压输出。
REIN准电压输入。只有此脚把从“REFOUT”脚输出的基准电压引入到AD574A内部的12位DAC(AD565),才能进行正常的A/D转换。
BIPOFF:双极性补偿。此引脚适当连接,可实现单极性或双极性输入。
10VIN:10V量程模拟信号输入端。对单极性信号为10V量程的模拟信号输入端,对双极性信号为±5V模拟信号输入脚。
20VIN:20V量程输入端。单极性信号为20V量程模拟信号输入端,对双极性信号为±10V量程模拟信号输入脚。
DG:数字地。各字电路及“+5V”的电源地。
AG:模拟地。各模拟器件地及“+15V”和“-15V”电源地。
VLOG:逻辑电路供电输入端,‘+5V’.
VCC:正电源端,VCC=+12~+15V。
VEE:负电源端,VEE=-15~-12V。
AD574A的单极性和双极性输入如图3-8所示
图3-8(a) 单极性输入
图3-8(b) 双极性输入
单极性输入电路:如图3-8(a)所示是AD574A系列的模拟量单极性输入电路。当输入电压为VIN=0~+10V时,应从引脚10VIN输入,当VIN=0~20V,应从20VIN输入。数字量D为无符号二进制码,计算公式为D=4096VIN/VFS。图中电位器RP1用于调零,即保证在VIN=0时,输出数字量D为零。
双极性输入电路:电路图如图(b)所示。图中RP2用于调整增益,其作用与图(a)中RP2的作用相同。图中RP1用于调整双极性电路输入零点。如果输入信号VIN在-5~=5V之间,应从10VIN引脚输入;当VIN在-10~=10V之间,应从20VIN引脚输入。
根据烟雾传感器所输出的电压量,故选用单极性输入。
3.2.2声光报警电路
声光报警电路由单片机P2.0口控制,输出报警信号,驱动声光报警电路,直至按复位键RESET和开关键。
声光报警电路由555定时器、扬声器和普通发光二极管组成,电路图如图3-10所示。
其中555定时器接成了一个低频多谐振荡器,其控制电压出入端5脚与单片机80C51的P2.0端相连,受P2.0脚输出的脉冲信号控制。由电容C4的充冲放电作用,当P2.0=1时,555输出脉冲的振荡频率较低,当P2.0=0时,555输出脉冲的振荡频率较高。该脉冲信号经隔置电容C2加到扬声器上,扬声器将发出高、低交替的2种叫声,同时P2.0脚输出的高低电平间隔1 s的脉冲信号经电阻R1加到发光二极管LED上,LED将闪烁发光,达到声光同时报警的效果。
图3-10 声光报警电路
3.3总电路设计
根据要求,设计中我们选用80C51单片机。80C51单片机的主控电路包括时钟电路、复位电路。两电路的接法在3.1.4和3.1.5中分别做了详细的介绍,这里不再赘述。
当今信息时代,随着电子计算机技术的非速发展,自动检测,自动控制技术显露非凡的能力,而大多数设备只能处理电信号,也就需要把被测,被控非电量的信息通过传感器转换成电信号。传感器我们选择的是NIS-09烟雾传感器。
将主控电路和外围接口电路连接起,就得到了80C51的烟雾报警总电路图。
当外部环境达到一定值时,烟雾传感器就会产生模拟电压,将它作为输出的模拟信号经AD574A转换器转换为80C51单片机所能识别的数字电压量。通过P1.0检测信号。当有信号输入时,经程序设定就会驱动80C51单片机的P2.0。而P2.0是与声光报警电路相连接的。
综上所述,得出总电路图如图3-11所示:
4、软件实现
4.1 编程KEIL环境介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。KEILC51标准C编译器为80C51微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器。因此,C51 V7版本无疑是8051开发用户的最佳选择。
C51工具包的整体结构, uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境,可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
4.2 程序流程
在整个程序流程中,经常要控制一部分指令重复执行若干次,以便简短的程序完成大量的处理任务。这种按某种控制规律重复执行的程序称为循环程序。循环程序有先执行后判断何先判断后执行两种基本结构。而我们要选用的是先判断后执行。
因为烟雾传感器的输出电压量为5.6~6.0v之间。根据单极性输入的转换关系D=4096VIN/VFS,计算出它的数字量最小值:D1=4096×5.6/10=2294;最大值D2=4096×6/10=2458.
然后把它们的数字量转化为二进制数。D1、D2转换为二进制数分别是100111110110、100110011010。
由于AD574A输出12位数据,所以当单片机读取转换结果时,应分两次进行:当A0=0时,读取高8位;当A0=1时,读取低4位。AD574A的STS与80C51的P1.0线相连,故采用查询方式读取转换结果。
我们将A/D转换器读取结果存入17H、18H、19H、20H单元中。其中17H存入的是较小数D1的高八位10011111,18H存入的是较小数D1的低四位0110;19H存入的是较大数的高八位10011001,20H存入的是较大值的低四位1010。
将数值存入单元以后,接下来就是比较。当被测的数值经计算机的转换在比较范围内,经程序设定80C51单片机的P2.0就会输出脉冲启动报警电路程序。程序流程图如图4-1所示。
图4-1 流程图
4.2.1 程序
ORG 0000H
START: MOV DPTR, # 0FFF8H ;送端口地址入DPTR
MOVX @DPTR, A ;启动AD574A
SET P1.0 ;置P1.0为输入方式
LOOP: JB P1.0, LOOP ;检测P1.0口
INC DPTR ;使R/C为1
MOVX A, @DPTR ;读取高8位数据
MOV 41H, A ;高8位内容存入41H单元
INC DPTR ;使R/C、A0均为1
INC DPTR
MOVX A, @DPTR ;读取低4位
MOV 40H, A ;将低4位内容存入40H单元
MOV 17H, #10001111B ;将比较的数值存入单元中
MOV 18H, #0110B
MOV 19H, #10011011B
MOV 20H, #1010B
MOV AL, 40H ;将40H的内容存入AL单元中
MOV AH, 41H ;将41H的内容存入AH单元中
01: CMP AH, 17H ;比较最小数值的高八位
JA LP1
JBE LP2
LP1: JMP 03
LP2: JMP 01
02: CMP AL,18H ;比较最小值的低四位
JA LP3
JBE LP4
LP3: JMP 01
LP4: JMP 04
03: CMP AH,19H ;比较最大值的高八位
JA LP5
JBE LP6
LP6: JMP 03
LP5: JMP 01
04 : CMP AH ,20H ;比较最大值的低四位
JA LP7
JBE LP8
LP8: JMP 01
LP7: JMP 04
05: SET P2.0 ;报警
DEL: MOV R7,#200 ;延时50ms
DEL1: MOV R6,#123
NOP
DEL2: DJNZ R6,DEL2
DJNZ R7,DEL1
RET ;返回
END ;结束
5、调试
5.1 调试的步骤
(1) 源文件的建立:使用菜单 “File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序。保存该文件,加上扩展名,这里将文件保存为examl1.asm。
(2)建立工程文件:点击“Project-New Project”菜单,出现以个对话框,要求给工程起一个名字,我们输入examl1,不需要扩展名,点击保存按钮,出现第二个对话框。这个对话框要求选择目标CPU点击ATMEL前面的“+”号,展开该层,点击其中的80C51,然后点击确定按钮。回到主界面,此时,在工程窗口的文件页中,出现了“Targ et1”,点击“Souce Group”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单。选中其中的“Add file to Group”Souce Group1”,对话框,要求寻找源文件,注意该对话框下面的“文件类型“默认为C Souce file ,也就是以C为扩展名的文件,而我们的文件是以asm 为扩展名的,所以在列表框中找不到examl1.asm,要将文件类型该掉,点击对话框中”文件类型‘后的下拉列表,找到并选中“Asm Souce File”,这样,在列表框中就可以找到examl1.asm文件了。双examl1.asm文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其他文件,但初学时常会认为操作没有成功而再次双击同一文件,这时会出现对话框,提示你所选的文件以在列表中,此时点击确定,返回前一对话框,然后,点击”Close”即可返回主界面,返回后,点击“Souce Goup 1”前的加号,会发现examl1.asm 文件以在其中。(3)工程的详细设置:首先点击左边Project窗口的Target 1,然后使用菜单“Proget-Option for target ‘target 1’”即出现对工程设置的对话框,对这个对话框可谓非常复杂,共有8个页面,要全部高清可不容易,好在绝大部分设置项取默认值就行了。设置完成以后安确认返回主界面,工程建立、设置完毕。
(4)编译、连接:在设置好工程后,既可以进行编译、连接。选择菜单Project-Build target,对当前工程进行连接,如果当前文件已修改软件会先对该文件进行比阿尼,然后在连接以产生目标代码。编译过程中的信息将出现在输出窗口中的Build页中,如果源程序有语法错误,会有错误报告出现,双击该行,可以定到出错的位置,对源程序反复修改后,最终会得到如图5-1所示的结果,提示获得了名为examl1.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其他相关文件可被用于KEIL的仿真与调试。
图5-1 正确连接、编译之后的结果
5.2调试过程中遇到的问题及解决方法
在进入环境以后,遇到了很多问题,总结如下:
(1)提示无asm文件
编译时候提示:
F:\...\XX.asm
File has been changed outside the editor, reload ?
解决方法:重新生成项目,产生examl1.asm即可。
(2)在进入Keil的调试环境以后,发现程序有错
解决方法:将光标定位于需要修改的程序上,用菜单,Debug》Inline Assambly…即可出现对话框,Enter New 后面的编辑框内直接输入需要修改的程序语句,输入完之后键入回车将自动指向下一条语句,可以继续修改,如果不在需要修改,可以点击右上角的关闭按钮关闭窗口。
(3)程序调试时,一些程序必须满足一定的条件才能被执行到
解决方法:这些条件往往是异步发生或难以预先设定的,这类问题使用的单步实行方法是很难调试的,这时就要使用发哦程序调试中的另一种非常重要是方法---断点设置。断点设置的方法有多种,常用的是在某一程序行设置断点,设置好断点后可以全速运行程序,一旦执行到该程序行即停止,可在此观察有关变量值,以确定问题所在。这些功能也可以用工具条上的快捷键进行设置。
(4)输入程序时,有中文标点,用keil编译时出现错误
解决方法:程序里有带中文标点,用英文重输入一遍
(5)汇编出现数字、字母混淆
解决方法:字母“O” 和 数字 “0”。主要错在这里。注意细节!
参考文献
[1]金发庆,传感器技术与应用。 北京:机械工业出版社,2004
[3]及力,Protel 99 SE原理图与PCB设计教程。北京:电子工业出版社,
[4]张玉莲,电子CAD(Protel99SE)实训指导书。西安:西安电子科技大学出版社,2007
[5]何利民,单片机高级教程。北京:航空航天大学出版社,2000
[6]张毅刚,MCS-51单片机应用设计。哈尔滨:哈尔滨工业大学出版社,1997
[7]李华,MCS-51系列单片机实用接口技术。北京:航空航天出版社,2000
[8]Intel,MCS-51 Family of Single Chip Microcomputer User’s Manual,1990
[9]王福瑞,单片机测控系统大全,北京:航空航天大学出版社,1998
结束语
忙碌了一段时间,终于要交稿了。毕业设计是我作为学生时期的最后一次作业,所以,当这一刻来临时居然有些不舍。相当初拿到题目时束手无策的样子,真的是很不懂事。因为,题目上出现的专业术语令我望而却步了。直到快要毕业时,才发现自己学到的东西太少了,而要学习的东西太多太多。曾经想多放弃,但放弃意味着什么?指导老师的一席话让我如梦初醒:虽然快毕业了,但毕业以后,你们要学习的东西还很多。人生就是不断的学习,不断的进步,不断的接受新事物才能学到很多有用的知识。倘若放弃,那么以后的人生就是被别人放弃。老师和学生,赢家永远是老师。倘若没有这次毕业设计,那么我将失去人生中最重要的教育:那就是,不能轻言放弃。
在这两个月中,找资料的过程让我学到很多。对单片机的了解也随之加深,它在烟雾报警系统中的应用,很多附件的应用,很多芯片的结构都有了一定的了解。在画图过程中,对Protel 99 SE软件能够操作自如。也对KEIL编程环境有了一些了解。
临近毕业,回想甚多。在学校里学到的东西大多偏于理论,实践的太少。想想我们以后走向工作岗位,应该是实践与理论相结合。所以,我们应该把握现在,好好学习。
毕业设计,不单单只是设计,还是一次敢于接受新事物的挑战,锻炼你的意志,磨练你的性格。这是一次再育的机会,所以我们必须珍惜。设计已接近尾声,我希望大家遇到困难时请不要轻言放弃,要相信自己,努力学习,困难就会迎韧而解的。
谢 辞
毕业设计能够如期完成,我的指导老师给我了极大的帮助与支持。老师学识渊博,学风严谨,待人宽厚。在我遇到困难时能耐心解答直至我明白。老师的一翻教导令我受益匪浅。让我明白,没有付出,就没有回报的真谛。还有,人要不断的接受新知识,学习新知识,这样才能在以后的人生道路上坚强的走下去。老师要指导很多同学的论文,加上本来就有教学任务,工作量之大可想而知,而我对于单片机来说,是个初学者。所以,在设计的过程中,遇到很小的问题,都要劳烦老师讲解。在不断的接触中,王老师的朴实无华,平易近人的性格对我影响颇深。在王老师的指导和鼓励下,我才有信心去完成毕业设计,很荣幸成且幸运成为王老师的学生。
除老师之外,还要感谢我的同学们。他们给了我很多的建议和帮助。尤其在程序的编写方面,给了我很大的帮助。特此感谢!通过本次设计,让我明白了很多。最重要的是一个人如果无法独立完成一件事情,那么,同学和朋友就是你的依靠。
再次感谢在设计中给我帮助的老师和同学!
展开阅读全文