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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2771|回復: 13
收起左側

按鍵控制流水燈 仿真可以 板子上就不行了 請教各位大神

[復制鏈接]
ID:425336 發表于 2018-11-15 11:34 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^6;
sbit key2=P1^7;
char k;
char tt;

void delay(uint m)
{
        char i,j;
        for(i=m;i>0;i--)
                for(j=1000;j>0;j--);       
}

void led1(void)//ÕyÏòμãááá÷Ë®μÆ
{
        P3=0XFE;
        delay(100);
        P3=0XFD;
        delay(100);
        P3=0XFB;
        delay(100);
        P3=0XF7;
        delay(100);
        P3=0XEF;
        delay(100);
        P3=0XDF;
        delay(100);
        P3=0XBF;
        delay(100);
        P3=0X7F;
        delay(100);

}  

void led2(void)//·′Ïòμãááá÷Ë®μÆ
{
    P3=0X7F;
        delay(100);
        P3=0XBF;
        delay(100);
        P3=0XDF;
        delay(100);
        P3=0XEF;
        delay(100);
    P3=0XF7;
        delay(100);
        P3=0XFB;
        delay(100);
        P3=0XFD;
        delay(100);
        P3=0XFE;
        delay(100);
}


void main (void)//Ö÷oˉêy
{
    TMOD=0X01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;//¿aÆô×üÖD¶Ï
        ET0=1;
        TR0=1;
        P1=0XFF;

        while(1)
        {
    switch(k)
                {
                        case 0:P1=0Xff;        break;
            case 1:led1();        break;
                        case 2:led2();        break;
        }       
     }
}
       
void time(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;


if((0xF0&P1)!=0XF0)
  {
        delay(100);
        if(key1==0)
                k=1;
        if(key2==0)
                k=2;

  }       
}       

       

回復

使用道具 舉報

ID:295874 發表于 2018-11-15 14:43 | 顯示全部樓層
暈死,定時器中斷里面還有delay(100),這不是開玩笑嘛。
回復

使用道具 舉報

ID:381277 發表于 2018-11-15 17:41 | 顯示全部樓層
兩個問題:1)key1 ,key2 的互鎖問題
                2)如樓上所說,定時器中斷里面還有delay(100)
改了就沒問題了
回復

使用道具 舉報

ID:427238 發表于 2018-11-15 18:20 | 顯示全部樓層
中斷里面根據key1和key2的狀態分別給k賦值1和2,跟while循環內的switch判斷k等于0和1的情況明顯不相符,樓主還請細心點。
回復

使用道具 舉報

ID:427298 發表于 2018-11-15 20:06 | 顯示全部樓層
代碼很有可能有問題
回復

使用道具 舉報

ID:427297 發表于 2018-11-15 23:09 | 顯示全部樓層
你這個中斷,是外部中斷,還是定時中斷?
回復

使用道具 舉報

ID:425336 發表于 2018-11-16 13:54 | 顯示全部樓層
liyongan_1985 發表于 2018-11-15 14:43
暈死,定時器中斷里面還有delay(100),這不是開玩笑嘛。

按鍵防抖用的  延遲函數會影響定時器中斷嗎?
回復

使用道具 舉報

ID:427689 發表于 2018-11-16 13:58 | 顯示全部樓層
定時器里的延時不要
回復

使用道具 舉報

ID:425336 發表于 2018-11-16 14:00 | 顯示全部樓層
LiaoCJ 發表于 2018-11-15 18:20
中斷里面根據key1和key2的狀態分別給k賦值1和2,跟while循環內的switch判斷k等于0和1的情況明顯不相符,樓 ...

等于0 代表燈全不亮   一開始就給k賦值0了;
回復

使用道具 舉報

ID:425336 發表于 2018-11-16 14:01 | 顯示全部樓層
huozhe0930 發表于 2018-11-15 23:09
你這個中斷,是外部中斷,還是定時中斷?

定時器中斷呢
回復

使用道具 舉報

ID:427689 發表于 2018-11-16 14:01 | 顯示全部樓層
定時器里的延時不要
while里的判斷換到中斷服務函數里
while里面只要執行程序 if(k)
回復

使用道具 舉報

ID:425336 發表于 2018-11-16 14:02 | 顯示全部樓層
ljx8940 發表于 2018-11-15 17:41
兩個問題:1)key1 ,key2 的互鎖問題
                2)如樓上所說,定時器中斷里面還有delay(100)
改 ...

謝謝  互鎖問題怎么解決呢、  定時器中斷里為啥不能有延遲函數呢?  那個不是可以用作按鍵防抖嗎?
回復

使用道具 舉報

ID:425336 發表于 2018-11-17 08:59 | 顯示全部樓層
nhmvvv 發表于 2018-11-16 14:01
定時器里的延時不要
while里的判斷換到中斷服務函數里
while里面只要執行程序 if(k)

是這樣嗎?也不行啊
void main (void)
{
    TMOD=0X01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        P1=0XFF;
        k=0;

        while(1)
        {
   if(k)
                 ;
     }
}
       
void time(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;

        if(key1==0)
                k=1;
        if(key2==0)
                k=2;
switch(k)
                {
                        case 0:P1=0Xff;        break;
      case 1:led1();        break;
                        case 2:led2();        break;
        }       
       
}       

       
回復

使用道具 舉報

ID:427689 發表于 2018-11-17 14:33 | 顯示全部樓層
xf是個小萌新 發表于 2018-11-17 08:59
是這樣嗎?也不行啊
void main (void)
{

if(k)里面寫東西沒?  我只是舉個例子 你自己把led1什么的和判斷加上
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级毛片视频 | 91精品国产综合久久精品 | 精品一区二区三区电影 | 福利网址| 九色在线视频 | 日韩一区二区三区在线看 | 婷婷免费在线 | 成人国产精品久久久 | 天天综合久久 | 亚洲国产成人av好男人在线观看 | 欧美中文一区 | 中国一级特黄真人毛片免费观看 | 日本欧美大片 | 天天综合国产 | 久久久久久久久久久久91 | 一级片av | 免费在线看黄 | 日本黄色影片在线观看 | 国产精品精品久久久 | 99re6在线视频精品免费 | 狠狠爱网址| 男女国产网站 | 91丨九色丨国产在线 | 国产亚洲一区二区三区在线 | 欧美精品福利视频 | 成人1区2区| 亚洲精品一区二区在线 | 武道仙尊动漫在线观看 | 久久久www成人免费无遮挡大片 | 免费在线看黄视频 | 国产成人99 | 亚洲综合大片69999 | 日韩亚洲视频 | 成人九色 | 污视频免费在线观看 | 日韩不卡在线 | 神马影院一区二区三区 | 中文字幕在线观看一区二区 | 91 久久 | 欧美一区二区免费 | 亚洲情视频|