欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 目前這個程序能實現0~f數碼管滾動流顯示,不知道怎么加上開始、復位和暫停 [打印本頁]

作者: Uni都未收到    時間: 2019-7-9 16:15
標題: 目前這個程序能實現0~f數碼管滾動流顯示,不知道怎么加上開始、復位和暫停
#include <reg52.h>
#include <intrins.h>

unsigned char key;


// 7段顯示代碼
unsigned char code display[] =
{
  0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90,  0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
};

unsigned char code key_code[] =
{
  //鍵編碼數組
  0xee, 0xed, 0xeb, 0xe7,
  0xde, 0xdd, 0xdb, 0xd7,
0xbe, 0xbd, 0xbb, 0xb7,
  0x7e, 0x7d, 0x7b, 0x77

};
char code reserve[3]_at_ 0x3b; //保留0x3b開始的三個字節

sbit k1 = P3 ^ 2;
sbit k2 = P3 ^ 3;
sbit k3 = P3 ^ 4;

/**********************************************************
延時子程序
**********************************************************/
void delayms(unsigned int ms)
{
  unsigned char t;
  while (ms--)
  {
    for (t = 0; t < 114; t++)
      ;
  }
}
/**********************************************************
x*0.14MS 延時
**********************************************************/
void delayus(unsigned char x)
{
  unsigned char i;
  while (x--)
  {
    for (i = 0; i < 14; i++)
    {
      ;
    }
  }
}

/**********************************************************
鍵盤掃描子程序
**********************************************************/
unsigned char keyscan()
{
  unsigned char scan1, scan2, keycode, j;
  P3 = 0xf0;
  scan1 = P3;
  if (scan1 != 0xf0)
  //判斷是否按下
  {
    delayms(10); //ÑÓʱ10ms
    scan1 = P3;
    if (scan1 != 0xf0)
    //二次判斷是否按下
    {
      P3 = 0x0f;
   delayms(10);
      scan2 = P3;
      keycode = scan1 | scan2; //組合成鍵掃描編碼
      for (j = 0; j < 16; j++)
      {
        if (keycode == key_code[j])
        //查表得鍵值
        {
          key = j;
          return (key); //返回有效有效鍵值
        }
      }
    }
  }
  else
    P3 = 0xff;
  return (key = 16); //返回無效鍵值
}

/**********************************************************
主程序
**********************************************************/
void main(void)
{
unsigned char k, shift,a;
  P0 = 0xff;                       //端口初始化
  P1 = 0xff;
P3 = 0xff;

  while (1)
  {

    shift = 0xfe;                  //位掃描初值
    P1 = 0xff;                     //關閉顯示
      keyscan();
  if (key < 16)
    //有效鍵值
    {
      a=(key+1)*200; //對延時進行調整
  }
  
    for (k = 0; k < 16; k++)
    {
      P0 = display[k];             //送段碼
      P1 = shift;                  //送位碼
      shift = _crol_(shift, 1);   
     delayms(a);
     }
   
    }   
   
  }

/*********************************************************/


作者: xianfajushi    時間: 2019-7-9 20:23
既然已經定義了按鈕K1-3那就寫按鈕處理去實現你的功能,如K1按下執行開始等
作者: Uni都未收到    時間: 2019-7-10 10:29
xianfajushi 發表于 2019-7-9 20:23
既然已經定義了按鈕K1-3那就寫按鈕處理去實現你的功能,如K1按下執行開始等

你好,現在按鈕的功能實現了,怎么把滾動顯示變成字符串一起顯示?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1