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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4610|回復: 11
打印 上一主題 下一主題
收起左側

最近在弄HEF4094的單片機驅動,可是總有點問題,求大神指點!

[復制鏈接]
跳轉到指定樓層
樓主
下面代碼是4094的輸入,不知道哪里出了問題,輸入和輸出的不太一樣,求指點。。。

void datain3(unsigned char dat16_09)
{
        unsigned char j;
        unsigned char i,tt;
        CLK4094 = 1;
        ST_4094_3  = 1;
        
        tt = dat16_09;        
        for(i = 0;i<9;i++)
        {
                j =  tt &(0x01);
                if(j == 1)
                {         DIN_4094_3 = 0;        }
                else
                {         DIN_4094_3 = 1;        }

                CLK4094 = 1;                    
                delay_us(20);
                CLK4094 = 0;        
                delay_us(20);         

                tt = tt>>1;
        }

        ST_4094_3   =  1;        
        delay_us(20);
        ST_4094_3   =  0;
        delay_us(20);

        CLK4094  =  1;  
//        ST_4094_3   =  1;
//        DIN_4094_3  =  1;
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2018-10-22 15:46 | 只看該作者
由于4094移位是先送高位再送低位所以你要把這兩句修改一下:
j =  tt &(0x01);   改為   j =  tt & 0x80;
tt = tt>>1;        改為   tt = tt<<1;
回復

使用道具 舉報

板凳
ID:410399 發表于 2018-10-23 08:31 | 只看該作者
xuyaqi 發表于 2018-10-22 15:46
由于4094移位是先送高位再送低位所以你要把這兩句修改一下:
j =  tt &(0x01);   改為   j =  tt & 0x80; ...

改了之后變成全部燈都亮了
回復

使用道具 舉報

地板
ID:94031 發表于 2018-10-23 13:27 | 只看該作者
mosqu 發表于 2018-10-23 08:31
改了之后變成全部燈都亮了

你的tt是什么值呢?
回復

使用道具 舉報

5#
ID:410399 發表于 2018-10-23 14:54 | 只看該作者
xuyaqi 發表于 2018-10-23 13:27
你的tt是什么值呢?

16進制的值,
回復

使用道具 舉報

6#
ID:94031 發表于 2018-10-23 15:12 | 只看該作者
你把程序打包出來
回復

使用道具 舉報

7#
ID:410399 發表于 2018-10-23 16:06 | 只看該作者
xuyaqi 發表于 2018-10-23 15:12
你把程序打包出來

#include <STC15W.h>
#include <intrins.h>

sbit DIN_4094_1 = P6^5;                //data
sbit ST_4094_1 = P6^7;                //str

sbit CLK_4094 = P4^3;                //SLK

unsigned char code zheng[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};   //逆時鐘旋轉相序表
unsigned char code fan[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};    //正時鐘旋轉相序表

void TransByteTo4094_ElecExpValve1(unsigned char dat16_09);

void delay_us(unsigned char i)
{
        unsigned char j;
        for(i; i>0;i--)
                for(j = 200;j>0;j--);
}
void delay(unsigned int o)
{
        while(--o);

}


void main()
{
        unsigned char n,k;
        unsigned char m;
        unsigned int time = 0;
        while(1)
        {
                for(time = 0; time < 50;time++)
                {
                        for(k = 0;k < 8; k++)
                        {
                                m = zheng[k];
                                TransByteTo4094_ElecExpValve1(m);
                                delay(500);
                               
                        }
                }
                for(time = 0; time < 50;time++)
                {
                        for(n = 0;n < 8; n++)
                        {
                                m = fan[n];
                                TransByteTo4094_ElecExpValve1(m);
                                delay(500);
                        }
                }

        }

}

void TransByteTo4094_ElecExpValve1(unsigned char dat16_09)
{
        unsigned char j;
        unsigned char i,tt;
        CLK_4094 = 1;
        ST_4094_1  = 1;
       
        tt = dat16_09;         
        for(i = 0;i<8;i++)
        {
                j =  tt &(0x01);
                if(j == 1)
                {         DIN_4094_1 = 0;        }
                else
                {         DIN_4094_1 = 1;        }

                CLK_4094 = 1;                        
                delay_us(10);
                CLK_4094 = 0;        
                delay_us(10);         

                tt = tt>>1;
        }

        ST_4094_1   =  1;        
        delay_us(10);
        ST_4094_1   =  0;
        delay_us(10);

        CLK_4094  =  1;   
        ST_4094_1   =  1;
        DIN_4094_1  =  1;
}

回復

使用道具 舉報

8#
ID:410399 發表于 2018-10-23 16:57 | 只看該作者
xuyaqi 發表于 2018-10-23 15:12
你把程序打包出來
  1. #include <STC15W.h>
  2. #include <intrins.h>

  3. sbit DIN_4094_1 = P6^5;                //data
  4. sbit ST_4094_1 = P6^7;                //str

  5. sbit CLK_4094 = P4^3;                //SLK

  6. unsigned char code zheng[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};   //逆時鐘旋轉相序表
  7. unsigned char code fan[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};    //正時鐘旋轉相序表

  8. void TransByteTo4094_ElecExpValve1(unsigned char dat16_09);

  9. void delay_us(unsigned char i)
  10. {
  11.         unsigned char j;
  12.         for(i; i>0;i--)
  13.                 for(j = 200;j>0;j--);
  14. }
  15. void delay(unsigned int o)
  16. {
  17.         while(--o);

  18. }


  19. void main()
  20. {
  21.         unsigned char n,k;
  22.         unsigned char m;
  23.         unsigned int time = 0;
  24.         while(1)
  25.         {
  26.                 for(time = 0; time < 50;time++)
  27.                 {
  28.                         for(k = 0;k < 8; k++)
  29.                         {
  30.                                 m = zheng[k];
  31.                                 TransByteTo4094_ElecExpValve1(m);
  32.                                 delay(500);
  33.                                
  34.                         }
  35.                 }
  36.                 for(time = 0; time < 50;time++)
  37.                 {
  38.                         for(n = 0;n < 8; n++)
  39.                         {
  40.                                 m = fan[n];
  41.                                 TransByteTo4094_ElecExpValve1(m);
  42.                                 delay(500);
  43.                         }
  44.                 }

  45.         }

  46. }

  47. void TransByteTo4094_ElecExpValve1(unsigned char dat16_09)
  48. {
  49.         unsigned char j;
  50.         unsigned char i,tt;
  51.         CLK_4094 = 1;
  52.         ST_4094_1  = 1;
  53.        
  54.         tt = dat16_09;         
  55.         for(i = 0;i<8;i++)
  56.         {
  57.                 j =  tt &(0x01);
  58.                 if(j == 1)
  59.                 {         DIN_4094_1 = 0;        }
  60.                 else
  61.                 {         DIN_4094_1 = 1;        }

  62.                 CLK_4094 = 1;                        
  63.                 delay_us(10);
  64.                 CLK_4094 = 0;        
  65.                 delay_us(10);         

  66.                 tt = tt>>1;
  67.         }

  68.         ST_4094_1   =  1;        
  69.         delay_us(10);
  70.         ST_4094_1   =  0;
  71.         delay_us(10);

  72.         CLK_4094  =  1;   
  73.         ST_4094_1   =  1;
  74.         DIN_4094_1  =  1;
  75. }

復制代碼
回復

使用道具 舉報

9#
ID:111634 發表于 2018-10-23 21:55 | 只看該作者
本帖最后由 zl2168 于 2018-10-24 09:01 編輯

實例43  CC4094串入并出控制8/16循環燈
Proteus仿真一下,確認有效。
實例43 CC4094串行輸出控制8-16循環燈.rar (67.45 KB, 下載次數: 30)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1.書中電路和程序設計有詳細說明,程序語句條條有注解。
回復

使用道具 舉報

10#
ID:94031 發表于 2018-10-24 09:15 | 只看該作者

要有硬件連接圖以及說明具體碰到什么問題?
回復

使用道具 舉報

11#
ID:410399 發表于 2018-10-24 10:12 | 只看該作者
xuyaqi 發表于 2018-10-24 09:15
要有硬件連接圖以及說明具體碰到什么問題?

已經解決了,謝謝大神指點
回復

使用道具 舉報

12#
ID:286963 發表于 2018-10-24 10:12 | 只看該作者
j =  tt &(0x01);   tt = tt>>1;    這里修改一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看成人小视频 | 在线激情视频 | 毛片在线视频 | 国产亚洲一区二区在线观看 | 欧美成人免费在线视频 | 亚洲综合日韩精品欧美综合区 | www.4虎影院 国产999精品久久久影片官网 | 在线观看国产视频 | 亚洲欧美日韩精品久久亚洲区 | 激情三区| 中文字幕高清在线 | 欧美专区日韩专区 | 91色视频在线 | 水蜜桃久久夜色精品一区 | 日韩中文字幕免费 | 日本理论片好看理论片 | 欧美日韩三级 | 成人在线一区二区三区 | 国产欧美日韩视频 | 午夜免费看 | 成人精品在线视频 | 黄色一级大片在线免费看产 | 国产在线对白 | 91国产视频在线观看 | 国产亚洲精品久久久久久牛牛 | 天天操 夜夜操 | 色综合视频在线 | 一级做a爰片性色毛片16美国 | 午夜天堂精品久久久久 | 天天射网站 | av影音资源 | 欧美a区 | 性生生活大片免费看视频 | 三级成人在线 | 欧美一级在线免费 | 免费午夜视频 | 日韩视频精品在线 | 国产一区二区三区 | 亚洲伦理自拍 | 超碰免费观看 | 国产精品一区二区三区四区 |