qqq363080202 发表于 2024-8-9 09:02:13

大叶子 发表于 2024-8-8 19:33
上图中修正,部分内容

。。。 。。。


感谢大哥

soma 发表于 2024-8-9 09:27:31

taihang 发表于 2024-8-8 19:00
。。。。。。

P3口直接10进制啊,没认真看还不知道干嘛。

taihang 发表于 2024-8-9 10:07:31

本帖最后由 taihang 于 2024-8-9 12:14 编辑

soma 发表于 2024-8-9 09:27
P3口直接10进制啊,没认真看还不知道干嘛。系统自动转换,此程序经实测通过。

大叶子 发表于 2024-8-9 18:59:27

qqq363080202 发表于 2024-8-9 09:02
感谢大哥

应该的,坛友不客气

qqq363080202 发表于 2024-8-11 09:20:05

#include "STC8G.H"
#include "system.h"
#include "seg8display.h"
#include "STC8G_10AD.h"
#define   MAIN_Fosc       11059200UL//¶¨ÒåÖ÷ʱÖÓ
#define Timer0_Reload   (MAIN_Fosc / 1000)      //Timer 0 ÖÐ¶ÏÆµÂÊ, 1000´Î/Ãë
u8 t0_ct;
int vcc,vcc_1;
bit AD_change_bit,key_1_bit;
sbit      LED_8 = P3^7;
sbit      LED_7 = P3^6;
sbit      LED_6 = P3^5;
sbit      LED_5 = P3^4;
sbit                          LED_4 = P3^3;
sbit                          LED_3 = P3^2;
sbit                          LED_2 = P3^1;
sbit                          LED_1 = P3^0;
sbit      key_1 = P1^7;
void IO_init_config(void);
void IO_init_config(void)
{       
                P0M1 = 0x00;   
                P0M0 = 0x00;;   //P0ÉèÖÃΪ׼˫Ïò¿Ú
                P1M1 = 0x00;   
                P1M0 = 0x00;;   //P1ÉèÖÃΪ׼˫Ïò¿Ú               
                P2M1 = 0x00;   
                P2M0 = 0x00;;   //P2ÉèÖÃΪ׼˫Ïò¿Ú               
                P3M1 = 0x00;   
                P3M0 = 0x00;;   //P3ÉèÖÃΪ׼˫Ïò¿Ú               
                P4M1 = 0x00;   
                P4M0 = 0x00;;   //P4ÉèÖÃΪ׼˫Ïò¿Ú               
                P5M1 = 0x00;   
                P5M0 = 0x00;;   //P5ÉèÖÃΪ׼˫Ïò¿Ú
}


void timer0_int (void) interrupt 1//¶¨Ê±ÖжϷ½Ê½//
{
        Display_seg(); //1MSɨÃè
        if(++t0_ct >= 100)//0.1SÉÁ˸һ´Î
        {        t0_ct = 0;        AD_change_bit = 1;}
}

//8888888888888888888888888888888888888888888888888888888888888888888888888888888//
void main()//Ö÷³ÌÐò
{        IO_init_config();STC8G_ADC_Iint();       
    TR0 = 0;    //Í£Ö¹¼ÆÊý
    ET0 = 1;    //ÔÊÐíÖжÏ
    TMOD &= ~0x03;
    TMOD |= 0;//¹¤×÷ģʽ, 0: 16λ×Ô¶¯ÖØ×°,
    TMOD &= ~0x04;//¶¨Ê±
    INTCLKO &= ~0x01;//²»Êä³öʱÖÓ
    AUXR &= ~0x80;//12T mode
    TH0 = (u8)((65536UL - Timer0_Reload/12) / 256);
    TL0 = (u8)((65536UL - Timer0_Reload/12) % 256);
    TR0 = 1;   
                EA = 1;       
        while(1)
        {//AD_change_bit ½Óͨһ´Î¾ÍÑ­»··¢ËÍÒ»´ÎÊý¾Ýµ½ÊýÂë¹Ü,¼ä¸ôʱ¼äÓÉtimer0_int¾ö¶¨//
               if (key_1 == 0)   {if (key_1_bit == 1){key_1_bit = 0;} else{key_1_bit = 1; }   while(key_1 == 0); }//µ¥°´¼üÇл»on¡¢off//
               if(key_1_bit)   { AD_change_bit = 0;    Display_Buff();   vcc_1=(ADC_RES<<8)|ADC_RESL;    vcc = vcc_1*4;}//ÏÔʾģʽ1
               else{Display_Buffee();vcc_1=(ADC_RES<<8)|ADC_RESL;    vcc = vcc_1*4;}                                        //ÏÔʾģʽ2
               if       (vcc > 800){LED_8 = 0; LED_7 = 0; LED_6 = 0; LED_5 = 0; LED_4 = 0; LED_3 = 0; LED_2 = 0; LED_1 = 0; }//¸ù¾Ýµçѹ´óСµãÁÁ²»Í¬LED
   else if (vcc > 700){LED_8 = 1; LED_7 = 0; LED_6 = 0; LED_5 = 0; LED_4 = 0; LED_3 = 0; LED_2 = 0; LED_1 = 0; }
   else if (vcc > 600){LED_8 = 1; LED_7 = 1; LED_6 = 0; LED_5 = 0; LED_4 = 0; LED_3 = 0; LED_2 = 0; LED_1 = 0; }
   else if (vcc > 500){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 0; LED_4 = 0; LED_3 = 0; LED_2 = 0; LED_1 = 0; }
   else if (vcc > 400){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 1; LED_4 = 0; LED_3 = 0; LED_2 = 0; LED_1 = 0; }
           else if (vcc > 300){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 1; LED_4 = 1; LED_3 = 0; LED_2 = 0; LED_1 = 0; }
               else if (vcc > 200){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 1; LED_4 = 1; LED_3 = 1; LED_2 = 0; LED_1 = 0; }
           else if (vcc > 100){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 1; LED_4 = 1; LED_3 = 1; LED_2 = 1; LED_1 = 0; }
               else if (vcc > 000){LED_8 = 1; LED_7 = 1; LED_6 = 1; LED_5 = 1; LED_4 = 1; LED_3 = 1; LED_2 = 1; LED_1 = 1; }
               
        }       
}


这是其中一部分程序
最终在STC找了个ADC数码管显示模拟量的 修改了下可以符合我的要求
页: 1 [2]
查看完整版本: STC8G1K08 ADC模拟量问题求救