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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)LED點(diǎn)陣顯示程序問題,C語言移位不理解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:810884 發(fā)表于 2020-8-4 16:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
為什么在LED點(diǎn)陣顯示的時(shí)候里面的 通過 595 發(fā)送 2 個(gè)字節(jié)的數(shù)據(jù) 的函數(shù)中
SER = dat >> 7; //從最高位開始發(fā)送
dat <<= 1;
一位一位的給dat了那單片機(jī)是怎么得到的,
還有就是顯示的時(shí)候怎么一直用不到段選的數(shù)組
求大佬幫忙看看,謝謝!謝謝!

#include "reg51.h"
#include "intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4;

u8 ledduan[]={0x00,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00}; // 類 似 于 動(dòng)態(tài)數(shù)碼管的段選
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; // 類 似 于動(dòng)態(tài)數(shù)碼管的位選
void Hc595SendByte(u8 dat)
{ u8 a;
  SRCLK = 1; RCLK = 1;
for(a=0;a<8;a++) //發(fā)送 8 位數(shù)
{ SER = dat >> 7;
dat <<= 1;
SRCLK = 0; //發(fā)送時(shí)序
_nop_();
_nop_(); SRCLK = 1;
}

RCLK = 0;
_nop_(); _nop_(); RCLK = 1;
}void main() { u8 i=0;
while(1) { for(i=0;i<8;i++) { Hc595SendByte(ledwei); LED1(ledwei); delay(10); } }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:313246 發(fā)表于 2020-8-4 16:43 | 只看該作者
右移7位就是最高位,然后每次再左移一個(gè)個(gè)取出來
回復(fù)

使用道具 舉報(bào)

板凳
ID:811253 發(fā)表于 2020-8-4 16:52 | 只看該作者
dat >> 7; 把dat的最高位移到最低位。其它位置用0補(bǔ)上,之后把這個(gè)值賦給SER,即如查那一位是1。P34就輸出1,如果為0就輸出0。dat <<= 1;數(shù)據(jù)左移。
回復(fù)

使用道具 舉報(bào)

地板
ID:86926 發(fā)表于 2020-8-4 17:10 | 只看該作者
說的問題不是很清楚,不是很明白你想要的知道什么。首先是單片機(jī)發(fā)送數(shù)據(jù)給595,dat<<=1;等同于dat=dat<<1;意思就是dat數(shù)據(jù)整體左移一位后再賦給dat,左移后的值覆蓋之前的值;還有LED1函數(shù)是怎么寫的,那里有沒有行或列的輸出。
回復(fù)

使用道具 舉報(bào)

5#
ID:810884 發(fā)表于 2020-8-4 17:59 | 只看該作者
藍(lán)魄 發(fā)表于 2020-8-4 17:10
說的問題不是很清楚,不是很明白你想要的知道什么。首先是單片機(jī)發(fā)送數(shù)據(jù)給595,dat

移位的運(yùn)算我知道,就是有點(diǎn)不知道移位后是通過那個(gè)把這個(gè)8位給單片機(jī)的,請教一下
代碼是給的開發(fā)攻略復(fù)制過來的可能不小心刪了那個(gè)函數(shù)
void LED1(u8 dat1) { P0=dat1; }
回復(fù)

使用道具 舉報(bào)

6#
ID:804115 發(fā)表于 2020-8-4 18:01 | 只看該作者
樓主是 想問單片機(jī)是怎么一個(gè)bit一個(gè)bit獲取到數(shù)據(jù)的吧!
實(shí)際上可以理解成DQ觸發(fā)器構(gòu)成的移位寄存器,首先將要發(fā)送的bit電平在DAT輸入口放好,然后給觸發(fā)器的CLK口一個(gè)下降沿,這個(gè)BIT的數(shù)據(jù)就會(huì)送到觸發(fā)器的Q端,就相當(dāng)于放到總線發(fā)送出去了。
然后重復(fù)上面的過程就可以發(fā)送所有的bit了。
如果想詳細(xì)了解,建議百度觸發(fā)器的類型 以及 移位寄存器的原理 等等。
回復(fù)

使用道具 舉報(bào)

7#
ID:810884 發(fā)表于 2020-8-4 18:22 | 只看該作者
1692483014 發(fā)表于 2020-8-4 18:01
樓主是 想問單片機(jī)是怎么一個(gè)bit一個(gè)bit獲取到數(shù)據(jù)的吧!
實(shí)際上可以理解成DQ觸發(fā)器構(gòu)成的移位寄存器,首 ...

對對,有點(diǎn)懂了的樣子,請問這樣理解對嗎,是不是一個(gè)下降沿的時(shí)候會(huì)把SER掃一次,然后把地位存起來,

回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2020-8-5 07:56 | 只看該作者
單片機(jī)發(fā)送的串行數(shù)據(jù)通過595轉(zhuǎn)換成并行數(shù)據(jù)輸出。重新整理一下便于樓主理解:
void Hc595SendByte(u8 dat)//參數(shù)dat是想要發(fā)送的數(shù)據(jù)
{
        u8 a;
        for(a=0;a<8;a++) //由高到低循環(huán)發(fā)送8位數(shù)據(jù) (1個(gè)字節(jié))
        {
                SER = dat >> 7;//將dat最高位賦值SER端口送到595
                SRCLK = 1; //移位脈沖 595內(nèi)部現(xiàn)存數(shù)據(jù)由低到高移1位,SER狀態(tài)補(bǔ)入最低位
                _nop_();   //短暫延時(shí)
                _nop_();
                SRCLK = 0; //為下次移位準(zhǔn)備
                dat <<= 1; //dat左移1位,最高位溢出,最低位補(bǔ)0
        }//
        RCLK = 1;     //鎖存脈沖,把595內(nèi)部現(xiàn)存數(shù)據(jù)鎖存到輸出端口鎖存器輸出并行數(shù)據(jù)
        _nop_();    //短暫延時(shí)
        _nop_();
        RCLK = 0;    //為下次鎖存準(zhǔn)備
}
回復(fù)

使用道具 舉報(bào)

9#
ID:810884 發(fā)表于 2020-8-5 08:37 | 只看該作者
wulin 發(fā)表于 2020-8-5 07:56
單片機(jī)發(fā)送的串行數(shù)據(jù)通過595轉(zhuǎn)換成并行數(shù)據(jù)輸出。重新整理一下便于樓主理解:
void Hc595SendByte(u8 dat ...

這樣就都理解了,謝謝,謝謝
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩视频a| 午夜伦4480yy私人影院 | 四虎影院免费在线 | 欧美一区二区三区在线播放 | 四虎永久免费地址 | 国产99精品 | 中文字幕第九页 | 国产精品中文字幕一区二区三区 | 成人性视频免费网站 | 亚洲一区二区三区四区五区中文 | 国产精品一区二区在线 | 中国美女一级黄色片 | 福利视频网站 | 9191av| 久久伊人免费视频 | www.狠狠操| 欧美成年视频 | 男人电影天堂 | 亚洲欧美日韩久久 | 一区二区久久精品 | 亚洲首页| 全免费a级毛片免费看视频免费下 | 草久久久 | 老司机精品福利视频 | 久久精品性视频 | 国产精品成人在线播放 | 天天草天天射 | 97超碰人人 | 狠狠爱一区二区三区 | www.日韩系列 | 一级做a爰片性色毛片视频停止 | www.888www看片| 亚洲免费成人av | 久久久久久久久久久久久九 | 欧美精品一区二区三区在线 | 国产精品无 | 国产精品v| 国产一区欧美一区 | 国产重口老太伦 | 国产精品久久久久久吹潮 | 羞羞免费网站 |