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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2677|回復(fù): 7
收起左側(cè)

跪求大神指點(diǎn)!還是單片機(jī)LED流水燈的花樣控制和速度選擇的問(wèn)題!

[復(fù)制鏈接]
ID:503877 發(fā)表于 2019-4-12 22:15 | 顯示全部樓層 |閱讀模式
魚(yú)與熊掌不可兼得???上次成功切換花樣,這次不起作用了,倒是控制速度快慢做好了。是不是兩個(gè)中斷打架了???請(qǐng)大神幫忙看看!
a4.png
a3.png
a2.png
a1.png

流水燈.rar

2.01 KB, 下載次數(shù): 11

代碼文件

回復(fù)

使用道具 舉報(bào)

ID:337069 發(fā)表于 2019-4-13 07:49 | 顯示全部樓層
中斷0里面switch可以去掉,只要改變a值就行了;
mod函數(shù)里面的while(1) 死循環(huán),要加判斷:a值改變的時(shí)候要跳出循環(huán)。
也可以去掉mod里面的while(1),把那個(gè)switch語(yǔ)句放主函數(shù)while(1)里
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-4-13 15:15 | 顯示全部樓層
本帖最后由 wulin 于 2019-4-13 17:51 編輯

給你寫(xiě)一個(gè)可變速花樣流水燈示例。沒(méi)有用任何難懂的語(yǔ)句,你一看就該明白。
#include <reg52.h>
//#include "STC90C5xAD.h"
#include "intrins.h"        
#define u16 unsigned int
#define u8 unsigned char

sbit key1=P3^2;//速度選擇
sbit key2=P3^3;//花樣選擇

//花樣流水燈數(shù)組
u8 code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
u8 code table2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 code table3[]={0x00,0x81,0xc3,0xe7,0xff,0x7e,0x3c,0x18};
u8 code table4[]={0x18,0x3c,0x7e,0xff,0xe7,0xc3,0x81,0x00};

u8 a=1,b=1,c=0;//速度變量、花樣變量、選通變量
bit d=0;        //計(jì)時(shí)標(biāo)志
u16 tt=0;//中斷計(jì)數(shù)變量

void delay(u16 z)
{
        u16 x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void init()
{
        TMOD=0x01;
        TH0=(65536-1000)/256;//1ms
        TL0=(65536-1000)%256;//1ms
        TR0=1;
        EA=1;
        ET0=1;
}

void main()
{
        init();
        while(1)
        {
                if(!key1)
                {
                        delay(10);
                        if(!key1)
                        {
                                a++;
                                if(a>=5)
                                        a=1;
                                while(!key1);
                        }
                }
                if(!key2)
                {
                        delay(10);
                        if(!key2)
                        {
                                b++;
                                if(b>=5)
                                        b=1;
                                while(!key2);
                        }
                }
                if(d==1)
                {
                        d=0;
                        if(b==1)
                                P1=table1[c];        
                        if(b==2)
                                P1=table2[c];        
                        if(b==3)
                                P1=table3[c];        
                        if(b==4)
                                P1=table4[c];        
                        c++;
                        if(c>=8)
                                c=0;        
                }
        }
}        

void t0() interrupt 1
{
        TH0=(65536-1000)/256;//1ms
        TL0=(65536-1000)%256;//1ms
        tt++;        
        if(tt*a>=300)
        {        
                tt=0;
                d=1;
        }
}
回復(fù)

使用道具 舉報(bào)

ID:355499 發(fā)表于 2019-4-13 16:10 | 顯示全部樓層
中斷0里面switch可以去掉,只要改變a值就行了; mod函數(shù)里面的while(1) 死循環(huán),要加判斷:a值改變的時(shí)候要跳出循環(huán)。 也可以去掉mod里面的while(1),把那個(gè)switch語(yǔ)句放主函數(shù)while(1)里應(yīng)該就可以
回復(fù)

使用道具 舉報(bào)

ID:355499 發(fā)表于 2019-4-13 16:11 | 顯示全部樓層
給你寫(xiě)一個(gè)可變速花樣流水燈示例。沒(méi)有用如何難懂的語(yǔ)句,你一看就該明白。 #include <reg52.h> //#include "STC90C5xAD.h" #include "intrins.h"         #define u16 unsigned int #define u8 unsigned char  sbit key1=P3^2;//速度選擇 sbit key2=P3^3;//花樣選擇  //花樣流水燈數(shù)組 u8 code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; u8 code table2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; u8 code table3[]={0x00,0x81,0xc3,0xe7,0xff,0x7e,0x3c,0x18}; u8 code table4[]={0x18,0x3c,0x7e,0xff,0xe7,0xc3,0x81,0x00};  u8 a=1,b=1,c=0;//速度變量、花樣變量、選通變量 bit d=0;        //計(jì)時(shí)標(biāo)志 u16 tt=0;//中斷計(jì)數(shù)變量  void delay(u16 z) {         u16 x,y;         for(x=z;x>0;x--)                 for(y=110;y>0;y--); }  void init() {         TMOD=0x01;         TH0=(65536-1000)/256;//1ms         TL0=(65536-1000)%256;//1ms         TR0=1;         EA=1;         ET0=1; }  void main() {         init();         while(1)         {                 if(!key1)                 {                         delay(10);                         if(!key1)                         {                                 a++;                                 if(a>=5)                                         a=1;                                 while(!key1);                         }                 }                 if(!key2)                 {                         delay(10);                         if(!key2)                         {                                 b++;                                 if(b>=5)                                         b=1;                                 while(!key2);                         }                 }                 if(d==1)                 {                         d=0;                         if(b==1)                                 P1=table1[c];                                 if(b==2)                                 P1=table2[c];                                 if(b==3)                                 P1=table3[c];                                 if(b==4)                                 P1=table4[c];                                 c++;                         if(c>=8)                                 c=0;                         }         } }          void t0() interrupt 1 {         TH0=(65536-1000)/256;//1ms         TL0=(65536-1000)%256;//1ms         tt++;                 if(tt*a>=300)         {                         tt=0;                 d=1;         } }
回復(fù)

使用道具 舉報(bào)

ID:453576 發(fā)表于 2019-4-13 16:38 | 顯示全部樓層
代碼不夠有條理
回復(fù)

使用道具 舉報(bào)

ID:503877 發(fā)表于 2019-4-15 10:40 | 顯示全部樓層
wulin 發(fā)表于 2019-4-13 15:15
給你寫(xiě)一個(gè)可變速花樣流水燈示例。沒(méi)有用任何難懂的語(yǔ)句,你一看就該明白。
#include
//#include "STC90 ...

膜拜大神,你的代碼簡(jiǎn)單好用!!!
回復(fù)

使用道具 舉報(bào)

ID:503877 發(fā)表于 2019-4-15 10:41 | 顯示全部樓層
chtyise 發(fā)表于 2019-4-13 07:49
中斷0里面switch可以去掉,只要改變a值就行了;
mod函數(shù)里面的while(1) 死循環(huán),要加判斷:a值改變的時(shí)候 ...

謝謝,你的建議可行!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久国产一区 | 亚洲精品视频网站在线观看 | 久久三级av | 国产综合精品 | 亚洲网站观看 | 亚洲精品乱码8久久久久久日本 | 精品国产18久久久久久二百 | 精品一区二区三区91 | 黄色一级电影免费观看 | 国产精品综合网 | 精品视频一区二区 | 在线成人www免费观看视频 | 国产精品一区二区三区久久 | 日本人麻豆 | 男女羞羞视频在线免费观看 | 中文精品视频 | jizz亚洲人| 日韩在线观看一区 | 在线视频久久 | 国产精品国产精品国产专区不蜜 | 一区二区在线免费播放 | 精品96久久久久久中文字幕无 | 中文字幕在线看人 | 成人精品鲁一区一区二区 | 国产精品久久久久久久久久久久久 | 亚洲三区在线 | 黑人巨大精品欧美一区二区免费 | 国产一区二区三区久久久久久久久 | 国产午夜久久久 | 亚洲一区二区三区 | 黄色毛片网站在线观看 | 国产高清一区二区三区 | 日韩一区在线播放 | 一区二区三区视频在线观看 | 久久国产婷婷国产香蕉 | av国产精品毛片一区二区小说 | 免费在线观看成人av | 午夜免费福利影院 | 国产精品视频在线播放 | 日本久久久一区二区三区 | 久久亚洲一区 |