项目名称:DIY–手机


【资料图】

版 本:V1.0

硬 件:STC51 +LCD12864+SIM900

功 能:

1.打电话

2.游戏

3.闹钟

4.电子日历

没有群里各位大神那么高大上,我的要求不要太高,首先能打电话,其次再加一些小功能,比如游戏、闹钟、电子日历等等。功能不要太多,毕竟这是我的第一个版本,之后肯定会升级。

今天早上起晚了,没去看书,在宿舍把大概框架敲好了,也不知道活动哪天结束,毕竟已经开始很长时间了。管它了,反正我会把它进行到底。

借用锤子一句话:我不在乎输赢,我只是认真…..

上个图吧:

显示界面

菜单

这次DIY手机,用到的SIM900A是用AT指令进行通信的器件,之前从来没有接触过这方面的东西,怀一颗忐忑的心,不知道该怎么下手。从快递公司取回来模块后, 需要做的第一件事就是测试一下模块是不是可以正常工作。

先用USB转串口模块将SIM900A模块和电脑连接好,然后按照AT指令手册用上位机发送了几条指令,就好像是向SIM900A大喊:喂~~你能听到我说话么?SIM900A模块很快作出反应:我听到了~~于是,上面机界面显示出来了反馈信息,这样的话,已经可以正常的和SIM900A模块进行通信了,那试试拨号功能。发送指令拨打10086,很顺利的听到了熟悉的声音:欢迎致电中国移动~~~~~然后一堆废话,这样的话,模块是没有问题了,接下来就是用MCU来控制它了。

把它和单片机连起来。SIM900A模块和单片机的连接特别方便,因为用MCU的UART串行口,所以只需要两根数据线就可以了,即单片机的RXD、TXD分别和SIM900A模块的TXD.RXD相连接即可。

先进行最简单的测试—自动拨号

//串行口初始化:波特率9600

void init_UART(void)

{

TMOD=0x20;//定时器1操作模式2:8位自动重载定时器

TH1=0xfd;//装入初值,波特率9600

TL1=0xfd;

TR1=1;//打开定时器

SM0=0;//设置串行通讯工作模式,(10为一部发送,波特率可变,由定时器1的溢出率控制)

SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据

REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)

EA=1;//开总中断

ES=1;//开串行口中断

}

复制代码

先写一个简单的发送函数

//串行口发送数据

void Uart_Send_string(uchar *str)

{

while(*str!=’\0′)

{

SBUF=*str;

while(!TI);//等待发送完成信号(TI=1)出现

TI=0;

str++;

}

}

复制代码

自动拨号,进行最最简单的测试

#include

#define uchar unsigned char

#define uint unsigned int

//以下是开机后拨打的手机号

uchar num[] = “ATD10086;\r”;

void main()

{

init_UAR();//串行口初始化:波特率9600

while(1)

{

Uart_Send_string(num); //自动拨号

DelaySec(20); //延时20秒

Uart_Send_string(“ATH\r”); //挂机

DelaySec(5); //延时5秒

}

}

复制代码

插入耳机,可以听到10086的声音,简单的测试就完成了。

这只是最最简单的测试,什么都不用管,直接自动拨号然后挂断。但是,实际应用的话用单片机和SIM900A进行通信的话会是这么简单么??肯定不是,实际情况会比这复杂得多得多,欲知后事如何,请听下回分解吧~~~~

这次DIY手机,用到的SIM900A是用AT指令进行通信的器件,之前从来没有接触过这方面的东西,怀一颗忐忑的心,不知道该怎么下手。从快递公司取回来模块后, 需要做的第一件事就是测试一下模块是不是可以正常工作。

项目名称:KaSuo Phone

版 本:V1.0

硬 件: STC89C516

LCD12864(ST7920)

SIM900A模块

功 能:

1.接/打电话

2.时钟

3.游戏

4.工具:闹钟、秒表、电子日历

5.设置:按键音设置、背光调节、情景模式

上图:

1.显示板

2.控制板

组合:

最后的整体图:

KaSuo Phone 介绍:

一。显示界面

显示时间、信号强度、电量信息

二。菜单界面

菜单又分为【拨号】、【时钟】、【游戏】、【工具】、【设置】、【版本】

推荐内容