資源簡介
這是一個在visual studio環境下開發的串口通訊,包括上位機和51下位機的聯手,可以再wince上運行,已經調試通過

代碼片段和文件信息
#include?
#include?
#define uchar?unsigned?char?
#define uint?unsigned?int
sbit?FMQ=P3^7;
sbit?JDQ=P3^6;
sbit?P1_4=P1^4;
sbit?P1_5=P1^5;
sbit?DQ?=?P3^5;
bit?psend_int; //一次數據接收完畢
uchar?ConValue;
char?end;
char?flag;
uint?a?=?0?b?=?0?c?=?0tem;
float?d?=?0;
void?Delay(uint?num)//延時函數
{
while
(?num--?);
}
void?com_send(?uchar?byte)
{
psend_int=0;
SBUF=byte;
while(psend_int==0);
}
void?delayXms(uint?z)
{
uint?xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void?Init_18B20(void)//初始化ds1820
{
uchar?x?=?0;
DQ?=?1;????//DQ復位
Delay(8);??//稍做延時
DQ?=?0;????//單片機將DQ拉低
Delay(80);?//精確延時?大于?480us
DQ?=?1;????//拉高總線
Delay(14);
x?=?DQ;??????//稍做延時后?如果x=0則初始化成功?x=1則初始化失敗
????Delay(20);
}
uchar?ReadOneChar()//讀一個字節
{
uchar?i?=?0;
uchar?dat?=?0;
for?(i?=?8;?i?>?0;?i--)
{
?? DQ?=?0;?//?給脈沖信號
?? dat?>>=?1;
?? DQ?=?1;?//?給脈沖信號
?? if(DQ)
?? dat?|=?0x80;
?? Delay(4);
}
return?(dat);
}
void?WriteOneChar(unsigned?char?dat)//向1820寫一個字節
{
uchar?i?=?0;
for?(i?=?8;?i?>?0;?i--)
{
?? DQ?=?0;
?? DQ?=?dat&0x01;
?? Delay(5);
DQ?=?1;
?? dat>>=1;
}
}
void?wenduzhuanhuan(void)
{
Init_18B20();
WriteOneChar(0xCC);?//?跳過讀序號列號的操作
WriteOneChar(0x44);?//?啟動溫度轉換
Init_18B20();
WriteOneChar(0xCC);?
WriteOneChar(0xBE);?//讀取溫度寄存器
a?=?ReadOneChar();
b?=?ReadOneChar();
c?=?b;
c?<<=?8;
c?=?c?|?a;
d?=?c?*?0.0625;
??? c?=?d?*?10?+?0.5;?//放大10倍輸出并四舍五入
a?=?c?/?100;??????????????//十位
b?=?c?/?10?-?a?*?10;??????//個位?
tem=a*10+b;
}
void?main()
{
SP=0X60;
SCON=0X50;????
PCON=0X80;
TMOD=0X20;
TH1=0XFa;
TL1=0XFa;
EA=1;
TR1=1;
ES=1;
end=0;
flag=1;
P0=0;
P1=0;
P2=0;
while(1)
?????{
loop: switch(ConValue)
{
case?0x01:
P2=0x01;
break;
case?0x02:
P2=0x02;
break;
case?0x03:
P2=0x04;
break;
case?0x04:
P2=0x08;
break;
case?0x05:
P2=0x10;
break;
case?0x06:
P2=0x20;
break;
case?0x07:
P2=0x40;
break;
case?0x08:
P2=0x80;
break;
case?0x09:
P1_4=1;??//正轉
P1_5=0;
break;
case?0x0a:
P1_4=0;??//反轉
P1_5=1;
break;
case?0x0b:
while(1)
{
P0=0;
P2=0;
if(end==1)
{
end=0;
goto?loop;
}
delayXms(600);
if(flag==1)
{
flag=0;
P0=01;
}
else
{
flag=1;
P0=00;
}
wenduzhuanhuan();
com_send(tem);
??? }
break;
case?0x0c:
P1_4=0;??
P1_5=0;
break;
case?0x0d:
JDQ=0;//////
break;
case?0x0e:
JDQ=1;
break;
case?0x0f:
FMQ=0;
break;
case?0x10:
FMQ=1;
break;
default:
break;
}
}??
}
void??uart_int(void)??interrupt?4?
{
if?(TI?==?1)?????????????????????
{
TI?=?0;
psend_int?=?1;??????????????????/*?可以發送?????????*/
}
if?(RI?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????53248??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Debug\SerialPort.exe
?????文件??????69120??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Debug\SerialPort.pdb
?????文件????????676??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Debug\SerialPort.xm
?????文件??????54784??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Release\SerialPort.exe
?????文件??????42496??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Release\SerialPort.pdb
?????文件????????676??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\bin\Release\SerialPort.xm
?????文件????????656??2009-09-29?14:07??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\ClassDiagram1.cd
?????文件??????19865??2011-10-26?16:19??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\Form1.Designer.vb
?????文件???????6501??2011-10-26?16:19??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\Form1.resx
?????文件??????10191??2011-10-26?16:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\Form1.vb
?????文件???????1099??2009-09-28?15:37??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\My?Project\AssemblyInfo.vb
?????文件???????2361??2009-09-28?15:37??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\My?Project\Resources.Designer.vb
?????文件???????5618??2005-09-23?03:26??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\My?Project\Resources.resx
?????文件???????4130??2009-09-30?11:37??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\ResolveAssemblyReference.cache
?????文件??????53248??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.exe
?????文件????????180??2009-09-30?11:49??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.Form1.resources
?????文件??????69120??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.pdb
?????文件????????180??2009-09-28?16:03??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.Resources.resources
?????文件????????900??2009-09-30?11:49??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.vbproj.GenerateResource.Cache
?????文件????????676??2009-09-30?11:57??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\SerialPort.xm
?????文件???????6144??2009-09-28?15:37??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Debug\TempPE\My?Project.Resources.Designer.vb.dll
?????文件???????4130??2009-11-03?09:32??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\ResolveAssemblyReference.cache
?????文件??????54784??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.exe
?????文件????????180??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.Form1.resources
?????文件??????42496??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.pdb
?????文件????????180??2009-09-30?14:29??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.Resources.resources
?????文件????????842??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.vbproj.GenerateResource.Cache
?????文件????????676??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\SerialPort.xm
?????文件???????6144??2009-09-29?13:51??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\Release\TempPE\My?Project.Resources.Designer.vb.dll
?????文件????????680??2009-12-14?15:44??串口示例VB\上位機源代碼\VB.NET.PRO\SerialPort\SerialPort\obj\SerialPort.vbproj.FileList.txt
............此處省略40個文件信息
- 上一篇:曲線擬合的VB源代碼
- 下一篇:34401A GPIBRS232通訊
評論
共有 條評論