发 帖  
原厂入驻New
实战多通道高速精密测温仪的全系列设计教程,以实际项目为依托,提升工程师核心竞争力!→点击立即抢购←

[经验] 51单片机如何运用GSM通信打造电子告示牌

2019-8-15 09:48:00  334 51单片机 GSM模块 无线通信
分享
2
地铁站,公交车站以及机场这种地方都有电子告示牌的存在,其中最大的问题在于更新每天的内容。本文教你如何设计一个运用GSM技术的无线电子告示牌,该项目将可以将我们从手机上发送的内容显示在LCD上。

如今还有很多无线通信科技,比如蓝牙,RF通信,Zigbee等,但只有GSM技术基于长距离,可靠以及安全的通信。

注意:我们需要发送信息的手机以及一个GSM模块才能接受该告示的内容。

原理
当用户从手机发送信息时,GSM模块会发送一下指令来代表收到新信息。
  1. +CMti: “SM”,3
复制代码

以上的指令中,“3”代表新信息的位置,比如这是收件箱中的第三条信息。如今你需要读取这条未读信息的话,需要运用以下指令来读取GSM模块里的信息。
  1. AT+CMGR=3
复制代码

将该指令给到GSM模块后,它会发出以下指令。

  1. +CMGR: “REC UNREAD”,”MD-WAYSMS”,,”13/05/20,15:31:48+34″
  2. 电子发烧友
复制代码

以上的指令中,“REC UNREAD”指未读信息。”MD-WAYSMS”指发送者手机号或名字,13/05/20指时间,15:31指时间,电子发烧友为该信息的内容。


电路
1.jpg

所需主要元器件
AT89C51
SIM 900A
16 x 2 LCD
10kΩ电位器

显示模块代码
  1. while (rx_data() ! = 0x0d);
  2. while (rx_data() ! = 0x0a);
  3. IF (rx_data() == ‘+’)
  4. {
  5. if (rx_data() == ‘C’)
  6. {
  7. if (rx_data() == ‘M’)
  8. {
  9. if (rx_data() == ‘T’)
  10. {
  11. if(rx_data()==’I’)
  12. {
  13. while (rx_data() != ‘,’);
  14. a = rx_data ();
  15. delay_ms (10);
  16. tx_string (“at”);
  17. tx_data (0x0d);
  18. tx_data (0x0a);
  19. tx_string (“at + cmgf =1”);
  20. tx_data (0x0d);
  21. tx_data (0x0a);
  22. tx_string (“at + cmgr =”);
  23. tx_data (a);
  24. tx_data (0x0d);
  25. tx_data (0x0a);
  26. while (rx_data() ! = 0x0a);
  27. while (rx_data() != 0x0a);
  28. while (rx_data() ! = 0x0a);
  29. for (i=0; i<15; i++)
  30. {
  31. read [i]= rx_data();
  32. }
  33. lcd_stringxy(1,0,read);
  34. delay_ms (5000);
  35. }
  36. }
  37. }
  38. }
  39. }
复制代码

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表