どのようなマイクロコントローラーを使用していますか?
マーキーについて話しているようですが、最も一般的な 51 マイクロコントローラーとマーキー C プログラムを紹介します。
必要に応じてさらに詳しくお話します。私はハードウェア開発エンジニアです。
採用希望。
たとえば、これは 51 マイクロコントローラー用の主要な C プログラムであり、PROTEUS ソフトウェアでシミュレートされています。
####含む######ボイド遅延(int);
{
int i;
P0=0x01;
遅延(500);
その間(1)
{
for(i=0;i {
P0
遅延(500);}
P0=0x01;
遅延(500);
}
}
無効遅延(intx)
{
int i,j;
for(i=x;i>0l;i--)
for(j=110;j>0;j--);
}
:
####含む######
ボイド遅延(int);void main()
int i;
P0=0x01;
遅延(500);
その間(1)
{
for(i=0;i
{
P0
遅延(500);
}
P0=0x01;
遅延(500);
}
}
無効遅延(intx)
{
int i,j;
for(i=x;i>0l;i--)
for(j=110;j>0;j--);
}
SCM回転ドアプログラム
//==============
####含む #######カウント 11
を定義します0x92,0x83,0xf8,0x80,0x98,
0xff};
{1,10,10,10}、{10,1,10,10}、{10,10,1,10}、{10,10,10,1},
{2,10,10,1}、{10,2,10,1}、{10,10,2,1},
{3,10,2,1},{10,3,2,1},
{4,3,2,1}};
ボイド遅延1ms(int);
ボイドスキャナ(文字);
//================
###主要()###
{char i=0;その間(1)
{
if(i==0)
{ for(i=0;i
}
###それ以外###
{for(i=10;i>=0;i--){
スキャナ(i);
//====================
ボイドスキャナ(文字x)
{ 文字 i,j,スキャン,BCD;
for(i=0;i
for(j=0;j
{ P0=0xff;P2=~スキャン;
BCD=disp[x][j];
P0=TAB[BCD];
遅延1ms(4);
スキャン }
}
}
マイクロコントローラーを使用してマーキーを作成する方法
####含む ######
sbit LED1 = P1^0;sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
void 遅延()
{
unsigned char i,j;
for(i=0;i
for(j=0;j
}
void main()
{
その間(1)
{
P1 = 0xff;
LED1 = 0; ###遅れ();###
LED2 = 0;
LED1 = 1;
###遅れ();###LED3 = 0;
LED2 = 1;
###遅れ();###LED4 = 0;
LED3 = 1;
###遅れ();###LED5 = 0;
LED4 = 1;
###遅れ();###LED6 = 0;
LED5 = 1;
###遅れ();###LED7 = 0;
LED6 = 1;
###遅れ();###LED8 = 0;
LED7 = 1;
###遅れ();###}
}
MCU マーキー プログラム
組織0000h
ajmp開始
組織0030h
###始める:###mov a,#0ffh ;
clr c ;
mov r2,#08h ; 8 回ループします。
loop: rlc a ; キャリー付きで左にシフトします。
mov p1,a ; P1 ポートに出力します。
通話遅延;一定期間の遅延
djnz r2,loop ;繰り返しループ
mov r2,#07h; その後、ループバックします。
loop1: rrc a ; キャリー付き右シフト
mov p1,a ; P1 ポートに出力します。
通話遅延;一定期間の遅延
djnz r2,loop1 ;繰り返しループ
遅延: mov r3,#20; 遅延サブルーチン
d1: ムーブ r4,#20
d2: mov r5,#248
djnz r5、$
djnz r4,d2
djnz r3,d1
レット
###終わり###以上がマイコンの LED ライトの点滅周期を制御するボタンの書き方のチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。