找回密码
 立即注册
首页 业界区 安全 0.LED基础控制

0.LED基础控制

俏襟选 2025-6-9 14:41:08
典中典之发光二极管,我从小学到大
1.png

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

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

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

3.png

1. 点亮一个LED
  1. #include <REGX52.H>
  2. void main()
  3. {
  4.         //P2 = 0xFE;                // 1111 1110
  5.         P2 = 0x55;        // 0101 0101
  6.         // 对变量进行赋值时使用16进制
  7.        
  8.         // 相当于终止对引脚的操作
  9.         while(1)
  10.         {
  11.                
  12.         }
  13. }
复制代码
其中0x代表16进制
2. 使LED闪烁
  1. #include <REGX52.H>
  2. #include <INTRINS.H>
  3. // 使程序休眠500ms
  4. void Delay500ms()                //@11.0592MHz
  5. {
  6.         unsigned char i, j, k;
  7.         _nop_();
  8.         i = 4;
  9.         j = 129;
  10.         k = 119;
  11.         do
  12.         {
  13.                 do
  14.                 {
  15.                         while (--k);
  16.                 } while (--j);
  17.         } while (--i);
  18. }
  19. void main()
  20. {
  21.         while(1)
  22.         {
  23.                 P2 = 0xFE;
  24.                 Delay500ms();
  25.                 P2 = 0XFF;
  26.                 Delay500ms();
  27.         }
  28. }
复制代码
3. 流水灯设计
  1. #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  代表着为[b]1K[/b]电阻(10^2)若标注[b]473[/b] -> 代表着为[b]47K[/b]电阻(47 * 10^3)
  2. 以此类推 其他器件标注也为类似模式</ul>![[Pasted image 20250114171745.png]]
  3. RP7 RP9模块为限流电阻
  4. 此单片机使用TTL规范(高电平5V 低电平0V)
  5. 要让上图LED亮,则引脚端要为低电平
  6. 单片机通过CPU访问寄存器,寄存器通过驱动器控制引脚,进而控制LED
  7. 单片机控制电路实则就是玩弄寄存器
  8. [size=4]C语言位运算[/size]
  9. ![[Pasted image 20250115111820.png]]
  10. [size=4]1. 点亮一个LED[/size]
  11. [code]#include <REGX52.H>
  12. void main()
  13. {
  14.         //P2 = 0xFE;                // 1111 1110
  15.         P2 = 0x55;        // 0101 0101
  16.         // 对变量进行赋值时使用16进制
  17.        
  18.         // 相当于终止对引脚的操作
  19.         while(1)
  20.         {
  21.                
  22.         }
  23. }
复制代码
其中0x代表16进制
2. 使LED闪烁
  1. #include <REGX52.H>
  2. #include <INTRINS.H>
  3. // 使程序休眠500ms
  4. void Delay500ms()                //@11.0592MHz
  5. {
  6.         unsigned char i, j, k;
  7.         _nop_();
  8.         i = 4;
  9.         j = 129;
  10.         k = 119;
  11.         do
  12.         {
  13.                 do
  14.                 {
  15.                         while (--k);
  16.                 } while (--j);
  17.         } while (--i);
  18. }
  19. void main()
  20. {
  21.         while(1)
  22.         {
  23.                 P2 = 0xFE;
  24.                 Delay500ms();
  25.                 P2 = 0XFF;
  26.                 Delay500ms();
  27.         }
  28. }
复制代码
3. 流水灯设计

[code]#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
您需要登录后才可以回帖 登录 | 立即注册