找回密码
 立即注册
查看: 2628|回复: 16

请问STC8A8K64D4的内部1.19V的地址是多少?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-27 20:39:52 | 显示全部楼层 |阅读模式
本帖最后由 jwd 于 2023-3-27 20:42 编辑

如题,我看手册上面有2个不同的地址,最新的手册


file:///C:\Users\jwd\AppData\Roaming\Tencent\Users\315915734\TIM\WinTemp\RichOle\L%Y72UY(BP(DCN4BIH5OIGE.pngfile:///C:\Users\jwd\AppData\Roaming\Tencent\Users\315915734\TIM\WinTemp\RichOle\C{ROO]LQ{%`A~L22GU{9__L.png

149页

149页

146页

146页
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15628
发表于 2023-3-27 21:50:15 | 显示全部楼层
1.png

2.png
3.png
4.png
5.png
6.png
7.png
8.png
  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-28 09:23:41 | 显示全部楼层

我实际测试是0xfdf7才对,测试代码
  1. //----------------------------------------------
  2. //需要使能“在程序区的结束处添加重要测试参数”选项
  3. //----------------------------------------------
  4. #include "reg51.h"
  5. #include "intrins.h"
  6. #define        FOSC        11059200UL
  7. #define        BRT        (65536 - FOSC / 115200 / 4)
  8. sfr        AUXR        =        0x8e;
  9. sfr        P_SW2        =        0xba;
  10. bit        busy;
  11. int        *BGV;
  12. void Delay100ms()                //@11.0592MHz
  13. {
  14.         unsigned char i, j;
  15.         i = 180;
  16.         j = 73;
  17.         do
  18.         {
  19.                 while (--j);
  20.         } while (--i);
  21. }
  22. void UartIsr() interrupt 4
  23. {
  24.         if (TI)
  25.         {
  26.                 TI = 0;
  27.                 busy = 0;
  28.         }
  29.         if (RI)
  30.         {
  31.                 RI = 0;
  32.         }
  33. }
  34. void UartInit()
  35. {
  36.         SCON = 0x50;
  37.         TMOD = 0x00;
  38.         TL1 = BRT;
  39.         TH1 = BRT >> 8;
  40.         TR1 = 1;
  41.         AUXR = 0x40;
  42.         busy = 0;
  43. }
  44. void UartSend(char dat)
  45. {
  46.         while (busy);
  47.         busy = 1;
  48.         SBUF = dat;
  49. }
  50. void main()
  51. {
  52.         BGV = (int code *)0xfdf7;        // STC8A8K64S4A10
  53. //        BGV = (int code *)0xeff7;        // STC8A8K60S4A10
  54. //        BGV = (int code *)0x7ff7;        // STC8A8K32S4A10
  55. //        BGV = (int code *)0x3ff7;        // STC8A8K16S4A10
  56.         UartInit();
  57.         ES = 1;
  58.         EA = 1;
  59.         P_SW2=0x80;
  60.        
  61.         while (1)
  62.         {
  63.                 Delay100ms();
  64.                 UartSend(*BGV >> 8);        //读取Bandgap电压的高字节
  65.                 UartSend(*BGV);        //读取Bandgap电压的低字节
  66.                        
  67.         }
  68. }
复制代码



QQ图片20230328092219.png
  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-04-27 09:42:20

11

主题

157

回帖

1780

积分

版主

积分
1780
发表于 2023-3-28 10:23:21 | 显示全部楼层
本帖最后由 STC32位8051芯片 于 2023-3-28 10:27 编辑

可以用STC-ISP软件里面的范例程序试试呢
1.png

stc-isp-15xx-v6.91M.zip

3.98 MB, 下载次数: 152

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-28 10:55:25 | 显示全部楼层
STC32位***芯片 发表于 2023-3-28 10:23
可以用STC-ISP软件里面的范例程序试试呢

我就是用那个测试的
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15628
发表于 2023-3-28 11:21:13 | 显示全部楼层
用我的建议 CHIPID读,后续有 CHIPID的会过渡到只能从CHIPID读
===大家尽量以我回答的为第一优先测试
  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-29 11:02:01 | 显示全部楼层
本帖最后由 jwd 于 2023-3-29 11:03 编辑
神*** 发表于 2023-3-28 11:21
用我的建议 CHIPID读,后续有 CHIPID的会过渡到只能从CHIPID读
===大家尽量以我回答的为第一优先测试 ...
我使用CHIPID地址读出来的不对,我用打狗棒的CHIPID地址读出来的对
  1. #include "STC8A8K64D4.h"
  2. #include "intrins.h"
  3. #include "stdio.h"
  4. #define        FOSC        24000000UL
  5. #define        BRT        (65536 - FOSC / 57600 / 4)
  6. #define VREFH_ADDR  CHIPID7
  7. #define VREFL_ADDR  CHIPID8
  8. int        BGV;
  9. void ADCInit()
  10. {
  11.         P_SW2 |=0x80;
  12.         ADCTIM=0x3f;
  13.         P_SW2 &=0x7f;
  14.         ADCCFG=0x2f;
  15.         ADC_CONTR=0x8f;
  16. }
  17. int ADCRead()
  18. {
  19.         int res;
  20.         ADC_CONTR |= 0x40;                      //启动AD转换
  21.         _nop_();
  22.         _nop_();
  23.         while (!(ADC_CONTR & 0x20));            //查询ADC完成标志               
  24.         ADC_CONTR &= ~0x20;                     //清完成标志   
  25.            res=(ADC_RES<<8) | ADC_RESL;
  26.            return res;
  27. }
  28. void Delay100ms()                //@11.0592MHz
  29. {
  30.         unsigned char i, j;
  31.         i = 180;
  32.         j = 73;
  33.         do
  34.         {
  35.                 while (--j);
  36.         } while (--i);
  37. }
  38. void UartIsr() interrupt 4
  39. {
  40.         if (TI)
  41.         {
  42.                 TI = 0;
  43. //                busy = 0;
  44.         }
  45.         if (RI)
  46.         {
  47.                 RI = 0;
  48.         }
  49. }
  50. void UartInit()
  51. {
  52.         SCON = 0x50;
  53.         TMOD = 0x00;
  54.         TL1 = BRT;
  55.         TH1 = BRT >> 8;
  56.         TR1 = 1;
  57.         AUXR = 0x40;
  58. //        busy = 0;
  59. }
  60. char putchar(char c)
  61. {
  62.     SBUF = c;
  63.     while (TI == 0);
  64.     TI = 0;
  65.     return c;
  66. }
  67. int res,i,vcc;
  68. void main()
  69. {
  70.         BGV = (VREFH_ADDR<<8)+VREFL_ADDR;
  71. //        BGV = (int idata *)0xef;
  72. //        BGV = (int code *)0xfdf7;        // STC8A8K64S4A10
  73. //        BGV = (int code *)0xeff7;        // STC8A8K60S4A10
  74. //        BGV = (int code *)0x7ff7;        // STC8A8K32S4A10
  75. //        BGV = (int code *)0x3ff7;        // STC8A8K16S4A10
  76.         UartInit();
  77.         ADCInit();
  78.         ES = 1;
  79.         EA = 1;
  80. //        P_SW2=0x80;
  81.        
  82.         while (1)
  83.         {
  84.                 Delay100ms();
  85.                  ADCRead();
  86.                 ADCRead();
  87.                 res=0;
  88.                 for(i=0;i<8;i++)
  89.                 {
  90.                         res+=ADCRead();
  91.        
  92.                 }
  93.                 res>>=3;
  94.                 vcc=(int)(4096L*BGV/res);
  95.                 printf("基准电压是:%d    ",BGV);
  96.             printf("电源电压是:%d\n",vcc);        //读取vcc电压的高字节                       
  97.                                
  98.         }
  99. }
复制代码

QQ图片20230329110205.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-29 11:06:38 | 显示全部楼层
另外,请问,是不是所有stc的BGV都对应CHIPID7,8

点评

目前有CHIPID的型号的BGV都对应CHIPID7,8  详情 回复 发表于 2023-3-29 11:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-04-27 09:42:20

11

主题

157

回帖

1780

积分

版主

积分
1780
发表于 2023-3-29 11:39:59 | 显示全部楼层
jw*** 发表于 2023-3-29 11:06
另外,请问,是不是所有stc的BGV都对应CHIPID7,8

目前有CHIPID的型号的BGV都对应CHIPID7,8
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2023-3-29 13:40:17 | 显示全部楼层
本帖最后由 jwd 于 2023-3-29 14:23 编辑
STC32位***芯片 发表于 2023-3-29 11:39
目前有CHIPID的型号的BGV都对应CHIPID7,8

请问,我上面用chipid读的程序有什么问题吗?
QQ图片20230329142318.png

点评

对照范例看下呢  详情 回复 发表于 2023-3-29 14:32
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:04 , Processed in 0.134297 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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