久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STC_12C5A60S2和W77E58 雙串口程序,代碼
[打印本頁]
作者:
51黑芯片
時間:
2016-1-16 23:03
標題:
STC_12C5A60S2和W77E58 雙串口程序,代碼
/****************************************************************/
/* 煜:根據“ 2016-12-4”
/*
http://www.zg4o1577.cn/mcu/3297.html
STC12串口1(獨立波特率發生器)使用
/*
http://www.zg4o1577.cn/mcu/3298.html
STC12單片機串口2的應用
/* 自整合
/*
/*
/* stc12c5a.h stc12的頭文件從:
http://www.zg4o1577.cn/mcu/3282.html
這里下載.
/*
/***************************************************************/
#include<12C5A60S2.h>
#include<stdio.h> //輸入輸出函數,要用到printf
#include<string.h> //字符串函數
#define uchar unsigned char
#define uint unsigned int
#define Buf_Max 40
#define Buf_Max_one 40
#define Delay_Time 600
//引腳
sbit M33_on=P1^0; //M33啟動信號腳
sbit H_rd=P3^7; //RD_即OE腳 H_表示跟SRAM 相關 外部數據存儲器_讀選通
sbit H_wr=P3^6; //we_即WR腳 外部數據存儲器_寫選通
//sbit H_oe= //ds1250存儲器,不需要?
sbit H_ale=P3^0; //74H573
uchar i;
uchar Rec_Buf[]={"hello! Jim\n"};
uchar Rec_Buf_one[]={"Buf_CK_one\n"};
/****************************************************************/
/* 函數聲明
/*
/*
/***************************************************************/
void Delay_ms(unsigned int time);
void Init(void);
void Serial_Iint(void);
void Serial_Iint_one(void);
void Send_Char(uchar a);
void Send_Char_one(uchar a);
void Send_String(uchar *tab);
void Send_String_one(uchar *tab);
bit HanChun(unsigned char *a);
void CLR_Buf(void);
void CLR_Buf_one(void);
/****************************************************************/
/* 函數
/*
/*
/***************************************************************/
void Delay_ms(unsigned int time)
{
unsigned int i_c;
for(;time>0;time--)
{
i_c=600; //1T單片機i=600,若是12T單片機i=125
while(i_c--);
}
}
/****************************************************************/
/* 主函數
/*
/*
/***************************************************************/
void main(void)
{
Init(); //P端口初始化為低電平 //影響第2串口_發送不成功;why
M33_on=1;Delay_ms(5000); //點火信號__M33_開機_拉低500ms_開機 12C的速度快3倍左右,故延時3倍時間
M33_on=0;Delay_ms(800);
M33_on=1;Delay_ms(500);
Delay_ms(1000); Delay_ms(1000); Delay_ms(1000);
TI=1; //把TI置位1次,才能使用printf。
S2CON&=0xFF; //把TI置位1次,才能使用printf。
Serial_Iint();
Send_String("AT\n"); Delay_ms(500); //發送握手指令,
Send_String_one("AT\n");Delay_ms(500); //發送握手指令,
Send_String("AT\n"); Delay_ms(500); //發送握手指令,
Send_String_one("AT\n");Delay_ms(500); //發送握手指令,
Send_String("AT\n"); Delay_ms(500); //發送握手指令,
Send_String_one("AT\n");Delay_ms(500); //發送握手指令,
//Send_Char(0x0d); //回車
//Send_Char(0x0a); //換行
Delay_ms(500);
/*
while(!HanChun("OK")) //等待回應->握手成功
{
//Send_String("AT\r\n"); //AT沒發成功的話,再次發送
Send_String("AT"); //AT沒發成功的話,再次發送
//Send_String("AT"); //發送聯機指令 //或者用Send_String函數
Send_Char(0x0d); //發送回車符
Send_Char(0x0a); //發送換行符
Delay_ms(60000);
}
CLR_Buf(); //清除緩存區內容
*/
Send_String("AT+CPMS=\"MT\",\"MT\",\"MT\"\n"); //短信操作都在MT(模塊終端)中進行 //1MT_讀取/刪除 2MT_寫入/發送 3MT_接收并儲存位置
Delay_ms(500);
Send_String_one("AT+CPMS=\"MT\",\"MT\",\"MT\"\n");
//while(!HanChun("OK")); //等待設置成功
//CLR_Buf(); //清除緩存內容
Delay_ms(2000);
Send_String("AT+CNMI=2,1\n"); //設置當有新短信到來時提示
Send_String_one("AT+CNMI=2,1\n");
//while(!HanChun("OK"));
//CLR_Buf();
Delay_ms(2000);
Send_String("AT+CMGF=0\n"); //消息格式 0_PDU模式 1_文本(TEXT)模式
Send_String_one("AT+CMGF=0\n");
//while(!HanChun("OK"));
//CLR_Buf();
Delay_ms(2000);
while(1)
{
Send_String(Rec_Buf); //從串口發送出去
Delay_ms(1000);
Send_String_one(Rec_Buf_one); //從(第2)串口發送出去
Delay_ms(1000);
}
}
void Init(void)
{
P0=0x00;
P1=0x0c; //得設為0x0c;即避開串口腳,不能把串口腳設為低電平,否則第2串口不能發送
P2=0x00;
}
bit HanChun(unsigned char *a) //串口0_判斷緩存中是否有指定的字符串 ,有時_返回1
{ //祥
if(strstr(Rec_Buf,a)!=NULL) //如果Rec_Buf包含了a,則為1;否則為0
return 1;
else
return 0;
}
/****************************************************************/
/* 串口0(即燒寫口)
/*
/*
/***************************************************************/
void Serial_Iint(void) //已修正,可行
{
TMOD = 0x20; //定時器1工作在方式2 8位自動重裝
SCON = 0x50; //串口1工作在方式1 10位異步收發 REN=1允許接收
//TH1 = 0xFA; //定時器1初值
TH1 = 0xFD; //定時器1初值
TL1 = TH1;
TR1 = 1; //定時器1開始計數
EA =1; //開總中斷
ES =1; //開串口1中斷
S2CON = 0x50; //串口2工作在方式1 10位異步收發 S2REN=1允許接收
//BRT = 0xFA; //獨立波特率發生器初值
BRT = 0xFD; //獨立波特率發生器初值
AUXR = 0x10; //BRTR=1 獨立波特率發生器開始計數
IE2 =0x01; //開串口2中斷 ES2=1
}
//------------------------------------------------------
void Send_Char(uchar a) //*******************發送一個字符
{
ES=0;
SBUF=a;
Delay_ms(200);
while(!TI); //等待TI變為1
TI=0; //TI清0
ES=1;
}
void Send_String(uchar *tab)//*******************發送一個字符串
{
ES=0;
while(*tab!='\0')
{
Send_Char(*tab++);
}
ES=1;
}
void CLR_Buf(void) //清除緩存區內容
{
unsigned char k;
for(k=0;k<Buf_Max;k++)
{
Rec_Buf[k]=0;
}
i=0; //接收字符串的起始存儲位置
}
void Serial_Int(void) interrupt 4 //********************串口1中斷函數
{
ES=0; //關串口中斷,防止中斷的嵌套
if(TI) //如果是串口1發送中斷(TI)不進行處理
{
TI=0; //TI清0
}
if(RI)
{
RI=0; //RI清0
Rec_Buf[i]=SBUF;
i++;
if(i>Buf_Max)
{
i=0;
}
}
ES=1; //開啟串口中斷
}
/****************************************************************/
/* 串口2(即第2串口)
/*
/*
/***************************************************************/
void Send_Char_one(uchar a) //*******************發送一個字符
{
IE2=0x00;
S2BUF=a;
Delay_ms(200);
while(!(S2CON&0x02)); //while(!S2TI) 等待S2TI變為1
S2CON&=0xFD; //S2TI清0
IE2=0x01;
}
void Send_String_one(uchar *tab) //*******************發送一個字符串
{
IE2=0x00;
while(*tab!='\0')
{
Send_Char_one(*tab++);
}
IE2=0x01;
}
void CLR_Buf_one(void) //清除緩存區內容
{
unsigned char k;
for(k=0;k<Buf_Max;k++)
{
Rec_Buf_one[k]=0;
}
i=0; //接收字符串的起始存儲位置
}
void Serial_Int_one(void) interrupt 8 //********************串口2中斷函數
{
IE2=0x00; //關串口中斷,防止中斷的嵌套
if(S2CON&0x02) //如果是串口2發送中斷(S2TI)不進行處理
{
S2CON&=0xFD; //S2TI清0
}
if(S2CON&0x01)
{
S2CON&=0xFE; //S2RI清0
Rec_Buf_one[i]=S2BUF;
i++;
if(i>Buf_Max_one)
{
i=0;
}
}
IE2=0x01; //開啟串口中斷
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美激情久久久
|
免费亚洲网站
|
日韩一区二区三区四区五区六区
|
中文字幕在线视频一区二区三区
|
成人日韩av
|
久久国产精品99久久久久久丝袜
|
久久亚洲一区二区三区四区
|
特级黄一级播放
|
日韩精品久久久久
|
国产大片一区
|
日韩毛片在线观看
|
久久av一区二区三区
|
av片在线观看网站
|
一级欧美一级日韩片
|
香蕉一区二区
|
欧美精品久久久久久久久老牛影院
|
国产亚洲精品综合一区
|
日韩一区二区在线视频
|
国产高清视频在线观看播放
|
日日操夜夜操视频
|
亚洲视频一区二区三区
|
亚洲免费视频一区二区
|
亚洲欧美日韩精品久久亚洲区
|
久久不卡
|
亚洲成人av在线
|
色橹橹欧美在线观看视频高清
|
欧美一区二区三区在线看
|
日韩精品一区二区三区中文在线
|
999视频在线播放
|
国产一区二区免费
|
欧美日韩视频在线播放
|
国产精品久久久久久久岛一牛影视
|
日本成人综合
|
日韩视频精品在线
|
四虎影院在线观看免费视频
|
精品久久久久久久久久久久久久
|
日韩中文一区二区三区
|
亚洲成人在线视频播放
|
一区在线免费视频
|
亚洲精品视频在线
|
久久久久久色
|