欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機驅動16x64點陣的問題希望各位朋友幫我解答一下
[打印本頁]
作者:
YZYNULL
時間:
2020-11-3 18:36
標題:
51單片機驅動16x64點陣的問題希望各位朋友幫我解答一下
我這個程序只要加入一些延時比如_nop_和for(i=10;i>0;i--)就會造成點陣的閃爍原因不知采用16個74HC595進行驅動
還有我想加入左移功能怎么實現?希望各位幫幫小白我
本程序使用keil4編譯,仿真為protues8.6
單片機程序和仿真都在我的附件里方便查看,謝謝各位了(^v^)
16x64點陣.rar
(142.86 KB, 下載次數: 13)
2020-11-3 18:22 上傳
點擊文件名下載附件
源代碼加仿真
/*----------------------------------------------------------------------------------*/
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uhar unsigned char
sbit HC595_SH=P2^0; //數據鎖存端
sbit HC595_DS=P2^1; //數據輸出端
sbit HC595_ST=P2^2 ;//并行輸出端
uhar Mould[8]; //位寄存
uhar Upright[8]; //段寄存
uint code LED[4][32]= //4字數組
{{
0x20,0x18,0x0A,0xAA,0xAA,0xAA,0x0A,0xFE,0x0A,0xAA,0xAA,0xAA,0x0A,0x28,0x18,0x00,
0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
},
{
0x10,0x0C,0x05,0x55,0x55,0x55,0x05,0x7F,0x05,0x55,0x55,0x55,0x85,0x14,0x0C,0x00,
0x00,0x91,0xA9,0x4D,0xAB,0x99,0xA0,0xAA,0xAA,0xAA,0xBF,0xA9,0xA9,0xA9,0xA0,0x00,
},
{
0x00,0xFC,0x04,0x04,0xFC,0x01,0xFD,0x55,0x57,0x55,0x55,0x55,0xFD,0x01,0x00,0x00,
0x00,0x0F,0x04,0x04,0x8F,0x88,0x89,0x4F,0x59,0x25,0x65,0x57,0x85,0x84,0xE0,0x00,
},
{
0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,
0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x41,0x40,0x78,0x00,
}
};
/*----------------------------------------------------------------------------------*/
void HC595_write() //數據輸出
{
uhar i,j;
HC595_SH=1;
HC595_DS=1;
HC595_ST=1;
for(j=4;j>0;j--)
{
for(i=0;i<8;i++)
{
HC595_SH=0;
HC595_DS=Mould[j*2-2]&0x80;
Mould[j*2-2]<<=1;
HC595_SH=1;
}
for(i=0;i<8;i++)
{
HC595_SH=0;
HC595_DS=Mould[j*2-1]&0x80;
Mould[j*2-1]<<=1;
HC595_SH=1;
}
for(i=0;i<8;i++)
{
HC595_SH=0;
HC595_DS=Upright[j*2-1]&0x80;
Upright[j*2-1]<<=1;
HC595_SH=1;
}
for(i=0;i<8;i++)
{
HC595_SH=0;
HC595_DS=Upright[j*2-2]&0x80;
Upright[j*2-2]<<=1;
HC595_SH=1;
}
}
HC595_ST=0;
HC595_ST=1;
}
/*----------------------------------------------------------------------------------*/
void LED_DISPLAY() //選擇數據
{
static uint i;
static uint k=0x0001;
Mould[6]=~k/256;
Mould[7]=~k%256;
Upright[6]=LED[3][ i];[ i]
Upright[7]=LED[3][i+16];
Mould[4]=~k/256;
Mould[5]=~k%256;
Upright[4]=LED[2][ i];[ i]
Upright[5]=LED[2][i+16];
Mould[2]=~k/256;
Mould[3]=~k%256;
Upright[2]=LED[1][ i];[ i]
Upright[3]=LED[1][i+16];
Mould[0]=~k/256;
Mould[1]=~k%256;
Upright[0]=LED[0][ i];[ i]
Upright[1]=LED[0][i+16];
k=_irol_(k,1);
HC595_write();
i++;
if(i==16)
{
i=0;
}
}
/*----------------------------------------------------------------------------------*/
void main()
{
while(1)
{
while(1)
{
LED_DISPLAY();
}
}
}
/*----------------------------------------------------------------------------------*/
復制代碼
屏幕截圖(59).png
(159.87 KB, 下載次數: 82)
下載附件
2020-11-3 19:00 上傳
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1