?? 32x64led點陣上顯示32x32的漢字.txt
字號:
/*************************************************
程序名稱:32x64LED點陣上顯示32X32的漢字
日期 :2006.11.25
程序說明:一個漢字占128個字節,點陣每一行數據占4個字節
作者 :liuanggh
*************************************************/
#include <reg52.h>
#include "P1.h"
sbit LOAD =P3^2; //74LS595鎖存
sbit RST =P3^3; //
sbit SLECET =P2^3; //74LS138譯碼器使能端,低電平有效
uchar code line[] = { //行掃描段碼
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07
};
uchar line_count; //行計數器
uchar move_count; //移位計數器
uchar font_count; //字計數器
uchar buff[16] = {0x00}; //一行有64列,每8列數據占一個字節,所以緩沖區需要8個字節
void transform_data(); //數據轉換
void send_data(); //串行發送8個字節的數據
main()
{
uchar i;
uchar j = 0;
SCON = 0; //串口工作在方式0下
SLECET = 1; //138譯碼器無效
RST = 0;
RST = 1; //595復位
/*
for(i = 0; i < 32; i++)
{
LOAD = 0;
send_data();
LOAD = 1;
P2 = line[j%8]; //片選138
P1 = line[i%8];
if(i%8 == 7)
j++;
}
*/
for(i = 0; i < 8; i++)
{
P2 = line[i]; //138譯碼器片選
for(j = 0; j < 8; j++)
{
LOAD = 0; //保持原有數據
send_data(); //發送數據
SLECET = 1; //關閉顯示
LOAD = 1; //595鎖存數據
SLECET = 0; //138譯碼器有效
P1 = line[j]; //行掃描
line_count++; //行掃描一次,行計數器加1
if(line_count > 31)
line_count = 0;
delay();
}
}
}
void transform_data() //數據轉換
{
/*
uchar temp[5] = {0};
uchar i;
for( i = 0; i < 4; i++)
temp[i] = font[(font_count + i) * 8 + line_count]; //取第i行數據
for( i = 0; i < 4; i++)
buff[i] = ( temp[ i ] >> move_count )|( temp[ i + 1] << ( 7 - move_count ) );
*/
uchar i;
for(i = 0; i < 4; i++)
{
buff[i] = hanzi[ line_count*4 + i];
}
for(i = 4; i < 8; i++)
{
buff[i] = hanzi[ line_count*4 + i + 128];
}
for(i = 8; i < 12; i++)
{
buff[i] = hanzi[ line_count*4 + i + 256];
}
for(i = 12; i < 16; i++)
{
buff[i] = hanzi[ line_count*4 + i + 384];
}
}
void send_data() //串行發送8個字節的數據
{
uchar i;
transform_data(); //數據轉換
//顯示"陣點"
for( i = 0; i < 16; i++)
{
//SBUF = 0xff;
SBUF = buff[i];
while(!TI);
TI = 0;
}
/*
//顯示"點陣"
for( i = 4; i < 8; i++)
{
//SBUF = 0xff;
SBUF = buff[i];
while(!TI);
TI = 0;
}
for( i = 0; i < 4; i++)
{
//SBUF = 0xff;
SBUF = buff[i];
while(!TI);
TI = 0;
}
*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -