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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4169|回復: 14
打印 上一主題 下一主題
收起左側(cè)

請問C51單片機串轉(zhuǎn)并74HC595的串行輸入引腳的電平是怎么輸入的?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:609281 發(fā)表于 2021-1-18 01:09 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
          小弟我遇到一個單片機問題,其實本可以忽略掉繼續(xù)開開心心碼程序的,但秉著想沖硬件工程師這個物以稀為貴的職業(yè)的念頭,打算鉆一鉆牛角尖。          void Hc595SendByte(u8 dat){
        u8 a;

        SRCLK = 1;
        RCLK = 1;

        for(a=0;a<8;a++)                 //發(fā)送8位數(shù)
        {
                SER = dat >> 7;                 //從最高位開始發(fā)送
                dat <<= 1;

                SRCLK = 0;                         //發(fā)送時序
                _nop_();
                _nop_();
                SRCLK = 1;        
        }
        RCLK = 0;
        _nop_();
        _nop_();
        RCLK = 1;
}
          這一個是例程中進行74HC595移位并輸出的自定義函數(shù),假設(shè)

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

使用道具 舉報

沙發(fā)
ID:752974 發(fā)表于 2021-1-18 08:53 | 只看該作者
595相應(yīng)的口線和單片機相連,單片機用軟件模擬串行IO口,比較靈活方便。因串口輸出,不能按字節(jié)操作。
供參考:
for(i=0;i<8;i++)
    {
                SCLK = 0;       
                _nop_();               
                SDI = (bit)(dat&0x80);               
                _nop_();       
                dat = dat << 1;
                _nop_();
                  SCLK = 1;       
                  _nop_();               
    }

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:390416 發(fā)表于 2021-1-18 09:13 | 只看該作者
你好 你可以看看我這個貼子 http://m.zg4o1577.cn/bbs/dpj-201201-1.html 最好把資料也下載
回復

使用道具 舉報

地板
ID:332444 發(fā)表于 2021-1-18 09:51 | 只看該作者
數(shù)據(jù)電平由移位脈沖存儲到芯片內(nèi)這在芯片說明書上都是有文字描述和時序圖示意的.
回復

使用道具 舉報

5#
ID:332444 發(fā)表于 2021-1-18 09:57 | 只看該作者
下圖單獨寫一個驅(qū)動595函數(shù),數(shù)據(jù)為1時的時序:


之下是發(fā)送4這個值的時序圖:其實看這樣的時序圖更容易明白,不像找到的時序圖對得太整齊了,有時還真分別不出對齊的部分到底是看成低電平還是高電平;從下圖的時序可明顯清晰地看出發(fā)送給595一個4這個值所處的高低電平00100000,當然如果使用十六進制數(shù)據(jù)和移位函數(shù)發(fā)送看到的也是一樣的時序。


配合仿真圖可看到Q0-Q7的輸出:


程序運行的時序圖與網(wǎng)絡(luò)上找到的時序圖不同的地方是發(fā)送八位后鎖存輸出與發(fā)送1位就鎖存輸出的區(qū)別.

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:609281 發(fā)表于 2021-1-18 20:02 | 只看該作者
munuc_w 發(fā)表于 2021-1-18 08:53
595相應(yīng)的口線和單片機相連,單片機用軟件模擬串行IO口,比較靈活方便。因串口輸出,不能按字節(jié)操作。
供 ...

您好,請問為什么SDI = (bit)(dat&0x80);  會放在SCLK = 1的前面?SDI是串行輸入口吧?移位寄存器不是應(yīng)該在上升沿才有效嗎?S小弟覺得 SDI = (bit)(dat&0x80); 應(yīng)該放在SCLK = 1的后面?
回復

使用道具 舉報

7#
ID:609281 發(fā)表于 2021-1-18 20:10 | 只看該作者
xianfajushi 發(fā)表于 2021-1-18 09:57
下圖單獨寫一個驅(qū)動595函數(shù),數(shù)據(jù)為1時的時序:

您好,其實我想問的是,C51不是8位單片機么?我是理解成一個IO口比如P0^0,一次性可以輸出八位二進制數(shù),可是74HC595芯片的串行輸入端是按位輸出的,一個字節(jié)為八位,一個IO口輸出8位怎么送進595的串行輸入端。
回復

使用道具 舉報

8#
ID:609281 發(fā)表于 2021-1-18 20:33 | 只看該作者
本帖最后由 15119014737 于 2021-1-18 20:50 編輯

我的問題沒有敲完,假設(shè)我想通過51傳1011 1001給74HC595,首先是1011 1001右移七位,變?yōu)?000 0001,然后595的串行口接收0000 0001,然后移位寄存器來一個上升沿,LQA = 0,LQB = 1,LQC =。。。LQH=0,緊接著1011 1001左移一位,變?yōu)?111 0010,然后0111 0010右移七位變成0000 0000傳給595的串行輸入口,此時LQA=LQB=。。。。=LQH=0,這樣不就相當于原來移位寄存器的值被清除掉了嗎?我這種想法是認為595按字節(jié)串行輸入,但其實串行輸入都是按位輸入的,可C51不是8位單片機嗎?它的IO口不應(yīng)該可以輸出一個字節(jié)的數(shù)據(jù)嗎?而且dat<<7本身也是一個字節(jié)的數(shù),然后通過單片機引腳輸入進595中,為啥595只會接收一個字節(jié)中的最低位?
回復

使用道具 舉報

9#
ID:609281 發(fā)表于 2021-1-18 20:35 | 只看該作者
我的問題沒有敲完,假設(shè)我想通過51傳10111001給74hc595,首先
回復

使用道具 舉報

10#
ID:609281 發(fā)表于 2021-1-18 20:48 | 只看該作者
我的問題沒有敲完,假設(shè)我想通過51傳1011 1001給74hc595,,首先將1011 1001右移七位,變?yōu)?000 0001并送進串行輸入口,移位寄存器來一個上升沿,這時QA=0,QB=1,QC=QD=...=QH=0,然后將1011 1001左移一位變?yōu)?111 0010,同樣的方法將0111 0010右移七位成0000 0000,并送進串行輸入口,移位寄存器來一個上升沿,這時QA=...=QH=0,那么之間的QB = 1跑到哪里去了?我這種想法是認為595的串行輸入口是按字節(jié)輸入的,但其實串行輸入口是按位輸入的,可C51不是8位單片機嗎?它的IO口不應(yīng)該可以輸出一個字節(jié)的數(shù)據(jù)嗎?而且dat<<7本身也是一個字節(jié)的數(shù),然后通過單片機引腳輸入進595中,為啥595只會接收一個字節(jié)中的最低位?
回復

使用道具 舉報

11#
ID:332444 發(fā)表于 2021-1-18 21:03 | 只看該作者
送一個電平移入再送一個電平移入進行八次所以才是串口不是并行
回復

使用道具 舉報

12#
ID:213173 發(fā)表于 2021-1-18 21:06 | 只看該作者
15119014737 發(fā)表于 2021-1-18 20:35
我的問題沒有敲完,假設(shè)我想通過51傳10111001給74hc595,首先

這里解釋的很詳細:
https://baike.baidu.com/item/74HC595/9886491?fr=aladdin
回復

使用道具 舉報

13#
ID:332444 發(fā)表于 2021-1-19 07:56 | 只看該作者
至于數(shù)據(jù)是要移動7位或1位看電路需求而定,電路可以順序或逆序連接。
回復

使用道具 舉報

14#
ID:609281 發(fā)表于 2021-1-19 22:26 | 只看該作者
xianfajushi 發(fā)表于 2021-1-18 21:03
送一個電平移入再送一個電平移入進行八次所以才是串口不是并行

感謝,我弄懂了
回復

使用道具 舉報

15#
ID:332444 發(fā)表于 2021-1-20 12:42 | 只看該作者
我的例子傳送十進制值,可以取反,也可以位移.比如把00000001移位為10000000都可以通過十進制完成的.
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜激情网站 | 黄色录像一级片 | 精品国产乱码久久久久久蜜臀网站 | 午夜在线影院 | 婷婷天堂| 求av网站| 国产一区二区视频在线 | 成av人片在线观看www | 99久久综合 | 欧美9999| 欧美区一区二 | 美日韩精品 | 特黄一级视频 | 久久在线免费视频 | 国产毛片毛片 | 日韩在线成人 | 岛国精品在线播放 | 亚洲欧美日本在线 | 中文字幕理论片 | 九色自拍| 久久精品一区二区国产 | 欧美理伦| 欧美性色网 | 91福利网| 岛国av噜噜噜久久久狠狠av | 日韩一区三区 | 日韩aaaa| 中文字幕日本 | 国产伦精品一区二区三区在线 | www精品| 18精品爽国产白嫩精品 | 久久久久国产 | 国产精品九九 | 精品国产一区二区在线观看 | 国产精品视频久久久 | 综合色婷婷 | 亚洲精品911 | 日韩一级av毛片 | 秋霞福利视频 | 亚洲一级二级三级 | 亚洲综合伊人 |