N
nikhilthunderlion
Guest
さ89C51にプログラムを使ってコントローラが私は携帯電話をこの用microcontroller.iをする私は車とは、やってプロジェクトを変換する私は必要とするので、あるCのから私はプログラムのためにATmega16得た1つのATmega16は、私の友人がいるdontは、私はCプログラム89C51用に書かれたCのATmega16にするためのプログラム。のいくつかに変換1つは。私の電子メールIDは""nikhilthunderlion(で)gmail.com
16としてATmegaプログラムが次のCの。
#ハードウェアを定義F_CPU 12000000ul / / F_CPUの我々の値に使用している私たちは
#は、マイクロコントローラファミリヘッダーファイルのAVRの/ includeに<avr/io.h>を/
#は、遅滞utilのを/ includeに<。時間> / /ヘッダの機能¥を遅延使用してファイルの
#は<avr/delay.h>を含む/ /ヘッダの機能¥を遅延使用してファイルの
#は、LCD定義データポートPORTAは/のデータポートを定義/
#は、LCDポートのために定義commportコマンド/定義/ PORTDを
#はD -定義rsをPD4 / / Defing RSのポートの制御4ラインにピン
#は、Dポート定義WRのPD5を/ / Defingの5 WRのピン制御ラインに
#は、D制御を定義アンPD6 / / DefingのEN - PORTの行の6ピンを
/******* <<Declaration ********/の機能¥>>
)int型LCD_init1(ボイド;
int型LCD_init2(ボイド);
)int型LCD_SendData1(ボイド;
)int型LCD_SendData2(ボイド;
int型LCD_SendData3(ボイド);
int型LCD_SendData4(ボイド);
int型LCD_SendData5(ボイド);
int型LCD_SendData6(ボイド);
int型LCD_SendData7(ボイド);
int型LCD_SendData8(ボイド);
int型LCD_SendData9(ボイド);
int型LCD_SendData10(ボイド);
)int型LCD_SendData11(ボイド;
int型LCD_SendData12(ボイド);
int型LCD_SendData13(ボイド);
int型LCD_SendData14(ボイド);
int型LCD_SendData15(ボイド);
int型LCD_SendData16(ボイド);
int型LCD_SendData17(ボイド);
int型LCD_SendData18(ボイド);
int型LCD_SendData19(ボイド);
int型LCD_SendData20(ボイド);
int型LCD_SendData21(ボイド);
int型wrcomm(ボイド);
int型wrdata(ボイド);
/******* <<主な機能¥********/のプログラムbegins>>
)int型のmain(ボイド
(
unsigned int型のk、hの;
DDRA = 0xFFのは、/ /ポートの出力Aを設定するポート
ポートA = 0x00は;
DDRB = 0x00は、/ /ポートの入力Bを設定するポート
ポートB = 0x00は;
DDRD = 0x7Fのは/ /の設定と出力D端子のポートマスキング
PORTD = 0x00は;
LCD_init1();
LCD_SendData20();
LCD_init2();
LCD_SendData21();
)中(1
(
kは=〜PINB;
時間= kと&1つの0x0F;
スイッチ(h)を
(
ケース0x0Dを:/ /フォワード(キーが押された- 2)
(
PORTD = 0x89で;
LCD_init1();
LCD_SendData5();
LCD_init2();
LCD_SendData6();
休憩;
)
ケースが0x07:/ /戻し(キーが押された-
(
PORTD = 0x86で;
LCD_init1();
LCD_SendData7();
LCD_init2();
LCD_SendData8();
休憩;
)
ケース0x0Bと:/ /シャープ左ターン(キーが押さ- 4)
(
PORTD = 0x85;
LCD_init1();
)LCD_SendData3(;
LCD_init2();
LCD_SendData4();
休憩;
)
ケース0x09:/ /シャープ右ターン(キーが押さ- 6)
(
PORTD = 0x8A;
LCD_init1();
LCD_SendData1();
LCD_init2();
)LCD_SendData2(;
休憩;
)
ケースアスキー:/ /停止(キーが押さ- 5)
(
PORTD = 0x00は;
LCD_init1();
)LCD_SendData13(;
LCD_init2();
LCD_SendData14();
休憩;
)
ケース0x0E:/ /滑らかな左ターンフォワード(キーが押さ- 1)
(
PORTD = 0x81を。
LCD_init1();
LCD_SendData11();
LCD_init2();
LCD_SendData12();
休憩;
)
ケース0x0Cの:/ /滑らかな右ターンフォワード(キーが押された- 3)
(
PORTD = 0x88;
LCD_init1();
LCD_SendData9();
LCD_init2();
LCD_SendData10();
休憩;
)
ケース0x08に:/ /滑らかな右ターン巻(キーが押さ- 7)
(
PORTD = 0x82を。
LCD_init1();
LCD_SendData15();
LCD_init2();
LCD_SendData16();
休憩;
)
ケース0x06と:/ /滑らかな左ターン巻(キーが押さ- 9)
(
PORTD = 0x84の;
LCD_init1();
LCD_SendData17();
LCD_init2();
LCD_SendData18();
休憩;
)
ケース0x05と:/ /ロボダンス(キーが押さ- 0)
(
PORTD = 0x89で;
_delay_loop_2(50000);
PORTD = 0x86で;
_delay_loop_2(50000);
PORTD = 0x85;
_delay_loop_2(50000);
PORTD = 0x8A;
_delay_loop_2(50000);
PORTD = 0x00は;
_delay_loop_2(50000);
PORTD = 0x81を。
_delay_loop_2(50000);
PORTD = 0x88;
_delay_loop_2(50000);
PORTD = 0x82を。
_delay_loop_2(50000);
PORTD = 0x88;
LCD_init1();
LCD_SendData19();
/ / LCD_init2();
/ / LCD_SendData2();
休憩;
)
)
)
)
int型LCD_init1()
(
データポート=が採取/ / initが。液晶の2行は、5 × 7マトリックス
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0x01に/ /クリア液晶
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 1つの0x0F / /表¥示点滅にカーソ¥ル
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0x80に/ /カーソ¥ル1行1の位置
wrcomm(); / /右のコマンドバイトの登録コマンドに
戻り値1;
)
int型LCD_init2()
(
データポートは、=が採取/ /行列5 × 7の初期化液晶の2行を、
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 1つの0x0F / /表¥示点滅にカーソ¥ル
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0xC0; / /カーソ¥ル2行、位置1
wrcomm(); / /右のコマンドバイトの登録コマンドに
戻り値1;
)
/*********** **** <液晶<SendingへのデータはDisplay>> ************ *** /
)int型LCD_SendData1(ボイド
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdataは(); / /右のデータは、データへのバイト登録
)
戻り値1;
)
)int型LCD_SendData2(ボイド
(
unsigned char型jは[] ="右...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData3(ボイド)
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData4(ボイド)
(
unsigned char型jは[] ="左...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData5(ボイド)
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData6(ボイド)
(
unsigned char型jは[] ="FWDの...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData7(ボイド)
(
unsigned char型jは[] ="移動..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData8(ボイド)
(
unsigned char型jは[] ="戻る..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData9(ボイド)
(
unsigned char型jは[] ="ターニング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData10(ボイド)
(
unsigned char型jは[] ="右...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
)int型LCD_SendData11(ボイド
(
unsigned char型jは[] ="ターニング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData12(ボイド)
(
unsigned char型jは[] ="左...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData13(ボイド)
(
unsigned char型jは[] ="ロボ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData14(ボイド)
(
unsigned char型jは[] ="停止..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData15(ボイド)
(
unsigned char型jは[] ="にREVERSE ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData16(ボイド)
(
unsigned char型jは[] ="右の..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData17(ボイド)
(
unsigned char型jは[] ="にREVERSE ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData18(ボイド)
(
unsigned char型jは[] ="左..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData19(ボイド)
(
unsigned char型jは[] ="ダンシング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData20(ボイド)
(
unsigned char型jは[] ="はCall Me ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData21(ボイド)
(
unsigned char型jは[] ="09612541318";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
/*******は<********/を指揮register>>にバイトを<Rightingコマンド
int型wrcomm(ボイド)
(
commport&=〜(1 <<rsの);
commport&=〜(1 <<wrの);
commport | =(1 <<アン);
commport&=〜(1 <<アン);
_delay_ms(10);
戻り値1;
)
/**********は<**********/データregister>>に<Rightingデータバイトを
int型wrdata(ボイド)
(
commport | =(1 <<rsの);
commport&=〜(1 <<wrの);
commport | =(1 <<アン);
commport&=〜(1 <<アン);
_delay_ms(2);
戻り値1;
)
16としてATmegaプログラムが次のCの。
#ハードウェアを定義F_CPU 12000000ul / / F_CPUの我々の値に使用している私たちは
#は、マイクロコントローラファミリヘッダーファイルのAVRの/ includeに<avr/io.h>を/
#は、遅滞utilのを/ includeに<。時間> / /ヘッダの機能¥を遅延使用してファイルの
#は<avr/delay.h>を含む/ /ヘッダの機能¥を遅延使用してファイルの
#は、LCD定義データポートPORTAは/のデータポートを定義/
#は、LCDポートのために定義commportコマンド/定義/ PORTDを
#はD -定義rsをPD4 / / Defing RSのポートの制御4ラインにピン
#は、Dポート定義WRのPD5を/ / Defingの5 WRのピン制御ラインに
#は、D制御を定義アンPD6 / / DefingのEN - PORTの行の6ピンを
/******* <<Declaration ********/の機能¥>>
)int型LCD_init1(ボイド;
int型LCD_init2(ボイド);
)int型LCD_SendData1(ボイド;
)int型LCD_SendData2(ボイド;
int型LCD_SendData3(ボイド);
int型LCD_SendData4(ボイド);
int型LCD_SendData5(ボイド);
int型LCD_SendData6(ボイド);
int型LCD_SendData7(ボイド);
int型LCD_SendData8(ボイド);
int型LCD_SendData9(ボイド);
int型LCD_SendData10(ボイド);
)int型LCD_SendData11(ボイド;
int型LCD_SendData12(ボイド);
int型LCD_SendData13(ボイド);
int型LCD_SendData14(ボイド);
int型LCD_SendData15(ボイド);
int型LCD_SendData16(ボイド);
int型LCD_SendData17(ボイド);
int型LCD_SendData18(ボイド);
int型LCD_SendData19(ボイド);
int型LCD_SendData20(ボイド);
int型LCD_SendData21(ボイド);
int型wrcomm(ボイド);
int型wrdata(ボイド);
/******* <<主な機能¥********/のプログラムbegins>>
)int型のmain(ボイド
(
unsigned int型のk、hの;
DDRA = 0xFFのは、/ /ポートの出力Aを設定するポート
ポートA = 0x00は;
DDRB = 0x00は、/ /ポートの入力Bを設定するポート
ポートB = 0x00は;
DDRD = 0x7Fのは/ /の設定と出力D端子のポートマスキング
PORTD = 0x00は;
LCD_init1();
LCD_SendData20();
LCD_init2();
LCD_SendData21();
)中(1
(
kは=〜PINB;
時間= kと&1つの0x0F;
スイッチ(h)を
(
ケース0x0Dを:/ /フォワード(キーが押された- 2)
(
PORTD = 0x89で;
LCD_init1();
LCD_SendData5();
LCD_init2();
LCD_SendData6();
休憩;
)
ケースが0x07:/ /戻し(キーが押された-
(
PORTD = 0x86で;
LCD_init1();
LCD_SendData7();
LCD_init2();
LCD_SendData8();
休憩;
)
ケース0x0Bと:/ /シャープ左ターン(キーが押さ- 4)
(
PORTD = 0x85;
LCD_init1();
)LCD_SendData3(;
LCD_init2();
LCD_SendData4();
休憩;
)
ケース0x09:/ /シャープ右ターン(キーが押さ- 6)
(
PORTD = 0x8A;
LCD_init1();
LCD_SendData1();
LCD_init2();
)LCD_SendData2(;
休憩;
)
ケースアスキー:/ /停止(キーが押さ- 5)
(
PORTD = 0x00は;
LCD_init1();
)LCD_SendData13(;
LCD_init2();
LCD_SendData14();
休憩;
)
ケース0x0E:/ /滑らかな左ターンフォワード(キーが押さ- 1)
(
PORTD = 0x81を。
LCD_init1();
LCD_SendData11();
LCD_init2();
LCD_SendData12();
休憩;
)
ケース0x0Cの:/ /滑らかな右ターンフォワード(キーが押された- 3)
(
PORTD = 0x88;
LCD_init1();
LCD_SendData9();
LCD_init2();
LCD_SendData10();
休憩;
)
ケース0x08に:/ /滑らかな右ターン巻(キーが押さ- 7)
(
PORTD = 0x82を。
LCD_init1();
LCD_SendData15();
LCD_init2();
LCD_SendData16();
休憩;
)
ケース0x06と:/ /滑らかな左ターン巻(キーが押さ- 9)
(
PORTD = 0x84の;
LCD_init1();
LCD_SendData17();
LCD_init2();
LCD_SendData18();
休憩;
)
ケース0x05と:/ /ロボダンス(キーが押さ- 0)
(
PORTD = 0x89で;
_delay_loop_2(50000);
PORTD = 0x86で;
_delay_loop_2(50000);
PORTD = 0x85;
_delay_loop_2(50000);
PORTD = 0x8A;
_delay_loop_2(50000);
PORTD = 0x00は;
_delay_loop_2(50000);
PORTD = 0x81を。
_delay_loop_2(50000);
PORTD = 0x88;
_delay_loop_2(50000);
PORTD = 0x82を。
_delay_loop_2(50000);
PORTD = 0x88;
LCD_init1();
LCD_SendData19();
/ / LCD_init2();
/ / LCD_SendData2();
休憩;
)
)
)
)
int型LCD_init1()
(
データポート=が採取/ / initが。液晶の2行は、5 × 7マトリックス
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0x01に/ /クリア液晶
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 1つの0x0F / /表¥示点滅にカーソ¥ル
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0x80に/ /カーソ¥ル1行1の位置
wrcomm(); / /右のコマンドバイトの登録コマンドに
戻り値1;
)
int型LCD_init2()
(
データポートは、=が採取/ /行列5 × 7の初期化液晶の2行を、
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 1つの0x0F / /表¥示点滅にカーソ¥ル
wrcomm(); / /右のコマンドバイトの登録コマンドに
データポート= 0xC0; / /カーソ¥ル2行、位置1
wrcomm(); / /右のコマンドバイトの登録コマンドに
戻り値1;
)
/*********** **** <液晶<SendingへのデータはDisplay>> ************ *** /
)int型LCD_SendData1(ボイド
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdataは(); / /右のデータは、データへのバイト登録
)
戻り値1;
)
)int型LCD_SendData2(ボイド
(
unsigned char型jは[] ="右...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData3(ボイド)
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData4(ボイド)
(
unsigned char型jは[] ="左...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData5(ボイド)
(
unsigned char型jは[] ="移動...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData6(ボイド)
(
unsigned char型jは[] ="FWDの...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData7(ボイド)
(
unsigned char型jは[] ="移動..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData8(ボイド)
(
unsigned char型jは[] ="戻る..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData9(ボイド)
(
unsigned char型jは[] ="ターニング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData10(ボイド)
(
unsigned char型jは[] ="右...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
)int型LCD_SendData11(ボイド
(
unsigned char型jは[] ="ターニング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData12(ボイド)
(
unsigned char型jは[] ="左...";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData13(ボイド)
(
unsigned char型jは[] ="ロボ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData14(ボイド)
(
unsigned char型jは[] ="停止..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData15(ボイド)
(
unsigned char型jは[] ="にREVERSE ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData16(ボイド)
(
unsigned char型jは[] ="右の..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData17(ボイド)
(
unsigned char型jは[] ="にREVERSE ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData18(ボイド)
(
unsigned char型jは[] ="左..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData19(ボイド)
(
unsigned char型jは[] ="ダンシング..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData20(ボイド)
(
unsigned char型jは[] ="はCall Me ..";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
int型LCD_SendData21(ボイド)
(
unsigned char型jは[] ="09612541318";
int型一;
0(一=;私は<sizeof演算jは、私 )
(
データポート=にj の;
wrdata();
)
戻り値1;
)
/*******は<********/を指揮register>>にバイトを<Rightingコマンド
int型wrcomm(ボイド)
(
commport&=〜(1 <<rsの);
commport&=〜(1 <<wrの);
commport | =(1 <<アン);
commport&=〜(1 <<アン);
_delay_ms(10);
戻り値1;
)
/**********は<**********/データregister>>に<Rightingデータバイトを
int型wrdata(ボイド)
(
commport | =(1 <<rsの);
commport&=〜(1 <<wrの);
commport | =(1 <<アン);
commport&=〜(1 <<アン);
_delay_ms(2);
戻り値1;
)