找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2916|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)能同時(shí)操作2個(gè)IO口得到相反的操作嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:211052 發(fā)表于 2020-3-24 21:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)教下,51單片機(jī)能通過位操作同時(shí)操作2個(gè)IO口得到相反的操作嗎?比如同時(shí)讓P3.4輸出高電平而P3.5輸出低電平;下次操作讓P3.4輸出低電平而P3.5輸出高電平?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:452950 發(fā)表于 2020-3-24 22:21 | 只看該作者
用一個(gè)按鍵進(jìn)行交替不同操作可以設(shè)置標(biāo)志,每進(jìn)入一次函數(shù)標(biāo)志加1,通過判斷標(biāo)志為奇數(shù)還是偶數(shù)來進(jìn)入不同操作。
比如標(biāo)志為奇數(shù)則讓P3.4輸出高電平而P3.5輸出低電平;下次標(biāo)志為偶數(shù)則讓P3.4輸出低電平而P3.5輸出高電平。
回復(fù)

使用道具 舉報(bào)

板凳
ID:469417 發(fā)表于 2020-3-24 22:23 | 只看該作者
很容易做到,看你是要用延時(shí)還是按鍵開效果?第二次時(shí)分別將原來結(jié)果取反就好了
回復(fù)

使用道具 舉報(bào)

地板
ID:700921 發(fā)表于 2020-3-24 23:09 來自手機(jī) | 只看該作者
其實(shí)怎么說呢,你寫p3-4=0,實(shí)際上操作的是地址,不知道p3-5=~p3-4,是不是你想要的位操作,但是這種有必要嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:687694 發(fā)表于 2020-3-24 23:11 | 只看該作者
理論上是可以的,但實(shí)際上總會(huì)有微小的時(shí)間差距。
回復(fù)

使用道具 舉報(bào)

6#
ID:235200 發(fā)表于 2020-3-24 23:42 | 只看該作者
可以的   P3=0x10; P3=0x20;
匯編語言
MOV  P3,#10H
MOV  P3,#20H
回復(fù)

使用道具 舉報(bào)

7#
ID:616477 發(fā)表于 2020-3-25 01:43 | 只看該作者
可以。標(biāo)志位控制取反
回復(fù)

使用道具 舉報(bào)

8#
ID:616477 發(fā)表于 2020-3-25 01:45 | 只看該作者
通過建立標(biāo)志位。進(jìn)行取反。
回復(fù)

使用道具 舉報(bào)

9#
ID:71233 發(fā)表于 2020-3-25 07:58 | 只看該作者
要實(shí)現(xiàn)絕對(duì)的同時(shí)不大可能,因?yàn)橐炔僮饕粋(gè)引腳后再操作另一個(gè)引腳。但是,實(shí)際應(yīng)用中,我們是絕對(duì)感覺不到它們是不同時(shí)的,因?yàn)檫@取決于芯片的運(yùn)行速度,運(yùn)行速度越快,時(shí)差就越短。當(dāng)然,即使使用6MHz主頻率+12T模式,我們也感覺不到時(shí)差。
回復(fù)

使用道具 舉報(bào)

10#
ID:213173 發(fā)表于 2020-3-25 09:39 | 只看該作者
樓主想通過位操作P3.4、P3.5不同電平同時(shí)取反比較困難,兩者會(huì)有幾u(yù)s時(shí)差。如果用字節(jié)操作P3,同時(shí)不影響P3其它端口狀態(tài),可以做到P3.4、P3.5同時(shí)取反0時(shí)差。示例程序:
  1. #include <AT89X52.H>
  2. unsigned char time;
  3. unsigned int i;
  4. void main(void)
  5. {
  6.         P3=0x55; //初始狀態(tài)0101 0101
  7.         while(1)
  8.         {//精確的周期2ms,50%占空比
  9.                 time=P3;//保存P3現(xiàn)狀
  10.                 if(P3&0x10)//判斷P3.4電位
  11.                         time+=16;
  12.                 else time-=16;
  13.                 P3=time;//只改變P3.4、P3.5,其它位不變
  14.                 i=108;
  15.                 while(i--);//延時(shí)
  16.                 i=1;//此句補(bǔ)償2us延時(shí)
  17.         }
  18. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

11#
ID:388929 發(fā)表于 2020-3-25 11:10 | 只看該作者
按照單片機(jī)順序執(zhí)行代碼的規(guī)則,至少會(huì)有運(yùn)行一行代碼的時(shí)間差
回復(fù)

使用道具 舉報(bào)

12#
ID:695749 發(fā)表于 2020-3-25 15:13 | 只看該作者
主要程序運(yùn)行的時(shí)間,有時(shí)間差
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表