id="hpbsmtparts">
/*
* avr110.c
*
* 10進数→16進数変換
*/
#include <avr/io.h>
#include "hd44780.h" // EZ-LCDインクルードファイル
void InitHard( void); // ポートの初期化及び割込設定
int main(void)
{
int k, m;
unsigned int n16, n10 = 16589;
char str[5];
InitHard(); // ポートの初期化をします。
lcd_init (); // LCDの初期化をします。
n16 = n10;
// 10進変換
k = 0; // kを初期化します。
do // 剰余を計算します。
{
str[ k++] = n10 % 10 + 0x30;
n10 /= 10;
}while( n10);
lcd_locate( 0, 0);
for ( m = 0; m < k; m++) //LCDに表示します。
{
lcd_putc( str[ k - (m + 1)]);
}
// 16進変換
k = 0; // kを初期化します。
do // 剰余を計算します。
{
str[ k] = n16 % 16;
if ( 0 <= str[k] && str[k] < 10)
{
str[k++] += 0x30;
}
else
{
str[k++] += 0x37;
}
n16 /= 16;
}while( n16);
lcd_locate(1, 0);
for ( m = 0; m < k; m++) //LCDに表示します。
{
lcd_putc( str[ k - (m + 1)]);
}
while(1)
{
//TODO:: Please write your application code
}
}
void InitHard( void) // ポートの初期化
{
// ポートB初期設定
DDRB = 0xff; // PB7~PB0を出力に設定します。
PORTB = 0; // PB7~PB0に'L'を出力します。
// ポートC初期設定
DDRC = 0x3f; // PC7,PC6は初期(入力)、PC5~PC0を出力に設定します。
PORTC = 0; // PC7~PC0に'L'を出力します。
// ポートD初期設定
DDRD = 0xf0; // PD7~PD4は出力、PD3~PD0は入力に設定します。
PORTD = 0; // PD7~PD0に'L'を出力します。
}