da1621+51单片机仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <ds1621.h>
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--)
- {
- for(i=0;i<120;i++);
- }
- }
- //写
- void Master(uchar slave_addr)
- {
-
-
-
-
- if(!SCL || !SDA) //sda == 0或scl== 0;
- {}
- else
- {
- SDA = 0;
- _nop_();
- _nop_();
- SCL = 0;
- _nop_();
- _nop_();
- write_onebyte_iic(slave_addr);
- }
- }
- void SetTemp(uchar HI,uchar LO)
- {
- Master(0x90);
- write_onebyte_iic(0xa1);
- write_onebyte_iic(HI);
- SendStop();
- DelayMS(10);
- Master(0x90);
- write_onebyte_iic(0xa2);
- write_onebyte_iic(LO);
- SendStop();
- }
- void StartConversion()
- {
- Master(0x90);
- write_onebyte_iic(0xee);
- SendStop();
- DelayMS(750);
- }
- void StopConversion()
- {
- Master(0x90);
- write_onebyte_iic(0x22);
- SendStop();
- DelayMS(750);
- }
- //读温度
- uint ReadTemp()
- {
- uint d;
- Master(0x90);
- write_onebyte_iic(0xaa);
- SendStop();
- Master(0x91);
- d = read_onebyte_iic(0);
- point = read_onebyte_iic(1)>>7;
- SendStop();
- return d;
- }
- void WriteConfig(uchar c)
- {
- Master(0x90);
- write_onebyte_iic(0xac);
- write_onebyte_iic(c);
- SendStop();
- }
复制代码
所有资料51hei提供下载:
ds1621.rar
(844.52 KB, 下载次数: 24)
|