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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我這個單片機程序能讓八位數碼管顯示0-7并且閃爍嗎?求助各位大神

[復制鏈接]
跳轉到指定樓層
樓主
  1. #include<reg52.h>
  2. unsigned char code table[3]{0xfe,0x4f,};
  3. unsigned Delay(unsigned int t);
  4. void main (void)
  5. {
  6.       unsigned char i;//定義一個無符號型局部變量i取值范圍0-255
  7.     {
  8.          while(1)//主循環
  9.        {
  10.             for(i=0,i<10,i++)//加入for循環表明for循環大括號中的程序循環運行10次
  11.            {
  12.               P2=table[i];//循環調用表的數值
  13.               P0=table[i];//循環調用表的數值
  14.               Delay(50000);//延時,方便觀看數字變化
  15.            }
  16.        }
  17.      }
  18. }
  19. void Delay(unsigned int t)
  20. {
  21.       while(--t);
  22. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:96682 發表于 2019-1-27 18:22 | 只看該作者
能不能還得看電路
回復

使用道具 舉報

板凳
ID:456804 發表于 2019-1-27 19:42 | 只看該作者
不能,
回復

使用道具 舉報

地板
ID:95703 發表于 2019-1-27 21:07 | 只看該作者
不能,你的for循環是10,但table的大小只有3。而且不清楚你的硬件是怎樣的
回復

使用道具 舉報

5#
ID:473186 發表于 2019-1-28 03:50 | 只看該作者
上你空間看了一下你提的一些問題,發現你的學習方法很有問題,論壇里單片機與C語都有教程,網上也有很多,你應該是完全沒有看過。所以還是建議你靜下心先多多看,再編寫代碼。而不是一開始就按自己想的來編,結果漏洞百出!
unsigned char code table[3]{0xfe,0x4f,};這樣寫出來說明你很多問題沒了解

評分

參與人數 3黑幣 +34 收起 理由
找人PK + 12
刀刀見紅 + 12 贊一個!
Trump1438 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:164602 發表于 2019-1-28 09:27 | 只看該作者
給你一個程序和硬件配套的例子硬件電路:





程序:
/*******************************************************************************
* 實 驗 名                 : 動態顯示數碼管實驗
* 使用的IO             : 數碼管使用P0,P2.2,P2.3,P2.4
* 實驗效果       : 數碼管顯示76543210。
* 注    意                 :
*******************************************************************************/
#include<reg51.h>

#define GPIO_DIG P0

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
unsigned char DisplayData[8];
//用來存放要顯示的8位數的值
void DigDisplay(); //動態顯示函數
/*******************************************************************************
* 函 數 名         : main
* 函數功能                   : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void main(void)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                DisplayData=DIG_CODE;       
        }
        while(1)
        {
                DigDisplay();
        }                               
}
/*******************************************************************************
* 函 數 名         : DigDisplay
* 函數功能                   : 使用數碼管顯示
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void DigDisplay()
{
        unsigned char i;
        unsigned int j;
        for(i=0;i<8;i++)
        {
                switch(i)         //位選,選擇點亮的數碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0; break;//顯示第2位
                        case(3):
                                LSA=1;LSB=1;LSC=0; break;//顯示第3位
                        case(4):
                                LSA=0;LSB=0;LSC=1; break;//顯示第4位
                        case(5):
                                LSA=1;LSB=0;LSC=1; break;//顯示第5位
                        case(6):
                                LSA=0;LSB=1;LSC=1; break;//顯示第6位
                        case(7):
                                LSA=1;LSB=1;LSC=1; break;//顯示第7位       
                }
                GPIO_DIG=DisplayData;//發送段碼
                j=10;                                                 //掃描間隔時間設定
                while(j--);       
                GPIO_DIG=0x00;//消隱
        }
}

回復

使用道具 舉報

7#
ID:473410 發表于 2019-1-28 09:53 | 只看該作者
你這個table數組只有4個位置,然而你只寫入了2個值,也即是其他位置都是0,并且你要顯示0-7就有8個數,你應該創建一個長度為8的數組才對,unsigned char i;下面在接大括號括起來這種寫法是有問題的,for循環0到10就是循環11次明顯不對,建議樓主多看看C語言,把數碼管的原理理解清楚
回復

使用道具 舉報

8#
ID:250700 發表于 2019-1-28 14:31 | 只看該作者
//鍵盤4*4+8位數碼管仿真實例可以串口一下


#include<reg51.h>
#define uchar unsigned char
uchar temp;
int key1,key,disbuf;// 此表為 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f
unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char ledx[8];
bit  s0,s1;
void delay(uchar z)
  {
  uchar i,j;
  for(i=0;i<120;i++)
  for(j=0;j<z;j++);
  }
void scan()   //要是按鍵了,掃描鍵盤編碼值
  {
  P1=0xF0;
  delay(1);
  temp=P1;
  switch(temp)
    {
    case 0xe0: key1=0;
    break;
    case 0xd0: key1=1;
    break;
    case 0xb0: key1=2;
    break;
    case 0x70: key1=3;
    break;
    }
  P1=0x0f;
  delay(1);
  temp=P1;
  switch(temp)
    {
    case 0x0E: key=key1+0;
    break;
    case 0x0D: key=key1+4;
    break;
    case 0x0B: key=key1+8;
    break;
    case 0x07: key=key1+12;
    break;
    default : key=-1;
    }
  if((key1+1)&&(key+1)) disbuf=key;
  }
void ejjc()  //判斷是否按鍵
  {
  P1=0xF0;
  if(P1!=0xF0) { scan();s0=1;}
  else { s0=0; s1=1;}
  }
void main()
  {
  uchar i;
  while(1)
    {
    ejjc();
    if(s0==1  && s1==1)
      {
      s0=0;s1=0;
      for(i=0;i<8;i++)
        { ledx=ledx[i+1]; ledx[8]=disbuf; }
      }
    P0=0xff;
    P2=LED7Code[ledx[0]];
    P0=0xfe;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[1]];
    P0=0xfd;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[2]];
    P0=0xfb;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[3]];
    P0=0xf7;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[4]];
    P0=0xef;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[5]];
    P0=0xdf;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[6]];
    P0=0xbf;
    delay(5);
    P0=0xff;
    P2=LED7Code[ledx[7]];
    P0=0x7f;
    delay(5);
    }
  }

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频入口 | 精品日韩在线 | 在线观看国产精品视频 | 久久久久久久久久久久一区二区 | 一级片在线免费看 | 欧美成年网站 | 看一级黄色毛片 | 欧美一区二区在线免费观看 | 久久九精品 | 亚洲国产精品99久久久久久久久 | 亚洲乱码一区二区三区在线观看 | 中文字字幕一区二区三区四区五区 | 精品欧美一区免费观看α√ | 成人免费观看视频 | 日韩免费1区二区电影 | 久久久久久久亚洲精品 | 国产日韩欧美 | 欧美一区二区三区在线播放 | 亚洲人成人一区二区在线观看 | 精品视频在线一区 | 久久国产成人 | 精品久久一区 | 亚洲不卡在线观看 | 成人国产精品久久久 | 久久一区视频 | 欧美激情一区二区三区 | 日本精品一区 | 嫩草视频在线免费观看 | 亚洲欧洲精品一区 | 日韩在线不卡 | 免费观看色 | 精品一二三区 | 久久久91精品国产一区二区三区 | 国产一区二区毛片 | 婷婷久久精品一区二区 | 欧美成人激情 | 日本在线视频一区二区 | 日日夜夜精品免费视频 | 久久免费精品视频 | 国产一区二区三区视频 | 国产高清免费视频 |