![]() |
發布時間: 2020-8-27 18:09
正文摘要:通過P1.0輸入一個脈沖,讓P0.0值1讓后對這個高電平移位 脈沖從P1.0口輸入,當有一個脈沖出現時讓P0.0值1,讓后通過P1.1口再輸入一個脈沖對P0移位,每一個脈沖移動一位。通過51單片機實現移位寄存的功能?請問大俠 ... |
烈火 發表于 2020-8-28 08:39 需要確定一個脈沖只移位一次,你去掉一條,可能一個脈沖移位了多次(看脈沖寬度) |
這個事你最好看看IIC視頻,時面就有你說到的內容,說白就是數據一位一位的傳輸過程 |
csmyldl 發表于 2020-8-28 00:24 怎么通過P1^0的脈沖進行移位? |
這個不就是流水燈的代碼嗎?樓主可以看看那些單片機書籍,比如郭天祥的,一般都會有流水燈,這是單片機入門時最先遇到的小實驗之一 |
謝謝大家的幫忙 |
建議先畫個流程圖就容易了 |
可以這樣寫 sbit PP=P1^0; main() { char V=0; P0=0; while(PP!=0) //出現低脈沖 { V=(V<<1)+1; if (V==0xff) V=0; P0=V; } |
#include <REG52.H> sbit K1=P1^0; void main() { while(1) { if(!K1) { P0<<=1; while(!K1); } } } |
sbit PP=P1^0; main() { unsigned char V=0; P0=0; while(!PP) //出現低脈沖 { while(PP); V=(V<<1)+1; if (V==0xff) V=0; P0=V; } |