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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機如何讀不同IO口的數(shù)據(jù)

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:980872 發(fā)表于 2021-11-16 16:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
C8051F330的單片機,需要讀8位數(shù)字,依次是P1^5,P1^4,P1^3,P1^1,P1^2,P1^0,P0^7,P0^4,我想把它們寫到一個數(shù)據(jù)里面,



#include <c8051f330.h>
sbit T8 = P1^5;
sbit T7 = P1^4;
sbit T6 = P1^3;
sbit T5 = P1^1;
sbit T4 = P1^2;
sbit T3 = P1^0;
sbit T2 = P0^7;
sbit T1 = P0^4;


void main()
{
        unsigned char dat = 0;
        dat |= T8<<0;
        dat |= T7<<1;
        dat |= T6<<2;
        dat |= T5<<3;
        dat |= T4<<4;
        dat |= T3<<5;
        dat |= T2<<6;
        dat |= T1<<7;

}

編譯的時候報錯,顯示‘<<’:bad operand type.
不知道為什么。
如果這個方案不可行,有沒有別的辦法,謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2021-11-16 22:18 | 只看該作者
T8 是一個位, 你讓 位去移位,往那里移?
其實,不該這么寫,但是考慮到你 T1~T8 的定位,可能是虛構的,還是這么寫吧。
unsigned char  Combi_Data();
{
      unsigned char dat;
      if(T1)  dat |=1;
      dat <<=1;
      if(T2)  dat |=1;
      dat <<=1;
      if(T3)  dat |=1;
      dat <<=1;
      if(T4)  dat |=1;
      dat <<=1;
      if(T5)  dat |=1;
      dat <<=1;
      if(T6)  dat |=1;
      dat <<=1;
      if(T7)  dat |=1;
      dat <<=1;
      if(T8)  dat |=1;
      return dat;
}
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2021-11-17 06:36 | 只看該作者
實際電路設計中盡可能避免這種無序、交叉使用端口,會給編程帶來麻煩,稍不仔細就會出錯
  1. //宏定義 標識符     7(0.4)       6(0.7)       5(1.0)   4(1.2)3(1.1)    2(1.3)       1(1.4)       0(1.5)
  2. #define P_read ((P0<<3&0x80)|(P0>>1&0x40)|(P1<<5&0x20)|(P1<<2&0x18)|(P1>>2&0x04)||(P1>>2&0x02)|(P1>>5&0x01))
復制代碼
回復

使用道具 舉報

地板
ID:752974 發(fā)表于 2021-11-17 08:33 | 只看該作者
一個端口的可以一次讀取,不同的端口只能分別讀取,有特殊需要,只能后期再組合。
回復

使用道具 舉報

5#
ID:578842 發(fā)表于 2021-11-17 09:19 | 只看該作者
可以宏定義
#define    T    P1
對T進行8位位移操作,單個IO不能位移
回復

使用道具 舉報

6#
ID:115923 發(fā)表于 2021-11-17 09:35 | 只看該作者
dat |= (char)T1<<7;  全部這樣 加強制類型轉(zhuǎn)換 即可.
回復

使用道具 舉報

7#
ID:115923 發(fā)表于 2021-11-17 09:37 | 只看該作者
我在是這樣弄的,  沒有問題

         char cbB1=         (char)X7<<7 | (char)X6<<6 | (char)X5<<5 | (char)X4<<4 | (char)X3<<3 | (char)X2<<2 | (char)X1<<1 | (char)X0  ;

sbit X0 = P0^0;    // X0-X7
sbit X1 = P0^3;
sbit X2 = P2^2;
sbit X3 = P1^3;
回復

使用道具 舉報

8#
ID:123289 發(fā)表于 2021-11-18 14:20 | 只看該作者
試試:
A^7 = P1^5;
A^6  = P1^4;
A^5  = P1^3;
A^4  = P1^1;
A^3  = P1^2;
A^2  = P1^0;
A^1  = P0^7;
A^0  = P0^4;
回復

使用道具 舉報

9#
ID:982347 發(fā)表于 2021-11-18 21:10 | 只看該作者
在讀取一個變量的函數(shù)里,如 char read(){ char a,b,c; a=P1&0xe0;  b=P2&0x1e;  c=P3&0x03; a=a+b+c; return a; } 大概構思就是這樣;
回復

使用道具 舉報

10#
ID:980872 發(fā)表于 2021-11-19 09:01 | 只看該作者
,謝謝各位!
回復

使用道具 舉報

11#
ID:982425 發(fā)表于 2021-11-19 09:13 | 只看該作者
T1 T2都是一個位而已,就只能有0,1,做不到右移8位的
回復

使用道具 舉報

12#
ID:982617 發(fā)表于 2021-11-19 18:32 | 只看該作者
采用 P0、P1、P2 和 P3的方式,一次可以讀取 8 個 IO 口
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕成人网 | 日韩在线播放网址 | 欧美freesex黑人又粗又大 | 午夜精品一区二区三区在线视 | 免费播放一级片 | www精品美女久久久tv | 先锋av资源网 | 国产精品不卡 | 999精品在线观看 | 美女艹b | 亚洲精品专区 | 国产午夜精品一区二区三区嫩草 | 日韩欧美福利视频 | 欧美在线免费 | 久久精品视频在线免费观看 | 国产成人免费视频网站视频社区 | 久久99精品久久久久久国产越南 | www.亚洲精品 | 99精品欧美一区二区三区 | 成人高潮片免费视频欧美 | 一级黄a视频 | 一区二区三区欧美 | 日本a视频 | 欧美国产日本一区 | 黄频视频 | 久久久久久久久久影视 | 免费在线观看av网址 | 亚洲国产精品日韩av不卡在线 | 亚洲精品9999 | 黄色av网站在线观看 | 在线免费av电影 | 成人亚洲精品久久久久软件 | 天天操天天射综合网 | 男女网站在线观看 | 99精品视频一区二区三区 | 懂色av蜜桃av | 亚洲视频免费在线观看 | av免费在线观看网站 | 国产精品国产精品国产专区不蜜 | 欧美一区二区三区四区视频 | 国产精品成人一区二区 |