欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機控制LED點陣顯示囧
[打印本頁]
作者:
liuda
時間:
2015-1-22 01:55
標題:
51單片機控制LED點陣顯示囧
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() // 定義空指令 ,這個函數在庫 <intrins.h> 中
//SPI IO
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
//點陣顯示數組
unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};
unsigned char code tab1[] ={0,0,254,127,2,64,66,66,34,68,18,72,2,64,2,64,242,79,18,72,18,72,18,72,242,79,2,64,254,127,0,0};
//函數聲明
void HC595SendData( unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
/*************主函數*****************************/
void main(void)
{
int k,i,ms;
i = 16; //顯示時間
while(1)
{
for(ms = i; ms > 0; ms--)
{
for(k = 0; k < 16; k++) //顯示囧
{
HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);
}
}
}
}
/*********************************************************************************************************
** 函數名稱: HC595SendData
** 功能描述: 向SPI總線發送數據
*********************************************************************************************************/
void HC595SendData( unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
{
unsigned char i;
for(i = 0; i < 32; i++)
{
if(i > 23 )
{
if((BT0 << (i - 24)) & 0x80)
{
MOSIO = 1;
}
else
{
MOSIO = 0;
}
}
else if(i > 15 & i < 24 )
{
if((BT1 << (i - 16)) & 0x80) //set dataline high 0X80000000 最高位與SendVal左移的最高位 進行邏輯運算
{
MOSIO = 1; // 如果為真 MOSIO = 1
}
else
{
MOSIO = 0;
}
}
else if(i < 16 & i > 7 )
{
if((BT2 << (i - 8)) & 0x80)
{
MOSIO = 1;
}
else
{
MOSIO = 0;
}
}
else
{
if((BT3 << i) & 0x80) //set dataline high 0X80000000 最高位 進行邏輯運算
{
MOSIO = 1; // 如果為真 MOSIO = 1
}
else
{
MOSIO = 0;
}
}
S_CLK = 0;
NOP(); //產生方形波
S_CLK = 1;
}
R_CLK = 0; //set dataline low
NOP(); //產生方形波
R_CLK = 1;
}
復制代碼
作者:
歐陽小美
時間:
2017-3-30 15:57
HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]);這一步能解釋下嗎?
還有點陣顯示數組怎么來的
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1