久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2117|回復(fù): 4
收起左側(cè)

STC12C5A60S2光敏電阻讀取無(wú)法顯示 求幫助

[復(fù)制鏈接]
ID:517020 發(fā)表于 2019-5-15 22:07 | 顯示全部樓層 |閱讀模式
#include <STC12C5A.h>
#include <intrins.h>
unsigned int temp1,result,a,b;
typedef unsigned char u8;
sbit led1=P2^2;
sbit led2=P2^4;
u8 disp[4];
u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


sbit LSA=P2^5;//數(shù)碼管定義
sbit LSB=P2^6;//
sbit LSC=P2^7;//



void DELAY_10ms()//Ñóê±
{
        unsigned char a;
        for(a=30;a>0;a--);
}


void datapros()
{
        static u8 i;
        if(i==50)
        {
                i=0;
                temp1=ADC_CONTR; ;                //  光敏
        }
        disp[0]=smgduan[temp1/1000]
        disp[1]=smgduan[temp1%1000/100]
        disp[2]=smgduan[temp1%1000%100/10]
        disp[3]=smgduan[temp1%1000%100%10];               
}

void DigDisplay()
{
        u8 i;
        for(i=0;i<4;i++)
        {
                switch(i)        //位選
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break
                        case(1):
                                LSA=1;LSB=0;LSC=0; break
                        case(2):
                                LSA=0;LSB=1;LSC=0; break
                        case(3):
                                LSA=1;LSB=1;LSC=0; break
                }
                P0=disp[3];
               
                P0=0x00;
        }               
}

void AD_CONV()
{
        do
        {
                temp1=ADC_CONTR;
        }
        while((temp1&0x10)!=0x10);
        ADC_CONTR=0xE8;
        temp1=ADC_RESL;
        result+=temp1;
        temp1=ADC_RES;
        temp1=temp1&0x0003;
        temp1=_irol_(temp1,8);
        result+=temp1;
}        

void main()
{
        P1ASF=1^1;//光敏輸入口
        AUXR1=0x04;
        ADC_CONTR=0xE0;
        DELAY_10ms();
        ADC_CONTR=0xE8;
        AD_CONV();
        datapros();
        DigDisplay();
        
        
        while(1);
}



求解下載后數(shù)碼管為什么不顯示,此程序無(wú)錯(cuò)誤無(wú)警告

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-5-16 06:51 | 顯示全部樓層
本帖最后由 wulin 于 2019-5-16 11:43 編輯

樓主聲稱此程序無(wú)錯(cuò)誤無(wú)警告,只隨便看一下,錯(cuò)誤比比皆是:7處少了分號(hào),1處多了分號(hào),還有兩處是漢字分號(hào)。模擬入口竟然錯(cuò)寫(xiě)成 P1ASF=1^1;//光敏輸入口。
回復(fù)

使用道具 舉報(bào)

ID:517020 發(fā)表于 2019-5-16 18:30 | 顯示全部樓層
wulin 發(fā)表于 2019-5-16 06:51
樓主聲稱此程序無(wú)錯(cuò)誤無(wú)警告,只隨便看一下,錯(cuò)誤比比皆是:7處少了分號(hào),1處多了分號(hào),還有兩處是漢字分號(hào) ...

感謝大佬,少了分號(hào)可能是我粘貼代碼時(shí)刪去亂碼時(shí)忘記補(bǔ)上的,輸入口我原來(lái)寫(xiě)0x01,結(jié)果顯示輸入口未定義
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-5-16 22:14 | 顯示全部樓層
過(guò)客795 發(fā)表于 2019-5-16 18:30
感謝大佬,少了分號(hào)可能是我粘貼代碼時(shí)刪去亂碼時(shí)忘記補(bǔ)上的,輸入口我原來(lái)寫(xiě)0x01,結(jié)果顯示輸入口未定義

樓主改這樣試試
  1. #include <STC12C5A60S2.H>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. //宏定義ADC的操作命令
  6. #define ADC_POWER   0x80                        //ADC電源控制位
  7. #define ADC_START   0x08                        //ADC啟動(dòng)控制位
  8. #define ADC_FLAG    0x10                        //ADC完成標(biāo)志位
  9. #define ADC_SPEEDLL 0x00                        //420時(shí)鐘速度控制位

  10. sbit LSA=P2^5;//數(shù)碼管定義
  11. sbit LSB=P2^6;//
  12. sbit LSC=P2^7;//

  13. uchar code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  14. uchar disp[4];
  15. uint temp1,result,a,b;

  16. void delayms(uint k)//1T單片機(jī)延時(shí)
  17. {
  18.         uint i,j;
  19.         for(i=k;i>0;i--)
  20.                 for(j=1150;j>0;j--);
  21. }
  22. /*-----------------------------------------------------------------------------
  23.   InitADC 初始化ADC
  24. -----------------------------------------------------------------------------*/
  25. void InitADC()
  26. {
  27.         P1ASF=0x01;                                                //設(shè)置P1的第1通道端口作為模擬輸入
  28.         ADC_RES=0;                                                //清除ADC_RES存儲(chǔ)器以前的結(jié)果
  29.         ADC_RESL=0;                                                //清除ADC_RESL存儲(chǔ)器以前的結(jié)果
  30.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//ADC 開(kāi)啟電源、轉(zhuǎn)換速度 1000 0000
  31.         delayms(1);                                                //上電延時(shí)1ms                                                                                       
  32. }
  33. /*----------------------------------------------------------------------------
  34. Get ADC Result(獲取ADC結(jié)果)
  35. ----------------------------------------------------------------------------*/
  36. uint Read(uchar CHA)                                //獲取ADC結(jié)果
  37. {
  38.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CHA|ADC_START;//啟動(dòng)轉(zhuǎn)換1000 1000
  39.     _nop_();                        //延時(shí)確保正確讀到ADC_CONTR寄存器的值
  40.     _nop_();
  41.     _nop_();
  42.     _nop_();
  43.         while(!(ADC_CONTR & ADC_FLAG));        //等待ADC轉(zhuǎn)換完成標(biāo)志置位 1001 1000
  44.         ADC_CONTR &=~ADC_FLAG;                        //關(guān)閉ADC
  45.         return(ADC_RES*4+ADC_RESL);                //返回十位ADC結(jié)果
  46. }

  47. void datapros()
  48. {
  49.         static uint i=0;
  50.         if(++i>=1000)//大約1秒取樣一次
  51.         {
  52.                 i=0;
  53.                 temp1=Read(0); //讀取第一通道AD值//光敏
  54.                 disp[0]=smgduan[temp1/1000%10];
  55.                 disp[1]=smgduan[temp1/100%10];
  56.                 disp[2]=smgduan[temp1/10%10];
  57.                 disp[3]=smgduan[temp1%10];               
  58.         }
  59. }

  60. void DigDisplay()
  61. {
  62.         static uchar i=0;
  63.         P0=0x00;                        //消隱
  64.         switch(i)      //位選
  65.         {
  66.                 case(0):LSA=0;LSB=0;LSC=0;break;
  67.                 case(1):LSA=1;LSB=0;LSC=0;break;
  68.                 case(2):LSA=0;LSB=1;LSC=0;break;
  69.                 case(3):LSA=1;LSB=1;LSC=0;break;
  70.         }
  71.         P0=disp[i];
  72.         i++;
  73.         i%=4;           
  74. }

  75. void main()
  76. {
  77.         P1M0 = 0x00;
  78.         P1M1 = 0x01;
  79.         InitADC();
  80.         while(1)
  81.         {
  82.                 datapros();
  83.                 DigDisplay();
  84.                 delayms(1);
  85.         }
  86. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:517020 發(fā)表于 2019-5-21 12:20 | 顯示全部樓層

感謝,問(wèn)題已解決
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美五月婷婷 | 成人性生交大片 | 欧美日韩视频在线第一区 | 精品无码久久久久国产 | 久久综合久色欧美综合狠狠 | 在线观看视频一区 | 激情综合五月 | 在线国产视频 | 国产成人精品午夜视频免费 | 国产欧美精品 | 人人看人人射 | 欧美亚洲国产日韩 | 日本不卡一区二区三区在线观看 | 成人国产免费视频 | 99精品国产一区二区三区 | 欧美一级免费看 | 精品久久久久久 | 亚洲一区二区久久 | 国产传媒视频在线观看 | 99热欧美| 国产精品一区二区三区在线 | 一级大片| 欧洲精品一区 | 欧美精品一区二区三区四区五区 | 亚洲免费观看视频网站 | 99精品久久99久久久久 | 精品欧美乱码久久久久久 | 狠狠操狠狠操 | www.一区二区三区 | 欧美一区二区三区,视频 | 成人精品福利 | 中文字幕在线观看一区二区 | 91原创视频 | 国产区精品 | 亚洲天堂av网 | 中文字幕在线观看 | 国产一区视频在线 | 日韩欧美在线一区二区 | 国产成人精品免费视频大全最热 | 国产精品自产拍在线观看蜜 | 天堂综合 |