返回列表 发帖

采用mega8 和18b20的温度采集程序

本程序为采用mega8 和18b20的温度采集程序 选用mega8内部8M RC震荡,18b20 数据线接pd6,数据线和vcc间接一4.7k上拉电阻 #include //和单片机类型相对应的头文件,选择Atmega8做实验; #include #define uchar unsigned char #define uint unsigned int void init_1820(); write_1820(uchar x); uchar read_1820(); void send_byte(uchar x); void delay(uint x); void disp_led(uchar buffer,uchar control); uchar disp_table[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar dp; long count; void main(void) //主函数 { disp_led(0,0); delay(2000); OSCCAL=0X9d;//系统时钟校准,不同的芯片和不同的频率, DDRC=0xff; DDRD=0XFF; PORTD=0XFF; WDR(); //看门狗计数清零 WDTCR=0x0F; PORTC=0xff; while(1) { uchar i,temh,teml; init_1820(); //复位18b20 write_1820(0xcc); // 发出转换命令 write_1820(0x44); delay(400); init_1820(); WDR(); write_1820(0xcc); //发出读命令 write_1820(0xbe); teml=read_1820(); //读数据 temh=read_1820(); //for(i=0;i<7;i++) //测试用 //{ //send_byte(0x40); //send_byte(disp_table[0&0x0f]); //} //send_byte(disp_table[temh>>4]); //send_byte(disp_table[temh&0x0f]); //send_byte(disp_table[teml>>4]); //send_byte(disp_table[teml&0x0f]); count=(temh*256+teml)*6.25; //计算具体温度 WDR(); disp_led(0,1); //显示温度 for(i=0;i<100;i++) //每次转换需要延时200ms以上 delay(1000); } } void delay(uint x) //1.5us左右 { while(x) { x--; } } void init_1820() { PORTD|=(1<<6); PORTD&=~(1<<6); delay(3000); //480us以上 PORTD|=(1<<6); DDRD&=~(1<<6); delay(40); //15~60us while(PIND&(1<<6)) { // disp_led(3,0); // for(;;) //{} } DDRD|=(1<<6); PORTD|=(1<<6); delay(150); //60~240us } write_1820(uchar x) { uchar m; for(m=0;m<8;m++) { PORTD&=~(1<<6); if(x&(1<=tempcount%10; tempcount/=10; } send_byte(disp_table[buffer/10]); //最开始显示buffer数据 send_byte(disp_table[buffer%10]); send_byte(0x00); send_byte(0x00); send_byte(0x00); for(i=0;i<6;i++) { if(i==3) dp=1; //小数点控制位 send_byte(disp_table[temp[5-i]]); dp=0; } break; } } PORTC|=(1<<4); }

返回列表

最新关注 关闭


关于论坛注册,最新修改,请网友们注意

由于最近大量垃圾信息出现在我们的论坛,为了营造一个良好的氛围,目前论坛只开发邀请注册,你可以点击以下链接自动邀请注册(如果有人使用了点击下一个试一试) ...


查看
珩源工控论坛热诚欢迎您联系我们进行合作!

Powered by Discuz! 7.2© 2001-2009 Comsenz Inc.

珩源工控论坛 ( 桂ICP备19004328号) |论坛统计|WAP| 客服中心-www.hymcu.com
  

GMT+8, 2024-3-29 18:05, Processed in 1.037172 second(s), 5 queries, Gzip enabled.