51单片机的基本知识和点亮LED

202 阅读1分钟

第一点:单片机的三大原理

FLASH程序存储器

RAM数据存储空间除

SFR:特殊功能寄存器

总结: 单片机上电运行,读取FLASH里面的程序,进行逻辑运算和算术运算,得到一些数据,将这些数据写入到特殊功能寄存器,实现单片机的控制。

第二点:点亮LED

第一步:单片机最小系统

打开Proteus

建一个工程(不会的上网找攻略吧)

这次用8051

image-20220728213521073

#include  <reg51.h>
void delay();
​
sbit LED = P0^0;
void main()
    
{   
    while(1){
      LED = 1;
      delay();
     LED = 0;
    delay();    
    }
}
​
void delay(){
   int i;
    for(i=0;i<1000;i++ );
   
}

第三点:点亮流水灯

#小点:如何产生一秒或者接近一秒的延时呢

可以知道单片机在12MHZ的主频时,执行一条指令是一微秒

所以:

​
void delay(){
 unsigned int i,j,k;
     
    for(i=0;i<167;i++);
       for(j=0;j<133;j++);
          for(k=0;k<14;k++);
    //公式:  ((((N1*3+1)+2)*N2+1)+2)*N1+1
   //又因为i,j,k 都是正整数而且不超过255、得167,133,14
}
#include  <reg51.h>
​
​
void main()
{  
    while(1){
    P2 = 0x00;  //全部点亮
    }
}
​
​
#include  <reg51.h>
​
​
void delay(){
 unsigned int i,j,k;
     
    for(i=0;i<167;i++);
       for(j=0;j<133;j++);
          for(k=0;k<14;k++);
    //公式:  ((((N1*3+1)+2)*N2+1)+2)*N1+1
   //又因为i,j,k 都是正整数而且不超过255、得167,133,14
}
​
void main()
{  
    while(1){
   // P2 = 0x00;  //全部点亮
        
//      P2 = 0x01;
//        delay();
//      P2 = 0x01<<1;
//       delay();
//      P2 = 0x01<<2;
//       delay();
//      P2 = 0x01<<3;
//       delay();
//      P2 = 0x01<<4;
//       delay();
//      P2 = 0x01<<5;
//       delay();
//      P2 = 0x01<<6;
//     delay();
//      P2 = 0x01<<7;
    unsigned int x;
        for(x=0;x<8;x++){
            P2 = 0x01<<x;
           delay();
​
        }
    
    }
​
}
​
​

安装好 CH340 驱动后,我们就可以下载程序了,在下载程序前先确认下开发板上的 USB 转 TTL 串口模块上的 P5 短接片是否短接(P31T 与 URXD 连接,P30R 与 UTXD 连接)