?? hjx_leddisapy.c
字號:
/*****************************************************
16*128 LED點陣屏 C 程序
******************************************************
聲明:
本程序供大家學習之用,用勿用于商業用途。尊重版權。
編寫:胡工
時間:2008年1月20日 晚
郵箱:hjx02@126.com
*******************************************************
//595連級輸出數據,138行驅動。P0_1為移動速度高速/*點陣顯示漢字程串口輸出字符數據,
//P2口輸出行掃描信號,P2_7輸出595鎖存信號。*/
#include <AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
uchar yid,h; //YID為移動計數器,H為行段計數器。
uint zimuo; //字模計數器
uchar code hanzi[]; //漢字字模
uchar BUFF[18]; //緩存
void in_data(void); //調整數據
void rxd_data(void); //發送數據
void sbuf_out(); //16段掃描
unsigned code sw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; /*16行段碼*/
//{0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,
//0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e}; /*16行段碼*/
/********************************************/
void main(void)
{
uchar i,d=10;
yid=0;
zimuo=0;
while(1)
{
while(yid<16) //數據移位。
{
for(i=0;i<d;i++) //移動速度
{
sbuf_out();
}
yid++; //移動一步
}
yid=0;
zimuo=zimuo+32; //后移一個字,
if(zimuo>=3386) //總數減7個字。
zimuo=0;
}
}
/********************************/
void sbuf_out()
{
for(h=0;h<16;h++) //16行掃描
{
in_data(); //調整數據
rxd_data(); //串口發送數據
P1=0x7f; //關閉顯示。
P1_7=1; //鎖存為高,595鎖存信號
P1=sw[h]; //送段碼
}
}
/******************************************************/
void in_data(void)
{
char s;
for(s=8;s>=0;s--) //h為向后先擇字節計數器,zimuoo為向后先字計數器
{
BUFF[2*s+1]=hanzi[zimuo+32*s+2*h]; //把第一個字模的第一個字節放入BUFF0中,第二個字模和第一個字節放入BUFF2中
BUFF[2*s]=hanzi[zimuo+1+32*s+2*h]; // 把第一個字模的第二個字節放入BUFF1中,第二個字模的第二個字節放入BUFF3中
}
}
/*******************************************************/
void rxd_data(void) //串行發送數據
{
char s;
uchar inc,tempyid,temp;
if(yid<8)
inc=0;
else
inc=1;
for(s=0+inc;s<16+inc;s++) //發送8字節數據
{
if(yid<8)
tempyid=yid;
else
tempyid=yid-8;
temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的數據。
//temp=255-temp;
SBUF=temp;//把BUFF中的字節從大到小移位相或后發送輸出。
while(!TI);TI=0; //等待發送中斷
}
}
/*******************************************************/
uchar code hanzi[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//=============================================================================
/*-- 調入了一幅圖像:這是您新建的圖像 --*/
/*-- 寬度x高度=16x16 --*/
0x00,0x00,0x38,0x3C,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00,
/*-- 文字: 歡 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x3F,0x7F,0xA0,0x20,0xA1,0x12,0x52,0x02,0x14,0x02,0x08,
0x02,0x18,0x06,0x18,0x05,0x24,0x09,0x24,0x18,0x82,0x70,0x61,0x20,0x1C,0x00,0x00,
/*-- 文字: 迎 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x02,0x01,0x84,0x3E,0x6C,0x22,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,0x24,
0x22,0xA4,0x2A,0x64,0x12,0x24,0x02,0x04,0x02,0x04,0x00,0x0A,0x7F,0xF1,0x00,0x00,
/*-- 文字: 來 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x80,0x00,0x80,0x3F,0xFC,0x00,0x80,0x0C,0x90,0x04,0xA0,0x02,0xC0,0x7F,0xFE,
0x01,0x80,0x02,0xC0,0x04,0xA0,0x18,0x90,0x70,0x8C,0x20,0x83,0x00,0x80,0x00,0x80,
/*-- 文字: 到 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x20,0x00,0x21,0xFE,0x20,0x10,0x24,0x48,0x24,0x84,0x25,0xFE,0x24,0xA4,0x24,0x20,
0x24,0x20,0x25,0xFE,0x24,0x20,0x24,0x20,0x21,0xA0,0x20,0x70,0x28,0x0E,0x10,0x04,
/*-- 文字: 單 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x04,0x10,0x0C,0x60,0x02,0x20,0x1F,0xFC,0x10,0x84,0x1F,0xFC,0x10,0x84,0x10,0x84,
0x1F,0xFC,0x10,0x84,0x00,0x80,0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
/*-- 文字: 片 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x02,0x00,0x02,0x08,0x02,0x08,0x22,0x08,0x7F,0xF8,0x00,0x08,0x00,0x08,0x00,0x08,
0x0F,0xF8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x04,0x08,0x02,0x08,0x01,
/*-- 文字: 機 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x08,0x1F,0x08,0x11,0x08,0x11,0x7F,0x11,0x08,0x11,0x08,0x11,0x1C,0x11,0x2C,
0x11,0x2A,0x11,0x0A,0x10,0x89,0x50,0x88,0x50,0x48,0x50,0x48,0x60,0x28,0x00,0x08,
/*-- 文字: 愛 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x1F,0x00,0x09,0xFC,0x08,0x48,0x04,0x90,0x7F,0xFC,0x40,0x44,0x00,0x42,0x3F,0xFC,
0x00,0x20,0x0F,0xE0,0x04,0x30,0x02,0xD0,0x03,0x08,0x0C,0xC6,0x70,0x31,0x20,0x0C,
/*-- 文字: 好 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x08,0x3F,0x88,0x10,0x08,0x08,0x08,0x04,0x3F,0x04,0x24,0x04,0x24,0x7F,0xE4,
0x04,0x22,0x04,0x26,0x04,0x18,0x04,0x10,0x04,0x28,0x04,0x64,0x05,0x22,0x02,0x01,
/*-- 文字: 者 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x80,0x10,0x80,0x37,0xFC,0x08,0x80,0x04,0x80,0x7F,0xFE,0x01,0x00,0x00,0xC0,
0x1F,0xE0,0x10,0x38,0x10,0x27,0x1F,0xE0,0x10,0x20,0x10,0x20,0x1F,0xE0,0x10,0x20,
/*-- 文字: D --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x22,0x00,0x42,0x00,0x42,0x00,0x42,
0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x22,0x00,0x1F,0x00,0x00,0x00,0x00,
/*-- 文字: I --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,
0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x00,0x00,0x00,
/*-- 文字: Y --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x14,
0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x1C,0x00,0x00,0x00,0x00,
/*-- 文字: 網 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x3F,0xFE,0x20,0x02,0x20,0x82,0x28,0x8A,0x39,0x52,0x2A,0x22,0x24,0x22,
0x24,0x52,0x2A,0x52,0x29,0x8A,0x20,0x86,0x20,0x02,0x38,0x02,0x10,0x02,0x00,0x00,
/*-- 文字: 站 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x04,0x00,0x04,0x04,0x04,0x08,0x04,0x08,0x7C,0x7F,0x04,0x20,0x04,0x22,0x04,0x24,
0x3F,0x94,0x20,0x94,0x20,0x88,0x20,0xBC,0x20,0x83,0x3F,0x80,0x20,0x80,0x00,0x00,
/*-- 文字: 論 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x02,0x02,0x02,0x04,0x05,0x0C,0x09,0x04,0x10,0x80,0x60,0x40,0x20,0xA7,0x08,0x84,
0x1C,0x84,0x03,0x84,0x00,0x84,0x00,0xA4,0x20,0x94,0x20,0x8C,0x3F,0x04,0x00,0x00,
/*-- 文字: 壇 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x3F,0x88,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x3F,0x7F,0xC8,0x02,0x08,
0x06,0x08,0x01,0x08,0x11,0x38,0x20,0x8C,0x7E,0x43,0x63,0xE0,0x20,0x40,0x00,0x00,
/*-- 文字: , --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x08,0x00,0x04,0x00,0x00,
/*-- 文字: 這 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x01,0x00,0x06,0x02,0x02,0x0C,0x3F,0xE8,0x08,0x00,0x08,0x40,0x04,0x8F,0x05,0x08,
0x02,0x08,0x02,0x08,0x05,0x08,0x08,0x88,0x10,0x48,0x00,0x14,0x7F,0xE2,0x00,0x01,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -