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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2117|回復: 4
收起左側

STC12C5A60S2光敏電阻讀取無法顯示 求幫助

[復制鏈接]
ID:517020 發表于 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;//數碼管定義
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);
}



求解下載后數碼管為什么不顯示,此程序無錯誤無警告

回復

使用道具 舉報

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

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

使用道具 舉報

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

感謝大佬,少了分號可能是我粘貼代碼時刪去亂碼時忘記補上的,輸入口我原來寫0x01,結果顯示輸入口未定義
回復

使用道具 舉報

ID:213173 發表于 2019-5-16 22:14 | 顯示全部樓層
過客795 發表于 2019-5-16 18:30
感謝大佬,少了分號可能是我粘貼代碼時刪去亂碼時忘記補上的,輸入口我原來寫0x01,結果顯示輸入口未定義

樓主改這樣試試
  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啟動控制位
  8. #define ADC_FLAG    0x10                        //ADC完成標志位
  9. #define ADC_SPEEDLL 0x00                        //420時鐘速度控制位

  10. sbit LSA=P2^5;//數碼管定義
  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單片機延時
  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;                                                //設置P1的第1通道端口作為模擬輸入
  28.         ADC_RES=0;                                                //清除ADC_RES存儲器以前的結果
  29.         ADC_RESL=0;                                                //清除ADC_RESL存儲器以前的結果
  30.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//ADC 開啟電源、轉換速度 1000 0000
  31.         delayms(1);                                                //上電延時1ms                                                                                       
  32. }
  33. /*----------------------------------------------------------------------------
  34. Get ADC Result(獲取ADC結果)
  35. ----------------------------------------------------------------------------*/
  36. uint Read(uchar CHA)                                //獲取ADC結果
  37. {
  38.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CHA|ADC_START;//啟動轉換1000 1000
  39.     _nop_();                        //延時確保正確讀到ADC_CONTR寄存器的值
  40.     _nop_();
  41.     _nop_();
  42.     _nop_();
  43.         while(!(ADC_CONTR & ADC_FLAG));        //等待ADC轉換完成標志置位 1001 1000
  44.         ADC_CONTR &=~ADC_FLAG;                        //關閉ADC
  45.         return(ADC_RES*4+ADC_RESL);                //返回十位ADC結果
  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. }
復制代碼
回復

使用道具 舉報

ID:517020 發表于 2019-5-21 12:20 | 顯示全部樓層
wulin 發表于 2019-5-16 22:14
樓主改這樣試試

感謝,問題已解決
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产精品三级精品av网址 | 国产一区二区在线视频 | 91美女在线 | 粉嫩粉嫩芽的虎白女18在线视频 | 久久精品中文字幕 | 精品一二区 | 91天堂| 国产精品久久久精品 | www.色综合| 国产亚洲欧美日韩精品一区二区三区 | 91传媒在线观看 | 超碰操 | 精品一二区 | 国产一区二区免费 | 国产精品完整版 | 亚洲人成网站777色婷婷 | 天天操天天摸天天爽 | 日韩三区在线观看 | 激情一区二区三区 | 亚洲激情专区 | 欧美在线观看免费观看视频 | 毛片一区二区三区 | 国内精品久久久久久久 | 亚洲性在线| 激情欧美一区二区三区中文字幕 | www.天天操.com| 国产精品一区二区av | 夜夜爽99久久国产综合精品女不卡 | 中文在线一区二区 | 精品三级在线观看 | 中文字幕在线精品 | 亚洲精品中文字幕中文字幕 | 免费欧美 | 天天操精品视频 | 亚洲成人久久久 | 国产一区二区三区在线 | 国产91综合| 性高朝久久久久久久3小时 av一区二区三区四区 | 日韩中文视频 | av一级久久| 亚洲天堂中文字幕 |