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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4285|回復: 11
收起左側

求解兩片74hc165級聯后發送數據正確,但51單片機只能檢測到低八位是怎么回事

[復制鏈接]
ID:825231 發表于 2021-5-10 17:03 | 顯示全部樓層 |閱讀模式
8黑幣
本帖最后由 xyi 于 2021-5-11 10:02 編輯

uchar i,j,h;
        uchar temp;
        uchar date[2];
        
        HC165_PL = 0;
        HC165_PL = 1;
        if(HC165_OUT==1)
                        temp |= 0x01;
        
        for(i=0;i<15;i++)
        {
                temp = temp << 1;
                HC165_CLK = 0;
                _nop_();
                _nop_();
                HC165_CLK = 1;
                if(HC165_OUT==1)
                        temp |= 0x01;
        }
        date[0]=(uchar)(temp&0x00ff);
        date[1]=(uchar)((temp<<8)&0x00ff); 1E~L{L22{38HZC$}$B0SRG3.png



回復

使用道具 舉報

ID:748096 發表于 2021-5-10 18:29 | 顯示全部樓層
附上高清電路圖
回復

使用道具 舉報

ID:377070 發表于 2021-7-19 15:48 | 顯示全部樓層

8位8位移,移兩次就可以了,我也是用你上面的程序調不出來,有大佬解釋一下嗎。
回復

使用道具 舉報

ID:161164 發表于 2021-7-19 16:23 | 顯示全部樓層
uchar temp;只有8位啊~
date[1]=(uchar)((temp<<8)&0x00ff);左移8位就清零了
應改作uint temp;
回復

使用道具 舉報

ID:934353 發表于 2021-7-19 16:28 | 顯示全部樓層
(請手工把點替換成.)
www點elecfans點com/yuanqijian/yinjiaotu/20180202628701_a.html
這里解釋的很詳細了,我不知道你為啥把pl拉低又立馬拉高是什么意思?
回復

使用道具 舉報

ID:934353 發表于 2021-7-19 16:33 | 顯示全部樓層
本帖最后由 開心就好hhhh 于 2021-7-19 16:43 編輯

之前的老兄說得對,你應該用uint來定義,你將一個八位的數據左移16次肯定不對的呀
回復

使用道具 舉報

ID:814525 發表于 2021-7-19 17:56 | 顯示全部樓層
uchar i,j,h;
        uint temp;
        uchar date[2];
        
        HC165_PL = 0;
        HC165_PL = 1;
        if(HC165_OUT==1)
                        temp |= 0x01;
        
        for(i=0;i<15;i++)
        {
                temp = temp << 1;
                HC165_CLK = 0;
                _nop_();
                _nop_();
                HC165_CLK = 1;
                if(HC165_OUT==1)
                        temp |= 0x01;
        }
        date[0]=(uchar)(temp&0x00ff);
        date[1]=(uchar)((temp>>8)&0x00ff);  //高8位
回復

使用道具 舉報

ID:763596 發表于 2021-10-28 11:22 | 顯示全部樓層
不是應該i<16嗎,應該循環16次才對吧
回復

使用道具 舉報

ID:978853 發表于 2021-11-7 11:46 | 顯示全部樓層
uchar temp;只有8位
date[1]=(uchar)((temp<<8)&0x00ff);左移8位清零
改作uint temp;
回復

使用道具 舉報

ID:908826 發表于 2021-11-7 15:41 | 顯示全部樓層
數據類型定義的不對,uchar只有八位,你卻想整個十六位
回復

使用道具 舉報

ID:13282 發表于 2022-6-3 02:29 | 顯示全部樓層
按鍵的電阻都改為上拉,低有效。
回復

使用道具 舉報

ID:213173 發表于 2022-6-3 06:41 | 顯示全部樓層
        uint temp;
        ......
        date[0]=temp;//取temp低8位,高位溢出舍去
        date[1]=temp>>8;//右移取temp高8位,低位溢出舍去
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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