jiachengking 发表于 2023-5-11 23:37:31

使用STC8G1K20pin-16脚仿真出现问题,求大神帮忙

STC8G仿真问题。第一,    P0M0 = 0x03; P0M1 = 0xc0;P1.0驱动电机芯片正转,P1.1驱动反转 ,P1.6和P1.7采样。用仿真,P0M0直接就执行不下去了,不用的端口改成1也不行。
IO口配置好,STC-ISP仿真无法执行下去,求如何解决??{:cry:}{:cry:}{:cry:}   


我设置了多个ADC端口,轮询检测,不过目前就配置一个ADC端口就出现ADC能检测数值,但是数值有很严重的出入。低电压有段数值要比高电压高,数值分布有问题。

第二个就是写ADC采样。我把所有端口设置为双向除P3.3端口为高阻输入进行采样。





void ADCInitC()//P3.3 C采样
{
            P_SW2|=0x8B; //打开特殊寄存器ADCTIM

            ADCTIM=0x3f;//00111111CSSETUP=0,CSHOLD=01;SMPUTY=11111;
            P_SW2&=0x7f;//关闭特殊寄存器
            ADCCFG=0x2f;//SPEED=1111;SYSCLK/2/16
            ADC_CONTR=0x8B;//打开ADC_POWER电源位 P3.3 10001011


}

uint ReadC(void)
{      
               uint result;
               ADC_CONTR|=0x40;//启动AD转换
               _nop_();
               _nop_();
               while(!(ADC_CONTR&0x20));
               ADC_CONTR&= ~0x20;               
               result=(ADC_RES<<8)|ADC_RESL;
               return result;   
}



void main()
{

            uint A,B;
            P1M0 = 0x00;
            P1M1 = 0x00;
         P3M0 = 0x00;
         P3M1 = 0x08;
         ADCInitC();
         B=ReadC();

          while(1);
}

仿真读取的数值很怪异。170V电压0x0390,190V电压数值 0x03F9,265v电压是0x3FF,275V电压0x0005,200V电压是0x000B等等,数值严重有问题。之前做了一个测试程序也发现ADC采样严重有问题,特地做了一下采样数据。

新手上路,自己搭建电路,画pcb板子,都弄的最后调试阶段,ADC测试有问题,同时IO口设置仿真有问题。


jiachengking 发表于 2023-5-11 23:39:50

新手上路问问大大的,以为51的简单,先做一个产品小试牛刀,结果问题大大的。{:cry:}{:cry:}{:cry:}

8051启蒙者 发表于 2023-5-12 09:12:08

楼主,我先给你几个ADC的程序,您先参考一下。

1、


2、

8051启蒙者 发表于 2023-5-12 09:21:51

仿真问题参考论坛里此2贴:

1、【用 STC-USB Link1D 仿真STC8系列MCU】www.stcaimcu.com/forum.php?mod=viewthread&tid=752
2、【仿真注意事项总结】https://www.stcaimcu.com/forum.php?mod=viewthread&tid=108


8051启蒙者 发表于 2023-5-12 09:22:38

ADC采集结果在这里查看,或者赋值到全局变量里,然后在watch窗口里查看。



页: [1]
查看完整版本: 使用STC8G1K20pin-16脚仿真出现问题,求大神帮忙