求救!cvavr写的18b20程序
本帖最后由 devinzhangs 于 2013-3-30 12:55 编辑cvavr写的18b20程序,识别不出来18b20,1602在PORTC口,18b20在PORTA4口。用了仿真也是认不出来。怎么办?大侠请指教!谢谢!!
#include <mega16.h>
#include <stdio.h>
// 1 Wire Bus functions
#asm
.equ __w1_port=0x1B ;PORTA
.equ __w1_bit=4
#endasm
#include <1wire.h>
// DS1820 Temperature Sensor functions
#include <ds18b20.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <delay.h>
flash char str1[]="1602 for 18b20";
flash char str2[]="testing...";
char lcd_buffer;
unsigned char devices;
unsigned char rom_code;
void main(void)
{
TCCR0=0x01;
TCNT0=0x00;
OCR0=0x00;
GICR|=0x40;
MCUCR=0x03;
MCUCSR=0x00;
GIFR=0x40;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
w1_init();
lcd_init(16);
#asm("sei")
while (1)
{
lcd_init(16);
lcd_putsf(str1);
delay_ms(300);
lcd_gotoxy(0,1);
lcd_putsf(str2);
delay_ms(300);
lcd_clear();
lcd_gotoxy(0,0);
devices=w1_search(0xf0,rom_code);
PORTA|=(1<<2);
sprintf(lcd_buffer,"%u DS18B20\nDevice detected",devices);
lcd_puts(lcd_buffer);
while(1);
};
} 要看你w1_...那些代码才可以啊,识别ds1820,就是是0xf0,search rom命令,注意是ow总线时序,及二叉树算法有没有问题 richyhuang 发表于 2013-3-30 14:02 static/image/common/back.gif
要看你w1_...那些代码才可以啊,识别ds1820,就是是0xf0,search rom命令,注意是ow总线时序,及二叉树算法有没 ...
大大,我虽然学过c语言编程,但是二叉树算法不明白,avr也是最近才开始玩的,以前只用过51。
w1...是一个头文件,可以修改吗?
ow总线时序是什么东西? w1_...是指的你的w1_init,w1_search函数
ow是one wire的缩写(单总线的意思) richyhuang 发表于 2013-3-30 14:24 static/image/common/back.gif
w1_...是指的你的w1_init,w1_search函数
ow是one wire的缩写(单总线的意思)
unsigned char w1_init(void);
unsigned char w1_read(void);
unsigned char w1_write(unsigned char data);
unsigned char w1_search(unsigned char cmd,void *p);
unsigned char w1_dow_crc8(void *p,unsigned char n);
是这些吗? richyhuang 发表于 2013-3-30 14:24 static/image/common/back.gif
w1_...是指的你的w1_init,w1_search函数
ow是one wire的缩写(单总线的意思)
这是仿真结果,我的电路板也是这样做的,这个东西弄了我两天了还没弄好。求指教! 哎人品问题 没办法 devinzhangs 发表于 2013-3-30 14:46 static/image/common/back.gif
unsigned char w1_init(void);
unsigned char w1_read(void);
unsigned char w1_write(unsigned char dat ...
对啊,就是这些函数,如果你觉的search rom有问题,可以先用skip rom,然后在读一下看看,这样比较简单 richyhuang 发表于 2013-3-30 16:10 static/image/common/back.gif
对啊,就是这些函数,如果你觉的search rom有问题,可以先用skip rom,然后在读一下看看,这样比较简单 ...
skip rom是什么来的??cvavr有debug功能吗??我只用过keil自带的。debug用什么软件比较好? 说过了是可以的
cvavr2.6版本下没问题 yklstudent 发表于 2013-3-30 18:38 static/image/common/back.gif
说过了是可以的
cvavr2.6版本下没问题
在2.03就不行??我的程序哪里出问题了?求指教! devinzhangs 发表于 2013-3-30 18:42 static/image/common/back.gif
在2.03就不行??我的程序哪里出问题了?求指教!
程序没人有心情回去看
但可以提醒你一点
DQ需要上拉电阻
yklstudent 发表于 2013-3-30 18:45 static/image/common/back.gif
程序没人有心情回去看
但可以提醒你一点
DQ需要上拉电阻
谢谢你!解决了!就是上拉电阻!谢谢!十分感谢!{:lol:} devinzhangs 发表于 2013-3-30 18:52 static/image/common/back.gif
谢谢你!解决了!就是上拉电阻!谢谢!十分感谢!
解决了就好。。。。 yklstudent 发表于 2013-3-30 19:45 static/image/common/back.gif
解决了就好。。。。
现在仿真好了,实际电路还是不行,估计是晶振的问题。如何修改晶振值呢? 看手册熔丝位配置。。。。。 yklstudent 发表于 2013-3-31 07:39 static/image/common/back.gif
看手册熔丝位配置。。。。。
谢谢,解决了!还是上网问问人来得比较快捷,印象深刻!
页:
[1]