導航:首頁 > 編程語言 > 32x64點陣屏全亮程序

32x64點陣屏全亮程序

發布時間:2024-04-01 08:12:06

1. 我用74LS595做行驅動,74LS154做列驅動做了一個16×32的雙色點陣,急需C語言程序,隨便顯示什麼字。謝謝大

/*****************************************************
16*128 LED點陣屏 C 程序
******************************************************
聲明:
本程序供大家學習之用,用勿用於商業用途。尊重版權。

編寫:鄧椿薪
時間:2006年1月20日 晚
郵箱:[email protected]
*******************************************************

//595連級輸出數據,138行驅動。P0_1為移動速度高速/*點陣顯示漢字程串口輸出字元數據,
//P2口輸出行掃描信號,P2_7輸出595鎖存信號。*/

#define uchar unsigned char
#define uint unsigned int

#include <REG51.H>
#include <CODESUB.H>

uchar yid,h,d=12; //YID為移動計數器,H為行段計數器。
uint zimuo,zimuo1; //字模計數器

uchar BUFF[18]; //緩存
void in_data(void); //調整數據
void rxd_data(void); //發送數據

void in_data1(char h);
void rxd_data1(void);
void sbuf_out1(void);

void sendsw(uchar k); //發送段代碼
void sbuf_out(void); //16段掃描
void key(void);

sbit AN1=P3^4;
sbit AN2=P3^5;

sbit clk=P3^3;

unsigned code sw[16]={0x7f,0x6f,0x5f,0x4f,0x3f,0x2f,0x1f,0x0f,0xf7,
0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0}; /*16行段碼*/

/********************************************/
void main(void)
{ uchar i;
zimuo1=sizeof(hanzi)-6*32;//(zishu+9)*32;
yid=0;
zimuo=0;
while(1)
{
while(yid<100) //數據移位。
{
for(i=0;i<D;I++) if(zimuo 後移一個字, zimuo="zimuo+32*5;//zimuo+32;" yid="0;" } 移動一步 yid++; sbuf_out1();key(); { 移動速度>zimuo1) //總數減7個字。
zimuo=0;
}

}

void sbuf_out1()
{
char i;
for(h=0;h<32;h++)
{

in_data1(h);
clk=1;
rxd_data1();
if(h>=16){i=h-16;}
else i=h;
sendsw(sw[i]);

}

}

/******************************************************/

void in_data1(char h)
{
char s,i;
if(h>=16)
{i=(h-16);

for(s=5;s>=0;s--) //h為向後先擇位元組計數器,zimuoo為向後先字計數器
{
// if(zimuo%32)
BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*i]; //把第一個字模的第一個位元組放入BUFF1中,第二個字模和第一個位元組放入BUFF3中
BUFF[2*s]=hanzi[zimuo+0+32*s+2*i]; // 把第一個字模的第二個位元組放入BUFF0中,第二個字模的第二個位元組放入BUFF1中
}
}
else
{
i=h;
for(s=5;s>=0;s--) //h為向後先擇位元組計數器,zimuoo為向後先字計數器
{
// if(zimuo%32)
BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*i]; //把第一個字模的第一個位元組放入BUFF1中,第二個字模和第一個位元組放入BUFF3中
BUFF[2*s]=hanzi[zimuo+0+32*s+2*i]; // 把第一個字模的第二個位元組放入BUFF0中,第二個字模的第二個位元組放入BUFF1中
}
}

}

/*******************************************************/

void rxd_data1(void) //串列發送數據
{
char s;
for(s=0;s<10;s++) //發送5位元組數據
{

SBUF=255-BUFF[s];//把BUFF中的位元組從大到小移位相或後發送輸出。
while(!TI);TI=0; //等待發送中斷
}
}

void sendsw(uchar k)
{
TI=0;
SBUF=k;
while(!TI);TI=0;
clk=0;

}

void key(void)
{
uchar a,b;
if(AN1==0)
{
for(a=0;a<10;a++)
{for(b=0;b<14;b++){}}
if(AN1==0)
{while(AN1==0)
{}
if(AN1)
{d++;
if(d>100)
d=100;
}
}
}
if(AN2==0)
{for(a=0;a<10;a++)
{for(b=0;b<14;b++){}}
if(AN2==0)
{while(AN2==0)
{}
if(AN2)
{d--;
if(d==0)
d=1;
}
}
}
}
不是我寫的,但我想會對你有用。

2. LED點陣程序

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineoutdatP2

sbitld=P3^0;

sbitlw=P3^1;

//數碼管顯示代碼專

unsignedcharcodetab[]={

0x01,0x02,0x03,0x04,0xFF,0xFF,0xFF,0xFF};

voiddelay1ms(unsignedintcount)//延時屬1ms

{

unsignedcharj;

for(;count>0;count--)

for(j=0;j<120;j++);

}

voiddisplay(unsignedcharnum)

{

outdat=tab[num];

ld=0;ld=1;ld=0;

outdat=0x01<<num;

lw=0;lw=1;lw=0;

delay1ms(2);

}

voidmain()

{

unsignedchari;

while(1)

{

for(i=0;i<8;i++)

{

display(i);

}

}

}

閱讀全文

與32x64點陣屏全亮程序相關的資料

熱點內容
廣西廣電網路的默認ip 瀏覽:191
政府發紅頭文件內容會實現嗎 瀏覽:552
騰訊貴安七星數據中心英文怎麼寫 瀏覽:489
玩火的女孩有幾個版本 瀏覽:113
tvshowtracker安卓版 瀏覽:983
App數據分析應該從哪些緯度 瀏覽:17
到底要不要升級ios92 瀏覽:875
cad2014安裝包安裝文件在哪裡 瀏覽:63
電信密碼無法登錄 瀏覽:820
cad的列印到文件怎麼設置 瀏覽:902
智行app鉑金會員怎麼還有期限 瀏覽:581
win10用子文件夾改名 瀏覽:234
ae鋼筆工具在哪裡 瀏覽:460
gn105數據線插哪裡 瀏覽:916
破鎖屏密碼方法 瀏覽:835
股票數據放哪裡 瀏覽:576
m格式庫文件 瀏覽:279
天際通數據服務怎麼開票 瀏覽:430
寫小說發哪個網站比較好 瀏覽:244
小米電視3藍牙文件路徑 瀏覽:111

友情鏈接