51单片机原理图的阅读笔记

记录自己学习51单片机的过程,主要是一些顿悟,碎语较多不成篇幅。


一些符号和术语

PXX的含义

其中P2代表P2寄存器,P20代表该寄存器的第零位,P21代表第一位,以此类推。

alt text

所以可以写出如下代码使得P2接口的0号位处于低电位状态即亮起状态(LED灯是二极管,只有一头为高一头为低时才会通过电流,初始状态时都为高,所以没有电流通过也就都不会亮):

#include<REGX52.h>
int main(){
  P2 = 0xFE; //1111 1110
  while(1)
  {

  }
  return 0;
}

如果想让LED模块依次亮起(流水灯),那么就可以写出以下代码:

#include <REGX52.H>
#include <stdio.h>

void Delay_ms(unsigned int ms) {
    unsigned int i, j;
    for (i = 0; i < ms; i++) {
        for (j = 0; j < 120; j++) {
           
        }
    }
}

int main()
{
 int codes[8] = {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F};
 int len = 8;
 int curIndex = 0;
 P2 = codes[curIndex];
 // 1111 1111 FF
 // 1111 1110 FE
 // 1111 1101 FD
 // 1111 1011 FB
 // 1111 0111 F7
 // 1110 1111 EF
 // 1101 1111 DF
 // 1011 1111 BF
 // 0111 1111 7F
 while (1)
 {
  Delay_ms(100);
  curIndex = (curIndex + 1) % len;
  P2 = codes[curIndex];
 }
 return 0;
}