|
本帖最后由 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[33];
unsigned char devices;
unsigned char rom_code[4][9];
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);
};
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|