王军琦,徐 铭,岑 威,李小宇
(武汉轻工大学,湖北 武汉 430023)
电子开关是一种装置,其上有电子控制组件,它们被提供了访问控制系统。该系统允许用户用软件控制设备,利用Visual Basic.NET2010串口通信开发设计,代码由应用程序中的虚拟按钮输入,用户还可以设置自己的家庭登录密码以确保安全。核心部件是AT89C51单片机,该原件属于AT89C51系列单片机。该系统的主要特点是在发现泄漏的LPG气体和烟雾后自动关闭主电源,并帮助用户监控不同设备连接到PC机的状态。
Visual Basic.NET(VB.NET)是一种面向对象的计算机编程语言,可以看作是在.NET Framework上实现的经典的Visual Basic(VB)的发展[1]。这里我们用VB.NET开发了一个3个界面的软件,第一个界面是用户名和密码注册的软件,第二个界面是用Visual Basic登录的。使用Visual Basic2010创建了一个PC驱动程序(软件),控制界面为不同设备设置了许多键,它们的编程方式是按下它们发送8位数据的方式(1字节十六进制代码)。通过PC串行端口以波特率9 600波特。我们将要创建的应用程序称为Electronic Library。这个Electronic Library将能够接受用户注册以及处理需要用户密码的登录命令,从而增强了数据库的安全性。基本上,应用程序将构成一个注册菜单、欢迎菜单、登录菜单和主数据库菜单。
大多数个人计算机上的串行端口都符合RS-232C或RS-422标准。该协议要求电压在-3~-15 V表示二进制1,而电压在3~15 V表示二进制0。这与CMOS和TTL通信不兼容,因为TTL对二进制1使用5 V,对于二进制0使用0 V。因此,芯片实现了双向电压级的必要协议转换,并在通用接口中使用了串口[2]。任何类型的设备,包括调制解调器、鼠标、打印机,我们也提供密码保护功能。首先,在IC卡MX 23的接收器引脚上接收数据。MX 23是MAXM公司生产的硬件层协议转换芯片。通常被称为RS-232收发器,它由一对驱动器和一对接收器组成。在一个非常基本的水平上,驱动程序将TTL和CMOS电压电平转换为TIA/EIA-232-E电平,可用于串行通信。然后根据单片机进行电压调节[3]。MAX 232将数据发送给89C51的接收管脚,现在微控制器通过检查第8位数据。在微控制器的引脚处,使用复位按钮,该复位按钮将所有设备的端口数据设置为初始状态。
最后一个界面是用来控制设备使用在最后一页中提供的按钮,一旦用户注册,那么用户就不会一次又一次地注册。第二个页面是登录页面,是第一个应用程序。安装后打开软件进行安装。不同的按钮有不同的特定代码,按下按钮后,将代码发送到串口,由单片机AT89C51接收。具体如图1所示。
图1 用RS-232进行串口通信
串口是PC机上用于外围设备的一种连接方式,有时被称为COM端口或RS-232端口,这是它的技术名称。在电信领域,RS-232是一系列串行二进制单端数据和控制信号标准的传统名称。串行通信非常流行。因为大多数计算机都有一个或多个串行端口,所以除了电缆之外,不需要额外的硬件将仪器连接到计算机上(或者两台计算机与计算机相连。数据终端设备(Data Terminal Equipment,DTE)和数据电路终端设备(Data Circuit-terminating Equipment,DCE)之间的连接。它通常用于计算机串口。该标准定义了信号的电气特性和定时信号的含义,以及连接器的物理尺寸和引线。数据通过一对导线以一个方向串行传输。输出的数据被标记为Tx(表示传输),而传入的数据被标记为Rx(表示接收)。为了建立一个双向通信系统,至少需要3根线Tx,Rx和GND(接地)。跨越TX和Rx在两个系统之间,让每个单元与相反的一个。每个字节可以在任何时间被传输(只要前一个字节已经被传输)。传输的字节不与接收者同步(它是异步协议)即没有时钟信号。因此,必须在通信链路的两端设置完全相同的软件,以便每个串行解码器芯片能够解码串行数据流。
本系统以单片机为核心,采用嵌入式C语言编程实现AT89C51单片机。其将根据传感器输入和串行端口输入驱动继电器。
该微控制器的端口0、端口2、端口3可与继电器一起用于控制电视、风扇、灯泡等设备。烟雾传感器、光传感器和液化石油气传感器都在p1.0,p1.1,p1.2上安装在我们控制的端口0的LED的硬件类中。
这是一个简单的使用液化石油气气体传感器模块,可以感觉到可燃气体,主要是液化石油气、异丁烷和丙烷在空气中的存在。该模块使用我们的MQ-6传感器,它简化了接口以奇数引脚间距的传感器,并提供接口通过40.1“头引脚”。它既提供了与空气中气体浓度相对应的模拟输出,又提供了易于使用的数字输出。车载电位器可用于设置最大气体浓度,触发数字输出的离子。只要用5 V给模块供电,设置阈值,就可以得到输出。车载LED显示任何气体的存在。数字输出可以很容易地与微控制器和其他电路接口。模拟输出可以连接到微控制器的ADC上,以获得广泛的传感器读数。在我们的应用中,气体传感器的输出是在0.1端口的微控制器输入,当0.1端口的微控制器输入时,即气体传感器是气敏传感器,然后根据微程序进行气体传感器的输入。我们已经做过的控制器,微控制器将关闭所有的家庭设备。这也是安全措施的家庭设备,我们已经做了额外的。
Visual Basic是一种现代的、高级的、多范式的通用编程语言,用于使用Visual Studio和.NET Framework构建应用程序。Visual Basic不仅是一种编程语言,而且是一个完整的图形化开发环境。该环境允许编程经验较少的用户快速开发有用的Microsoft Windows应用程序,这些应用程序能够使用对象链接和嵌入(Object Linking and Embedding,OLE)技术,例如Excel电子表格。Visual Basic还能够开发程序,可用作数据库系统的前端应用程序,用作用户界面,它收集用户输入并以比许多SQL版本更有吸引力和更有用的形式显示格式化输出。
AT89C51是一种低功耗、高性能的CMOS 8位微型计算机,具有4K字节的FLASH可编程和可擦除只读存储器(Programmable Erasable Read-Only Memory,PEROM)。该装置采用Atmel的高密度非易失性存储技术制造,并与工业标准MCS-51™指令集和插脚兼容。片上闪存允许程序存储器在系统中重新编程,或者由传统的非易失性存储器编程器进行编程。Atmel AT89C51是一种功能强大的微型计算机,它将多功能的8位CPU与单片Flash结合在一起,为许多嵌入式系统提供了一种高灵活性和低成本的解决方案,控件应用程序[4]。AT89C51单片机具有内置的UART,可进行串行通信。串行通信采用异步方式进行。串口和其他PC端口一样,是建立计算机与外部硬件或设备之间数据传输的物理接口。这种传输通过串口是很容易进行的。8051有一个完整的串口,所以我们可以很容易地读写串口数据。将位写入串行端口将是一个相当繁琐的过程,需要快速地依次转换0和1的I/O端口之一,以正确地时钟出每个单独的位,包括奇偶校验位、停止位、启动位,我们只需在操作模式下配置串口波特率(9 600)。一旦所有设置配置完毕,我们都会向SFR写入一个值到串行引脚,或者输入相同的SFR从串口输入一个值。AT80C51自动让人们知道它完成了发送位字符,以及单片机收到串口的时间,以便采取进一步的处理。这样就不必担心比特级的传输,节省处理时间。