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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3245|回復: 15
收起左側

流水燈程序問題,不應該是亮一顆滅一顆嗎?為啥是一顆一顆接著亮不熄滅

[復制鏈接]
ID:953771 發表于 2021-7-17 18:58 來自觸屏版 | 顯示全部樓層 |閱讀模式
程序下載到單片機里面,不應該是亮一顆滅一顆嗎?為啥是一顆一顆接著亮不熄滅。
6WH[5`WJE}P$3RSC{OW4OCU.png
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 18:58 來自觸屏版 | 顯示全部樓層
請各位大佬指教
回復

使用道具 舉報

ID:824490 發表于 2021-7-17 20:05 | 顯示全部樓層
16燈的程序,給你一個參考:
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>
unsigned char i,dir;
unsigned int led16;

void delay(unsigned int t)
{
   while(t--);
}
   
void flash_mode1()
  {
    if (dir) led16=0x7fff;
    else     led16=0xfffe;
     for (i=0;i<16;i++)
     {
        P0=led16 & 0x00ff;
        P2=led16 >>8;
        delay(5000);
        if(dir) led16=_iror_(led16,1);
        else    led16=_irol_(led16,1);
     }
     dir=~dir;   
  }
   
void main(void)
{
    while (1)
   {
   flash_mode1() ;
   }
}
回復

使用道具 舉報

ID:824490 發表于 2021-7-17 20:07 | 顯示全部樓層
代碼有問題,你可以學著單步執行跟蹤一下,問題就出來了。
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 20:08 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2021-7-17 20:05
16燈的程序,給你一個參考:
#include
#include

好的,謝謝。
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 20:10 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2021-7-17 20:07
代碼有問題,你可以學著單步執行跟蹤一下,問題就出來了。

好的,謝謝
回復

使用道具 舉報

ID:824490 發表于 2021-7-17 20:10 | 顯示全部樓層
P0=(0XFE<<i)
這個代碼是沒有補位的。當左移一位后,最低位補進的是“0” ,所以你要作補“1”處理
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 20:23 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2021-7-17 20:10
P0=(0XFE

是不是就像,0xFE(1111  1110)往左移變成了
1111  1100,所以才不會熄滅。
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 20:25 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2021-7-17 20:10
P0=(0XFE

請問要補1的話應該怎么補
回復

使用道具 舉報

ID:824490 發表于 2021-7-17 20:31 | 顯示全部樓層
本帖最后由 名字不是重點 于 2021-7-17 20:33 編輯

用這個:_cror_ 指令,這個是帶“C”標志移位的。簡單地說是就環形移位,省去補“1”的動作
回復

使用道具 舉報

ID:161164 發表于 2021-7-17 22:16 | 顯示全部樓層
地獄火 發表于 2021-7-17 20:25
請問要補1的話應該怎么補

P0=(P0<<1)&0x01;

P0=~(0x01<<i);
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 23:10 來自觸屏版 | 顯示全部樓層
lkc8210 發表于 2021-7-17 22:16
P0=(P0

好的,謝謝。
回復

使用道具 舉報

ID:953771 發表于 2021-7-17 23:11 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2021-7-17 20:31
用這個:_cror_ 指令,這個是帶“C”標志移位的。簡單地說是就環形移位,省去補“1”的動作

好的,謝謝大哥
回復

使用道具 舉報

ID:954312 發表于 2021-7-18 13:38 | 顯示全部樓層
這個左移是后面自動補0,你可以定義一個變量移位然后對它取反,或者直接用—crol—(i,1)進行向左移位
回復

使用道具 舉報

ID:954170 發表于 2021-7-19 18:57 | 顯示全部樓層
流水燈程序,供參考

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

uchar a,b,c,d,e,f,g;
void delay(uchar Nms){
uchar i;
while(Nms--){
for(i=0;i<120;i++){;}
}
}
void main()
{
a=0xff;
b=0x55;
c=0xfe;
d=0x7f;

for(e=0;e<5;e++){b=~b;delay(250);P0=b;}
P0=a;delay(250);
for(f=0;f<8;f++){P0=c;c=_crol_(c,1);delay(250);}
P0=a;delay(250);
for(g=0;g<8;g++){P0=d;d=_cror_(d,1);

delay(250);
}




}
回復

使用道具 舉報

ID:952671 發表于 2021-7-19 21:38 | 顯示全部樓層
#include <reg52.h>//特殊功能的寄存器的頭文件
sbit LED0 =P0^0;//LED燈的點亮
sbit LED1 =P0^1;
sbit LED2 =P0^2;
sbit LED3 =P0^3;
sbit LED4 =P0^4;
sbit LED5 =P0^5;
sbit LED6 =P0^6;
sbit LED7 =P0^7;
sbit ADDR0 =P1^0;//138的A0口
sbit ADDR1 =P1^1;//138的A1口
sbit ADDR2 =P1^2;//138的A2口
sbit ADDR3 =P1^3;//
sbit ENLEAD =P1^4;//
void Delay(int i)
{
                while(i--);
}
int main ()
{               
                ADDR3 = 1;
                ENLEAD = 0;
/*位定義*/
//while(1)
//                                {
//                                        LED0=0;
//                                        Delay(50000);
//                                        LED0=1;
//                                        LED1=0;
//                                        Delay(50000);
//                                        LED1=1;
//                                        LED2=0;
//                                        Delay(50000);
//                                        LED2=1;
//                                        LED3=0;
//                                        Delay(50000);
//                                        LED3=1;
//                                        LED4=0;
//                                        Delay(50000);
//                                        LED4=1;
//                                        LED5=0;
//                                        Delay(50000);
//                                        LED5=1;
//                                        LED6=0;
//                                        Delay(50000);
//                                        LED6=1;
//                                        LED7=0;
//                                        Delay(50000);
//                                        LED7=1;
//                                        Delay(50000);
//                                }
/*左移右移*/
while(1)
                                {                int j;
                                          int g;
                                                P0=0Xfe;
                                                for(j=0;j<7;j++)
                                                {
                                                        P0=P0<<1;
                                                        Delay(50000);
                                                }
                                                for(g=0;g<7;g++)
                                                {
                                                        P0=P0>>1;
                                                        Delay(50000);
                                                }
                                }
}


僅供參考
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲视频 | 91精品国产欧美一区二区 | 久久久久国产精品午夜一区 | 久久久精品国产 | 盗摄精品av一区二区三区 | 国产一区二区三区网站 | 国产精品一区二区三区在线 | 日韩在线欧美 | 一级免费在线视频 | 一级aaaaaa毛片免费同男同女 | 久久网站黄 | 亚洲午夜视频在线观看 | 户外露出一区二区三区 | 欧美精品在线观看 | 在线观看成年视频 | 亚洲最色视频 | 日韩中文字幕一区 | 国产98色在线 | www.成人.com | 97超碰免费| 亚洲一区二区三区在线 | 日本中文在线 | 91精品国产91久久久久游泳池 | 亚洲国产中文字幕 | 国产一区二区三区免费观看在线 | 成人三级网址 | 精品国产乱码久久久久久久久 | 天天天天操 | 国产午夜精品久久 | 羞羞在线视频 | 黄色在线免费观看 | 精品在线播放 | 久久久精品综合 | 丝袜久久 | 国产一区二区精品在线 | 高清欧美性猛交xxxx黑人猛交 | 夜夜爽99久久国产综合精品女不卡 | 一区二区三区四区电影视频在线观看 | 69亚洲精品 | 欧美精品黄 | 久久国品片 |