这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » jianzhangx ARM DIY进程贴

共77条 5/8 |‹ 3 4 5 6 7 8 跳转至
院士
2012-05-08 23:29:48     打赏
41楼
嘿嘿,好高级的显示啊~~

助工
2012-05-09 23:07:17     打赏
42楼

1820部分代码:
*Function:向18B20写入一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
void WriteByte (unsigned char  wr)  //单字节写入
{
 unsigned char  i;
 for (i=0;i<8;i++)
 {
  GPIO_ResetBits(GPIOA , D18B20);  //D18B20 = 0;
     Delay_us(2);
  //D18B20=wr&0x01;
  if(wr&0x01) GPIO_SetBits(GPIOA , D18B20);
  else  GPIO_ResetBits(GPIOA , D18B20);
  Delay_us(45);   //delay 45 uS //5
  
  GPIO_SetBits(GPIOA , D18B20);  //D18B20=1;
  wr >>= 1;
 }
}

/************************************************************
*Function:读18B20的一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
unsigned char ReadByte (void)     //读取单字节
{
 unsigned char  i,u=0;
 for(i=0;i<8;i++)
 {  
  GPIO_ResetBits(GPIOA , D18B20);     //D18B20 = 0;
  Delay_us (2);
  u >>= 1;
 
  GPIO_SetBits(GPIOA , D18B20);   //D18B20 = 1;
  Delay_us (4);
  if(GPIO_ReadInputDataBit(GPIOA , D18B20) == 1)
  u |= 0x80;
  Delay_us (65);
 }
 return(u);
}

/************************************************************
*Function:读18B20
*parameter:
*Return:
*Modify:
*************************************************************/
void read_bytes (unsigned char  j)
{
  unsigned char  i;
  for(i=0;i<j;i++)
  {
    *p = ReadByte();
    p++;
  }
}

/************************************************************
*Function:CRC校验
*parameter:
*Return:
*Modify:
*************************************************************/
unsigned char Temp_CRC (unsigned char j)
{
    unsigned char  i,crc_data=0;
   for(i=0;i<j;i++)  //查表校验
     crc_data = CrcTable[crc_data^temp_buff[i]];
    return (crc_data);
}

/************************************************************
*Function:读取温度
*parameter:
*Return:
*Modify:
*************************************************************/
void GemTemp (void)
{
   read_bytes (9);
   if (Temp_CRC(9)==0) //校验正确
   {
     Temperature = temp_buff[1]*0x100 + temp_buff[0];
//     Temperature *= 0.625;
  Temperature /= 16;
  Delay_us(10);
    }
}

/************************************************************
*Function:内部配置
*parameter:
*Return:
*Modify:
*************************************************************/
void Config18b20 (void)  //重新配置报警限定值和分辨率
{
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0x4e);  //write scratchpad
     WriteByte(0x19);  //上限
     WriteByte(0x1a);  //下限
     WriteByte(0x7f);     //set 12 bit (0.125)
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0x48);  //保存设定值
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0xb8);  //回调设定值
}

/************************************************************
*Function:读18B20ID
*parameter:
*Return:
*Modify:
*************************************************************/
void ReadID (void)//读取器件 id
{
 Init18b20();
 WriteByte(0x33);  //read rom
 read_bytes(8);
}

/************************************************************
*Function:18B20ID全处理
*parameter:
*Return:
*Modify:
*************************************************************/
void TemperatuerResult(void)
{
   p = id_buff;
   ReadID();
   Config18b20();
 Init18b20 ();
 WriteByte(0xcc);   //skip rom
 WriteByte(0x44);   //Temperature convert

 Init18b20 ();
 WriteByte(0xcc);   //skip rom
 WriteByte(0xbe);   //read Temperature
 p = temp_buff;
 GemTemp();
}


void GetTemp()
{      
     if(Count == 3) //每隔 3s 读取温度
 {  Count=0;
    TemperatuerResult();
 }

}


助工
2012-05-10 21:51:41     打赏
43楼

触摸屏:


助工
2012-05-11 21:28:18     打赏
44楼
AD模数转换,使用电位器分压做模拟输入信号,调节变位器的阻值可改输入电压信号值:

助工
2012-05-12 22:48:23     打赏
45楼

忘记附上电路了,加上:


助工
2012-05-13 22:31:49     打赏
46楼

正在调试2.4G无线模块中。
找到一套ARM视频教程,再系统地学习一下。


助工
2012-05-14 21:52:00     打赏
47楼

只买了一个2.4G模块,只能做发送实验,收都做不了,还得买一个回来。只能先做其他的了。


院士
2012-05-14 22:19:02     打赏
48楼
唉,can总线的实验也只能看看了~~

助工
2012-05-15 23:07:23     打赏
49楼
can也得两个啊
做也就是单一的收和发了,看不到具体内容了

院士
2012-05-16 16:28:31     打赏
50楼
于是 我果断放弃can实验 ~~

共77条 5/8 |‹ 3 4 5 6 7 8 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]