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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用數(shù)組點亮單片機流水燈結果沒有動態(tài)效果直接全亮了?

[復制鏈接]
跳轉到指定樓層
樓主
ID:466499 發(fā)表于 2019-2-17 11:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
很喜歡51黑論壇,論壇里面有很多熱心的大佬,這是我見過的最有愛的論壇,沒有之一。每一位回貼的網友都是優(yōu)秀的老師,像我這樣的小白在這里能學到很多東西。
最近想用數(shù)組跑一個流水燈,LED的引腳是隨便接的,考慮到實際應用中也不可能有整組的引腳來操作,所以申明了個全局變量Y來整合這些引腳,問題好像就出現(xiàn)在這里。
這段代碼運行的結果沒有逐個點亮LED燈,而是一次全亮,顯示的是y得到數(shù)組最后一個元素0X0000全亮,for循環(huán)是遍歷了數(shù)組每個元素的,但為什么延時失效了?問題出在哪?好懵逼
#include<reg51.h>
sbit LED1  = P3^5;
sbit LED2  = P1^7;
sbit LED3  = P1^6;
sbit LED4  = P1^5;
sbit LED5  = P1^4;
sbit LED6  = P1^3;
sbit LED7  = P3^7;
sbit LED8  = P0^0;
sbit LED9  = P1^2;
sbit LED10 = P1^0;
sbit LED11 = P3^2;
sbit LED12 = P1^1;
//全局變量//
int y;
//定義LED數(shù)組//
int leddata[]={0x0ffe,0x0ffc,0x0ff8,0x0ff0,0x0fe0,0x0fc0,0x0f80,0x0f00,0x0e00,0x0c00,0x0800,0x0000};
//延時函數(shù)//
delay(int t)
{ int i,j;
        for(i=t;i>0;i--)
        {
                for(j=247;j>0;j--);
        }
}
//LED驅動函數(shù)//
void LED()
{
        LED1=0x0001&y;
        LED2=0x0002&y;
        LED3=0x0004&y;
        LED4=0x0008&y;
        LED5=0x0010&y;
        LED6=0x0020&y;
        LED7=0x0040&y;
        LED8=0x0080&y;
        LED9=0x0100&y;
        LED10=0x0200&y;
        LED11=0x0400&y;
        LED12=0x0800&y;
}

main()
{int a;
        LED();
        for (a=0;a<12;a++)
        {
                y=leddata[a];
                delay(100);
        }
               
}

QQ截圖20190217110929.png (18.43 KB, 下載次數(shù): 31)

QQ截圖20190217110929.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2019-2-17 20:36 | 只看該作者
你這樣寫LED驅動函數(shù)不行,改成這樣就可以了。



#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit LED1  = P3^5;
sbit LED2  = P1^7;
sbit LED3  = P1^6;
sbit LED4  = P1^5;
sbit LED5  = P1^4;
sbit LED6  = P1^3;
sbit LED7  = P3^7;
sbit LED8  = P0^0;
sbit LED9  = P1^2;
sbit LED10 = P1^0;
sbit LED11 = P3^2;
sbit LED12 = P1^1;
//全局變量//
uint y;
//定義LED數(shù)組//
uint leddata[]={0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f,0xfeff,0xfdff,0xfbff,0xf7ff};
//延時函數(shù)//
delay(uint t)
{
        uint i,j;
        for(i=t;i>0;i--)
                for(j=112;j>0;j--);
}
//LED驅動函數(shù)//
void LED(uint i)//寫入12位數(shù)據
{   
        LED1=i&0x01;i>>=1;       
        LED2=i&0x01;i>>=1;
        LED3=i&0x01;i>>=1;
        LED4=i&0x01;i>>=1;
        LED5=i&0x01;i>>=1;
        LED6=i&0x01;i>>=1;
        LED7=i&0x01;i>>=1;
        LED8=i&0x01;i>>=1;
        LED9=i&0x01;i>>=1;
        LED10=i&0x01;i>>=1;
        LED11=i&0x01;i>>=1;
        LED12=i&0x01;
}

void main()
{
        uchar j=0;
        while(1)
        {
                y=leddata[j];
                LED(y);
                j++;
                j%=12;
                delay(500);
        }
}


評分

參與人數(shù) 2黑幣 +18 收起 理由
Trump1438 + 8 回帖助人的獎勵!
toaaa + 10 跪謝大佬!按照你的例程我找到了我程序問題.

查看全部評分

回復

使用道具 舉報

板凳
ID:154074 發(fā)表于 2019-2-17 21:49 | 只看該作者
你的大循環(huán)沒寫
回復

使用道具 舉報

地板
ID:466499 發(fā)表于 2019-2-17 22:07 | 只看該作者
頂頂頂!還有沒有其它好方法實現(xiàn)啊,這種引腳分散的怎么用數(shù)組來操作哦?
回復

使用道具 舉報

5#
ID:466499 發(fā)表于 2019-2-17 22:46 | 只看該作者
wulin 發(fā)表于 2019-2-17 20:36
你這樣寫LED驅動函數(shù)不行,改成這樣就可以了。

看了你的例程,我在我的程序LED()驅動函數(shù)里面加了一個參數(shù)y,在main函數(shù)的for循環(huán)里面調用了這個帶參數(shù)的驅動函數(shù)LED(y),就美妙的跑起來了,跪謝大佬用心給我仿真,祝新年快樂!萬事大吉!
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91亚洲精选| 日韩不卡一二区 | 99精品国产一区二区三区 | www.狠狠干| 色综合久久天天综合网 | 黄色国产区 | 精品一二三区视频 | 亚洲国产专区 | 日日摸日日添日日躁av | 国产精品一区久久久 | 亚洲第一黄色网 | 国产成人精品久久二区二区 | 欧美日韩在线播放 | 国产在线观看网站 | 午夜精品久久久久久久久久久久久 | 99免费在线观看 | 欧美成人精品一区二区男人看 | 亚洲一区二区在线视频 | 一区二区三区四区日韩 | 中文字幕高清av | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产区免费视频 | 国产精品欧美一区二区三区不卡 | 日韩精品一区二区三区第95 | 久久国产麻豆 | 国产美女视频一区 | www.色.com | 国产小视频在线 | 亚洲午夜精品久久久久久app | 成人免费区一区二区三区 | 美女爽到呻吟久久久久 | 羞羞色影院 | 激情五月婷婷 | 欧美lesbianxxxxhd视频社区 | 欧美日韩福利视频 | 午夜a区 | 中文字幕一区二区视频 | 欧美在线a | 午夜在线小视频 | 久久精品国产亚洲 | 免费的色网站 |