熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-8-27 18:09
正文摘要:通過(guò)P1.0輸入一個(gè)脈沖,讓P0.0值1讓后對(duì)這個(gè)高電平移位 脈沖從P1.0口輸入,當(dāng)有一個(gè)脈沖出現(xiàn)時(shí)讓P0.0值1,讓后通過(guò)P1.1口再輸入一個(gè)脈沖對(duì)P0移位,每一個(gè)脈沖移動(dòng)一位。通過(guò)51單片機(jī)實(shí)現(xiàn)移位寄存的功能?請(qǐng)問(wèn)大俠 ... |
烈火 發(fā)表于 2020-8-28 08:39 需要確定一個(gè)脈沖只移位一次,你去掉一條,可能一個(gè)脈沖移位了多次(看脈沖寬度) |
| 這個(gè)事你最好看看IIC視頻,時(shí)面就有你說(shuō)到的內(nèi)容,說(shuō)白就是數(shù)據(jù)一位一位的傳輸過(guò)程 |
csmyldl 發(fā)表于 2020-8-28 00:24 怎么通過(guò)P1^0的脈沖進(jìn)行移位? |
| 這個(gè)不就是流水燈的代碼嗎?樓主可以看看那些單片機(jī)書(shū)籍,比如郭天祥的,一般都會(huì)有流水燈,這是單片機(jī)入門(mén)時(shí)最先遇到的小實(shí)驗(yàn)之一 |
| 謝謝大家的幫忙 |
| 建議先畫(huà)個(gè)流程圖就容易了 |
|
可以這樣寫(xiě) sbit PP=P1^0; main() { char V=0; P0=0; while(PP!=0) //出現(xiàn)低脈沖 { 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) //出現(xiàn)低脈沖 { while(PP); V=(V<<1)+1; if (V==0xff) V=0; P0=V; } |
Powered by 單片機(jī)教程網(wǎng)