项目名称: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 介绍:
一。显示界面
显示时间、信号强度、电量信息
二。菜单界面
菜单又分为【拨号】、【时钟】、【游戏】、【工具】、【设置】、【版本】