俏襟选 发表于 2025-6-9 14:41:08

0.LED基础控制

典中典之发光二极管,我从小学到大

长脚是正级,断脚是负极 里面大块的是负级,小块的是正极
电阻标注:

[*]若标注102 -> 代表着为1K电阻(10^2)
[*]若标注473 -> 代表着为47K电阻(47 * 10^3)
以此类推 其他器件标注也为类似模式

RP7 RP9模块为限流电阻
此单片机使用TTL规范(高电平5V 低电平0V)
要让上图LED亮,则引脚端要为低电平
单片机通过CPU访问寄存器,寄存器通过驱动器控制引脚,进而控制LED
单片机控制电路实则就是玩弄寄存器
C语言位运算


1. 点亮一个LED

#include <REGX52.H>

void main()
{
        //P2 = 0xFE;                // 1111 1110
        P2 = 0x55;        // 0101 0101
        // 对变量进行赋值时使用16进制
       
        // 相当于终止对引脚的操作
        while(1)
        {
               
        }
}其中0x代表16进制
2. 使LED闪烁

#include <REGX52.H>
#include <INTRINS.H>

// 使程序休眠500ms
void Delay500ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void main()
{
        while(1)
        {
                P2 = 0xFE;
                Delay500ms();
                P2 = 0XFF;
                Delay500ms();
        }
}3. 流水灯设计

#include #include void Delay500ms()                //@11.0592MHz{        unsigned char i, j, k;        _nop_();        i = 4;        j = 129;        k = 119;        do        {                do                {                        while (--k);                } while (--j);        } while (--i);}void main(){       unsigned char i = 0x01;// 初始化为0x01,即二进制的0000 0001,表示第一个LED先点亮    while(1)    {      P2 = ~i;// 将i的值输出到P2端口,控制LED灯的状态      Delay500ms();// 延时500ms      i代表着为1K电阻(10^2)若标注473 -> 代表着为47K电阻(47 * 10^3)
以此类推 其他器件标注也为类似模式</ul>![]
RP7 RP9模块为限流电阻
此单片机使用TTL规范(高电平5V 低电平0V)
要让上图LED亮,则引脚端要为低电平
单片机通过CPU访问寄存器,寄存器通过驱动器控制引脚,进而控制LED
单片机控制电路实则就是玩弄寄存器
C语言位运算

![]
1. 点亮一个LED

#include <REGX52.H>

void main()
{
        //P2 = 0xFE;                // 1111 1110
        P2 = 0x55;        // 0101 0101
        // 对变量进行赋值时使用16进制
       
        // 相当于终止对引脚的操作
        while(1)
        {
               
        }
}其中0x代表16进制
2. 使LED闪烁

#include <REGX52.H>
#include <INTRINS.H>

// 使程序休眠500ms
void Delay500ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void main()
{
        while(1)
        {
                P2 = 0xFE;
                Delay500ms();
                P2 = 0XFF;
                Delay500ms();
        }
}3. 流水灯设计

#include #include void Delay500ms()                //@11.0592MHz{        unsigned char i, j, k;        _nop_();        i = 4;        j = 129;        k = 119;        do        {                do                {                        while (--k);                } while (--j);        } while (--i);}void main(){       unsigned char i = 0x01;// 初始化为0x01,即二进制的0000 0001,表示第一个LED先点亮    while(1)    {      P2 = ~i;// 将i的值输出到P2端口,控制LED灯的状态      Delay500ms();// 延时500ms      i
页: [1]
查看完整版本: 0.LED基础控制