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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1513|回復(fù): 7
收起左側(cè)

關(guān)于芯片74HC595的IO口(ser口)賦值問題

[復(fù)制鏈接]
ID:1067311 發(fā)表于 2024-3-21 15:54 | 顯示全部樓層 |閱讀模式
如代碼中IO數(shù)據(jù)入口也就是ser直接賦值0或1行不行,我看別人都是用位操作賦值,ser本身只接收高電平或低電平,直接等于0或1是不是可以?
我看其他寄存器可位尋址,中也是可以單個“”位"直接賦值的,比如定時器中,EA0=0; TX0=1,這跟SER=0是不是一個道理?
函數(shù)之前 已經(jīng)聲明了 sbit ser=P3^5 請教
不考慮語法錯誤。

單片機源程序如下:
    int main()
    {
    _1sck=P3^6;
    _8rck=P3^4;
    sbit ser=P3^5//定義ser為位操作地址
    {
    void _74HC595write()
    {  
        ser=0;
        _8sck=0;
        _1rck=0;
        ser=1;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=0;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=1;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=0;//io口輸入一位
        _1rck=0;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=1;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=0;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=0;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        ser=0;//io口輸入一位
        _1rck=1;//上升沿1移位
        _1rck=0;//復(fù)位
        _8sck=1;//移滿8位觸發(fā)并行輸出
        _1rck=0;
    }
    whle(1)
    {
    _74HC595write();
    }
    }

回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2024-3-21 16:46 | 顯示全部樓層
對于595來說,SER直接賦值是沒有意義的,必須加CLK把SER的值移位到595的內(nèi)部。
回復(fù)

使用道具 舉報

ID:1109793 發(fā)表于 2024-3-21 18:05 | 顯示全部樓層
參考一下,大概就是數(shù)據(jù)變化后要有點延時才行
  1. void dqd(uchar da){                  //êä3öÇy¶ˉ£¬°Ñ¶ÎÂë′óÄ£ÄaμÄ′®DDÏßêä3ö
  2. uchar i;

  3. for(i=8;i>0;i--){
  4.         MC = 0;
  5.         if((da&0x01) == 1){
  6.                 MD = 1;
  7.                 }else{
  8.                 MD = 0;
  9.                 }
  10.         da>>=1;
  11.         MC = 1;
  12.         }
  13.         MC = 0;
  14.         delay_us(20);
  15.         MC = 1;
  16. }
復(fù)制代碼
回復(fù)

使用道具 舉報

ID:1109793 發(fā)表于 2024-3-21 18:10 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-3-21 18:05
參考一下,大概就是數(shù)據(jù)變化后要有點延時才行

這段是用了庫存的595代替了164的代碼
回復(fù)

使用道具 舉報

ID:1067311 發(fā)表于 2024-3-21 18:27 來自手機 | 顯示全部樓層
Hephaestus 發(fā)表于 2024-3-21 16:46
對于595來說,SER直接賦值是沒有意義的,必須加CLK把SER的值移位到595的內(nèi)部。

賦值后移位了,ser作為IO口,不是給0就是給1,直接賦值不可行么,為啥要執(zhí)行位操作,執(zhí)行位操作也是給高低電平
回復(fù)

使用道具 舉報

ID:1067311 發(fā)表于 2024-3-21 18:30 來自手機 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-3-21 18:05
參考一下,大概就是數(shù)據(jù)變化后要有點延時才行

意思就是可以給ser直接賦值,不用通過位操作也是可以的?
我認為ser口不管如何操作,反正底層就是給高低電平信號,應(yīng)該是可行的
回復(fù)

使用道具 舉報

ID:69038 發(fā)表于 2024-3-21 21:29 | 顯示全部樓層
595是8級串入轉(zhuǎn)并出的3態(tài)鎖存器,其本質(zhì)上是D觸發(fā)器(陣列):就是在CK的上升沿(某些D觸發(fā)器是下降沿),將D口的狀態(tài)復(fù)制到Q。
在595上,一個D觸發(fā)器相當于一個bit,595中有8個D串聯(lián)組成了一組8bit的移位寄存器,
在SHCP的上升沿,將DS上的電平依次移入內(nèi)部緩存(0-7),一個上升沿移入一位,共8級需8個上升沿,內(nèi)部緩存外部不可讀不可見,只有在第9個上升沿時,才能將第一級(0)移出到Q7S端口上。
也可以在STCP的上升沿,把內(nèi)部緩存移到輸出鎖存上,這里是8個bit一次性移動,外部依然不可見不可讀;
只有在OE的低電平時,才把輸出鎖存的電平一次性全輸出到Q0-Q7的端口上。
以上就595的工作原理。所以,你單獨賦值給SER是沒有任何意義的。
回復(fù)

使用道具 舉報

ID:866313 發(fā)表于 2024-3-22 10:43 | 顯示全部樓層
使用74HC595目的是節(jié)省IO口,那么它是如何做到的呢?就是通過將MCU的一個IO口(數(shù)據(jù)輸出引腳)輸出的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),轉(zhuǎn)換后的并行數(shù)據(jù)再通過74HC595的引腳輸出到片外外設(shè),所以使用時我們需要將MCU寄存器中的并行數(shù)據(jù)(通常是一個字節(jié))首先轉(zhuǎn)換成串行數(shù)據(jù),放置到MCU的一個數(shù)據(jù)引腳上,然后74HC595對這個引腳上的電平進行采樣,移位寄存后再次轉(zhuǎn)換成串行數(shù)據(jù)。所以你有沒有發(fā)現(xiàn)一個關(guān)鍵的步驟:MCU數(shù)據(jù)輸出引腳上的電平需要依據(jù)MCU寄存器的字節(jié)數(shù)據(jù)進行變化!!!所以你如果直接對ser賦值,只能不斷的往外送出同一個字節(jié)數(shù)據(jù)!!!
1.3 74HC595 簡介
74HC595 它是一個芯片,是一個 8 位串行輸入、并行輸出的移位緩存器,那么它的功能就是將串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),它的內(nèi)部具有八位移位寄存器和一個存儲器,還有三態(tài)輸出功能。如下圖所示
51hei.png
由上圖可知,輸入數(shù)據(jù)的最低位和 Q7 是對應(yīng)的、最高位和 Q0 是對應(yīng)的。

那么下面就講一下我們的 74HC595 芯片應(yīng)該怎么使用。首先說一下 MR 復(fù)位端
51hei1.png
這個端口是主復(fù)位端口,引腳名稱 MR 上面有一根橫線代表是低電平有效,當它為低電平時它可以將移位寄存器內(nèi)的數(shù)據(jù)進行清零。通常我們把它接到 VCC 目的是防止數(shù)據(jù)的清零。
第二個端口是 DS 端口,這個端口與我們的 MCU 相連接,通過這個端口我們將串行數(shù)據(jù)傳入到移位寄存器當中
51hei2.png


下面的是 SHCP 端口,這個端口是移位寄存器時鐘輸入,在它的上升沿時將輸入的串行數(shù)據(jù)移入到移位寄存器當中;需要注意的是:它是一個移位寄存器,也就是說當下一個脈沖到來時,上一個脈沖移入的數(shù)據(jù)就會往下進行移位。如果我們串行數(shù)據(jù)輸入 8 比特數(shù)據(jù),那么 8 比特數(shù)據(jù)輸入完之后,第一位輸入的數(shù)據(jù)就會自動移到最后面;如果我們一次輸入的數(shù)據(jù)超過 8 比特,那么最前面輸入的數(shù)據(jù)就會通過 Q7S 端口輸出,這個端口與下一個 74HC595 芯片的 DS 端口相連接,就相當于先前輸入的數(shù)據(jù)會輸入到下一個 74HC595 芯片當中
51hei3.png

當我們的串行數(shù)據(jù)都輸入到 74HC595 芯片之后怎么控制它的輸出呢?
我們的 74HC595 芯片,它的內(nèi)部有一個八位存儲寄存器,它由 STCP 這個信號控制它,叫存儲寄存器時鐘;在存儲寄存器時鐘的上升沿時,74HC595 芯片會將移位寄存器當中的數(shù)據(jù)寫入到我們的存儲寄存器當中
51hei4.png

當我們的輸出使能信號 OE 為有效的低電平時,74HC595 芯片就將存儲寄存器當中的數(shù)據(jù)通過 Q0、Q1、Q2、……、Q7 這八個端口傳輸出去
51hei5.png

這八個端口就與我們的片外外設(shè)相連接,這樣就完成了串行輸入到并行輸出的一個轉(zhuǎn)換,這就是我們的 74HC595 芯片。

評分

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

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人片网址 | 日韩图区 | 国产精品一区二区无线 | 91成人在线| 日韩av在线免费 | 国产视频导航 | 久久久蜜臀国产一区二区 | 国产精品欧美日韩 | 国产精品一卡二卡三卡 | 国产精品久久久久久婷婷天堂 | 欧美日韩一卡二卡 | 午夜视频网站 | 四虎在线观看 | 一级片网站视频 | 国产探花在线精品一区二区 | 亚洲毛片 | 成人在线观看免费视频 | 日韩第一区| 色视频成人在线观看免 | 国产精品99久久久久久动医院 | 一区二区三区精品在线 | 日韩综合在线 | 日韩精品一区二区三区在线观看 | 国产精品国产三级国产aⅴ中文 | 成人亚洲网 | 国产精品精品视频一区二区三区 | 亚洲啪啪 | 亚洲+变态+欧美+另类+精品 | 亚洲欧美在线视频 | 国产欧美精品在线 | 超碰操 | 国产精品久久久久久网站 | 欧美精品导航 | 亚洲国产一区二区三区 | 欧美国产一区二区 | 久久久久亚洲 | 欧美精品在线播放 | 国产欧美精品一区二区 | 亚洲国产成人久久综合一区,久久久国产99 | 午夜影院污 | 久久亚洲一区二区三区四区 |