欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 我根據(jù)74hc595手冊 寫了個單片機程序 但是出現(xiàn)了問題 希望大家能給我點幫助 [打印本頁]

作者: 我要51啦    時間: 2020-2-25 16:37
標(biāo)題: 我根據(jù)74hc595手冊 寫了個單片機程序 但是出現(xiàn)了問題 希望大家能給我點幫助
流水燈是共陽極的 所以仿真運行的時候  實驗現(xiàn)象:流水燈會全亮一會 然后 就變得全滅了 然后就不再變化了


問題: 我寫的程序要求的是 亮滅亮滅 然后再流水 為什么 就只亮滅了一次 就不再變化了呢

各位大佬能指導(dǎo)下我嘛

單片機程序如下:

#include <reg52.h>
#include <intrins.h>
#include <delayms.h>

#define uchar unsigned char
#define uint unsigned int

uchar led_buff;

sbit DS1=P2^6;
sbit ST_CP1=P1^7;
sbit SH_CP1=P2^5;

void led8_Init();
void led8();

void led_sendbyte(uchar byte);
void led_595();



void main(void)
{
    led8_Init();
    while(1)
    {
        led8();
    }
}

void led8()  //流水燈
{
led_sendbyte(led_buff);
led_595();
led_buff=_crol_(led_buff,1);
delayms(500);
}

void led8_Init()  //初始化流水燈
{
led_sendbyte(0xff);
led_595();
delayms(500);
led_sendbyte(0x00);
led_595();
delayms(500);
led_sendbyte(0xff);
led_595();
delayms(500);
led_buff=0xfe;
}
void led_sendbyte(uchar byte) //傳輸8位數(shù)據(jù)
{
uchar i,num;
num=byte;
for(i=0;i<8;i++)
{
  if(num&0x80)
   DS1=1;
  else
   DS1=0;
  SH_CP1=0;
  _nop_();_nop_();
  SH_CP1=1;
  num=num<<1;
}
}
void led_595() // 啟動傳輸
{
ST_CP1=0;
_nop_();_nop_();
ST_CP1=1;
}



作者: wulin    時間: 2020-2-25 21:40
程序要求的是 亮滅亮滅 然后再流水
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. //#include <delayms.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit DS1=P2^6;
  7. sbit ST_CP1=P1^7;
  8. sbit SH_CP1=P2^5;

  9. uchar code table[]={
  10.                 0xfe,0xfd,0xfb,0xf7,
  11.                 0xef,0xdf,0xbf,0x7f};

  12. void delay(uint z)
  13. {
  14.         uchar x;
  15.         while(z--)           //1ms延時程序
  16.         for(x=120;x>0;x--);
  17. }
  18. void led_sendbyte(uchar byte) //傳輸8位數(shù)據(jù)
  19. {
  20.         uchar i,num;
  21.         num=byte;
  22.         for(i=0;i<8;i++)
  23.         {
  24.                 if(num&0x80)
  25.                         DS1=1;
  26.                 else
  27.                         DS1=0;
  28.                 SH_CP1=0;
  29.                 _nop_();_nop_();
  30.                 SH_CP1=1;
  31.                 num=num<<1;
  32.         }
  33.         ST_CP1=0;
  34.         _nop_();_nop_();
  35.         ST_CP1=1;
  36. }

  37. void main(void)
  38. {
  39.         uchar i;
  40.         for(i=0;i<2;i++)
  41.         {       
  42.                 led_sendbyte(0x00);
  43.                 delay(500);
  44.                 led_sendbyte(0xff);
  45.                 delay(500);
  46.         }
  47.         while(1)
  48.         {
  49.                 for(i=0;i<8;i++)
  50.                 {       
  51.                         led_sendbyte(table[i]);
  52.                         delay(500);
  53.                 }
  54.         }
  55. }

復(fù)制代碼

作者: csmyldl    時間: 2020-2-26 00:55
把 led8_Init();放進while循環(huán)中就會有了

void main(void)
{
  uchar k;
    while(1)
    {
        led8_Init();     //亮滅
        led8_Init();     //亮滅
       for (k=0;k<8;k++)    //流水
        led8();
    }
}
作者: haierzaifei11    時間: 2020-2-26 09:16
把 led8_Init();放進while循環(huán)中就會有了
作者: HC6800-ES-V2.0    時間: 2020-2-26 09:54
初始化595,只要一次led_sendbyte(0x00)就可以了,一定要先用。當(dāng)然,如果這樣led燈亮了,就要初始化led燈,再來一次led_sendbyte(0xff)就好了。
作者: 我要51啦    時間: 2020-2-26 13:49
昨天經(jīng)過實驗 發(fā)現(xiàn)是因為我把keil運行模式改成了large 我仿真時用的AT89c52而寫程序用的是STC 所以出現(xiàn)了問題 我把能放進code里面的數(shù)組都放進去了 把運行模式調(diào)回了small 現(xiàn)在已經(jīng)能成功運行了 謝謝大家
作者: singrain    時間: 2020-2-26 15:33
我要51啦 發(fā)表于 2020-2-26 13:49
昨天經(jīng)過實驗 發(fā)現(xiàn)是因為我把keil運行模式改成了large 我仿真時用的AT89c52而寫程序用的是STC 所以出現(xiàn)了問 ...

發(fā)張電路原理圖看看,共同學(xué)習(xí)一下。
作者: 我要51啦    時間: 2020-2-26 21:46
電路圖

I@1W6FZOAD1XD@042K0]}GG.png (15.7 KB, 下載次數(shù): 25)

595三個引腳接在io口上

595三個引腳接在io口上

作者: haierzaifei11    時間: 2020-2-27 08:37
把 led8_Init();放進while循環(huán)中就會有了
作者: singrain    時間: 2020-2-27 18:34
我要51啦 發(fā)表于 2020-2-26 21:46
電路圖

temp.c(4): warning C318: can't open file 'delayms.h'

在網(wǎng)上看別的文檔說8和13腳接地,10和16腳接VCC。但是一般原理圖里都缺少2個腳。
作者: singrain    時間: 2020-2-27 19:29
樓主代碼,我這缺少#include <delayms.h>文件,
自己畫了個原理圖做了個實物,用2樓代碼通過了,先全部閃2下,然后再依次按順序閃亮,
主要想學(xué)習(xí)控制數(shù)碼管,但是現(xiàn)在控制led燈還是搞不太明白,還要繼續(xù)努力學(xué)習(xí)啊!
在網(wǎng)上看好多74hc595的教學(xué)視頻,好多都是用arduino單片機降解的,:(

順便問一下,好多芯片介紹說某引腳接高或低電平有效時,如果不想用單片機控制,直接接+5V電源或負(fù)極可以么?







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1