基于gsm和avr单片机的智能家居控制系统内容摘要:

UTF8 和 GB2312 两个中文编码表 ,表中数据项为 2 个字节长度的十六进制的数 ,代表一个中文编码。 两个表的长度分别为 14 890 字节( 27445)。 UTF8 编码表按数据项值从小到大排序 ,而在 GB2312 编码表中 ,与 UTF8 相同位置处为相同汉字的GB2312 码字 ,如 下图 所示。 UTF GB2312 编码表结构 ② 软件解码过程为:每次从 PDU模式 SMS 数据包的 TPUD 中取出两个字节 ,采用二分法快速数据查找算法 ,在 UTF8 编码表中找 到其所在位置 ,然后在 GB2312 表的相同位置处读取相对应的 GB2312 编码。 ③ 二分法的最坏查找次数为 lg2(n+1),UTF8 表的长度 n 为 7445,固最坏查找次数为 13 次 ,就是说一个中文编码由 UTF8 到 GB2312 的转换最多经过 13 次比较查找就可完成。 这比采用简单的顺序查表要快的多 ,大大减少了查表所花费的时间 ,非常适合在一般的嵌入式系统中使用。 (5)TEXT 模式 Text 模式只支持传送英文及数字信息,但它的编码要比 PDU模式简单很多,因此我们在我们的智能控制系统中采用了 Text 模式。 TEXT 模式在信息传送时通过串口传递的是十六进制 ASCII 码。 其 USART 通讯默认使用 9600 比特率, 8 位数据信息,无奇偶校验,有一位开始 位和 一位结束位。 例如,我们要发送 指令来读取第一条短信,使用命令: AT+CMGR=1;我们只需要通过串口发送十六进制数码: 0x41,0x54,0x2b,0x43,0x4d,0x47,0x52,0x3d,0x31,0x0d 即可。 其中 0x41 是 A对应的 ASCII 码, 0x54 是 T 对应的 ASCII 码,以此类推,只要将相应英文字母的 ASCII 码以十六进制的形式发送即可。 3. 单片机 控制系统 我们使用 的是 Atmel 公司 的 AVR 高速 8 位微控制器 ATmega16。 ATmega16 芯 片为基于 GSM 和 AVR 单片机的智能家居控制系统 5 40 个引脚 ,内部集成了 1K字节的 RAM、 512 字节的 EEPROM、 16K字节的 Flash 以及 2个 UART 串行接口等。 由于采用了高性能的 MCU,省掉了大量的外围器件 ,如外扩 RAM、ROM 存储器等 ,使硬件结构大大简化 ,提高了系统的可靠性。 ATmega16 芯 片 的引脚图如下: 其中的 PD0 即为 RXD 引脚( RXD 是 USART 的数据接收引脚), PD1 即为 TXD 引脚( TXD 是 USART 的数据发送引脚),引脚 11 即为 GND 接地。 4. 外围控制系统 我们的外围控制系统 包括 D 型锁存器 74LS17 220V继电器、 220V 电路输入输出接口系统。 (1)继电器的选择及控制方案。 我们使用的是 12V驱动的微型电磁继电器, 型号是 JQC3F, 12VDC, 10A, 250VAC。 我们的电路图如下 其中 我们使用的继电器功率是 ,按 12V电压供电计算,额定电流是 30mA,8050 的放大倍数为 300 倍,故基极的输入电流应为。 AVR 单片机 IO 端口的输出电压为 5V,按 8050 的导通压降为 计算,我们设定的基极电阻为 5K1。 由于 AVR在上电时 ,DDRx 和 PORTx 的值均初始化为 0,I/O 引脚呈高阻输入方式 ,因此电阻 R2 的作基于 GSM 和 AVR 单片机的智能家居控制系统 6 用是确保三极管的集电极电位在上电时为 0电平 ,三极管截止 ,保证了加热电炉控制系统上电时不会误动作。 三极管集电极的负载继电器吸合线圈在三极管截止时会产生一个很 高的反峰电压 ,在吸合线圈两端并接一个二极管 D1,其用途是释放反峰电压 ,保护三极管和 I/O 口不会被反峰电压击穿 ,提高系统的可靠性。 (2)D 型锁存器 74LS174. 之所以在 I/O 引脚和上图的 COM1 口之间连接一个 74LS174D 型锁存器是为了防止单片机在运行过程中意外 RESET 时引发不必要的动作电位。 74LS174 的真值表如下: 很显然,只有当 clock 引脚在上升沿时才会将 D 引脚上的信号打入,从而有效的保证了继电器不被其他干扰和意外信号所干扰,保证了 2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。