1. 程式人生 > 其它 >微控制器學習 1月7日

微控制器學習 1月7日

技術標籤:微控制器

微控制器學習 1月7日

一、點亮發光二極體

基礎知識

十六進位制:
0-9對應 0-9; A-F對應 10-15
C,C++規定,16進位制數必須以 0x開頭。

兩種實現方式:

1、通過十六進位制

#include<reg52.h>
void main()  //()
{
   P1 = 0xf3;      //1111  1100 低電平觸發第1,2個燈
}

2、通過定義管腳,但只適用點亮少數燈

#include<reg52.h>
sbit LED0=P1^1;
void main()  //()
{
  LED0=0;  //低電平點亮發光管
  while(1);   //
} //低電平點亮第一個發光二極體

二、流水燈

1、閃爍燈

#include<reg52.h>
#define uint unsigned int

void delay(uint x)
{
uint i,j;
	for(i=x;i>0;i--)               //i = x 即延時約x毫秒
	for(j=110;j>0;j--);
}

void main()
{
	P1 = 0xf3;                   //0101 0101
	delay(500);                 //延時500毫秒閃爍1,2燈
	
	P1 = 0xff;
	delay(500);
}

2、流水燈

#include<reg52.h>
#define uint unsigned int

sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;

void delay(uint x)
{
uint i,j;
	for(i=x;i>0;i--)               //i = x 即延時約x毫秒
	for(j=110;j>0;j--);

}

void main()
{
  LED0 =
0; delay(500); LED0 = 1; delay(500); LED1 = 0; delay(500); LED1 = 1; delay(500); LED2 = 0; delay(500); LED2 = 1; delay(500); LED3 = 0; delay(500); LED3 = 1; delay(500); LED6 = 0; delay(500); LED6 = 1; delay(500); LED7 = 0; delay(500); LED7 = 1; delay(500); }

3、蜂鳴器

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit FM = P2^3;
void delay(uint x)
{
uint i,j;
	for(i=x;i>0;i--)               //i = x 即延時約x毫秒
	for(j=110;j>0;j--);

}

void main()
{
	P1 = 0xf3;                   //0101 0101
	FM = 1;
	delay(500);                 //延時500毫秒閃爍1,2燈
	
	P1 = 0xff;
	FM = 0;
	delay(500);
}