找回密码
 立即注册
搜索
热搜: 中医 针灸 咳嗽
查看: 173|回复: 0

[电源变换芯片] LM117

[复制链接]

3711

主题

1

回帖

1万

积分

管理员

积分
11937
发表于 2023-3-1 08:47:46 | 显示全部楼层 |阅读模式
  1. // 该单片机代码使用LM117外部芯片来控制输出电压,头文件使用reg52.h
  2. // LM117是一款可调节三端稳压器,能够输出1.2V至37V的稳定电压,最大输出电流1.5A
  3. // LM117的工作温度范围为0°C至125°C,需要注意保持散热
  4. // 更多详细信息请参考LM117数据手册

  5. #include <reg52.h>

  6. // 定义控制LM117的引脚
  7. sbit ADJ = P1 ^ 0; // 调节引脚,用来调整输出电压
  8. sbit OUT = P1 ^ 1; // 输出引脚,输出稳定电压
  9. sbit IN  = P1 ^ 2; // 输入引脚,接受电源输入

  10. // 函数声明
  11. void LM117_init();                           // 初始化LM117
  12. void LM117_setVoltage(unsigned int voltage); // 设置输出电压
  13. void delay_ms(unsigned int ms);              // 毫秒级延时函数

  14. // LM117初始化函数
  15. void LM117_init()
  16. {
  17.     ADJ = 1; // 将调节引脚拉高
  18.     OUT = 0; // 输出引脚拉低
  19. }

  20. // 设置LM117输出电压
  21. void LM117_setVoltage(unsigned int voltage)
  22. {
  23.     float r1, r2;                      // 定义两个电阻变量
  24.     unsigned char t;                   // 定义循环计数变量
  25.     r2 = 2400;                         // 设置r2电阻值为2.4kΩ
  26.     r1 = (voltage - 1.25) * r2 / 1.25; // 根据公式计算r1电阻值
  27.     r1 = r1 / 1000;                    // 将电阻值转换为千欧姆
  28.     for (t = 0; t < 200; t++) {}       // 等待一段时间
  29.     OUT = 1;                           // 将输出引脚拉高
  30.     for (t = 0; t < 200; t++) {}       // 等待一段时间
  31. }

  32. // 毫秒级延时函数
  33. void delay_ms(unsigned int ms)
  34. {
  35.     unsigned int i, j;
  36.     for (i = 0; i < ms; i++)
  37.         for (j = 0; j < 114; j++)
  38.             ;
  39. }

  40. // 主函数
  41. void main()
  42. {
  43.     LM117_init();        // 初始化LM117
  44.     LM117_setVoltage(5); // 设置输出电压为5V
  45.     while (1) {}         // 循环等待
  46. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|私人站点 ( 冀ICP备2023028127号-2 )

GMT+8, 2025-7-4 00:42 , Processed in 0.079299 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表