?? 1.c
字號:
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>
#define unchar unsigned char
#define unint unsigned int
sbit P1_0=P1^0;
unchar *re;
void ctout();
void received() ;
void chushihua();
void send();
//主函數
void main()
{
chushihua();
received();
ctout();
while(1)
{
while(P1_0==0)
{
send();
}
}
}
//延時函數
void delay(unsigned int i)
{
unchar j; //當i為1000時約延時1秒
for(;i>0;i--)
{
for(j=0;j<125;j++)
{ ; }
}
}
//初始化串口
void chushihua()
{
SCON=0x50; //允許接收數據,串口方式1
TMOD=0x20; //定時器1工作在工作方式2,定時器0工作在工作方式2
TCON=0x40; //設定時器1開始記數
TH1=0xF3; //24MHz 9600波特率
TL1=0xF3;
PCON=0x80; //SMOD=1,波特率翻倍
RI=0; //清收發標志
TI=0;
TR1=1; //開始啟動定時
}
//向串口發送字符
void send(unsigned char *outdate)
{
// unchar *outdate;
unchar i;
// outdate="ATD13765113646;";
for(i=0;i<15;i++)
{
SBUF=*outdate; //輸出字符
outdate++;
}
SBUF=0x0d; //發送回車字符
while(!TI); //空語句,判斷字符是不是發完了
TI=0; //清TI
received();
}
//接收函數
void received()
{
if(RI) //判斷是 不是收完字符
{
*re=SBUF; //讀出數據
re++;
RI=0; //清RI
}
ctout();
}
//接收處理函數
void ctout()
{ switch(*re)
{
case "ERROR": send(); break;
case "OK": received(); break;
case "dial string:": delay(1000);send("ATA"); break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -