記事ディレクトリ
まとめ
1. 遅延に基づいて LED を点滅
2. 関数の使用
3. 新しいファイルを作成し、モジュール式プログラミングを使用
ソフトウェアの更新
開くと、バージョンの更新があることを通知するメッセージが表示されるため、時間内に最新バージョンに更新する必要があります。今すぐダウンロードすることを選択し、保存パスを選択して実行します。
最新バージョンは 6.92a です。実行可能ファイルを選択してデスクトップのショートカットに送信します。
新しいバージョンのソフトウェアについては、データ ダウンロードで最新バージョンのマニュアル (8-15) をダウンロードしてください。
ちらつきとは何ですか
百度百科事典の解釈によると。
「点滅」は中国語の単語、ピンイン: shƎn shuò です。定義: 光が不安定に揺れたり、点滅したりすることを指します。(話すことで) ちょっとしたアイデアを示しますが、それを明確に説明することを拒否します。物体がちらつき、現れたり変化したり、明らかにしたり、現れたりします。南朝梁の王生如の『忠氏碑』より:「太陽は明るく輝き、態度は明瞭で朗々としています。」 1. 遅延に基づいた LED の
点滅
目覚まし時計の中央に 2 つの点があります。2 つの点は常に点滅しています。0.5 秒間点灯し、0.5 秒間消灯し、0.5 秒間消灯します。この点灯と消灯のプロセスは、遅延機能を使用して点滅を実現します
。 LEBのプロセス。
1 秒 = 1000 ミリ秒 = 1000 000 マイクロ秒、0.5 秒 = 500 ミリ秒 = 500 000 マイクロ秒
サンプル プロジェクトをコピーし、名前を LED Blink に変更し、次のステートメントを追加します。
#define MAIN_Fosc 24000000UL 定义IRC系统时钟24M,方便下载时选择,定义的名称写在前面。
IRC システム クロックを定義します。これは、ダウンロード時の選択に便利で、表示および変更にも便利です。プログラム エラーを防ぐために、ISP の IRC 周波数とシステム クロックの IRC 周波数は一致している必要があります。
void delay_ms(u16 ms)
{
u16 i;
do{
i = MAIN_Fosc / 6000;
while(--i);
}while(--ms);
}
ヒント: U16 とは何ですか?
u16 を選択し、右クリックして選択します: 「u16' の定義に移動」、u16 の定義ヘッダー ファイル stc.h に移動します:
typedef unsigned int u16; //定義された名前は、「#」を除いて最後に書き込まれます。先頭に符号、末尾に "" ;" 符号。
コンパイラ (つまり、この KEIL C251) は、記述した "u16" を "unsigned int" に置き換えます。値の範囲は、
u16 値 0 ~ 65535 です。
次に、 do...while ループを使用します。
do{
i = MAIN_Fosc / 6000;
while(--i);
}while(--ms);
//主while循环中加入延时代码,实现闪烁
P22 = 0; //设置低电平 (屠龙刀三板载led)
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
delay_ms(500);
両方を同時にフラッシュする必要がある場合は、コードを変更します。
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
遅延は非常に便利ですが、降りる前に階段の終わりを待つ必要があります。
文法分析:
1.while
実行フローチャート:
一般 的に使用さ
れる無限ループ while(1)。
}その間();
検証コード
do
{
printf("a的值: %d\r\n",a);
a = a + 1;
}while( a <20 );
実行結果:
whileループに変更:
while( a <20 )
{
printf("a的值: %d\r\n",a);
a++;
}
実行結果:
この例でも効果は同じです。
ヒント: a– と –a の違い (–ms の使用)
テストコード:
a =10;
printf("a的值: %d\r\n",a);
printf("a的值: %d\r\n",--a); //先运算再输出
printf("a的值: %d\r\n",a);
a =10;
printf("a的值: %d\r\n",a);
printf("a的值: %d\r\n",a--); //先输出再运算
printf("a的值: %d\r\n",a);
実行結果:
4. #defineの使い方 定義
が必要な#define名の内容はコンパイラが自動で置き換えます