新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 16 16點(diǎn)陣顯示程序(含電路圖)

16 16點(diǎn)陣顯示程序(含電路圖)

作者: 時(shí)間:2011-08-16 來源:網(wǎng)絡(luò) 收藏

以下是程序.

#include"config.h"

#defineDOTLED_LINE_PORTPORTB
#defineDOTLED_LINE_DDRDDRB
#defineDOTLED_LINE_PINPINB

#defineDOTLED_LINE_SCKTPB1
#defineDOTLED_LINE_SCKHPB5
#defineDOTLED_LINE_SDAPB3

#defineDOTLED_ROW_PORTPORTC
#defineDOTLED_ROW_DDRDDRC
#defineDOTLED_ROW_PINPINC

#defineDOTLED_ROW_A0PC0
#defineDOTLED_ROW_A1PC1
#defineDOTLED_ROW_A2PC2
#defineDOTLED_ROW_A3PC3
#defineDOTLED_ROW_EPC4



uint8font[]={
/*--調(diào)入了一幅圖像:這是您新建的圖像--*/
/*--寬度x高度=16x16--*/
0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10,
0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00
};



staticvoidTransmitByte(uint8byte);
staticvoidSelectRow(uint8row);
staticvoidFlipLatchLine(void);


staticvoidTransmitByte(uint8byte)
{
uint8i;

for(i=0;i8;i++)
{
if(byte(1i))
{
DOTLED_LINE_PORT|=_BV(DOTLED_LINE_SDA);
}
else
{
DOTLED_LINE_PORT=~_BV(DOTLED_LINE_SDA);
}
//__delay_cycles(100);
DOTLED_LINE_PORT|=_BV(DOTLED_LINE_SCKH);
//__delay_cycles(100);
DOTLED_LINE_PORT=~_BV(DOTLED_LINE_SCKH);
//__delay_cycles(100);
}
}

staticvoidSelectRow(uint8row)
{
//row-=1;
row|=DOTLED_ROW_PIN0xe0;
DOTLED_ROW_PORT=row;
}

staticvoidFlipLatchLine(void)
{
DOTLED_LINE_PORT|=_BV(DOTLED_LINE_SCKT);
DOTLED_LINE_PORT=~_BV(DOTLED_LINE_SCKT);
}

voidInitDotLedPort(void)
{
DOTLED_LINE_PORT=~(_BV(DOTLED_LINE_SCKT)|_BV(DOTLED_LINE_SCKH));
DOTLED_LINE_PORT|=_BV(DOTLED_LINE_SDA);
DOTLED_LINE_DDR|=_BV(DOTLED_LINE_SCKT)|_BV(DOTLED_LINE_SCKH)|_BV(DOTLED_LINE_SDA);

DOTLED_ROW_PORT|=0x1f;
DOTLED_ROW_PORT=0xf0;
DOTLED_ROW_DDR|=0x1f;
}
voidEnableRow(booleanIsEnable)
{
if(IsEnable)
{
DOTLED_ROW_PORT=~_BV(DOTLED_ROW_E);
}
else
{
DOTLED_ROW_PORT|=_BV(DOTLED_ROW_E);
}
}
voidPrintDotLed(uint8*buffer)
{
uint8i,tmp;

for(i=0;i16;i++)
{
tmp=*buffer++;
TransmitByte(~tmp);
tmp=*buffer++;
TransmitByte(~tmp);
SelectRow(i);
FlipLatchLine();
}
}
voidmain(void)
{
InitDotLedPort();

EnableRow(TRUE);

while(1)
{
PrintDotLed(font);
__delay_cycles(5000);
}

}

//---------------------------------------------------------------------------
config.h文件

#ifndef_CONFIG_H
#define_CONFIG_H

//#defineGCCAVR

#defineCPU_CYCLES7372800L




#ifndefGCCAVR
#define_BV(bit)(1(bit))
#endif


#defineMSB0x80
#defineLSB0x01


#defineFALSE0
#defineTRUE1


typedefunsignedcharuint8;
typedefunsignedintuint16;
typedefunsignedlonguint32;
typedefunsignedcharboolean;


#includeioavr.h>
#includeinavr.h>

#include"dotled.h"


#endif


//---------------------------------------------------------------------------

16 16點(diǎn)陣顯示電路

電路圖符號(hào)相關(guān)文章:電路圖符號(hào)大全




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉