?? 32
字號:
文件頭:
/*************************************************
程序名稱: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];
文件尾:
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 + -