找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

单片机控制温度传感器的源程序,51源程序

[复制链接]
admin 发表于 2010-6-14 22:52:05 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
单片机控制温度传感器的源程序,51源程序


  1. //DS1820 C51 子程序
  2. //这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间
  3. //sbit DQ =P2^1;//根据实际情况定义端口

  4. typedef unsigned char byte;
  5. typedef unsigned int word;

  6. //延时
  7. void delay(word useconds)
  8. {
  9. for(;useconds>0;useconds--);
  10. }

  11. //复位
  12. byte ow_reset(void)
  13. {
  14. byte presence;
  15. DQ = 0; //pull DQ line low
  16. delay(29); // leave it low for 480us
  17. DQ = 1; // allow line to return high
  18. delay(3); // wait for presence
  19. presence = DQ; // get presence signal
  20. delay(25); // wait for end of timeslot
  21. return(presence); // presence signal returned
  22. } // 0=presence, 1 = no part

  23. //从 1-wire 总线上读取一个字节
  24. byte read_byte(void)
  25. {
  26. byte i;
  27. byte value = 0;
  28. for (i=8;i>0;i--)
  29. {
  30. value>>=1;
  31. DQ = 0; // pull DQ low to start timeslot
  32. DQ = 1; // then return high
  33. delay(1); //for (i=0; i<3; i++);
  34. if(DQ)value|=0x80;
  35. delay(6); // wait for rest of timeslot
  36. }
  37. return(value);
  38. }

  39. //向 1-WIRE 总线上写一个字节
  40. void write_byte(char val)
  41. {
  42. byte i;
  43. for (i=8; i>0; i--) // writes byte, one bit at a time
  44. {
  45. DQ = 0; // pull DQ low to start timeslot
  46. DQ = val&0x01;
  47. delay(5); // hold value for remainder of timeslot
  48. DQ = 1;
  49. val=val/2;
  50. }
  51. delay(5);
  52. }

  53. //读取温度
  54. char Read_Temperature(void)
  55. {
  56. union{
  57. byte c[2];
  58. int x;
  59. }temp;

  60. ow_reset();
  61. write_byte(0xCC); // Skip ROM
  62. write_byte(0xBE); // Read Scratch Pad
  63. temp.c[1]=read_byte();
  64. temp.c[0]=read_byte();
  65. ow_reset();
  66. write_byte(0xCC); //Skip ROM
  67. write_byte(0x44); // Start Conversion
  68. return temp.x/2;
  69. }
复制代码
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-23 11:58 , Processed in 0.049285 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表