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:来自反向振荡器的输出。
STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。电容的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。
当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作,按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源VCC接通而实现的。最小系统如图11所示。
VCCK013RESET+C110uF241234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0(RXD)P3.1(TXD)P3.2(INT0)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GND89C52VCC(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3)P0.3(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.7EA/VPPALE/PROGPSEN(A15)P2.7(A14)P2.6(A13)P2.5(A12)P2.4(A11)P2.3(A10)P2.2(A9)P2.1(A8)P2.04039383736353433323130292827262524232221VCCC211.0592MHzR710K30Y1C330
图11 单片机最小系统电路
显示电路是由一位共阳数码管显示,单片机控制数码管每段的高低电平,从而实现数码管的显示。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图9所示),阴极连在一起的称为共阴极显示器(如图c所示)。1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控
制简单,使用方便。
此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。
(a)外形 (b)共阳极 (C)共阴极
图12 数码管引脚
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S
(3)表面有保护膜的产品,可以在使用前撕下来。
该设计有报警电路,布放状态下检测到人时,蜂鸣器就会发声提示,直到主人按下撤防,才会停止鸣叫,控制引脚接在P1.2引脚上,利用三极管当做开关电路可以保护单片机,还可以起到放大电流的作用,当三极管基极为高电平时,发射极截止,为低电平时,发射极导通。报警模块如图13所示。
VCCP34R41kQ18550蜂鸣器
图13 声音报警模块
3.软件的设计
3.1 keil应用
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 Keil_c软件界面如图14:
图14 Keil_c软件界面
该软件是一款集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合编程。
3.2 protel99se应用
Protel99SE是PORTEL公司在80年代末推出的EDA软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。 Protel99SE软件的特点:
(1) 可生成30多种格式的电气连接网络表;
(2) 强大的全局编辑功能;
(3) 在原理图中选择一级器件,PCB中同样的器件也将被选中;
(4) 同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器
件、引脚、网络
(5) 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释
(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性; (6) 满足国际化设计要求(包括国标标题栏输出,GB4728国标库); * 方便易
用的数模混合仿真(兼容SPICE 3f5);
(7) 支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件; * PCB
可设计32个信号层,16个电源-地层和16个机加工层;
(8) 强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查; (9) 智能覆铜功能,覆铀可以自动重铺;
(10) 提供大量的工业化标准电路板做为设计模版; (11) 放置汉字功能;
(12) 可以输入和输出DXF、DWG格式文件,实现和AutoCAD等软件的数据交
换;
(13) 智能封装导航(对于建立复杂的PGA、BGA封装很有用);
(14) 方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果;
图15 protel99se画图界面
3.3 程序流程图
开始 初始化
有 无 有无信号? 是 布防信号? 布防程序
延时 否 按下撤防键? 显示地址 启动报警电路 否 报警地址查询否 是 撤防信号? 布防程序
是
是
否 延时到否?