24MHZ的晶振,點線掃描地址為:0xFFFF
*/
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>
#include <ABSACC.h>
#define uchar unsigned char
#define uint unsigned int
#define SPEED 6
uchar col, disrow;
uint word;
uchar code HZ[];
uchar BUFF[6];
void loadoneline(void); //裝載某行一線點陣數據
void sendoneline(void); //串行發送一行線點陣數據
/****************************主函數***************************/
void main(void)
{
uchar i;
col = 0;
word = 0;
while(1)
{
while(col <16) // 循環16次,點亮并移動一個漢字
{
for(i=0; i <SPEED; i++) //漢字在屏幕上的停留時間(即移動速度快慢)
{
for(disrow=0;disrow <16;disrow++)//掃描16行
{
loadoneline(); //裝載一線點陣數據
sendoneline(); //發送一線點陣數據
XBYTE[0xFFFF]= 0x10 + disrow; // 點亮屏幕
XBYTE[0xFFFF] = 0x20 + disrow; //鎖住74LS595
}
}
col++; //列指針遞增
}
col = 0;
word= word + 32; // 一個漢字移動后,指向下一個漢字
if(word >= 1600)
word = 0; // 移動50個漢字后,重新開始
}
}
/****************用"字模"等軟件提出要顯示的字符漢字點陣碼*************************/
uchar code HZ[]=
{
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,
//0x08,0x20,0x06,0x30,0x04,0x40,0x3F,0xF8,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,
0x3F,0xF8,0x21,0x08,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,/*"
0x00,0x40,0x10,0x40,0x10,0x40,0x10,0x44,0x1F,0xFE,0x10,0x00,0x10,0x00,0x10,0x00,
0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x20,0x10,0x40,0x10,0x80,0x10,/*"
0x10,0x00,0x10,0xF8,0x10,0x88,0xFE,0x88,0x10,0x88,0x10,0x88,0x38,0x88,0x34,0x88,
0x54,0x88,0x50,0x88,0x91,0x08,0x11,0x0A,0x12,0x0A,0x12,0x0A,0x14,0x06,0x10,0x00,/*"
0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,
0x
}
|