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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

如何用單片機點亮一個74HC595控制的二極管

查看數: 4491 | 評論數: 8 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-12-15 00:01

正文摘要:

誰能告訴我,這個LED如何點亮? 有了74HC595控制我就不會了,麻煩講一下,這個的工作原理。

回復

ID:424795 發表于 2018-12-24 13:32
HC6800-ES-V2.0 發表于 2018-12-15 00:01
哈哈哈,你發的問題,正是我有的板子,程序也有啊。
#include
#include

你有這個板子的電子鐘(C語言)的程序沒有?只要求能調節時間就可以
ID:317383 發表于 2018-12-15 09:57
file:///C:/Users/Administrator/Desktop/595-2-seg.gif

595-2-seg.gif (63.98 KB, 下載次數: 93)

595-2-seg.gif

4個按鍵功能.rar

48.24 KB, 下載次數: 17

ID:317383 發表于 2018-12-15 09:44
74hc595是串入并出的芯片,利用51單片機模擬串行接口使用,簡單使用如下

sbit data_595 = P3^4;
sbit clk_595 = P3^6;
sbit LATCH_595 = P3^5;

void wr_bits(uchar num)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                if(num&0x80)         //′ó¸ßλËí
                        data_595 =1;
                else
                        data_595 =0;       
                clk_595 =0;
                _nop_();
                clk_595 =1; //½«êy¾YD′èë595  
                num<<=1;                //Ïò×óòƶˉò»Î»               
        }
        LATCH_595=0;
        _nop_();
        LATCH_595=1;//éÏéyÑØËø′æ
}
void main()
{
    while(1)
                wr_bits(0xfe);
}
ID:424795 發表于 2018-12-15 09:30
jefelee 發表于 2018-12-15 08:22
單片機控制74hc595輸出進而控制發光二極管點亮:74hc595是一個反極性驅動,也就是說如果用的是共陽數碼管, ...

能給我寫段程序看看嗎?就點亮兩個燈就可以
ID:423511 發表于 2018-12-15 09:23
看一下這段程序
void led(u16 dat)
{
        u8 a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;
               
                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}
ID:275671 發表于 2018-12-15 08:34
1. 打開百度
2. 搜對應的數據手冊
3. 仔細看數據手冊
4. 可以開始畫流程圖了
5. 寫程序
6. 測試

適用所有外圍電路
ID:354282 發表于 2018-12-15 08:22
單片機控制74hc595輸出進而控制發光二極管點亮:74hc595是一個反極性驅動,也就是說如果用的是共陽數碼管,段選端本應低電平點亮,如果在單片機的p口送個高電平,但是經過74hc595后你的高電平就變成低電平了,所以要在單片機那面往595送低電平,共陽相反,然后在將位選選通,如果想固定顯示某個數或者循環顯示某幾個數的話,就直接只一個表這個表就是八字碼,然后通過查表就可以了,如果不是的話就能麻煩點,需要將待顯示的數據轉成十進制然后經過處理后再查表送顯示。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

ID:164602 發表于 2018-12-15 00:01
哈哈哈,你發的問題,正是我有的板子,程序也有啊。
#include<reg51.h>
#include<intrins.h>

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
void Hc595SendByte(unsigned char dat);
void Delay10ms(unsigned int ) ;
void main()
{
        unsigned char ledNum;
        ledNum=0xfe;
        while(1)
        {
                Hc595SendByte(ledNum);
                ledNum=_cror_(ledNum,1);
                Delay10ms(50);
        }       
}
/*******************************************************************************
* 函數名         : Hc595SendByte(unsigned char dat)
* 函數功能                   : 想74H595發送一個字節的數據
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/
void Hc595SendByte(unsigned char dat)
{
        unsigned char a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;

                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;       
        }

        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}
/*******************************************************************************
* 函數名         : Delay10ms
* 函數功能                   : 延時函數,延時10ms
* 輸入           : c
* 輸出                  : 無
*******************************************************************************/
void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}

注意:需要將JOE跳線帽J13接GND,595模塊的JP595跳線帽J14接上,595的LED才會亮!!

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表