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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4055|回復: 6
打印 上一主題 下一主題
收起左側

單片機IO口擴展(并轉串)編程疑問

[復制鏈接]
跳轉到指定樓層
樓主
哪位大神能幫我看看,以下程序中  下劃線黑體加粗的問題  
/**************************************************************************************
*                              單片機IO擴展--74HC165實驗                                                                                                  *
實現現象:下載程序后,按下獨立按鍵可以點亮對應的led
                        K1--led1
***************************************************************************************/
#include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned int u16;          //對數據類型進行聲明定義
typedef unsigned char u8;
//--定義使用的IO口--//
#define GPIO_LED P0
sbit    IN_PL   = P1^6;   
sbit    IN_Data = P1^7;    //數據通過P1.7腳移進單片機內處理
sbit    SCK    = P3^6;
/*******************************************************************************
* 函 數 名         : Read74HC165
* 函數功能: 使用165讀取一個字節數據
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
u8 Read74HC165(void)
{  
  u8 i;
  u8 indata;
               
   IN_PL = 0;
   _nop_();        //短暫延時 產生一定寬度的脈沖
   IN_PL = 1;           //將外部信號全部讀入鎖存器中
   _nop_();

   indata=0;   //保存數據的變量清0  
   for(i=0; i<8; i++)
    {
          indata = indata<<1;           //左移一位
          SCK = 0;   //時鐘置0         
      _nop_();
          indata |= IN_Data;   //為什么要有或運算,不能直接賦值嗎?????
      SCK = 1;   //時鐘置1         
        }

   return(indata);         
}


/*******************************************************************************
* 函 數 名       : main
* 函數功能                 : 主函數
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{        
        u8 h165Value;

        GPIO_LED = 0;
        while(1)
        {
                h165Value = Read74HC165();
                if(h165Value != 0xFF)
                {
                        GPIO_LED = ~h165Value;
                }        
        }                        
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111634 發表于 2018-11-12 08:49 | 只看該作者
本帖最后由 zl2168 于 2018-11-13 23:15 編輯

給你介紹幾個165參考案例
實例25  74HC165串行輸入8/16數據信號

Proteus仿真一下,確認有效
實例25 74HC165串行輸入8-16位數據信號.rar (78.82 KB, 下載次數: 20)


實例70  74HC165串行輸入8位按鍵狀態 實例70 74HC165串行輸入8位按鍵狀態.7z (18.29 KB, 下載次數: 11)
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設計有詳細說明,程序語句條條有注解。


回復

使用道具 舉報

板凳
ID:310519 發表于 2018-11-12 09:30 | 只看該作者
比如,indata接收了第1位數據,值為“1” ,這時,indata值為#00000001;

然后向左移1位,為接收下一個數據做準備,這時,indata值為#00000010;

indata開始接收了第2位數據,值為“1” 。

如果直接賦值,indata值為#00000001,接收的第1位數據就沒有了;

如果 indata |= IN_Data;  indata值為#00000011,成功接收第二位;

后面重復,直到接收完8位數據。
回復

使用道具 舉報

地板
ID:265792 發表于 2018-11-12 13:44 | 只看該作者
給你幾個例子參考看看,不難的
回復

使用道具 舉報

5#
ID:417740 發表于 2018-11-12 16:10 | 只看該作者
diy1997 發表于 2018-11-12 09:30
比如,indata接收了第1位數據,值為“1” ,這時,indata值為#00000001;

然后向左移1位,為接收下一個 ...

謝謝,謝謝!
我有一個疑問,將值“1”賦值給一個字節,就是將00000001付給這個字節,不是說只把1賦給字節的最后一位(不會影響其他的前七位),對吧,我之前一直覺得一個管腳的0和1只會影響所改字節的最后一位,所以之前想的是錯的。


回復

使用道具 舉報

6#
ID:417740 發表于 2018-11-14 10:18 | 只看該作者
zl2168 發表于 2018-11-12 08:49
給你介紹幾個165參考案例
實例25  74HC165串行輸入8/16位數據信號

謝謝!
回復

使用道具 舉報

7#
ID:662171 發表于 2020-4-15 16:37 | 只看該作者
不能直接賦值,以下為個人理解,IN_Data一次只能輸出一個狀態的值,和indata進行“或”運算后將狀態保存在最低位,之后進行移位,最低位的值移到次低位,最低位補零,上升沿后,IN_Data輸出下一個狀態的值,和indata“或”運算后接著保存在最低位,,以此類推,得到8位狀態值。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费观看男女羞羞视频 | 日本精品视频在线 | 午夜精品一区二区三区在线视频 | 香蕉久久av | 国产1区2区3区 | 理论片87福利理论电影 | 日韩精品成人 | 99热99| 一级毛片中国 | 99爱在线观看 | 中文字幕1区2区3区 日韩在线视频免费观看 | 免费a网站 | 国产精品一区久久久 | 羞羞在线视频 | 国产一级片在线播放 | 欧美另类视频 | 免费午夜视频在线观看 | 性一交一乱一伦视频免费观看 | 久久九七 | 亚洲成人一区 | 国产精品中文字幕在线播放 | 国产精品久久9 | 亚洲欧美一区二区三区在线 | 久色激情 | 亚洲国产精品一区二区第一页 | 完全免费在线视频 | 国产激情在线观看视频 | 99精品久久99久久久久 | 日韩精品一区二区三区在线观看 | 亚洲视频 欧美视频 | 一级看片免费视频囗交动图 | 成人精品影院 | 麻豆精品久久久 | 国产精品久久久久久婷婷天堂 | 成人午夜在线观看 | 一区二区三区亚洲精品国 | 国产精品中文字幕一区二区三区 | 亚洲精品久久久一区二区三区 | 亚洲一区二区三区高清 | 精品无码久久久久久国产 | 亚洲午夜精品 |