2966|3

35

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

如何用LCD1602读取GPRS模块发送给单片机的短信内容啊 [复制链接]

楼主我是一个单片机方面的初学者,最近有一个课程设计要用到GPRS模块接收短信然后报警的设计,因为没什么基础,光是为了让单片机收到短信后控制蜂鸣器报警就用了不少时间,现在要做下一步了,需要用手里的这个STC89C82RC的单片机控制LCD1602液晶屏将接收到的短信读取出来,这就很尴尬了···有点迷茫啊,看了很多1602的例程,关于如何写入固定信息的方法差不多是看懂了,控制指令端写入数据,然后给单片机的程序里留好要现实的数据就可以了,但是怎么让液晶屏读取随时发送向单片机的短息我就不知道该怎么搞了,第一我不知道单片机接收到的ASCII码是存储在哪里的,第二我也不知道LCD1602怎么即时读取单片机里的短信,我只知道透传模块发给单片机的格式是adcii码,可以直接识别,不知道有没有大牛有这方面的程序可以让我看一下啊,或者帮我解释一下问题解解惑也是好的,多谢了!
此帖出自单片机论坛

最新回复

少一个}  详情 回复 发表于 2016-5-29 18:42
点赞 关注
 

回复
举报

35

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

这里有一个显示程序我姑且是看懂了,但是这个是直接显示预设好的信息,我现在不知道该怎么显示随时接收到的程序
#include     
#define uint unsigned int  //预定义一下
#define uchar unsigned char
sbit rs=P2^2;    //1602的数据/指令选择控制线
sbit rw=P2^1;        //1602的读写控制线
sbit en=P2^0;        //1602的使能控制线

uchar code  table[]="LCD1602-wjz-tjdz"; //要显示的内容1放入数组tablel
uchar code table1[]="  QQ:544806579  "; //要显示的内容2放入数组table1
void delay(uint z)       //延时函数                       
{
    uint x,y;  
    for(x=z;x>0;x--)
        for(y=122;y>0;y--);
}
void lcd_wcom(uchar com)  //1602写命令函数                 
{
    rs=0;            //选择指令寄存器
    rw=0;            //选择写
    P0=com;            //把命令字送入P2
    delay(5);            //延时一小会儿,让1602准备接收数据
    en=1;           //使能线电平变化,命令送入1602的8位数据口
    en=0;
}
void lcd_wdat(uchar dat)        //1602写数据函数      
{
    rs=1;        //选择数据寄存器
    rw=0;        //选择写
    P0=dat;        //把要显示的数据送入P2
    delay(5);        //延时一小会儿,让1602准备接收数据
    en=1;        //使能线电平变化,数据送入1602的8位数据口
    en=0;
}
void lcd_init()              //1602初始化函数      
{
    lcd_wcom(0x38);       //8位数据,双列,5*7字形      
    lcd_wcom(0x0c);      //开启显示屏,关光标,光标不闪烁
    lcd_wcom(0x06);    //显示地址递增,即写一个数据后,显示位置右移一位
    lcd_wcom(0x01);    //清屏
}
void main()            //主函数
{     
    uchar n,m=0;
    lcd_init();                 //液晶初始化
    lcd_wcom(0x80);   //显示地址设为80H(即00H,)上排第一位      
    for(m=0;m<16;m++)     //将table[]中的数据依次写入1602显示
    {
            lcd_wdat(table[m]);           
            delay(100);    //延时
    }
    lcd_wcom(0x80+0x40); //重新设定显示地址为,即下排第1位
    for(n=0;n<16;n++)   //将table1[]中的数据依次写入1602显示
    {     
            lcd_wdat(table1[n]);
           delay(100); //延时
    }
此帖出自单片机论坛

点评

少一个}  详情 回复 发表于 2016-5-29 18:42
 
 

回复

6040

帖子

195

TA的资源

版主

板凳
 
一切都是由单片机来控制的,而你要做的,就是给单片机写程序。
gprs发过来的数据,肯定是被单片机接收了,并被单片机存储了。
现在内容已经在单片机里面了,至于在哪儿,应该在你自己定义的变量里面了。
然后怎么把变量的内容显示到LCD上,应该也不难吧。

大概已经说完了,更详细的我就指导不了你了。
此帖出自单片机论坛
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

4
 
kisssibaby 发表于 2016-5-29 15:58
这里有一个显示程序我姑且是看懂了,但是这个是直接显示预设好的信息,我现在不知道该怎么显示随时接收到 ...

少一个}
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表