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

[电源变换芯片] MAX813L

[复制链接]

3711

主题

1

回帖

1万

积分

管理员

积分
11949
发表于 2023-3-1 09:28:42 | 显示全部楼层 |阅读模式
  1. /*

  2. MAX813L 外部芯片控制代码
  3. IC简介:MAX813L是一款低功耗微处理器复位电路,它可以提供1.2V到5.0V的复位电压。
  4.     当电源电压下降到复位电压以下,该芯片可以在保证低功耗的同时,向微处理器提供一个正常的复位电压。
  5.     电压范围:1.2V ~ 5.0V,温度范围:-40℃ ~ 85℃。
  6.     注意事项:
  7.     1. 外部引脚不得直接连接到VCC或GND,应通过串联限流电阻方式连接。
  8.     2. 电源电压低于复位电压时,复位电路保持输出高电平状态,直到电源电压超过复位电压。
  9.                   2. 电源电压低于复位电压时,复位电路保持输出高电平状态,直到电源电压超过复位电压。
  10. 头文件:reg52.h
  11. Author: ChatGPT
  12. Date: 2023-03-01
  13. */
  14. #include <reg52.h>

  15. // 定义MAX813L芯片的复位电压
  16. #define MAX813L_RESET_VOLTAGE 2.5

  17. /**

  18. 功能:初始化MAX813L芯片的IO口
  19. 参数:无
  20. 返回值:无
  21. */
  22. void MAX813L_InitIO(void)
  23. {
  24.     // 将P2.3口配置为输出口
  25.     P2 &= ~(1 << 3);
  26.     P2 |= (1 << 3);
  27. }
  28. /**

  29. 功能:设置MAX813L芯片的复位电压

  30. 参数:reset_voltage - 复位电压值,取值范围:1.2V ~ 5.0V

  31. 返回值:无
  32. */
  33. void MAX813L_SetResetVoltage(float reset_voltage)
  34. {
  35.     // 计算复位电压的DAC值
  36.     unsigned char dac_value = (unsigned char)((reset_voltage - 1.2) / 0.016);

  37.     // 将DAC值写入P2口的低4位
  38.     P2 &= 0xF0;
  39.     P2 |= (dac_value & 0x0F);
  40. }

  41. /**

  42. 功能:获取MAX813L芯片的复位电压

  43. 参数:无

  44. 返回值:复位电压值,单位:V
  45. */
  46. float MAX813L_GetResetVoltage(void)
  47. {
  48.     // 读取P2口的低4位作为DAC值
  49.     unsigned char dac_value = (P2 & 0x0F);

  50.     // 计算复位电压值
  51.     float reset_voltage = dac_value * 0.016 + 1.2;

  52.     return reset_voltage;
  53. }

  54. /**

  55. 功能:使能MAX813L芯片的复位电路
  56. 参数:无
  57. 返回值:无
  58. */
  59. void MAX813L_EnableReset(void)
  60. {
  61.     // 将P2.3口输出低电平
  62.     P2 &= ~(1 << 3);
  63. }
  64. /**

  65. 功能:禁用MAX813L芯片的复位电路
  66. 参数:无
  67. 返回值:无
  68. */
  69. void MAX813L_DisableReset(void)
  70. {
  71.     // 将P2.3口输出高电平
  72.     P2 |= (1 << 3);
  73. }

  74. /**

  75. 功能:检测MAX813L芯片是否复位
  76. 参数:无
  77. 返回值:1 - 复位状态;0 - 非复位状态
  78. */
  79. unsigned char MAX813L_IsReset(void)
  80. {
  81.     // 读取P2.4口的电平状态
  82.     return ((P2 >> 4) & 0x01);
  83. }
  84. /**

  85. 主函数
  86. */
  87. void main()
  88. {
  89.     // 初始化MAX813L芯片的IO口
  90.     MAX813L_InitIO();

  91.     // 设置复位电压为3.3V
  92.     MAX813L_SetResetVoltage(3.3);

  93.     // 使能复位电路
  94.     MAX813L_EnableReset();

  95.     // 等待芯片复位完成
  96.     while (!MAX813L_IsReset())
  97.         ;

  98.     // 禁用复位电路
  99.     MAX813L_DisableReset();
  100. }
复制代码


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

本版积分规则

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

GMT+8, 2025-8-23 06:09 , Processed in 0.081142 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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