亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? keyanddisplay.c

?? 基于MCS—51系列單片機I/O口的按鍵和顯示程序.
?? C
字號:
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>

#define uchar unsigned char
#define uint  unsigned int
sbit dq = P3^7;            //18B20單總線位變量
sbit P3_3 = P3^3;        //數碼管個十百位的位選端位變量
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P1_0 = P1^0;        //4055譯碼器的輸入接口
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;        //LED控制端
sbit P3_2 = P3^2;        //測試端口
sbit up = P1^7;          //上翻鍵
sbit set = P3^0;         //設定鍵
sbit down = P3^1;        //下翻鍵
bit  flag;
static uint Temperature;   //溫度終值
static uchar temp_buff[9]; //存儲讀取的字節,read scratchpad為9字節,read rom ID為8字節
static uchar id_buff[8];
static uchar *p;
static uchar crc_data;
static uchar code CrcTable [256]={
0,  94, 188,  226,  97,  63,  221,  131,  194,  156,  126,  32,  163,  253,  31,  65,
157,  195,  33,  127,  252,  162,  64,  30,  95,  1,  227,  189,  62,  96,  130,  220,
35,  125,  159,  193,  66,  28,  254,  160,  225,  191,  93,  3,  128,  222,  60,  98,
190,  224,  2,  92,  223,  129,  99,  61,  124,  34,  192,  158,  29,  67,  161,  255,
70,  24,  250,  164,  39,  121,  155,  197,  132,  218,  56,  102,  229,  187,  89,  7,
219,  133, 103,  57,  186,  228,  6,  88,  25,  71,  165,  251,  120,  38,  196,  154,
101,  59, 217,  135,  4,  90,  184,  230,  167,  249,  27,  69,  198,  152,  122,  36,
248,  166, 68,  26,  153,  199,  37,  123,  58,  100,  134,  216,  91,  5,  231,  185,
140,  210, 48,  110,  237,  179,  81,  15,  78,  16,  242,  172,  47,  113,  147,  205,
17,  79,  173,  243,  112,  46,  204,  146,  211,  141,  111,  49,  178,  236,  14,  80,
175,  241, 19,  77,  206,  144,  114,  44,  109,  51,  209,  143,  12,  82,  176,  238,
50,  108,  142,  208,  83,  13,  239,  177,  240,  174,  76,  18,  145,  207,  45,  115,
202,  148, 118,  40,  171,  245,  23,  73,  8,  86,  180,  234,  105,  55,  213, 139,
87,  9,  235,  181,  54,  104,  138,  212,  149,  203,  41,  119,  244,  170,  72,  22,
233,  183,  85,  11,  136,  214,  52,  106,  43,  117,  151,  201,  74,  20,  246,  168,
116,  42,  200,  150,  21,  75,  169,  247,  182,  232,  10,  84,  215,  137,  107,  53};
static uint LED_one,LED_two,LED_three;  //百位,十位,個位的顯示數變量
static uchar opera_flag;
static uint sum;
static uint num;
static uint tempera[5] = {0};       //溫度實時采樣值
static uint Temperature_final;      //顯示溫度
static uint Page_flag;             //顯示頁面標志
static uint Scantime_flag;         //掃鍵時間標志
static uint Key_value;              //鍵值
static uint timing_num;             //計數標志
static uint bdata Scan_flag;
sbit Keyscan_flag = Scan_flag^1;    //按鍵確認標志
sbit Up_flag = Scan_flag^2;         //上翻鍵確認標志
sbit Set_flag = Scan_flag^3;        //設定鍵確認標志
sbit Down_flag = Scan_flag^4;       //下翻鍵確認標志
void Display_key_1(void);
void Display_key_2(void);
void Key_scan(void);

/************************************************************
*function:在數碼管顯示
*parameter:
*Return:
*Modify:
*************************************************************/
void Dis_play_temp(uint x,uint y,uint z,uint k)
{
      if(1 == k)
      {
            switch(x)
	    {
	        case 0:
		    {
			    P1_3 = 0;
			    P1_2 = 0;
			    P1_1 = 0;
			    P1_0 = 0;
			    P3_3 = 0;
			    P3_4 = 1;
			    P3_5 = 1;
			};break;
			case 1:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			case 2:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
            case 3:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			case 4:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			case 5:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			 case 6:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			 case 7:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			 case 8:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
			 case 9:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 0;
			    P3_4 = 1;
				P3_5 = 1;
			};break;
                   }
             }
            else if(2 == k)
            {
              switch(y)
	      {
	        case 0:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			case 1:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			case 2:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
            case 3:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			case 4:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			case 5:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			 case 6:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			 case 7:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			 case 8:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
			 case 9:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 0;
				P3_5 = 1;
			};break;
             }
             }
             else
             {
		switch(z)
	        {
	        case 0:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			case 1:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			case 2:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
            case 3:
		    {
			    P1_3 = 0;
				P1_2 = 0;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			case 4:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			case 5:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			 case 6:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			 case 7:
		    {
			    P1_3 = 0;
				P1_2 = 1;
				P1_1 = 1;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			 case 8:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 0;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
			 case 9:
		    {
			    P1_3 = 1;
				P1_2 = 0;
				P1_1 = 0;
				P1_0 = 1;
				P3_3 = 1;
			    P3_4 = 1;
				P3_5 = 0;
			};break;
                }
                }
}

/************************************************************
*Function:延時處理
*parameter:
*Return:
*Modify:
*************************************************************/
void TempDelay (uchar us)
{
    while(us--);
}

/************************************************************
*function:解析要顯示的各個位值
*parameter:
*Return:
*Modify:
*************************************************************/
void Trans_temp(uint x)
{
    LED_one = x / 100;			//轉換百位值
    LED_two = (x - LED_one * 100)/10;
    LED_three = x - LED_two * 100 - LED_two * 10;
}

/************************************************************
*Function:定時5ms中斷
*parameter:
*Return:
*Modify:
*************************************************************/
void KeyAndDis_Timer0() interrupt 1 using 2
{
    TR0 = 0;
    TH0 = 0xf6;
    TL0 = 0x3c;
    TR0 = 1;
    Scantime_flag--;
    timing_num++;
    if(Scantime_flag == 0)
    {
        Scantime_flag = 1;
        Key_scan();
    }
}
/************************************************************
*Function:每30ms掃鍵一次,去抖30ms,調顯示,掃到鍵后100ms不再掃鍵
*parameter:
*Return:
*Modify:
*************************************************************/
void Key_scan(void)
{
    if(6 <= timing_num)          //掃描時間到
    {
        if((0 == up)||(0 == set)||(0 == down))           //有鍵按下
        {
            if(12 == timing_num) //去抖30ms
            {
                if((0 == up)||(0 == set)||(0 == down))   //確認有鍵按下
                {
                    Keyscan_flag = 1;
                    if(0 == up)                //若上翻鍵被按下
                        Up_flag = 1;       //上翻標志置1
                    else if(0 == set)
                        Set_flag = 1;
                    else Down_flag = 1;
                    Scantime_flag = 20;  //后100ms不再掃鍵
                    timing_num = 0;
                    Display_key_1();
                }
            }
        }
        else timing_num = 0;
    }
}

/************************************************************
*Function:掃描到鍵值后顯示相應內容,界面0和界面1
*parameter:
*Return:
*Modify:
*************************************************************/
void Display_key_1(void)
{
    if(1 == Keyscan_flag)
    {
        if((1 == Set_flag)&&(0 == Page_flag))     //在缺省界面下按設定鍵,則進入功能選擇界面
        {
            Page_flag = 1;                        //置相應的標志位和顯示值
            Key_value = 1;
            Keyscan_flag = 0;
            Set_flag = 0;
        }
        if((1 == Up_flag)&&(1 == Page_flag))      //在功能選擇菜單按上翻鍵
        {
            Up_flag = 0;
            Page_flag = 1;
            Keyscan_flag = 0;
            switch(Key_value)
            {
                case 0: Key_value = 3;break;
                case 1: Key_value = 0;break;
                case 2: Key_value = 1;break;
                case 3: Key_value = 2;break;
            }
        }
        if((1 == Down_flag)&&(1 == Page_flag))
        {
            Down_flag = 0;
            Page_flag = 1;
            Keyscan_flag = 0;
            switch(Key_value)
            {
                case 0: Key_value = 1;break;
                case 1: Key_value = 2;break;
                case 2: Key_value = 3;break;
                case 3: Key_value = 0;break;
            }
        }
        Display_key_2();
    }
}

/************************************************************
*Function:掃描到鍵值后顯示相應內容,界面2
*parameter:
*Return:
*Modify:
*************************************************************/
void Display_key_2(void)
{
    if(1 == Keyscan_flag)
    {
        if((1 == Set_flag)&&(1 == Page_flag))
        {
            Keyscan_flag = 0;
            Page_flag = 2;
            Set_flag = 0;
        }
    }
} 

void main()
{
    uint i;
    P3_3 = 1;
    P3_4 = 1;
    P3_5 = 1;
    P1_4 = 0;
    opera_flag = 0;
    EA = 1;				//允許CPU中斷
    ET0 = 1; 				//定時器0中斷打開
    TMOD = 0x1;			//設定時器為模式1,16位模式
    TH0=0xf6;
    TL0=0x3c;				//設定時值為5000us(5ms)
    TR0 = 1;				//定時器0裝入定時值
    num = 1;
    sum = 1;
    Page_flag = 0;                      //缺省界面標志為0
    LED_one = 0;
    LED_two = 0;
    LED_three = 0;
    timing_num = 0;                     //計數標志置0
    Scantime_flag = 1;
    Key_value = 0;                     //初始鍵值置0
    Keyscan_flag = 0;
    Up_flag = 0;
    Set_flag = 0;
    Down_flag = 0;
    while(1)
    {
        for(i=1;i<4;i++)
        {
            TempDelay(2500);
            Trans_temp(Key_value);
            Dis_play_temp(LED_one,LED_two,LED_three,i);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品精华液ab| 美国毛片一区二区三区| 日韩电影在线观看电影| 99综合电影在线视频| 日韩一区国产二区欧美三区| 亚洲欧美在线另类| www..com久久爱| 日韩欧美一区二区免费| 自拍视频在线观看一区二区| 国产一区福利在线| 欧美精品v日韩精品v韩国精品v| 国产精品欧美极品| 国产高清亚洲一区| 久久中文娱乐网| 日本va欧美va精品发布| 欧美性生活影院| 亚洲免费观看高清在线观看| 粉嫩久久99精品久久久久久夜| 欧美一区二视频| 偷偷要91色婷婷| 欧美日韩国产a| 亚洲国产另类av| 在线免费观看视频一区| 亚洲欧美在线高清| 国产成人av电影免费在线观看| 2024国产精品| 国模一区二区三区白浆| 精品粉嫩超白一线天av| 免费高清成人在线| 日韩精品一区二区三区中文不卡| 午夜精品福利在线| 777a∨成人精品桃花网| 日韩国产精品久久久| 欧美高清dvd| 美女视频第一区二区三区免费观看网站| 欧美三区免费完整视频在线观看| 精品一区二区免费看| 欧美电影免费观看高清完整版在线 | 欧美r级电影在线观看| 青青草97国产精品免费观看无弹窗版 | 欧美日韩在线播放一区| 亚洲国产乱码最新视频| 制服丝袜中文字幕一区| 麻豆精品在线播放| 亚洲精品在线观| 成人中文字幕电影| 亚洲女同女同女同女同女同69| 在线观看日韩毛片| 日韩一区欧美二区| 欧美精品一区在线观看| 成人av综合在线| 亚洲午夜电影在线| 日韩手机在线导航| 丁香天五香天堂综合| 亚洲激情图片qvod| 欧美一级专区免费大片| 国产乱子伦视频一区二区三区| 国产精品嫩草影院com| 在线亚洲一区二区| 蜜桃av噜噜一区| 国产欧美精品一区aⅴ影院| 色呦呦国产精品| 日精品一区二区三区| 国产片一区二区| 欧美色视频在线| 国内精品国产成人国产三级粉色| 国产精品久久久久久久蜜臀| 欧美亚洲日本国产| 狠狠色丁香婷婷综合| 亚洲人成网站在线| 欧美mv日韩mv亚洲| 91电影在线观看| 国产精品99久| 午夜欧美大尺度福利影院在线看 | 久久99精品一区二区三区三区| 中文字幕第一区综合| 欧美日韩国产另类一区| 成人短视频下载| 奇米精品一区二区三区在线观看一| 中文字幕精品在线不卡| 91精品久久久久久久99蜜桃| 99国产精品国产精品久久| 热久久久久久久| 有坂深雪av一区二区精品| 久久免费的精品国产v∧| 欧美日韩中文一区| 99久久国产综合精品色伊 | 欧美一区二区三区视频免费| 成人免费视频国产在线观看| 美国欧美日韩国产在线播放| 一区二区三区精品视频| 中文字幕精品一区| 26uuu精品一区二区在线观看| 日本韩国一区二区| youjizz久久| 国产精品亚洲一区二区三区妖精| 日韩精品亚洲专区| 亚洲成人自拍一区| 亚洲美女少妇撒尿| 中文字幕一区二区三区四区不卡 | 制服丝袜中文字幕亚洲| 欧美在线视频全部完| www..com久久爱| 成人深夜视频在线观看| 国产精品自产自拍| 狠狠色丁香久久婷婷综合_中| 麻豆中文一区二区| 日本vs亚洲vs韩国一区三区| 视频在线观看一区二区三区| 亚洲精品伦理在线| 亚洲最新在线观看| 亚洲一区二区视频| 亚洲成a人v欧美综合天堂| 一区二区三区日韩在线观看| 一区二区三区中文在线| 亚洲另类在线一区| 亚洲综合色自拍一区| 久久精品国产色蜜蜜麻豆| 午夜精品免费在线观看| 亚洲va欧美va国产va天堂影院| 亚洲夂夂婷婷色拍ww47 | 亚洲国产裸拍裸体视频在线观看乱了| 一区二区三区精品在线| 一个色在线综合| 亚洲国产精品一区二区www在线| 亚洲国产日韩在线一区模特| 亚洲成人自拍一区| 久久国产三级精品| 国产精品综合一区二区三区| 国产盗摄女厕一区二区三区| 成人avav影音| 色综合天天在线| 欧美绝品在线观看成人午夜影视| 欧美肥妇毛茸茸| 26uuu国产日韩综合| 国产精品拍天天在线| 亚洲免费观看高清完整版在线| 亚洲激情男女视频| 免费欧美日韩国产三级电影| 国产尤物一区二区在线| 不卡的电视剧免费网站有什么| 91黄色激情网站| 日韩欧美亚洲一区二区| 中国av一区二区三区| 亚洲午夜精品一区二区三区他趣| 日韩综合小视频| 国产精品影视在线| 欧美系列在线观看| 久久久久高清精品| 夜夜嗨av一区二区三区四季av | 欧美一区二区视频网站| 国产欧美日韩综合| 丝袜美腿亚洲一区二区图片| 国产馆精品极品| 欧美又粗又大又爽| 一区二区三区在线观看视频 | 一区二区三区四区高清精品免费观看 | 中文在线一区二区| 午夜一区二区三区在线观看| 国产乱码精品1区2区3区| 欧美无砖专区一中文字| 久久久国产午夜精品| 亚洲一本大道在线| 丁香网亚洲国际| 日韩欧美电影一区| 亚洲伊人伊色伊影伊综合网| 狠狠色2019综合网| 欧美高清视频一二三区| 中文字幕在线观看一区| 国产中文一区二区三区| 欧美日韩国产综合久久| 亚洲欧洲日韩一区二区三区| 狠狠色丁香婷婷综合| 884aa四虎影成人精品一区| 亚洲人成在线播放网站岛国| 国产成人午夜精品影院观看视频 | 精品成a人在线观看| 舔着乳尖日韩一区| 日本精品视频一区二区| 欧美国产欧美综合| 久久99精品久久久久久国产越南 | 91亚洲精品乱码久久久久久蜜桃 | 亚洲天堂免费看| 欧美伊人久久久久久午夜久久久久| 日本一二三不卡| 国产激情一区二区三区| 亚洲精品在线观| 另类的小说在线视频另类成人小视频在线| 一本到三区不卡视频| 最新成人av在线| av电影在线观看一区| 亚洲国产经典视频| 国产成人在线网站| 国产日韩欧美一区二区三区乱码 | 国产精品66部| 久久精品一区二区三区四区| 激情av综合网| 久久久五月婷婷| 国产福利91精品一区二区三区| 欧美va亚洲va|