《智能控制风扇源程序》由会员分享,可在线阅读,更多相关《智能控制风扇源程序(16页珍藏版)》请在金锄头文库上搜索。
1、touwenjian.htypedef unsigned char byte; typedef unsigned int word;/以下管脚配置/ds18b20 部分sbit DQ =P3人4;/显示部分sbit DB=P2A0;sbit CP=P2A1;/发光显示部分sbit LED_dingshi=P0A0; sbit LED_shoudong =P0A1;sbit LED_zidong=P0A2;sbit LED_kuai =P0A3;sbit LED_zhong =P0A4;sbit LED_man =P0A5;/键盘定义部分 #define wujian 0x3fsbit KEY1
2、=P1A0 ; /状态转换 /启动sbit KEY2=P1A1 ; /+10 / 1sbit KEY3=P1A2 ; /-10/ 2sbit KEY4=P1A3 ; / 3 sbit KEY5=P1A4 ; / 0 确定/继电器控制部分sbit JDQ1=P2A4; /0表示开通,1表示关断 sbit JDQ2=P2A5;sbit JDQ3=P2A6;/蜂鸣器部分sbit call=P2A7;/低电平鸣叫/ #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J
3、* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*ds18b20.c/#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #
4、J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* /#include #includetouwenjian.h/7/ #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* rj延时子程序/#J*
5、 #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* /extern void delay(word useconds) for(;useconds0;useconds-);/ #j* #j* #j* #j* #j* #j* #j* #
6、j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #y复位子程序/#j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* /
7、static byte ow_reset(void)byte presence;EA=0;DQ = 0; / pull DQ line low delay(45); / leave it low for 480us /551usDQ = 1; / allow line to return high delay(4);/ wait for presence /61us presence = DQ; / get presence signal delay(40); / wait for end of timeslot /491us EA=1;return(presence); / presence
8、 signal returned / 0=presence, 1 = no part/ #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j*从 1-wire 总线上读取一个字节子程序/#j* #j* #j* #j*
9、 #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* #j* /static byte read_byte(void)byte i;byte value = 0;EA=0;for (i=8;i0;i-)value=1;DQ = 0; / pul
10、l DQ low to start timeslotDQ = 1; / then return high unsigned char i;for(i=0;i0; i-) / writes byte, one bit at a timeDQ = 0; / pull DQ low to start timeslot DQ=0;DQ = val&0x01; /6US delay(5);/ hold value for remainder of timeslot /74us DQ = 1;val=val1;EA=1; delay(5);/ #J* #J* #J* #J* #J* #J* #J* #J*
11、 #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*读取温度/#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*
12、 #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* /word Read_Temperature(void)unionbyte c2;word x;temp;ow_reset();write_byte(0xCC); / Skip ROM write_byte(0xBE); / Read Scratch Pad temp.c1=read_byte();temp.c0=read_byte(); ow_reset();write
13、_byte(0xCC); /Skip ROM write_byte(0x44); / Start Conversion return temp.x;/ #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*
14、#J* #J* #J* #J* #J* #J* #J*求解温度/#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* /extern byte Real_Tem(void)