[p=232, null, left][size=177px]一、关于[p=232, null, left]51[p=232, null, left][size=177px]单片机和无线[p=232, null, left]WIFI[p=232, null, left][size=177px]模块的接线方面
[p=214, null, left]RXD[p=214, null, left][size=177px]、[p=214, null, left]TXD[p=214, null, left][size=177px]、[p=214, null, left]GND[p=214, null, left][size=177px]和[p=214, null, left]51[p=214, null, left][size=177px]单片机的[p=214, null, left]TXD[p=214, null, left][size=177px]、[p=214, null, left]RXD[p=214, null, left][size=177px]、[p=214, null, left]GND[p=214, null, left][size=177px]接好,模块其他引脚均为高电[p=232, null, left][size=177px]平,电源[p=232, null, left]VCC[p=232, null, left][size=177px]是[p=232, null, left]3.3V[p=232, null, left][size=177px]左右(两节[p=232, null, left]1.5v[p=232, null, left][size=177px]干电池),本人由于没有稳压模块[p=232, null, left],[p=232, null, left][size=177px]偷懒了当时[p=232, null, left][size=177px]使用[p=232, null, left]5V[p=232, null, left][size=177px]的直流源,测试结果目前没有问题(不过不建议啊[p=232, null, left]![p=232, null, left][size=177px])
[p=232, null, left][size=177px]二、关于安卓手机方面
[p=214, null, left][size=177px]测试时可以使用,网络调试助手(下载这个[p=214, null, left]app[p=214, null, left][size=177px]安装在手机即可)发送数字[p=214, null, left]1[p=214, null, left][size=177px]表[p=232, null, left][size=177px]示小灯亮,[p=232, null, left]0[p=232, null, left][size=177px]表示灯灭。后续想深入的话可以自己开发安卓[p=232, null, left]app[p=232, null, left][size=177px]软件。
[p=232, null, left][size=177px]三、参数设置
[p=214, null, left][size=177px]由于参数的设置方法和步奏网上资料很全,这里提供相关的网址自行参考。[p=232, null, left][size=177px]名称:波特率发生器函数
[p=232, null, left][size=177px]作用:波特率发生器可以是[p=232, null, left][size=177px]T1[p=232, null, left][size=177px]定时器实现,也可以是[p=232, null, left][size=177px]MCU[p=232, null, left][size=177px]内部独立的波特率发生[p=232, null, left][size=177px]器,
[p=232, null, left][size=177px]各自不同的载入值计算式,具体根据寄存器相关设置来参考计算,以实现
[p=232, null, left][size=177px]异步串行通讯。(经测试,两种设置方式均可用,可任选一种。)
[p=214, null, left][size=177px]********************************************************************/ [p=214, null, left][size=177px]void Uart_Init()//[p=214, null, left][size=177px]使用定时器[p=214, null, left][size=177px]1[p=214, null, left][size=177px]作为波特率发生器([p=214, null, left][size=177px]STC89C52[p=214, null, left][size=177px]、[p=214, null, left][size=177px]STC89C51[p=214, null, left][size=177px]、[p=214, null, left][size=177px]AT89C51[p=232, null, left][size=177px]或者[p=232, null, left][size=177px]STC12C560S2[p=232, null, left][size=177px]等均可)
[p=214, null, left][size=177px]{
[p=214, null, left][size=177px]SCON=0x50; [p=214, null, left][size=177px]//[p=214, null, left][size=177px]设置为串行口以方式[p=214, null, left][size=177px]1[p=214, null, left][size=177px]工作,[p=214, null, left][size=177px]8[p=214, null, left][size=177px]位异步通讯[p=214, null, left][size=177px],[p=214, null, left][size=177px]允许接收中断。
[p=214, null, left][size=177px]//[p=214, null, left][size=177px]一帧信息为[p=214, null, left][size=177px]10[p=214, null, left][size=177px]位,[p=214, null, left][size=177px]1[p=214, null, left][size=177px]位起始位,[p=214, null, left][size=177px]8[p=214, null, left][size=177px]位数据位(低位在先),[p=214, null, left][size=177px]1[p=214, null, left][size=177px]位停止位。
[p=214, null, left][size=177px]PCON=0x80; [p=214, null, left][size=177px]//SMOD[p=214, null, left][size=177px]波特率选择位为[p=214, null, left][size=177px]1[p=214, null, left][size=177px],[p=214, null, left][size=177px]SMOD=1.
[p=214, null, left][size=177px]TMOD=0x21; [p=214, null, left][size=177px]//[p=214, null, left][size=177px]设置定时器[p=214, null, left][size=177px]1[p=214, null, left][size=177px]为波特率发生器,工作在模式[p=214, null, left][size=177px]2[p=214, null, left][size=177px],[p=214, null, left][size=177px]8[p=214, null, left][size=177px]位自动装载
[p=214, null, left][size=177px]TH1=RELOAD_COUNT;//[p=214, null, left][size=177px]波特率[p=214, null, left][size=177px]9600 [p=214, null, left][size=177px],[p=214, null, left][size=177px]TH1=256-FOSC/16/12/[p=214, null, left][size=177px]波特率
[p=214, null, left][size=177px]TL1=TH1;
[p=214, null, left][size=177px]EA=1;
[p=214, null, left][size=177px] //[p=214, null, left][size=177px]总中断打开
[p=214, null, left][size=177px]ES=0;
[p=214, null, left][size=177px] //[p=214, null, left][size=177px]关闭串口中断
[p=214, null, left][size=177px]TR1=1;
[p=214, null, left][size=177px] //[p=214, null, left][size=177px]启动定时器[p=214, null, left][size=177px]1 [p=214, null, left][size=177px]} [p=214, null, left][size=177px]/* [p=214, null, left][size=177px]void Uart_Init()//[p=214, null, left][size=177px]使用独立的波特率发生器([p=214, null, left][size=177px]STC12C560S2[p=214, null, left][size=177px]或带有独立波特率发生器[p=214, null, left][size=177px]//[p=214, null, left][size=177px]、[p=214, null, left][size=177px]//[p=214, null, left][size=177px]的单片机均可)
[p=214, null, left][size=177px]{
[p=214, null, left][size=177px]SCON=0x50; [p=214, null, left][size=177px]//[p=214, null, left][size=177px]设置为串行口以方式[p=214, null, left][size=177px]1[p=214, null, left][size=177px]工作,[p=214, null, left][size=177px]8[p=214, null, left][size=177px]位异步通讯[p=214, null, left][size=177px],[p=214, null, left][size=177px]允许接收中断。
[p=214, null, left][size=177px]PCON=0x80; [p=214, null, left][size=177px]//SMOD[p=214, null, left][size=177px]波特率选择位为[p=214, null, left][size=177px]1[p=214, null, left][size=177px],[p=214, null, left][size=177px]SMOD=1.
[p=214, null, left][size=177px]BRT=RELOAD_COUNT; //[p=214, null, left][size=177px]波特率[p=214, null, left][size=177px]9600 256-[p=214, null, left][size=177px]晶振频率[p=214, null, left][size=177px]/[p=214, null, left][size=177px]波特率[p=214, null, left][size=177px]x16=BRT
[p=214, null, left][size=177px]AUXR=0xD5; [p=214, null, left][size=177px]//T0[p=214, null, left][size=177px]、[p=214, null, left][size=177px]T1[p=214, null, left][size=177px]不[p=214, null, left][size=177px]12[p=214, null, left][size=177px]分频,速度是[p=214, null, left][size=177px]89C51[p=214, null, left][size=177px]的[p=214, null, left][size=177px]12[p=214, null, left][size=177px]倍,启动独立波特率[p=214, null, left][size=177px]//[p=214, null, left][size=177px]发生器,每个时钟计数一次
[p=214, null, left][size=177px]//[p=214, null, left][size=177px]设置串口[p=214, null, left][size=177px]1[p=214, null, left][size=177px]的波特率发生器为独立波特率发生器[p=214, null, left][size=177px],
[p=214, null, left][size=177px]AUXR1=0x80; //[p=214, null, left][size=177px]切换到[p=214, null, left][size=177px]P1[p=214, null, left][size=177px]口
[p=214, null, left][size=177px]ES=1;
[p=214, null, left][size=177px]//[p=214, null, left][size=177px]开启串口中断
[p=214, null, left][size=177px]EA=1;
[p=214, null, left][size=177px]//[p=214, null, left][size=177px]开启总中断
[p=214, null, left][size=177px]} [p=214, null, left][size=177px]*/
|