亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 10個(gè)74HC595級(jí)聯(lián) 單片機(jī)程序請教 [打印本頁]

作者: 川人在柳    時(shí)間: 2020-9-5 13:08
標(biāo)題: 10個(gè)74HC595級(jí)聯(lián) 單片機(jī)程序請教
下面的程序可以發(fā)送10個(gè)8位二進(jìn)制代碼給級(jí)聯(lián)的10個(gè)74HC595嗎?我仿真的時(shí)候只顯示2個(gè)74HC595收到正確數(shù)據(jù),不知道是什么原因。

這個(gè)代碼我是拿CSDN上的代碼改的。是不是還需控制10腳MR和13腳OE呢?如果是,該怎么改程序呢?

目前的電路解法如下:
已確認(rèn)各74HC595的14腳SER與9腳Q7S

14腳SER 接 單片機(jī)P3.4

11腳SCK 接 單片機(jī)P3.6

12腳RCK接  單片機(jī)P3.5

13腳OE接GND

10腳MR接VCC


程序代碼如下:
#include<reg51.h>
#include<intrins.h>

typedef unsigned char uchar;
typedef unsigned int uint;

/**********函數(shù)聲明********************/
void SendTo595(uchar byteData);
/***********************************/

sbit SER = P3^4;    //p3.4腳控制串行數(shù)據(jù)輸入
sbit SCK = P3^6;    //串行輸入時(shí)鐘
sbit RCK = P3^5;    //存儲(chǔ)寄存器時(shí)鐘


void main()
{
charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  

      SendTo595(table[0]);  
      SendTo595(table[1]);         
      SendTo595(table[2]);  
      SendTo595(table[3]);
      SendTo595(table[4]);  
      SendTo595(table[5]);         
      SendTo595(table[6]);  
      SendTo595(table[7]);
      SendTo595(table[8]);         
      SendTo595(table[9]);  



   /*位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲(chǔ)寄存器*/
  RCK = 1;         //上升沿,讓存儲(chǔ)寄存器時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
  _nop_();
  _nop_();
  RCK = 0;
       while(1);

}

//功能:發(fā)送一個(gè)字節(jié)的數(shù)據(jù)給595,再并行輸出
void SendTo595(uchar byteData)
{
  char i=0;
   for(;i<8;i++)
   {
          SER = byteData>>7;         
       byteData= byteData<<1;      

         SCK = 1;          //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
       _nop_();
       _nop_();

       SCK = 0;          //變?yōu)榈碗娖剑瑸橄麓螠?zhǔn)備
  }  
   
}



作者: 川人在柳    時(shí)間: 2020-9-5 20:36
原理圖(只截2個(gè)595)

595.png (71.18 KB, 下載次數(shù): 67)

595.png

at89c52.png (24.29 KB, 下載次數(shù): 73)

at89c52.png

作者: wulin    時(shí)間: 2020-9-5 20:38
缺少 SCK = 0; RCK = 0; 初始化設(shè)置,其它沒有問題。

#include<reg51.h>
#include<intrins.h>

typedef unsigned char uchar;
typedef unsigned int uint;

/**********函數(shù)聲明********************/
void SendTo595(uchar byteData);
/***********************************/

sbit SER = P3^4;    //p3.4腳控制串行數(shù)據(jù)輸入
sbit SCK = P3^6;    //串行輸入時(shí)鐘
sbit RCK = P3^5;    //存儲(chǔ)寄存器時(shí)鐘

void main()
{
        char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  
        SCK = 0;
        RCK = 0;
        SendTo595(table[0]);  
        SendTo595(table[1]);         
        SendTo595(table[2]);  
        SendTo595(table[3]);
        SendTo595(table[4]);  
        SendTo595(table[5]);         
        SendTo595(table[6]);  
        SendTo595(table[7]);
        SendTo595(table[8]);         
        SendTo595(table[9]);  
        /*位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲(chǔ)寄存器*/
        RCK = 1;         //上升沿,讓存儲(chǔ)寄存器時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
        _nop_();
        _nop_();
        RCK = 0;
        while(1);
}
//功能:發(fā)送一個(gè)字節(jié)的數(shù)據(jù)給595,再并行輸出
void SendTo595(uchar byteData)
{
        char i=0;
        for(;i<8;i++)
        {
                SER = byteData>>7;         
                byteData= byteData<<1;      
                SCK = 1;          //上升沿,讓串行輸入時(shí)鐘變?yōu)楦唠娖剑⒀訒r(shí)2個(gè)時(shí)鐘周期
                _nop_();
                _nop_();
                SCK = 0;          //變?yōu)榈碗娖剑瑸橄麓螠?zhǔn)備
        }  
}


作者: 川人在柳    時(shí)間: 2020-9-5 21:07
感謝。
作者: 川人在柳    時(shí)間: 2020-9-5 21:16
wulin 發(fā)表于 2020-9-5 20:38
缺少 SCK = 0; RCK = 0; 初始化設(shè)置,其它沒有問題。

#include

十分感謝!加了初始化以后,完全避免了輸出不是想要輸出的問題了
作者: hmgqljz111    時(shí)間: 2020-9-5 22:01
wulin 發(fā)表于 2020-9-5 20:38
缺少 SCK = 0; RCK = 0; 初始化設(shè)置,其它沒有問題。

#include






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