docs

a slatepencil documentail site

View on GitHub

LED

  1. Turn an LED on
  2. Turn a digit LED on
  3. count down

hardware

Cathode Share LED digt codes

digit code
0 0x3f
1 0x06
2 0x5b
3 0x4f
4 0x66
5 0x6d
6 0x7d
7 0x07
8 0x7f
9 0x6f
A 0x77
B 0x7c
C 0x39
D 0x5e
E 0x79
F 0x71
  0x00

code

#include <reg52.h>

void delay (unsigned int xms);

void main()
{
    int i = 0;
    while(1)
    {
        P1 = 0xfe; // 1111 1110
        for (i = 0; i < 8; i++)
        {
            delay(1000);
            P1 <<= 1; // P1 = P1 << 1;
            P1 = P1 | 0x01;
        }
    }
}

void delay (unsigned int xms)
{
    unsigned int i,j;
    for (i = xms; i > 0; i--)
        for(j = 112; j < 0; j--);
}

digit display

#include <reg52.h>
#define duan P0

sbit wei1 = P2^4;
sbit wei2 = P2^5;
sbit wei3 = P2^6;
sbit wei4 = P2^7;

void main()
{
    wei1 = 1;
    wei2 = 0;
    wei3 = 0;
    wei4 = 0;

    duan = 0x7c; // 0111 1100 "b"
    while(1);
}

LED digit dynamic display

#include <reg52.h>
#define duan P0
#define uchar unsigned char

sbit wei1 = P2^4;
sbit wei2 = P2^5;
sbit wei3 = P2^6;
sbit wei4 = P2^7;

uchar code sz[17] = {
    0x3f,
    0x06,
    0x5b,
    0x4f,
    0x66,
    0x6d,
    0x7d,
    0x07,
    0x7f,
    0x6f,
    0x77,
    0x7c,
    0x39,
    0x5e,
    0x79,
    0x71,
    0x00
};

void delay (unsigned int xms)
{
    unsigned int i,j;
    for (i = xms; i > 0; i--)
        for(j = 112; j < 0; j--);
}

void main()
{
    while(1)
    {
        duan = sz[4];
        wei1 = 0;
        wei2 = 0;
        wei3 = 0;
        wei4 = 1;
        delay(1000);
        duan = sz[3];
        wei1 = 0;
        wei2 = 0;
        wei3 = 1;
        wei4 = 0;
        delay(1000);
        duan = sz[2];
        wei1 = 0;
        wei2 = 1;
        wei3 = 0;
        wei4 = 0;
        delay(1000);
        duan = sz[1];
        wei1 = 1;
        wei2 = 0;
        wei3 = 0;
        wei4 = 0;
        delay(1000);
    }
}