陕西理工学院毕业设计
3.3.3 LCD12864引脚说明
表 3.2 12864引脚功能
管脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
管脚名称 VSS VCC VO RS(CS) R/W(SID) E(SCLK) DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PSB NC RESET NC A K
方向 - - - H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L - H/L - VDD VSS
管脚功能描述 电源地 电源正
LCD驱动电压输入端 并行的指令/数据选择信号; 并行的读写选择信号; 并行的使能信号; 数据0 数据1 数据2 数据3 数据4 数据5 数据6 数据7 并串行选择口 空脚
复位端,低电平有效 空脚
背光源正端(+5V) 背光源负端(-0V)
LCD连接电路中,两侧1、2和20、19脚分别接地和+5V。V0引脚为驱动电压输入端口,与一个滑动变阻器连接,这样便可以通过调整滑变进而改变V0端输入电压,最终实现对LCD液晶屏对比度的调整,它决定了LCD能否正常显示数据及显示的效果。
第 12 页 共 61 页
陕西理工学院毕业设计
3.3.4 LCD12864与89C52连接电路图
图 3.6 LCD12864与89C52连接电路图
3.4 蜂鸣器电路与LED灯电路 3.4.1 蜂鸣器电路设计
一般来说,声音的频谱范围为几十到几千赫兹。如果能利用这一特性,通过程序控制单片机的某个端口线的“高低”电平,则在该端口线上就可以产生一定频率的矩形波。接上喇叭后,就可以发出一定频率的声音信号。如果再利用延时程序来控制“高低”电平的持续时间,这样就可以改变输出的频率,使喇叭发出不同的声音。本次使用的蜂鸣器的型号为GPC1407YB,电压为3~25Vp-p,灵敏度为min 75 dB。它可以在5V工作电压下工作,IO口输出后外接一个1K的电阻,再连接到PNP型三极管的基极。蜂鸣器负极接地,三极管集电极接蜂鸣器的正极。如图3.7所示:
第 13 页 共 61 页
陕西理工学院毕业设计
图 3.7 蜂鸣器电路图
3.4.2 LED灯电路设计
本文用LED灯的亮灭来当做门是否关闭,灯亮表示门开,灯灭表示门关。电路图如下所示:
图 3.8 继电器控制LED灯电路图
P3.6口连接LED灯,通过程序控制高低电平,进而继电器工作,实现LED灯的亮灭。
继电器是一种具有输入回路和输出回路的电子控制器件,通常应用于自动控制电路中。它实际上是一种“自动开关”,用较小的电流去控制较大电流。在线圈引出脚两端加上电压或电流时,线圈的激磁电流就会产生磁通,磁通通过磁路后在工作气隙产生电磁吸力。激磁电流上升到特定值时,电磁吸力矩就会克服动簧的反力矩,然后衔铁转动,从而推动片推动动簧,最终实现触点闭合,此时LED亮起;当激磁电流减小到特定值时,电磁吸力矩小于动簧反力矩之后,衔铁回到初始状态,接触点不接触,LED灯熄灭。
第 14 页 共 61 页
陕西理工学院毕业设计
4 门禁系统的软件设计
4.1 软件设计方法与设计语言选择
软件设计方法主要有三种: (1)模块化程序设计,其中心思想是要把一个复杂的应用程序按其整体功能划分为各个相对独立的程序模块,各模块可以单独设计、编程与调试,然后再组成在一起联调,最终成为一个功能完整的程序。
(2)自顶向下逐步求精的程序设计,要求从系统级的主程序开始,先解决全局问题,然后层层细化逐步求精,最终完成一个复杂的程序设计。
(3)结构化程序设计,它是一种比较理想的程序设计方法。结构化程序设计编程过程中对程序进行适当限制,这样之后便可使程序上下文与执行流程保持一致。
由于本次系统被分为几个模块,因此本文使用模块化程序设计方法。
单片机控制软件通常都采用汇编语言或C语言来实现。汇编语言作为面向底层的低级语言,程序执行速度最快,代码所占空间小,比较适用于驱动程序、小容量的程序或是要求执行速度快的程
[11]
序中。而C语言由于其程序库支持丰富、移植性高、结构化好等优点而获得广泛应用。
本文系统程序代码量大,尤其对MFRC522的控制程序较多。因此采用模块化程序设计方法,用C语言实现程序控制。 4.2 Keil C51开发系统
C51是51系列兼容单片机C语言软件开发系统。它提供了完整开发方案,其中包括宏汇编、C编译器、库管理、连接器和一个仿真调试器。Keil通过一个集成开发环境(uVision)极其方便地将这些部分组合在一起。
图4.1 Keil 编译界面
第 15 页 共 61 页