˜Ë(bi¨¡o)î}: STC8G1K08A†ÎƬ™CADC²»Æð×÷Óà [´òÓ¡±¾í“]

×÷Õß: 2256024237    •rég: 2024-9-20 14:23
˜Ë(bi¨¡o)î}: STC8G1K08A†ÎƬ™CADC²»Æð×÷ÓÃ
void IO_Init()
{
        P3M1 = 0x04;//0000 0100  p3.2¸ß×èÝ”Èë ×÷žéADCÝ”Èë¿Ú
        P3M0 = 0x08;//0000 1000  p3.3ÍÆÍìÝ”³ö
        P5M1 = 0x20;//0010 0000  p5.5¸ß×èÝ”Èë δʹÓÃ
        P5M0 = 0x10;//0001 0000         p5.4ÍÆÍìÝ”³ö
}
void ADC_Init()
{
    P_SW2 |= 0x80;
    ADCTIM = 0x3f;                              //ÔO(sh¨¨)ÖÃADCƒÈ(n¨¨i)²¿•rÐò
    P_SW2 &= 0x7f;
    ADCCFG = 0x2f;                              //ÔO(sh¨¨)ÖÃADC•r犞éϵ½y(t¨¯ng)•rçŠ/2/6  ÓÒŒ¦ýR  20K
    ADC_CONTR = 0xc2;                           //ʹÄÜADCÄ£‰K
}
void ADC_Read(void)
{
        unsigned int i16Tem;                       
        ADC_CONTR |= 0x40;                          //À^Àm(x¨´)ADÞD(zhu¨£n)“Q       
        _nop_();
        _nop_();
        while (!(ADC_CONTR & 0x20));                //²éÔƒADCÍê³É˜Ë(bi¨¡o)Ö¾
               
       
            ADC_CONTR &= ~0x20;                         //ÇåÖДà˜Ë(bi¨¡o)Ö¾

      i16Tem = ADC_RES<<8|ADC_RESL;  // ×xȡͨµÀ2 (P3.2) µÄADCÖµ
    ADC_CH =i16Tem;
}

void ADC_Test(void)
{
        ifADC_CH>560)
        {
                PWM_Output_Capp1(200);
        }
        else if(ADC_CH <= 512 ) &&ADC_CH >= 256 ))
        {
                PWM_Output_Capp1(50);
        }
        else
        {
                PWM_Output_Capp1(256);
        }
       
}

void main()
{
        IO_Init();      //ÒýÄ_³õʼ»¯
        EA = 0;
        PWM_Init();
        ADC_Init();
        TIM_Init();
        Timer0_Init();       
        EA = 1;
        Data_Init();
       
    while (1)
                {
                        PWM_Output_Capp2(256);
                        ADC_Read();
                        ADC_Test();
                }
                       
}

ÒÔÉÏÊdzÌÐòµÄ²¿·Ö´ú´a£¬°´ÕÕÊփԺͰ¸Àý³ÌÐò?q¨±)‘µÄ£¬PWMÝ”³ö¶¼ÊÇÕý³£µÄ£¬µ«ÊÇADCÝ”ÈëºÃÏñ²»Æð×÷ÓÃ


×÷Õß: jhczy    •rég: 2024-9-21 09:10
void ADC_Read(void)
{
        unsigned int i16Tem;
       ADC_CONTR|=0x02;               // ÔO(sh¨¨)¶¨ÞD(zhu¨£n)“QµÄͨµÀ,P3.2ÊÇ0100£¬Ôö¼Óß@¾ä               
        ADC_CONTR |= 0x40;                          //À^Àm(x¨´)ADÞD(zhu¨£n)“Q      
        _nop_();
        _nop_();
        
        while (!(ADC_CONTR & 0x20));                //²éÔƒADCÍê³É˜Ë(bi¨¡o)Ö¾
               
      
            ADC_CONTR &= ~0x20;                         //ÇåÖДà˜Ë(bi¨¡o)Ö¾

      i16Tem = ADC_RES<<8|ADC_RESL;  // ×xȡͨµÀ2 (P3.2) µÄADCÖµ
    ADC_CH =i16Tem;
}
×÷Õß: jhczy    •rég: 2024-9-21 09:11
³ÌÐòÖÐȱÉÙ¡°é_†¢ÞD(zhu¨£n)“QͨµÀ¡±ß@—lÕZ¾ä
×÷Õß: jhczy    •rég: 2024-9-21 09:12
ͬ•r߀ȱÉÙADC¼Ä´æÆ÷ÇåÁãµÄÕZ¾ä
×÷Õß: jhczy    •rég: 2024-9-21 09:16
³ÌÐòÖÐȱÉÙé_†¢¡°ÞD(zhu¨£n)“QͨµÀ¡±
×÷Õß: 2256024237    •rég: 2024-9-21 16:14
jhczy °l(f¨¡)±íÓÚ 2024-9-21 09:16
³ÌÐòÖÐȱÉÙé_†¢¡°ÞD(zhu¨£n)“QͨµÀ¡±


void ADC_Read(void)
{
        unsigned int i16Tem;
       ADC_CONTR|=0x02;               // ÔO(sh¨¨)¶¨ÞD(zhu¨£n)“QµÄͨµÀ,P3.2ÊÇ0100£¬Ôö¼Óß@¾ä               
        ADC_CONTR |= 0x40;                          //À^Àm(x¨´)ADÞD(zhu¨£n)“Q      
        _nop_();
        _nop_();
        
        while (!(ADC_CONTR & 0x20));                //²éÔƒADCÍê³É˜Ë(bi¨¡o)Ö¾
               
      
            ADC_CONTR &= ~0x20;                         //ÇåÖДà˜Ë(bi¨¡o)Ö¾

      i16Tem = ADC_RES<<8|ADC_RESL;  // ×xȡͨµÀ2 (P3.2) µÄADCÖµ
    ADC_RES=0;
    ADC_RESL=0;
    ADC_CH =i16Tem;
}

void ADC_Test(void)
{
        if(ADC_CH>560)
        {
                PWM_Output_Capp1(10);
        }
        else if((ADC_CH <= 500 ) &&(ADC_CH >= 100 ))
        {
                PWM_Output_Capp1(10);
        }
        else
        {
                PWM_Output_Capp1(256);
        }
       
}
ÎÒ‡LÔ‡ÖøÐÞ¸ÄÁË´ú´a£¬ÄÜ×xÈ¡µ½ADCÖµ£¬µ«ÊÇß@‚€ÖµËƺõÓÐЩ†–î}£¬ÎÒµÄPWM1ÊÇ¿ØÖÆÀ^ëŠÆ÷µÄ£¬ÎÒÔÚŒ¦°å×ÓÉÏëŠÒÔºó£¬À^ëŠÆ÷ÉÏëŠË²ég•þÎüºÏ£¬È»ºóÁ¢¿Ì¾Í”àé_ÁË¡£ADCÝ”ÈëÒýÄ_µÄ늉ºÒ»Ö±ÊÇ1.5V£¬MCUµÄ¹©ëŠëЉºÊÇ3.3V£¬ËùÒÔÀíÕ“ÉÏADC_CH µÄÖµ‘ª(y¨©ng)Ô“ÊÇ466×óÓÒ,µ«ÊLjÌ(zh¨ª)ÐеÄÊÇPWM_Output_Capp1(256);
×÷Õß: 2256024237    •rég: 2024-9-21 16:27

void ADC_Test(void)
{
        if(ADC_CH<100)
        {
                PWM_Output_Capp1(10);
        }
        else if((ADC_CH <= 500 ) &&(ADC_CH >= 100 ))
        {
                PWM_Output_Capp1(10);
        }
        else
        {
                PWM_Output_Capp1(256);
        }
       
}
ÎÒÐ޸ėl¼þºó£¬ÉÏ늺óÀ^ëŠÆ÷ÎüºÏ£¬´Ë•rADCÝ”ÈëÒýÄ_늉ºžé1.5V£¬ÎÒŒ¢ADCÝ”ÈëÒýÄ_늉º½µžé0£¬µ«ÊÇÀ^ëŠÆ÷²¢›]”àé_£¬¸ÐÓXÏñÊÇADCÔÚÉÏëŠË²ég¹¤×÷ÁËһϣ¬Ö®ºó¾Í›]ÓÃÁË¡£
×÷Õß: jhczy    •rég: 2024-9-23 08:47
2256024237 °l(f¨¡)±íÓÚ 2024-9-21 16:27
void ADC_Test(void)
{
        if(ADC_CH

ÉÏëŠË²égÎüºÏһϣ¬ÊǶ˿ÚÔO(sh¨¨)ÖõĆ–î}£¬‘ª(y¨©ng)Ô“Œ¢òŒ(q¨±)„ÓÀ^ëŠÆ÷£¨®”(d¨¡ng)È»²»ÄÜÖ±½Ó¿ØÖÆÀ^ëŠÆ÷µÄ£©¹¤×÷µÄIO¶Ë¿ÚÏÈÔO(sh¨¨)žé¸ß×裬ß@˜ÓÉÏëŠË²ég¾Í²»•þÎüºÏ
×÷Õß: jhczy    •rég: 2024-9-23 08:54
2256024237 °l(f¨¡)±íÓÚ 2024-9-21 16:14
void ADC_Read(void)
{
        unsigned int i16Tem;

void ADC_Read(void)
{
        unsigned int i16Tem;
       ADC_RES=0;
       ADC_RESL=0;
£¨‘ª(y¨©ng)·ÅÔÚß@À
       ADC_CONTR|=0x02;               // ÔO(sh¨¨)¶¨ÞD(zhu¨£n)“QµÄͨµÀ,P3.2ÊÇ0100£¬Ôö¼Óß@¾ä               
        ADC_CONTR |= 0x40;                          //À^Àm(x¨´)ADÞD(zhu¨£n)“Q      
        _nop_();
        _nop_();
        
        while (!(ADC_CONTR & 0x20));                //²éÔƒADCÍê³É˜Ë(bi¨¡o)Ö¾
               
      
            ADC_CONTR &= ~0x20;                         //ÇåÖДà˜Ë(bi¨¡o)Ö¾

      i16Tem = ADC_RES<<8|ADC_RESL;  // ×xȡͨµÀ2 (P3.2) µÄADCÖµ
//   ADC_RES=0;
//   ADC_RESL=0;
    ADC_CH =i16Tem;
}

×÷Õß: 2256024237    •rég: 2024-9-24 09:15
jhczy °l(f¨¡)±íÓÚ 2024-9-23 08:54
void ADC_Read(void)
{
        unsigned int i16Tem;

ÖxÖx£¬ÎÒÔÙÈ¥Ô‡Ò»ÏÂ




šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1