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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 768|回復: 2
打印 上一主題 下一主題
收起左側

請問一下單片機程序這樣為什么不能正確讀取溫度?

[復制鏈接]
跳轉到指定樓層
樓主
ID:1135260 發表于 2024-11-1 17:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用的普中的stc89c52
主函數:

#include <REGX52.H>#include "Delay.h"
#include "LCD1602.h"
#include "Matrix.h"
#include "Timer0.h"
#include "Key.h"
#include <INTRINS.H>
#include "DS1302.h"
#include "AT24C02.h"
#include "I2C.h"
#include "DS18B20.h"
#include "Buzzer.h"
#include "OneWire.h"


float TF,TE,temp,e;
char TH=30,TL;
unsigned char Keynum,n;
unsigned char mode=1;
unsigned char date[2];
unsigned int intT;

void change()
{
if(n==1)
{
mode++;
        if(mode>3)
                mode=3;
}
if(n==2)
{
mode--;
        if(mode<1)
        {
        mode=1;
        }
}
}


void main()
{
  unsigned char rom1[8],rom2[8];
        TH=AT24C02_RecieveByte(0);
        TL=AT24C02_RecieveByte(1);
        DS18B20_ConvertT();
        Delay(1000);
  LCD_Init();
        LCD_ShowNum(2,4,TH,2);
        LCD_ShowNum(2,10,TL,2);
        DS1302_Init();
        settime();
        while(1)
        {
                readtime();
//          DS18B20_ConvertT();
//                TF=DS18B20_ReadT();
      OneWire_Init();
        if (OneWire_RecieveBit() == 0) {
            OneWireSearchROM(rom1);
            DS18B20_ConvertT();
        Delay(750);
            TF=DS18B20_ReadT(rom1);
        }

        OneWire_Init();
        if (OneWire_RecieveBit() == 0) {
            OneWireSearchROM(rom2);
            DS18B20_ConvertT();
            Delay(750);
            TE = DS18B20_ReadT(rom2);
        }
               
               
                change();
                n=MatrixKey();
               
                if(mode==1)
                {               
                        LCD_ShowNum(1,12,DS1302_Time[4],2);
                LCD_ShowChar(1,14,':');
                LCD_ShowNum(1,15,DS1302_Time[5],2);

        LCD_ShowNum(2,4,TH,2);
                LCD_ShowNum(2,10,TL,2);
                if(TH>99||TL<0||TH<=TL)
                {
                TH=30;
                        TL=10;
                }
                if(TF<0)
                {
                        TF=0;        
                }
                else
                {
                LCD_ShowChar(1,1,'+');
                        if(TF>=100)
                        {
                        TF=100;
                        }
                }
                LCD_ShowNum(1,2,TF,3);
                LCD_ShowChar(1,5,'.');
                LCD_ShowNum(1,6,(unsigned long)(TF*100)%100,2);
                LCD_ShowString(2,1,"TH:");
                LCD_ShowString(2,7,"TL:");        
                Keynum=Key();

                if(Keynum)
                {
                if(Keynum==1)
                {
                TH++;
                        if(TH>100)
                                TH=100;
                }
                        if(Keynum==2)
                {
                TH--;
                        if(TH<=TL)
                                TH++;
                }
                        if(Keynum==3)
                {
                TL++;
                        if(TL>=TH)
                                TL--;
                }
                        if(Keynum==4)
                {
                TL--;
                        if(TL<0)
                                TL=0;
                }                        
                LCD_ShowNum(2,4,TH,2);
                LCD_ShowNum(2,10,TL,2);
                AT24C02_WriteByte(0,TH);
                Delay(5);               
                AT24C02_WriteByte(1,TL);
                Delay(5);
                }        

                if(TF>TH)
                {
                        Buzzer_Time(10);
                        LCD_ShowString(2,13,"OVER");
                        P2=~P2;
                }
                else
                {
                        if(TF<TL)
                {
     Buzzer_Time(10);
                        LCD_ShowString(2,13,"LOW");
                        P2=~P2;
                }        
                else
                {
                LCD_ShowString(2,13,"    ");
                }
        }
}
                }
}

DS18B20:#include <REGX52.H>
#include "OneWire.h"

#define DS18B20_SKIP_ROM  0xCC
#define DS18B20_CONVERT_T  0x44
#define DS18B20_READ_SCRATCHPAD 0xBE

void DS18B20_ConvertT()
{
        OneWire_Init();
        OneWire_SendByte(DS18B20_SKIP_ROM);
        OneWire_SendByte(DS18B20_CONVERT_T);
}


void OneWireMatchROM(unsigned char rom[8]) {
    OneWire_SendByte(0x55);
    OneWire_SendByte(rom[0]);
    OneWire_SendByte(rom[1]);
    OneWire_SendByte(rom[2]);
    OneWire_SendByte(rom[3]);
    OneWire_SendByte(rom[4]);
    OneWire_SendByte(rom[5]);
    OneWire_SendByte(rom[6]);
    OneWire_SendByte(rom[7]);
}

void OneWireSearchROM(unsigned char rom[8]) {
    unsigned char i, j;
    unsigned char id_bit, cmp_id_bit;
    unsigned char rom_bit;

    for (i = 0; i < 8; i++) {
        rom[ i] = 0;
    }

    OneWire_Init();

    OneWire_SendByte(0xF0);

    for (i = 0; i < 64; i++) {
        id_bit = OneWire_RecieveBit();
        cmp_id_bit = OneWire_RecieveBit();

        if (id_bit && cmp_id_bit) {
            return;
        }

        rom_bit = (id_bit << 1) | cmp_id_bit;

        for (j = 0; j < 8; j++) {
            if (rom_bit & 0x01) {
                OneWire_SendBit(1);
                rom[j] |= (1 << i);
            } else {
                OneWire_SendBit(0);
            }
            rom_bit >>= 1;
        }
    }
}

float DS18B20_ReadT(unsigned char rom[8])
{
        int Temp;
        float T;
        unsigned char TLSB,TMSB;
        OneWire_Init();
        OneWireMatchROM(rom);
        OneWire_SendByte(DS18B20_SKIP_ROM);
        OneWire_SendByte(DS18B20_READ_SCRATCHPAD);
        TLSB=OneWire_RecieveByte();
        TMSB=OneWire_RecieveByte();
        Temp=(TMSB<<8)|TLSB;
        T=Temp/16.0;
        return T;
}

Onewire:#include <REGX52.H>

sbit OneWire_DQ=P3^7;

unsigned char        OneWire_Init()
{
        unsigned char i;
        unsigned char AckBit;
  OneWire_DQ=1;
        OneWire_DQ=0;
        i = 247;while (--i);  //Delay 500us
        OneWire_DQ=1;
  i = 32;while (--i);   //Delay 70us
        AckBit=OneWire_DQ;
        i = 247;while (--i);  //Delay 500us
        return AckBit;
}

void OneWire_SendBit(unsigned char Bit)
{
        unsigned char i;
  OneWire_DQ=0;
        i = 4;while (--i);   //Delay 10us
        OneWire_DQ=Bit;
        i = 24;while (--i);  //Delay 50us
        OneWire_DQ=1;
}

unsigned char OneWire_RecieveBit()
{
  unsigned char i,Bit;
        OneWire_DQ=0;
        i = 2;while (--i);   //Delay 5us
        OneWire_DQ=1;
        i = 2;while (--i);   //Delay 5us
        Bit=OneWire_DQ;
        i = 24;while (--i);  //Delay 50us
        return Bit;
}

void OneWire_SendByte(unsigned char Byte)
{
unsigned char i;
        for(i=0;i<8;i++)
        {
        OneWire_SendBit(Byte&(0x01<<i));
        }
}

unsigned char OneWire_RecieveByte()
{
unsigned char i,Byte=0x00;
        for(i=0;i<8;i++)
        {
        if(OneWire_RecieveBit()){Byte|=(0x01<<i);}
        }
        return Byte;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1133081 發表于 2024-11-1 22:20 | 只看該作者
DS18B20對時序非常敏感,發送轉換命令后也要等待一段時間才能正確讀取溫度值。
回復

使用道具 舉報

板凳
ID:961114 發表于 2024-11-2 10:59 | 只看該作者
普中開發板 直接換成AI8051U 就可以USB直接下載了

  1. /*************  功能說明    **************

  2. 本例程基于AI8051U為主控芯片的實驗箱進行編寫測試。

  3. 使用Keil C251編譯器,Memory Model推薦設置XSmall模式,默認定義變量在edata,單時鐘存取訪問速度快。

  4. edata建議保留1K給堆棧使用,空間不夠時可將大數組、不常用變量加xdata關鍵字定義到xdata空間。

  5. 讀ADC和測溫度.

  6. 用STC的MCU的IO方式控制74HC595驅動8位數碼管。

  7. 使用Timer0的16位自動重裝來產生1ms節拍,程序運行于這個節拍下,用戶修改MCU主時鐘頻率時,自動定時于1ms.

  8. 右邊4位數碼管顯示溫度值, 分辨率0.1度.

  9. NTC使用1%精度的MF52 10K@25度.

  10. 測溫度時, 使用12位的ADC值, 使用對分查找表格來計算, 小數點后一位數是用線性插補來計算的.

  11. 下載時, 選擇時鐘 24MHZ (用戶可自行修改頻率).

  12. ******************************************/

  13. #include "..\..\comm\AI8051U.h"
  14. #include "stdio.h"
  15. #include "intrins.h"

  16. typedef         unsigned char        u8;
  17. typedef         unsigned int        u16;
  18. typedef         unsigned long        u32;

  19. /****************************** 用戶定義宏 ***********************************/

  20. #define MAIN_Fosc       24000000UL
  21. #define Timer0_Reload   (65536UL -(MAIN_Fosc / 1000))       //Timer 0 中斷頻率, 1000次/秒

  22. /*****************************************************************************/

  23. #define DIS_DOT     0x20
  24. #define DIS_BLACK   0x10
  25. #define DIS_        0x11

  26. /*************  IO口定義    **************/
  27. sbit    P_HC595_SER   = P3^4;   //pin 14    SER     data input
  28. sbit    P_HC595_RCLK  = P3^5;   //pin 12    RCLk    store (latch) clock
  29. sbit    P_HC595_SRCLK = P3^2;   //pin 11    SRCLK   Shift data clock

  30. /*************  本地常量聲明    **************/
  31. u8 code t_display[]={                       //標準字庫
  32. //   0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  33.     0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
  34. //black  -     H    J    K    L    N    o   P    U     t    G    Q    r   M    y
  35.     0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
  36.     0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};    //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1

  37. u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};      //位碼

  38. /*************  本地變量聲明    **************/

  39. u8  LED8[8];        //顯示緩沖
  40. u8  display_index;  //顯示位索引
  41. bit B_1ms;          //1ms標志

  42. u16 msecond;

  43. /*************  本地函數聲明    **************/
  44. u16 get_temperature(u16 adc);
  45. u16 Get_ADC12bitResult(u8 channel); //channel = 0~15

  46. /**********************************************/
  47. void main(void)
  48. {
  49.     u8  i;
  50.     u16 j;
  51.    
  52.     WTST = 0;  //設置程序指令延時參數,賦值為0可將CPU執行指令的速度設置為最快
  53.     EAXFR = 1; //擴展寄存器(XFR)訪問使能
  54.     CKCON = 0; //提高訪問XRAM速度

  55.     P0M1 = 0x00;   P0M0 = 0x00;   //設置為準雙向口
  56.     P1M1 = 0x08;   P1M0 = 0x00;   //設置為準雙向口, P1.3高阻輸入
  57.     P2M1 = 0x00;   P2M0 = 0x00;   //設置為準雙向口
  58.     P3M1 = 0x00;   P3M0 = 0x00;   //設置為準雙向口
  59.     P4M1 = 0x00;   P4M0 = 0x00;   //設置為準雙向口
  60.     P5M1 = 0x00;   P5M0 = 0x02;   //設置為準雙向口, P5.1推挽輸出
  61.     P6M1 = 0x00;   P6M0 = 0x00;   //設置為準雙向口
  62.     P7M1 = 0x00;   P7M0 = 0x00;   //設置為準雙向口

  63.     display_index = 0;
  64.     ADCTIM = 0x3f;                //設置 ADC 內部時序,ADC采樣時間建議設最大值
  65.     ADCCFG = 0x2f;                //設置 ADC 時鐘為系統時鐘/2/16/16
  66.     ADC_CONTR = 0x80; //使能 ADC 模塊

  67.     AUXR = 0x80;    //Timer0 set as 1T, 16 bits timer auto-reload,
  68.     TH0 = (u8)(Timer0_Reload / 256);
  69.     TL0 = (u8)(Timer0_Reload % 256);
  70.     ET0 = 1;    //Timer0 interrupt enable
  71.     TR0 = 1;    //Tiner0 run
  72.     EA = 1;     //打開總中斷
  73.    
  74.     P51 = 1;    //給NTC供電
  75.     for(i=0; i<8; i++)  LED8[i] = 0x10; //上電消隱
  76.    
  77.     while(1)
  78.     {
  79.         if(B_1ms)   //1ms到
  80.         {
  81.             B_1ms = 0;
  82.             if(++msecond >= 300)    //300ms到
  83.             {
  84.                 msecond = 0;
  85.                
  86.                 j = Get_ADC12bitResult(3);  //參數0~15,查詢方式做一次ADC, 返回值就是結果, == 4096 為錯誤

  87.                 if(j < 4096)
  88.                 {
  89.                 /*
  90.                     LED8[0] = j / 1000;     //顯示ADC值
  91.                     LED8[1] = (j % 1000) / 100;
  92.                     LED8[2] = (j % 100) / 10;
  93.                     LED8[3] = j % 10;
  94.                     if(LED8[0] == 0)    LED8[0] = DIS_BLACK;
  95.                 */
  96.                     j = get_temperature(j); //計算溫度值

  97.                     if(j >= 400)    F0 = 0, j -= 400;       //溫度 >= 0度
  98.                     else            F0 = 1, j  = 400 - j;   //溫度 <  0度
  99.                     LED8[4] = j / 1000;     //顯示溫度值
  100.                     LED8[5] = (j % 1000) / 100;
  101.                     LED8[6] = (j % 100) / 10 + DIS_DOT;
  102.                     LED8[7] = j % 10;
  103.                     if(LED8[4] == 0)    LED8[4] = DIS_BLACK;
  104.                     if(F0)  LED8[4] = DIS_;     //顯示-
  105.                 }
  106.                 else    //錯誤
  107.                 {
  108.                     for(i=0; i<8; i++)  LED8[i] = DIS_;
  109.                 }
  110.             }
  111.         }
  112.     }
  113. }
  114. /**********************************************/

  115. //========================================================================
  116. // 函數: u16 Get_ADC12bitResult(u8 channel)
  117. // 描述: 查詢法讀一次ADC結果.
  118. // 參數: channel: 選擇要轉換的ADC.
  119. // 返回: 12位ADC結果.
  120. // 版本: V1.0, 2012-10-22
  121. //========================================================================
  122. u16 Get_ADC12bitResult(u8 channel)  //channel = 0~15
  123. {
  124.     ADC_RES = 0;
  125.     ADC_RESL = 0;

  126.         ADC_CONTR = (ADC_CONTR & 0xf0) | channel; //設置ADC轉換通道
  127.         ADC_START = 1;//啟動ADC轉換
  128.     _nop_();
  129.     _nop_();
  130.     _nop_();
  131.     _nop_();

  132.     while(ADC_FLAG == 0);   //wait for ADC finish
  133.     ADC_FLAG = 0;     //清除ADC結束標志
  134.     return  (((u16)ADC_RES << 8) | ADC_RESL);
  135. }


  136. //  MF52E 10K at 25, B = 3950, ADC = 12 bits
  137. u16 code temp_table[]={
  138.         140,    //;-40  0
  139.         149,    //;-39  1
  140.         159,    //;-38  2
  141.         168,    //;-37  3
  142.         178,    //;-36  4
  143.         188,    //;-35  5
  144.         199,    //;-34  6
  145.         210,    //;-33  7
  146.         222,    //;-32  8
  147.         233,    //;-31  9
  148.         246,    //;-30  10
  149.         259,    //;-29  11
  150.         272,    //;-28  12
  151.         286,    //;-27  13
  152.         301,    //;-26  14
  153.         317,    //;-25  15
  154.         333,    //;-24  16
  155.         349,    //;-23  17
  156.         367,    //;-22  18
  157.         385,    //;-21  19
  158.         403,    //;-20  20
  159.         423,    //;-19  21
  160.         443,    //;-18  22
  161.         464,    //;-17  23
  162.         486,    //;-16  24
  163.         509,    //;-15  25
  164.         533,    //;-14  26
  165.         558,    //;-13  27
  166.         583,    //;-12  28
  167.         610,    //;-11  29
  168.         638,    //;-10  30
  169.         667,    //;-9   31
  170.         696,    //;-8   32
  171.         727,    //;-7   33
  172.         758,    //;-6   34
  173.         791,    //;-5   35
  174.         824,    //;-4   36
  175.         858,    //;-3   37
  176.         893,    //;-2   38
  177.         929,    //;-1   39
  178.         965,    //;0    40
  179.         1003,   //;1    41
  180.         1041,   //;2    42
  181.         1080,   //;3    43
  182.         1119,   //;4    44
  183.         1160,   //;5    45
  184.         1201,   //;6    46
  185.         1243,   //;7    47
  186.         1285,   //;8    48
  187.         1328,   //;9    49
  188.         1371,   //;10   50
  189.         1414,   //;11   51
  190.         1459,   //;12   52
  191.         1503,   //;13   53
  192.         1548,   //;14   54
  193.         1593,   //;15   55
  194.         1638,   //;16   56
  195.         1684,   //;17   57
  196.         1730,   //;18   58
  197.         1775,   //;19   59
  198.         1821,   //;20   60
  199.         1867,   //;21   61
  200.         1912,   //;22   62
  201.         1958,   //;23   63
  202.         2003,   //;24   64
  203.         2048,   //;25   65
  204.         2093,   //;26   66
  205.         2137,   //;27   67
  206.         2182,   //;28   68
  207.         2225,   //;29   69
  208.         2269,   //;30   70
  209.         2312,   //;31   71
  210.         2354,   //;32   72
  211.         2397,   //;33   73
  212.         2438,   //;34   74
  213.         2479,   //;35   75
  214.         2519,   //;36   76
  215.         2559,   //;37   77
  216.         2598,   //;38   78
  217.         2637,   //;39   79
  218.         2675,   //;40   80
  219.         2712,   //;41   81
  220.         2748,   //;42   82
  221.         2784,   //;43   83
  222.         2819,   //;44   84
  223.         2853,   //;45   85
  224.         2887,   //;46   86
  225.         2920,   //;47   87
  226.         2952,   //;48   88
  227.         2984,   //;49   89
  228.         3014,   //;50   90
  229.         3044,   //;51   91
  230.         3073,   //;52   92
  231.         3102,   //;53   93
  232.         3130,   //;54   94
  233.         3157,   //;55   95
  234.         3183,   //;56   96
  235.         3209,   //;57   97
  236.         3234,   //;58   98
  237.         3259,   //;59   99
  238.         3283,   //;60   100
  239.         3306,   //;61   101
  240.         3328,   //;62   102
  241.         3351,   //;63   103
  242.         3372,   //;64   104
  243.         3393,   //;65   105
  244.         3413,   //;66   106
  245.         3432,   //;67   107
  246.         3452,   //;68   108
  247.         3470,   //;69   109
  248.         3488,   //;70   110
  249.         3506,   //;71   111
  250.         3523,   //;72   112
  251.         3539,   //;73   113
  252.         3555,   //;74   114
  253.         3571,   //;75   115
  254.         3586,   //;76   116
  255.         3601,   //;77   117
  256.         3615,   //;78   118
  257.         3628,   //;79   119
  258.         3642,   //;80   120
  259.         3655,   //;81   121
  260.         3667,   //;82   122
  261.         3679,   //;83   123
  262.         3691,   //;84   124
  263.         3702,   //;85   125
  264.         3714,   //;86   126
  265.         3724,   //;87   127
  266.         3735,   //;88   128
  267.         3745,   //;89   129
  268.         3754,   //;90   130
  269.         3764,   //;91   131
  270.         3773,   //;92   132
  271.         3782,   //;93   133
  272.         3791,   //;94   134
  273.         3799,   //;95   135
  274.         3807,   //;96   136
  275.         3815,   //;97   137
  276.         3822,   //;98   138
  277.         3830,   //;99   139
  278.         3837,   //;100  140
  279.         3844,   //;101  141
  280.         3850,   //;102  142
  281.         3857,   //;103  143
  282.         3863,   //;104  144
  283.         3869,   //;105  145
  284.         3875,   //;106  146
  285.         3881,   //;107  147
  286.         3887,   //;108  148
  287.         3892,   //;109  149
  288.         3897,   //;110  150
  289.         3902,   //;111  151
  290.         3907,   //;112  152
  291.         3912,   //;113  153
  292.         3917,   //;114  154
  293.         3921,   //;115  155
  294.         3926,   //;116  156
  295.         3930,   //;117  157
  296.         3934,   //;118  158
  297.         3938,   //;119  159
  298.         3942    //;120  160
  299. };

  300. /********************  計算溫度 ***********************************************/
  301. // 計算結果: 0對應-40.0度, 400對應0度, 625對應25.0度, 最大1600對應120.0度.
  302. // 為了通用, ADC輸入為12bit的ADC值.
  303. // 電路和軟件算法設計: Coody
  304. /**********************************************/

  305. #define     D_SCALE     10      //結果放大倍數, 放大10倍就是保留一位小數
  306. u16 get_temperature(u16 adc)
  307. {
  308.     u16 code *p;
  309.     u16 i;
  310.     u8  j,k,min,max;
  311.    
  312.     adc = 4096 - adc;   //Rt接地
  313.     p = temp_table;
  314.     if(adc < p[0])      return (0xfffe);
  315.     if(adc > p[160])    return (0xffff);
  316.    
  317.     min = 0;        //-40度
  318.     max = 160;      //120度

  319.     for(j=0; j<5; j++)  //對分查表
  320.     {
  321.         k = min / 2 + max / 2;
  322.         if(adc <= p[k]) max = k;
  323.         else            min = k;
  324.     }
  325.          if(adc == p[min])  i = min * D_SCALE;
  326.     else if(adc == p[max])  i = max * D_SCALE;
  327.     else    // min < temp < max
  328.     {
  329.         while(min <= max)
  330.         {
  331.             min++;
  332.             if(adc == p[min])   {i = min * D_SCALE; break;}
  333.             else if(adc < p[min])
  334.             {
  335.                 min--;
  336.                 i = p[min]; //min
  337.                 j = (adc - i) * D_SCALE / (p[min+1] - i);
  338.                 i = min;
  339.                 i *= D_SCALE;
  340.                 i += j;
  341.                 break;
  342.             }
  343.         }
  344.     }
  345.     return i;
  346. }

  347. /**************** 向HC595發送一個字節函數 ******************/
  348. void Send_595(u8 dat)
  349. {
  350.     u8  i;
  351.     for(i=0; i<8; i++)
  352.     {
  353.         dat <<= 1;
  354.         P_HC595_SER   = CY;
  355.         P_HC595_SRCLK = 1;
  356.         P_HC595_SRCLK = 0;
  357.     }
  358. }

  359. /********************** 顯示掃描函數 ************************/
  360. void DisplayScan(void)
  361. {
  362.     Send_595(t_display[LED8[display_index]]);   //輸出段碼
  363.     Send_595(~T_COM[display_index]);            //輸出位碼

  364.     P_HC595_RCLK = 1;
  365.     P_HC595_RCLK = 0;
  366.     if(++display_index >= 8)    display_index = 0;  //8位結束回0
  367. }

  368. /********************** Timer0 1ms中斷函數 ************************/
  369. void timer0 (void) interrupt 1
  370. {
  371.     DisplayScan();  //1ms掃描顯示一位
  372.     B_1ms = 1;      //1ms標志
  373. }
復制代碼

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久久冷 | 999久久久久久久 | 五月婷亚洲 | 国产午夜亚洲精品不卡 | 激情一区 | 91免费版在线 | 美日韩免费视频 | 中文字幕亚洲无线 | 精品国产一区二区三区性色 | 午夜三区 | 久久9999久久| 日韩高清国产一区在线 | www.精品国产| 91在线精品视频 | 成人免费xxxxx在线视频 | av黄色在线观看 | 一区 | 精品国产乱码久久久久久影片 | 国产成人在线看 | 日本爱爱视频 | 日韩一区二区三区在线视频 | 夜夜操天天干 | 日韩精品视频一区二区三区 | 亚洲高清视频在线观看 | 成人午夜免费视频 | 国产综合久久 | 日本五月婷婷 | 特级毛片| 亚洲精品二区 | 一区二区在线免费观看 | 高清国产午夜精品久久久久久 | 日韩精品久久久久 | 黄色毛片黄色毛片 | 久久精品免费观看 | 国产黄色av网站 | 麻豆久久久久久 | 夏同学福利网 | 亚洲欧美日韩精品久久亚洲区 | 久久国产精品久久久久久 | 日韩视频三区 | 国产专区免费 |