malam agan2 smua ada yg pernah pake DT-Sense flame detector dari IE gak?
ane kebingungan conversi ke bascom'a :ganteng: tolongin gan, buat skripsi neh..
contoh program yg udah jadi dlm bhs.c bgni neh gan (bawaan CD)
Chip type : AT90S2313
Clock frequency : 4,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
************************************************** ***/
#include
#include
// I2C Bus functions
#asm
.equ __i2c_port=0x12 ;PORTD
.equ __sda_bit=2
.equ __scl_bit=3
#endasm
#include
// Declare your global variables here
void main(void)
{
// Declare your local variables here
unsigned char nilaiApiAwal,nilaiApi,status;
PORTD.4 = 0;
DDRD.4 = 1;
PORTD.5 = 1;
DDRD.5 = 0;
// I2C Bus initialization
i2c_init();
delay_ms(1500);
while (1)
{
// Place your code here
while (PIND.5); // tunggu tombol ditekan
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x03); // Perintah �Autoscan�
i2c_stop(); // Stop Condition
do { // tunggu
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x00); // Perintah �Cek Status�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
status = i2c_read(0); // Data Status
i2c_stop(); // Stop Condition
} while (status==0); // sampai proses autoscaning selesai
if (status==2) { // jika api ditemukan
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x02); // Perintah �Baca data raw�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
nilaiApiAwal = i2c_read(0); // baca nilai api awal
i2c_stop(); // Stop Condition
do {
PORTD.4 = 1; // nyalakan kipas
delay_ms(2000); // selama 2 detik
PORTD.4 = 0; // matikan kipas
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x02); // Perintah �Baca data raw�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
nilaiApi = i2c_read(0); // baca nilai api
i2c_stop(); // Stop Condition
} while (((int)nilaiApiAwal-(int)nilaiApi)
ane kebingungan conversi ke bascom'a :ganteng: tolongin gan, buat skripsi neh..
contoh program yg udah jadi dlm bhs.c bgni neh gan (bawaan CD)
Chip type : AT90S2313
Clock frequency : 4,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
************************************************** ***/
#include
#include
// I2C Bus functions
#asm
.equ __i2c_port=0x12 ;PORTD
.equ __sda_bit=2
.equ __scl_bit=3
#endasm
#include
// Declare your global variables here
void main(void)
{
// Declare your local variables here
unsigned char nilaiApiAwal,nilaiApi,status;
PORTD.4 = 0;
DDRD.4 = 1;
PORTD.5 = 1;
DDRD.5 = 0;
// I2C Bus initialization
i2c_init();
delay_ms(1500);
while (1)
{
// Place your code here
while (PIND.5); // tunggu tombol ditekan
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x03); // Perintah �Autoscan�
i2c_stop(); // Stop Condition
do { // tunggu
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x00); // Perintah �Cek Status�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
status = i2c_read(0); // Data Status
i2c_stop(); // Stop Condition
} while (status==0); // sampai proses autoscaning selesai
if (status==2) { // jika api ditemukan
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x02); // Perintah �Baca data raw�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
nilaiApiAwal = i2c_read(0); // baca nilai api awal
i2c_stop(); // Stop Condition
do {
PORTD.4 = 1; // nyalakan kipas
delay_ms(2000); // selama 2 detik
PORTD.4 = 0; // matikan kipas
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x02); // Perintah �Baca data raw�
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
nilaiApi = i2c_read(0); // baca nilai api
i2c_stop(); // Stop Condition
} while (((int)nilaiApiAwal-(int)nilaiApi)