54
1893
3572
论坛元老
149页
146页
使用道具 举报 送花
775
1万
管理员
神*** 发表于 2023-3-27 21:50
//---------------------------------------------- //需要使能“在程序区的结束处添加重要测试参数”选项 //---------------------------------------------- #include "reg51.h" #include "intrins.h" #define FOSC 11059200UL #define BRT (65536 - FOSC / 115200 / 4) sfr AUXR = 0x8e; sfr P_SW2 = 0xba; bit busy; int *BGV; void Delay100ms() //@11.0592MHz { unsigned char i, j; i = 180; j = 73; do { while (--j); } while (--i); } void UartIsr() interrupt 4 { if (TI) { TI = 0; busy = 0; } if (RI) { RI = 0; } } void UartInit() { SCON = 0x50; TMOD = 0x00; TL1 = BRT; TH1 = BRT >> 8; TR1 = 1; AUXR = 0x40; busy = 0; } void UartSend(char dat) { while (busy); busy = 1; SBUF = dat; } void main() { BGV = (int code *)0xfdf7; // STC8A8K64S4A10 // BGV = (int code *)0xeff7; // STC8A8K60S4A10 // BGV = (int code *)0x7ff7; // STC8A8K32S4A10 // BGV = (int code *)0x3ff7; // STC8A8K16S4A10 UartInit(); ES = 1; EA = 1; P_SW2=0x80; while (1) { Delay100ms(); UartSend(*BGV >> 8); //读取Bandgap电压的高字节 UartSend(*BGV); //读取Bandgap电压的低字节 } } 复制代码
16
164
2068
版主
stc-isp-15xx-v6.91M.zip
2023-3-28 10:23 上传
点击文件名下载附件
3.98 MB, 下载次数: 211
STC32位***芯片 发表于 2023-3-28 10:23 可以用STC-ISP软件里面的范例程序试试呢
神*** 发表于 2023-3-28 11:21 用我的建议 CHIPID读,后续有 CHIPID的会过渡到只能从CHIPID读 ===大家尽量以我回答的为第一优先测试 ...
#include "STC8A8K64D4.h" #include "intrins.h" #include "stdio.h" #define FOSC 24000000UL #define BRT (65536 - FOSC / 57600 / 4) #define VREFH_ADDR CHIPID7 #define VREFL_ADDR CHIPID8 int BGV; void ADCInit() { P_SW2 |=0x80; ADCTIM=0x3f; P_SW2 &=0x7f; ADCCFG=0x2f; ADC_CONTR=0x8f; } int ADCRead() { int res; ADC_CONTR |= 0x40; //启动AD转换 _nop_(); _nop_(); while (!(ADC_CONTR & 0x20)); //查询ADC完成标志 ADC_CONTR &= ~0x20; //清完成标志 res=(ADC_RES<<8) | ADC_RESL; return res; } void Delay100ms() //@11.0592MHz { unsigned char i, j; i = 180; j = 73; do { while (--j); } while (--i); } void UartIsr() interrupt 4 { if (TI) { TI = 0; // busy = 0; } if (RI) { RI = 0; } } void UartInit() { SCON = 0x50; TMOD = 0x00; TL1 = BRT; TH1 = BRT >> 8; TR1 = 1; AUXR = 0x40; // busy = 0; } char putchar(char c) { SBUF = c; while (TI == 0); TI = 0; return c; } int res,i,vcc; void main() { BGV = (VREFH_ADDR<<8)+VREFL_ADDR; // BGV = (int idata *)0xef; // BGV = (int code *)0xfdf7; // STC8A8K64S4A10 // BGV = (int code *)0xeff7; // STC8A8K60S4A10 // BGV = (int code *)0x7ff7; // STC8A8K32S4A10 // BGV = (int code *)0x3ff7; // STC8A8K16S4A10 UartInit(); ADCInit(); ES = 1; EA = 1; // P_SW2=0x80; while (1) { Delay100ms(); ADCRead(); ADCRead(); res=0; for(i=0;i<8;i++) { res+=ADCRead(); } res>>=3; vcc=(int)(4096L*BGV/res); printf("基准电压是:%d ",BGV); printf("电源电压是:%d\n",vcc); //读取vcc电压的高字节 } }复制代码
jw*** 发表于 2023-3-29 11:06 另外,请问,是不是所有stc的BGV都对应CHIPID7,8
STC32位***芯片 发表于 2023-3-29 11:39 目前有CHIPID的型号的BGV都对应CHIPID7,8
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-8-24 18:17 , Processed in 0.142924 second(s), 106 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.