M
member_tdh
Guest
Hi everybody!
Pada saat ini, aku bekerja dengan sensor SHT71 untuk mengukur Suhu dan Kelembaban.Tapi itu tidak bekerja lagi.
Aku akan memposting kode penuh dan dapat anyone help me, please???
I'm verry thanks!!!
//================================= SHT7x =============
comstart void (void)
(
DDRA | = 0x02; / / DATA-line output
sht_data = 1;
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 0;
# asm ( "nop");
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 1;
# asm ( "nop");
sht_clk = 0;
)
comreset void (void)
(
unsigned char i;
DDRA | = 0x02; / / DATA-line output
sht_data = 1;
sht_clk = 0;
for (i = 0; i <12; i ) / / 9 clock cycle
(
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
comstart (); / / transmisi start
HumiError = FALSE;
)
sht_soft_reset void (void)
(
comreset (); / / SHT75 komunikasi reset
comwrite (RESET); / / mengirim perintah reset SHT75
delay_ms (15); / / jeda 15ms
)
sht_init void (void)
(
/ / Sht_soft_reset (); / / reset SHT75
comreset (); / / SHT75 komunikasi reset
delay_ms (20); / / menunda untuk kekuasaan-up
)
comwait void (void)
(
unsigned int sht_delay;
sht_data = 1;
sht_clk = 0;
for (sht_delay = 0; sht_delay <30.000; sht_delay ) / / 30ms
(
if (! sht_data) break;
/ / If ((sht_data_in & 0x02) == 0) break;
)
)
/ *
unsigned char comwrite (unsigned char data)
(
unsigned char error, i;
kesalahan = 0;
DDRA | = 0x02; / / DATA-line output
for (i = 0; i <8; i )
(
if (data & 0x80) sht_data = 1;
lain sht_data = 0;
data <<= 1;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / pergeseran ACK
sht_data = 1; / / release DATA-line
DDRA & = ~ 0x02; / / DATA-line input
# asm ( "nop");
sht_clk = 1; / / clock 9 untuk ACK
# asm ( "nop");
kesalahan = (sht_data_in & 0x02); / / periksa ack (DATA akan ditarik ke bawah oleh SHT11)
# asm ( "nop");
sht_clk = 0;
return error; / / error = 1 dalam kasus tidak ada ACK
)
* /
void comwrite (unsigned char data)
(
unsigned char i;
DDRA | = 0x02; / / DATA-line output
for (i = 0x80; i> 0; i / = 2)
(
if (data & i) sht_data = 1;
lain sht_data = 0;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / pergeseran ACK
/ / Sht_data = 1; / / release DATA-line
DDRA & = ~ 0x02; / / DATA-line input
# asm ( "nop");
sht_clk = 1; / / clock 9 untuk ACK
if (sht_data_in & 0x02) HumiError = TRUE; / / periksa ack (DATA akan ditarik ke bawah oleh SHT11)
sht_clk = 0;
)
unsigned int comread (unsigned char ack)
(
unsigned char i;
unsigned int byte = 0;
DDRA & = ~ 0x02; / / DATA-line input
for (i = 0x80; i> 0; i / = 2)
(
sht_clk = 1;
if (sht_data_in & 0x02) byte | = i; / / membaca bit
sht_clk = 0;
)
DDRA | = 0x02; / / DATA-line output
sht_data =! ack; / / "ack == 1" pull down DATA-Line
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
DDRA & = ~ 0x02; / / DATA-line input
kembali byte;
)
//------------------------------------------------ ----------------------------------
/ / Membuat pengukuran (kelembaban / suhu) dengan checksum
//------------------------------------------------ ----------------------------------
/ *
s_measure char (unsigned char * p_value, unsigned char * p_checksum, unsigned char mode)
(
unsigned kesalahan = 0;
comstart (); / / transmisi start
switch (mode)
(/ / Mengirimkan perintah untuk sensor
TEMP kasus:
kesalahan = comwrite (MEASURE_TEMP);
break;
HUMI kasus:
kesalahan = comwrite (MEASURE_HUMI);
break;
default:
break;
)
DDRA & = 0xFD; / / DATA-line input
PORTA | = 0x02; / / release DATA-line
comwait (); / / menunggu untuk pengukuran untuk menyelesaikan
if (sht_data_in) error = 1; / / atau timeout (~ 2 sec.) dicapai
* (p_value 1) = comread (ACK); / / membaca byte pertama (MSB)
* (p_value) = comread (ACK); / / membaca byte kedua (LSB)
* p_checksum = comread (noACK); / / membaca checksum
return error;
)
* /
unsigned int s_measure (unsigned char mode)
(
unsigned char MSB = 0, LSB = 0, CRC;
comstart (); / / transmisi start
switch (mode)
(
TEMP kasus:
comwrite (MEASURE_TEMP);
break;
HUMI kasus:
comwrite (MEASURE_HUMI);
break;
default:
break;
)
DDRA & = 0xFD; / / DATA-line input
PORTA | = 0x02; / / release DATA-line
comwait (); / / menunggu untuk pengukuran untuk menyelesaikan
MSB = comread (ACK); / / membaca byte pertama (MSB)
LSB = comread (ACK); / / membaca byte kedua (LSB)
CRC = comread (noACK); / / membaca checksum
/ / Return (((unsigned int) MSB <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Dingin" border="0" />
& 0xff00 | LSB);
return (MSB * 256 LSB);
)
void HumidityGet (float * p_humidity, float * p_temperature)
(
unsigned int kelembaban = 0, suhu = 0;
kelembaban = s_measure (HUMI); / / mengukur kelembaban
suhu = s_measure (TEMP); / / mengukur suhu
if (HumiError == TRUE) comreset (); / / dalam kasus kesalahan: Reset
lain
(
* p_humidity = (float) kelembaban; / / mengubah integer ke float
* p_temperature = (float) suhu; / / mengubah integer ke float
calc_sth11 (p_humidity, p_temperature); / / menghitung kelembaban, temperatur
)
)
//------------------------------------------------ ----------------------------------------
/ / Menghitung suhu [° C] dan kelembaban [% RH]
/ / Input: humi [Kutu] (12 bit)
/ / Temp [Kutu] (14 bit)
/ / Output: humi [% RH]
/ / Temp [° C]
//------------------------------------------------ ----------------------------------------
void calc_sth11 (float * p_humidity, float * p_temperature)
(
float rh_lin; / / rh_lin: Kelembaban linier
float rh_true; / / rh_true: Suhu kompensasi kelembaban
float t_C; / / t_C: Temperatur [° C]
/ / TC = -40,00 0,01 * Sht;
t_C =* p_temperature * 0,01-40; / / calc.suhu dari kutu untuk [° C]
rh_lin = C3 * (* p_humidity) * (* p_humidity) C2 * (* p_humidity) C1; / / calc.kelembaban dari kutu untuk [% RH]
/ / Rh_true = (t_C - 25) * (0,01 0,00128 * SOrh) RH_linear;
rh_true = (t_C-25) * (T1 T2 * (* p_humidity)) rh_lin; / / calc.kompensasi suhu kelembaban [% RH]
if (rh_true> 100) rh_true = 100; / / dipotong jika nilai berada di luar
if (rh_true <0,1) rh_true = 0,1; / / mungkin fisik rentang
* p_temperature = t_C; / / kembali suhu [° C]
* p_humidity = rh_true; / / mengembalikan kelembaban [% RH]
)# ifndef _SHT7x_INCLUDED_
# define _SHT7x_INCLUDED_
/ / SHT7x
# define sht_clk PORTA.0
# define sht_data PORTA.1
# define sht_data_in PINA.1
# define noACK 0
# define ACK 1
# define FALSE 0
# define TRUE 1
unsigned char HumiError = FALSE;
/ / adr perintah r / w
# define STATUS_REG_W 0x06 / / 000 0011 0
# define STATUS_REG_R 0x07 / / 000 0011 1
# define MEASURE_TEMP 0x03 / / 000 0001 1
# define MEASURE_HUMI 0x05 / / 000 0010 1
# define RESET 0x1E / / 000 1111 0
float const C1 =- 4.0; / / untuk 12 Bit
const float C2 = 0,0405; / / untuk 12 Bit
const float C3 =- 0,0000028; / / untuk 12 Bit
const float T1 = 0,01; / / selama 14 Bit @ 5V
const float T2 = 0,00008; / / selama 14 Bit @ 5V
comstart void (void);
comreset void (void);
sht_init void (void);
sht_soft_reset void (void);
comwait void (void);
/ / unsigned char comwrite (unsigned char data);
void comwrite (unsigned char data);
unsigned int comread (unsigned char ack);
/ / char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char mode);
unsigned int s_measure (unsigned char mode);
void HumidityGet (float * p_humidity, float * p_temperature);
void calc_sth11 (float * p_humidity, float * p_temperature);
typedef union (
unsigned int i;
float f;
) Cuaca;
enum (TEMP, HUMI);
# endif/ / BUDAK 1
/************************************************* ****
Chip type: ATmega8535
Program type: Application
Clock frequency: 8.000000 MHz
Model memori: Kecil
External SRAM size: 0
Data Stack size: 128
************************************************** *** /
# include "mega8535.h"
# include "global.h"
# include "stdio.h"
# include "SHT71.c"
# include "eeprom.h"
# include "bcd.h"
/ / Alphanumeric LCD Module fungsi
# asm
. equ __lcd_port = 0x18; PORTB
# endasm
# include "lcd.h"
char lcd_buffer [33];
//================================================ ============================================
void main (void)
(
float Kelembaban, Suhu;
/ / cuaca humi_val, temp_val;
/ / unsigned char kesalahan, checksum;Initio ();
DDRA.0 = 1; / / SCK adalah sebuah output
PORTA.0 = 0; / / ClockLow
PORTA.1 = 0; / / Selalu Nol
/ / Toggle DDRA.1 Data
sht_init ();
delay_ms (100); / / tunda ketika kekuasaan menyalakan
lcd_clear ();
lcd_gotoxy (0, 1);
lcd_putsf ( "Initialize ......");
delay_ms (3000);
lcd_clear ();while (1)
(
/ *
kesalahan = 0;
kesalahan = s_measure ((unsigned char *) & humi_val.i, & checksum, HUMI);
kesalahan = s_measure ((unsigned char *) & temp_val.i, & checksum, TEMP);
if (error! = 0) comreset ();
lain
(
humi_val.f = (float) humi_val.i;
temp_val.f = (float) temp_val.i;
calc_sth11 (& humi_val.f, & temp_val.f);
lcd_clear ();
sprintf (lcd_buffer, "T:% 3.1fC", temp_val.f);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 3.1f%%", humi_val.f);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300);
)
* /
comreset (); / / reset sensor
if (HumiError == TRUE) sht_init ();
HumidityGet (& Kelembaban, & Temperature);
lcd_clear ();
sprintf (lcd_buffer, "T:% 5.1fC", Temperature);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 5.1f%%", Kelembaban);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300)
; / / end sementara
) / / end main//================================================ ============================================
void initio (void)
(
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0xFF;
/ / Port C initialization
/ / Func7 = Dalam Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Out Func2 = Out Func1 = Out Func0 = Out
/ / State7 = P State6 = P State5 = P State4 = P State3 = 0 State2 = 0 State1 = 0 State0 = 0
PORTC = 0xF0;
DDRC = 0x0f;
/ / Port D initialization
/ / Func7 = Out Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Out Func2 = Dalam Func1 = Out Func0 = Out
/ / State7 = 1 State6 = P State5 = P State4 = P State3 = 1 State2 = P State1 = 1 State0 = 1
PORTD = 0xFF;
DDRD = 0x8B;/ / LCD module initialization
lcd_init (16);
/ / Global enable interrupts
# asm ( "sei")
)
Pada saat ini, aku bekerja dengan sensor SHT71 untuk mengukur Suhu dan Kelembaban.Tapi itu tidak bekerja lagi.
Aku akan memposting kode penuh dan dapat anyone help me, please???
I'm verry thanks!!!
//================================= SHT7x =============
comstart void (void)
(
DDRA | = 0x02; / / DATA-line output
sht_data = 1;
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 0;
# asm ( "nop");
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 1;
# asm ( "nop");
sht_clk = 0;
)
comreset void (void)
(
unsigned char i;
DDRA | = 0x02; / / DATA-line output
sht_data = 1;
sht_clk = 0;
for (i = 0; i <12; i ) / / 9 clock cycle
(
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
comstart (); / / transmisi start
HumiError = FALSE;
)
sht_soft_reset void (void)
(
comreset (); / / SHT75 komunikasi reset
comwrite (RESET); / / mengirim perintah reset SHT75
delay_ms (15); / / jeda 15ms
)
sht_init void (void)
(
/ / Sht_soft_reset (); / / reset SHT75
comreset (); / / SHT75 komunikasi reset
delay_ms (20); / / menunda untuk kekuasaan-up
)
comwait void (void)
(
unsigned int sht_delay;
sht_data = 1;
sht_clk = 0;
for (sht_delay = 0; sht_delay <30.000; sht_delay ) / / 30ms
(
if (! sht_data) break;
/ / If ((sht_data_in & 0x02) == 0) break;
)
)
/ *
unsigned char comwrite (unsigned char data)
(
unsigned char error, i;
kesalahan = 0;
DDRA | = 0x02; / / DATA-line output
for (i = 0; i <8; i )
(
if (data & 0x80) sht_data = 1;
lain sht_data = 0;
data <<= 1;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / pergeseran ACK
sht_data = 1; / / release DATA-line
DDRA & = ~ 0x02; / / DATA-line input
# asm ( "nop");
sht_clk = 1; / / clock 9 untuk ACK
# asm ( "nop");
kesalahan = (sht_data_in & 0x02); / / periksa ack (DATA akan ditarik ke bawah oleh SHT11)
# asm ( "nop");
sht_clk = 0;
return error; / / error = 1 dalam kasus tidak ada ACK
)
* /
void comwrite (unsigned char data)
(
unsigned char i;
DDRA | = 0x02; / / DATA-line output
for (i = 0x80; i> 0; i / = 2)
(
if (data & i) sht_data = 1;
lain sht_data = 0;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / pergeseran ACK
/ / Sht_data = 1; / / release DATA-line
DDRA & = ~ 0x02; / / DATA-line input
# asm ( "nop");
sht_clk = 1; / / clock 9 untuk ACK
if (sht_data_in & 0x02) HumiError = TRUE; / / periksa ack (DATA akan ditarik ke bawah oleh SHT11)
sht_clk = 0;
)
unsigned int comread (unsigned char ack)
(
unsigned char i;
unsigned int byte = 0;
DDRA & = ~ 0x02; / / DATA-line input
for (i = 0x80; i> 0; i / = 2)
(
sht_clk = 1;
if (sht_data_in & 0x02) byte | = i; / / membaca bit
sht_clk = 0;
)
DDRA | = 0x02; / / DATA-line output
sht_data =! ack; / / "ack == 1" pull down DATA-Line
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
DDRA & = ~ 0x02; / / DATA-line input
kembali byte;
)
//------------------------------------------------ ----------------------------------
/ / Membuat pengukuran (kelembaban / suhu) dengan checksum
//------------------------------------------------ ----------------------------------
/ *
s_measure char (unsigned char * p_value, unsigned char * p_checksum, unsigned char mode)
(
unsigned kesalahan = 0;
comstart (); / / transmisi start
switch (mode)
(/ / Mengirimkan perintah untuk sensor
TEMP kasus:
kesalahan = comwrite (MEASURE_TEMP);
break;
HUMI kasus:
kesalahan = comwrite (MEASURE_HUMI);
break;
default:
break;
)
DDRA & = 0xFD; / / DATA-line input
PORTA | = 0x02; / / release DATA-line
comwait (); / / menunggu untuk pengukuran untuk menyelesaikan
if (sht_data_in) error = 1; / / atau timeout (~ 2 sec.) dicapai
* (p_value 1) = comread (ACK); / / membaca byte pertama (MSB)
* (p_value) = comread (ACK); / / membaca byte kedua (LSB)
* p_checksum = comread (noACK); / / membaca checksum
return error;
)
* /
unsigned int s_measure (unsigned char mode)
(
unsigned char MSB = 0, LSB = 0, CRC;
comstart (); / / transmisi start
switch (mode)
(
TEMP kasus:
comwrite (MEASURE_TEMP);
break;
HUMI kasus:
comwrite (MEASURE_HUMI);
break;
default:
break;
)
DDRA & = 0xFD; / / DATA-line input
PORTA | = 0x02; / / release DATA-line
comwait (); / / menunggu untuk pengukuran untuk menyelesaikan
MSB = comread (ACK); / / membaca byte pertama (MSB)
LSB = comread (ACK); / / membaca byte kedua (LSB)
CRC = comread (noACK); / / membaca checksum
/ / Return (((unsigned int) MSB <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Dingin" border="0" />
& 0xff00 | LSB);
return (MSB * 256 LSB);
)
void HumidityGet (float * p_humidity, float * p_temperature)
(
unsigned int kelembaban = 0, suhu = 0;
kelembaban = s_measure (HUMI); / / mengukur kelembaban
suhu = s_measure (TEMP); / / mengukur suhu
if (HumiError == TRUE) comreset (); / / dalam kasus kesalahan: Reset
lain
(
* p_humidity = (float) kelembaban; / / mengubah integer ke float
* p_temperature = (float) suhu; / / mengubah integer ke float
calc_sth11 (p_humidity, p_temperature); / / menghitung kelembaban, temperatur
)
)
//------------------------------------------------ ----------------------------------------
/ / Menghitung suhu [° C] dan kelembaban [% RH]
/ / Input: humi [Kutu] (12 bit)
/ / Temp [Kutu] (14 bit)
/ / Output: humi [% RH]
/ / Temp [° C]
//------------------------------------------------ ----------------------------------------
void calc_sth11 (float * p_humidity, float * p_temperature)
(
float rh_lin; / / rh_lin: Kelembaban linier
float rh_true; / / rh_true: Suhu kompensasi kelembaban
float t_C; / / t_C: Temperatur [° C]
/ / TC = -40,00 0,01 * Sht;
t_C =* p_temperature * 0,01-40; / / calc.suhu dari kutu untuk [° C]
rh_lin = C3 * (* p_humidity) * (* p_humidity) C2 * (* p_humidity) C1; / / calc.kelembaban dari kutu untuk [% RH]
/ / Rh_true = (t_C - 25) * (0,01 0,00128 * SOrh) RH_linear;
rh_true = (t_C-25) * (T1 T2 * (* p_humidity)) rh_lin; / / calc.kompensasi suhu kelembaban [% RH]
if (rh_true> 100) rh_true = 100; / / dipotong jika nilai berada di luar
if (rh_true <0,1) rh_true = 0,1; / / mungkin fisik rentang
* p_temperature = t_C; / / kembali suhu [° C]
* p_humidity = rh_true; / / mengembalikan kelembaban [% RH]
)# ifndef _SHT7x_INCLUDED_
# define _SHT7x_INCLUDED_
/ / SHT7x
# define sht_clk PORTA.0
# define sht_data PORTA.1
# define sht_data_in PINA.1
# define noACK 0
# define ACK 1
# define FALSE 0
# define TRUE 1
unsigned char HumiError = FALSE;
/ / adr perintah r / w
# define STATUS_REG_W 0x06 / / 000 0011 0
# define STATUS_REG_R 0x07 / / 000 0011 1
# define MEASURE_TEMP 0x03 / / 000 0001 1
# define MEASURE_HUMI 0x05 / / 000 0010 1
# define RESET 0x1E / / 000 1111 0
float const C1 =- 4.0; / / untuk 12 Bit
const float C2 = 0,0405; / / untuk 12 Bit
const float C3 =- 0,0000028; / / untuk 12 Bit
const float T1 = 0,01; / / selama 14 Bit @ 5V
const float T2 = 0,00008; / / selama 14 Bit @ 5V
comstart void (void);
comreset void (void);
sht_init void (void);
sht_soft_reset void (void);
comwait void (void);
/ / unsigned char comwrite (unsigned char data);
void comwrite (unsigned char data);
unsigned int comread (unsigned char ack);
/ / char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char mode);
unsigned int s_measure (unsigned char mode);
void HumidityGet (float * p_humidity, float * p_temperature);
void calc_sth11 (float * p_humidity, float * p_temperature);
typedef union (
unsigned int i;
float f;
) Cuaca;
enum (TEMP, HUMI);
# endif/ / BUDAK 1
/************************************************* ****
Chip type: ATmega8535
Program type: Application
Clock frequency: 8.000000 MHz
Model memori: Kecil
External SRAM size: 0
Data Stack size: 128
************************************************** *** /
# include "mega8535.h"
# include "global.h"
# include "stdio.h"
# include "SHT71.c"
# include "eeprom.h"
# include "bcd.h"
/ / Alphanumeric LCD Module fungsi
# asm
. equ __lcd_port = 0x18; PORTB
# endasm
# include "lcd.h"
char lcd_buffer [33];
//================================================ ============================================
void main (void)
(
float Kelembaban, Suhu;
/ / cuaca humi_val, temp_val;
/ / unsigned char kesalahan, checksum;Initio ();
DDRA.0 = 1; / / SCK adalah sebuah output
PORTA.0 = 0; / / ClockLow
PORTA.1 = 0; / / Selalu Nol
/ / Toggle DDRA.1 Data
sht_init ();
delay_ms (100); / / tunda ketika kekuasaan menyalakan
lcd_clear ();
lcd_gotoxy (0, 1);
lcd_putsf ( "Initialize ......");
delay_ms (3000);
lcd_clear ();while (1)
(
/ *
kesalahan = 0;
kesalahan = s_measure ((unsigned char *) & humi_val.i, & checksum, HUMI);
kesalahan = s_measure ((unsigned char *) & temp_val.i, & checksum, TEMP);
if (error! = 0) comreset ();
lain
(
humi_val.f = (float) humi_val.i;
temp_val.f = (float) temp_val.i;
calc_sth11 (& humi_val.f, & temp_val.f);
lcd_clear ();
sprintf (lcd_buffer, "T:% 3.1fC", temp_val.f);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 3.1f%%", humi_val.f);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300);
)
* /
comreset (); / / reset sensor
if (HumiError == TRUE) sht_init ();
HumidityGet (& Kelembaban, & Temperature);
lcd_clear ();
sprintf (lcd_buffer, "T:% 5.1fC", Temperature);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 5.1f%%", Kelembaban);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300)
) / / end main//================================================ ============================================
void initio (void)
(
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0xFF;
/ / Port C initialization
/ / Func7 = Dalam Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Out Func2 = Out Func1 = Out Func0 = Out
/ / State7 = P State6 = P State5 = P State4 = P State3 = 0 State2 = 0 State1 = 0 State0 = 0
PORTC = 0xF0;
DDRC = 0x0f;
/ / Port D initialization
/ / Func7 = Out Func6 = Dalam Func5 = Dalam Func4 = Dalam Func3 = Out Func2 = Dalam Func1 = Out Func0 = Out
/ / State7 = 1 State6 = P State5 = P State4 = P State3 = 1 State2 = P State1 = 1 State0 = 1
PORTD = 0xFF;
DDRD = 0x8B;/ / LCD module initialization
lcd_init (16);
/ / Global enable interrupts
# asm ( "sei")
)