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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4065|回復: 14
收起左側

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

[復制鏈接]
ID:609281 發表于 2021-1-18 01:09 | 顯示全部樓層 |閱讀模式
          小弟我遇到一個單片機問題,其實本可以忽略掉繼續開開心心碼程序的,但秉著想沖硬件工程師這個物以稀為貴的職業的念頭,打算鉆一鉆牛角尖。          void Hc595SendByte(u8 dat){
        u8 a;

        SRCLK = 1;
        RCLK = 1;

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

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

回復

使用道具 舉報

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

評分

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

查看全部評分

回復

使用道具 舉報

ID:390416 發表于 2021-1-18 09:13 | 顯示全部樓層
你好 你可以看看我這個貼子 http://m.zg4o1577.cn/bbs/dpj-201201-1.html 最好把資料也下載
回復

使用道具 舉報

ID:332444 發表于 2021-1-18 09:51 | 顯示全部樓層
數據電平由移位脈沖存儲到芯片內這在芯片說明書上都是有文字描述和時序圖示意的.
回復

使用道具 舉報

ID:332444 發表于 2021-1-18 09:57 | 顯示全部樓層
下圖單獨寫一個驅動595函數,數據為1時的時序:
1.png

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

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

程序運行的時序圖與網絡上找到的時序圖不同的地方是發送八位后鎖存輸出與發送1位就鎖存輸出的區別.

評分

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

查看全部評分

回復

使用道具 舉報

ID:609281 發表于 2021-1-18 20:02 | 顯示全部樓層
munuc_w 發表于 2021-1-18 08:53
595相應的口線和單片機相連,單片機用軟件模擬串行IO口,比較靈活方便。因串口輸出,不能按字節操作。
供 ...

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

使用道具 舉報

ID:609281 發表于 2021-1-18 20:10 | 顯示全部樓層
xianfajushi 發表于 2021-1-18 09:57
下圖單獨寫一個驅動595函數,數據為1時的時序:

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

使用道具 舉報

ID:609281 發表于 2021-1-18 20:33 | 顯示全部樓層
本帖最后由 15119014737 于 2021-1-18 20:50 編輯

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

使用道具 舉報

ID:609281 發表于 2021-1-18 20:35 | 顯示全部樓層
我的問題沒有敲完,假設我想通過51傳10111001給74hc595,首先
回復

使用道具 舉報

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

使用道具 舉報

ID:332444 發表于 2021-1-18 21:03 | 顯示全部樓層
送一個電平移入再送一個電平移入進行八次所以才是串口不是并行
回復

使用道具 舉報

ID:213173 發表于 2021-1-18 21:06 | 顯示全部樓層
15119014737 發表于 2021-1-18 20:35
我的問題沒有敲完,假設我想通過51傳10111001給74hc595,首先

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

使用道具 舉報

ID:332444 發表于 2021-1-19 07:56 | 顯示全部樓層
至于數據是要移動7位或1位看電路需求而定,電路可以順序或逆序連接。
回復

使用道具 舉報

ID:609281 發表于 2021-1-19 22:26 | 顯示全部樓層
xianfajushi 發表于 2021-1-18 21:03
送一個電平移入再送一個電平移入進行八次所以才是串口不是并行

感謝,我弄懂了
回復

使用道具 舉報

ID:332444 發表于 2021-1-20 12:42 | 顯示全部樓層
我的例子傳送十進制值,可以取反,也可以位移.比如把00000001移位為10000000都可以通過十進制完成的.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久久国产 | 99日韩 | 亚洲免费一 | 成人免费视频观看视频 | 久久蜜桃av一区二区天堂 | 欧美日韩高清一区 | 一级毛片观看 | 国产美女久久久 | 国产一区二区三区在线看 | 伊人欧美视频 | 久久久夜 | 黄色一级大片在线免费看产 | 国产日韩中文字幕 | 荷兰欧美一级毛片 | 国外成人在线视频 | 亚洲天堂一区 | 久久久久国产一区二区 | 久久亚洲一区二区三区四区 | 亚洲综合色 | 四季久久免费一区二区三区四区 | 国产伦精品一区二区三区四区视频 | 国产一区免费 | 欧美黄色一区 | 国产精品欧美一区二区三区不卡 | 精品无码久久久久久国产 | 欧美一区二区三区 | 久久精品91久久久久久再现 | 亚洲一区二区精品视频在线观看 | 一区二区精品 | 在线看片国产精品 | 成人av一区| 久草成人 | 欧美欧美欧美 | 北条麻妃国产九九九精品小说 | 在线免费91 | 福利视频一区二区三区 | 91九色婷婷 | 日韩一区二区三区视频 | 亚洲精品1 | 青青草亚洲 | 一级特黄a大片 |