資源簡介
基于51單片機的ESP8266 WIFI模塊 繼電器控制程序源碼

代碼片段和文件信息
#include?“60s2.h“
#include?“stdarg.h“
#include?“stdio.h“
#include?“string.h“
u8?xdata?uart1_rxbuf[40];
u8?xdata?uart1_txbuf[40];
u8?xdata?uart2_rxbuf[40];
u8?xdata?uart2_txbuf[40];
u8?counterrcv1rcv2flag=0;
void?delay(u16?z)
{
u16?xy;
for(x=z;x>0;x--)
for(y=500;y>0;y--);
}
u8?key_Scan(u8?mode)
{ ?
static?u8?key_up=1;//按鍵按松開標志
if(mode)key_up=1;??//支持連按 ??
if(key_up&&(key1==0))
{
delay(10);//去抖動?
key_up=0;
if(key1==0)
return?1;
}
else?if(key1==1)
key_up=1;? ????
? return?0;//?無按鍵按下
}
void?write_com(u8?com)//根據寫時序圖寫出指令程序
{
rs=0;
LCD_DATA=com;
delay(5);
ea=1;
delay(5);
ea=0;
}
void?write_data(u8?date)//根據寫時序圖寫出數據程序
{
rs=1;
LCD_DATA=date;
delay(5);
ea=1;
delay(5);
ea=0;
}
void?lcd_init(void)
{
P4SW|=0x70; ????//初始化P4端口為普通IO口
rw=0; //禁止
ea=0;???????????//使能端為低電平
write_com(0x38);//顯示模式設置
write_com(0x0c);//開顯示,顯示光標,光標閃爍
write_com(0x06);//地址指針自動+1且光標+1,寫字符屏幕不會移動
write_com(0X01);
}
void?display(u8?mode)
{
if(mode==1)
{
write_com(0X01);
write_com(0x80); ????????//第一行
write_data(‘L‘);
write_data(‘e‘);
write_data(‘N‘);
write_data(‘g‘);
write_data(‘t‘);
write_data(‘h‘);
write_data(‘:‘);
write_data(‘0‘);
write_data(‘0‘);
write_com(0xc0);????????????//第二行
}
else??if(mode==2)
{
write_com(0x87); ????????//第一行
write_data(rcv2/10+‘0‘);
write_data(rcv2%10+‘0‘);
}
else??if(mode==3)
{
write_com(0x80); ????????//第一行
write_data(‘W‘);
write_data(‘I‘);
write_data(‘F‘);
write_data(‘I‘);
write_com(0xc0);????????????//第二行
write_data(‘i‘);
write_data(‘n‘);
write_data(‘i‘);
write_data(‘t‘);
write_data(‘.‘);
write_data(‘.‘);
write_data(‘.‘);
}
}
void?uart1_init(void)
{
????SCON?=?0x50;?//串口1控制寄存器?01010000??8位可變波特率,無奇偶校驗位
????BRT??=?0xfD;?//11.0592m晶振????9600波特率
????AUXR?=?0x15;?//輔助寄存器??????11?9600波特率???15?115200波特率
????ES???=?1;????//串口1中斷允許位?(打開串口1中斷)
????EA???=?1;????//開總中斷
}
void?uart2_init(void)
{
????S2CON=?0x50;?//串口2控制寄存器?01010000?8位可變波特率,無奇偶校驗位
????BRT??=?0xfD;?//11.0592m晶振
????AUXR?=?0x15;?//輔助寄存器??????11?9600波特率???15?115200波特率
????IE2??=?0x01;?//中斷允許寄存器2?(打開串口2中斷?ES2=1)
????EA=1;????????//開總中斷
}
void?uart1_send(u8?i)
{
????ES?????=???0;??//串口1中斷允許位?(關閉串口1中斷)
????TI?????=???0;??//發送中斷標志清零
????SBUF???=???i;??//將數據寫入串口數據緩存
????while(TI?==0);?//等待發送完成
????TI?????=???0;??//發送中斷標志清零
delay(1); ???//延時1毫秒
????ES?????=???1;??//串口1中斷允許位?(打開串口1中斷)
}
void?uart2_send(u8?i)
{
u8?temp?=?0;
IE2???=?0x00;???????????//中斷允許寄存器2?(關閉串口2中斷?ES2=0)
S2CON?=?S2CON?&?0xFD;???//B‘11111101清零串口2發送完成中斷請求標志
S2BUF?=?i; ????//將數據寫入串口數據緩存
do
{
temp?=?S2CON;
temp?=?temp?&?0x02;
}
while(temp==0); ???//等待發送完成
S2CON=?S2CON?&?0xFD;???//B‘11111101清零串口2發送完成中斷請求標志
IE2?=?0x01;????????????//中斷允許寄存器2?(打開串口2中斷?ES2=1)
}
void?uart1_recv(void)?interrupt?4
{
????if(RI==1) ?????//串口1接收中斷標志
????{
????????RI?=?0;??????
????????uart1_rxbuf[r
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8041??2017-03-01?13:14??51wifi\60s2.h
?????文件???????5441??2017-07-08?10:09??51wifi\main.c
?????文件??????12822??2017-07-08?10:09??51wifi\main.LST
?????文件??????19200??2017-07-08?10:09??51wifi\main.OBJ
?????文件??????18146??2017-07-08?10:09??51wifi\wifi
?????文件???????6924??2017-07-08?10:09??51wifi\wifi.hex
?????文件?????????40??2017-07-08?10:09??51wifi\wifi.lnp
?????文件??????22198??2017-07-08?10:09??51wifi\wifi.M51
?????文件???????4116??2017-07-08?10:19??51wifi\wifi.plg
????.......?????55185??2017-07-08?10:19??51wifi\wifi.uvopt
?????文件??????13224??2017-07-06?18:39??51wifi\wifi.uvproj
????.......?????55185??2017-07-06?18:39??51wifi\wifi_uvopt.bak
?????文件??????????0??2017-07-06?18:17??51wifi\wifi_uvproj.bak
?????目錄??????????0??2017-07-08?10:19??51wifi
-----------?---------??----------?-----??----
???????????????220522????????????????????14
- 上一篇:sys/types.h
- 下一篇:si4432測試程序
評論
共有 條評論