打印
[经验分享]

用51单片机做的的智能家居控制系统

[复制链接]
1250|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
会飞の鱼|  楼主 | 2015-10-25 18:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "SYS.h"

/************************************
*                定义变量类型
*************************************/

char USART_RxBuf[USART_RxBufMAX]={0};                                // 定义串口接收数据缓冲区
u8 USART_RxPoint;                                                // Rx缓冲区指针
bit USART_flag=0;                                                    // 用来等待发送信息结束后,接收GTM900响应的标志

/***********************************************************
* 函数名称:Delay_nms
* 函数功能:延时nms函数
*           入口参数:ms      出口参数:无
***********************************************************/

void Delay_nms( u16 ms )
{
uchar a,b,c;
while( ms--)
{
    for(c=1;c>0;c--)
    for(b=142;b>0;b--)
    for(a=2;a>0;a--);
}
                        
}

/***********************************************************
* 函数名称:Delay_n10us
* 函数功能:延时n个10us函数
*           入口参数:us      出口参数:无
***********************************************************/

void Delay_n10us( uchar us )   
{
    uchar a,b;
        while( us-- )
        {
            for(b=1;b>0;b--)
                for(a=2;a>0;a--);
        }
}

/***********************************************************
* 函数名称:USART_Init
* 函数功能:串口初始化函数
*           入口参数:无      出口参数:无
***********************************************************/

void USART_Init(void)
{
         SCON=0x50; // UART方式1:8位UART;
        REN =1;           // 允许串行口接收数据;
        PCON=0x00; // SMOD=0:波特率不加倍;
        TMOD=0x20; // T1方式2,用于UART波特率;
        TH1 =0xFD; // 装初值;
        TL1 =0xFD; // 装初值
        TR1 =1;           // 启动定时器1
        EA=1;      // 打开全局中断控制
        ES=1;           // 开启串口中断
}

/***********************************************************
* 函数名称:USART_SendChar
* 函数功能:发送单个字符
*           入口参数:ch      出口参数:无
***********************************************************/

void USART_SendChar(uchar ch)
{
    SBUF=ch;        // 送入缓冲区
    while(TI!=1);   // 等待发送完毕
    TI=0;           // 软件清零
}

/***********************************************************
* 函数名称:USART_SendStr
* 函数功能:发送字符串
*           入口参数:*str    出口参数:无
***********************************************************/

void USART_SendStr(uchar *str)
{

    while(*str!='\0')
    {
        USART_SendChar(*str);
        Delay_nms(2);
        str++;
    }

}

源程序和电路原理图.zip

765.84 KB

沙发
xia00| | 2015-10-25 21:13 | 只看该作者
程序这么简单啊

使用特权

评论回复
板凳
bbapple| | 2015-10-25 21:29 | 只看该作者
进来看看,很不错的资料。

使用特权

评论回复
地板
会飞の鱼|  楼主 | 2015-10-29 22:47 | 只看该作者
xia00 发表于 2015-10-25 21:13
程序这么简单啊

重点是思路要清楚,写起来就比较简单。

使用特权

评论回复
5
会飞の鱼|  楼主 | 2015-10-29 22:48 | 只看该作者
bbapple 发表于 2015-10-25 21:29
进来看看,很不错的资料。

恩恩 可以看看 欢迎下载:lol

使用特权

评论回复
6
小浣熊| | 2015-10-30 22:43 | 只看该作者
写的最多的就是程序的初始化了。

使用特权

评论回复
7
迪卡| | 2015-10-31 09:52 | 只看该作者
SYS.h这个头文件里包含的是什么

使用特权

评论回复
8
天灵灵地灵灵| | 2015-10-31 14:28 | 只看该作者
         SCON=0x50; // UART方式1:8位UART;
        REN =1;           // 允许串行口接收数据;
        PCON=0x00; // SMOD=0:波特率不加倍;
        TMOD=0x20; // T1方式2,用于UART波特率;
        TH1 =0xFD; // 装初值;
        TL1 =0xFD; // 装初值
        TR1 =1;           // 启动定时器1
         EA=1;      // 打开全局中断控制
        ES=1;           // 开启串口中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

185

帖子

2

粉丝