51微控制器學習筆記(一)
阿新 • • 發佈:2018-12-20
點亮第一個LED燈
#include "reg52.h"
sbit led=P2^0; //將微控制器的P2.0埠定義為led
void main()
{
while(1)
{
led=0; //P2.0埠設定為低電平
}
}
LED閃爍實驗
#include "reg52.h" typedef unsigned int u16; //對資料型別進行宣告定義 typedef unsigned char u8; sbit led=P2^0; //延時函式 void delay(u16 i) { while(i--); } void main() { while(1) { led=0; delay(50000); led=1; delay(50000); } }
LED流水燈實驗
#include "reg52.h" #include<intrins.h> //要用到左右移函式 typedef unsigned int u16; typedef unsigned char u8; #define led P2 void delay(u16 i) { while(i--); } void main() { u8 i; led=0xfe; delay(50000); while(1) { for(i=0;i<8;i++) { P2=~(0x01<<i); //將1右移i位,然後將結果取反賦值到P2口 delay(50000); } for(i=0;i<7;i++) //將led左移一位 { led=_crol_(led,1); delay(50000); } for(i=0;i<7;i++) //將led右移一位 { led=_cror_(led,1); delay(50000); } } }
靜態數碼管顯示
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
u8 LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共陰極數碼管碼
void main()
{
LSA=0;
LSB=0;
LSC=0; //控制38譯碼器的Y0輸出低電平
P0=LED[0];
while(1);
}