欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1904|回復: 2
收起左側

拋磚引玉:如何根據變量對不同單片機IO口操作

[復制鏈接]
ID:282850 發表于 2019-12-18 10:24 | 顯示全部樓層 |閱讀模式
需要根據不同的變量值對不同的IO口大量操作,如果當變量為1、3、6值時,分針對P1、P3、P6操作。
define是不能使用變量為參數的。
寫了一段程序,基本可以實現,但過于機械龐大,運行中廢時間。能不能簡化代碼,用一、兩條語句代替。一個IO的不同位可以用變量實現,但=號前的P1、P3、P6如何按Port_X值為1、3、6來選擇是個麻煩。
能不能用IO地址指針操作,直接定位到需操作的IO地址,后期的操作就是對此IO?或者建立一個IO地址的數組,根據不同"變量"直接定位到相應的IO口?
程序見下,我認為需要優化程序:
#include "io430.h"
unsigned char Port_x=6,Bit_n=BIT5;
void DQ_out()
{
      switch (Port_x)
      {
        case 1:
            P1DIR|=Bit_n;  break;               
        case 2:
            P2DIR|=Bit_n;  break;               
        case 3:
            P3DIR|=Bit_n;  break;               
        case 4:
            P4DIR|=Bit_n;  break;               
        case 5:
            P5DIR|=Bit_n;  break;               
        case 6:
            P6DIR|=Bit_n;  break;               
        case 7:
            P7DIR|=Bit_n;  break;               
      }   
}
void DQ_in()
{
      switch (Port_x)
      {
.........
下述還有多個switch選擇模塊,很是不爽。
回復

使用道具 舉報

ID:584814 發表于 2019-12-19 16:05 | 顯示全部樓層
自定義一個函數,然后對這個函數的內容假裝看不見,程序就可以少到一條指令
回復

使用道具 舉報

ID:282850 發表于 2019-12-19 21:00 | 顯示全部樓層
樓上回復是我已經做了的,現在是不想這樣?

想這樣:

void PXoption(x)
{
     P(x)DIR=0xfe;
}
不要Switch,但不行的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表