资源简介

这是一个在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.xml

     文件      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.xml

     文件        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.xml

     文件       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.xml

     文件       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个文件信息

评论

共有 条评论