找回密码
 立即注册
楼主: qqq363080202

STC8G1K08 ADC模拟量问题求救

[复制链接]

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 2024-8-9 09:02:13 | 显示全部楼层
大*** 发表于 2024-8-8 19:33
上图中修正,部分内容

。。。 。。。

感谢大哥
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3194

回帖

4948

积分

论坛元老

积分
4948
发表于 2024-8-9 09:27:31 来自手机 | 显示全部楼层
taihang 发表于 2024-8-8 19:00
。。。。。。

P3口直接10进制啊,没认真看还不知道干嘛。
回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-02-19 19:46:19

7

主题

74

回帖

155

积分

注册会员

积分
155
发表于 2024-8-9 10:07:31 | 显示全部楼层
本帖最后由 taihang 于 2024-8-9 12:14 编辑
so*** 发表于 2024-8-9 09:27
P3口直接10进制啊,没认真看还不知道干嘛。
系统自动转换,此程序经实测通过。
LED4.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2025-05-07 07:23:02

0

主题

206

回帖

1538

积分

金牌会员

积分
1538
发表于 2024-8-9 18:59:27 | 显示全部楼层

应该的,坛友不客气
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 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数码管显示模拟量的 修改了下可以符合我的要求
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 11:58 , Processed in 0.196403 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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