?? demot.c
字號:
#include <reg51.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
/* 地址定義 */
/* 直接訪問方式地址定義,根據(jù)用戶平臺接口修改 */
#define cradd1 XBYTE[0x200] /*讀狀態(tài)字地址(左)*/
#define cradd2 XBYTE[0xa00] /*讀狀態(tài)字地址(中)*/
#define cradd3 XBYTE[0x600] /*讀狀態(tài)字地址(右)*/
#define cwadd1 XBYTE[0x000] /*寫指令代碼地址(左)*/
#define cwadd2 XBYTE[0x800] /*寫指令代碼地址(中)*/
#define cwadd3 XBYTE[0x400] /*寫指令代碼地址(右)*/
#define dwadd1 XBYTE[0x100] /*寫顯示數(shù)據(jù)地址(左)*/
#define dwadd2 XBYTE[0x900] /*寫顯示數(shù)據(jù)地址(中)*/
#define dwadd3 XBYTE[0x500] /*寫顯示數(shù)據(jù)地址(右)*/
#define dradd1 XBYTE[0x300] /*讀顯示數(shù)據(jù)地址(左)*/
#define dradd2 XBYTE[0xb00] /*讀顯示數(shù)據(jù)地址(中)*/
#define dradd3 XBYTE[0x700] /*讀顯示數(shù)據(jù)地址(右)*/
/* 常量定義 */
#define display_on 0x3f;
#define para1 0x40;
#define start_line0 0xc0;
unsigned int O_X,O_Y,com,dat1; /* O_X: 在顯示字符時定義為行地址: 0~7
在繪點顯示時定義為行地址(0-63)
O_Y: 列地址(0~127)
com: 指令碼寄存器
dat1: 數(shù)據(jù)寄存器 */
unsigned char count1,code_1;
/* 西文字符庫定義 */
code unsigned char CHTAB[96][8]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*" "=00H*/
0x00,0x00,0x00,0x4F,0x00,0x00,0x00,0x00, /*"!"=01H*/
0x00,0x00,0x07,0x00,0x07,0x00,0x00,0x00, /*"""=02h*/
0x00,0x14,0x7F,0x14,0x7F,0x14,0x00,0x00, /*"#"=03h*/
0x00,0x24,0x2A,0x7F,0x2A,0x12,0x00,0x00, /*"$"=04h*/
0x00,0x23,0x13,0x08,0x64,0x62,0x00,0x00, /*"%"=05h*/
0x00,0x36,0x49,0x55,0x22,0x50,0x00,0x00, /*"&"=06h*/
0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00, /*"'"=07h*/
0x00,0x00,0x1C,0x22,0x41,0x00,0x00,0x00, /*"("=08h*/
0x00,0x00,0x41,0x22,0x1C,0x00,0x00,0x00, /*")"=09h*/
0x00,0x14,0x08,0x3E,0x08,0x14,0x00,0x00, /*"*"=0Ah*/
0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00, /*"+"=0Bh*/
0x00,0x00,0x50,0x30,0x00,0x00,0x00,0x00, /*";"=0Ch*/
0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00, /*"-"=0Dh*/
0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00, /*"."=0Eh*/
0x00,0x20,0x10,0x08,0x04,0x02,0x00,0x00, /*"/"=0Fh*/
0x00,0x3E,0x51,0x49,0x45,0x3E,0x00,0x00, /*"0"=10h*/
0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00, /*"1"=11h*/
0x00,0x42,0x61,0x51,0x49,0x46,0x00,0x00, /*"2"=12h*/
0x00,0x21,0x41,0x45,0x4B,0x31,0x00,0x00, /*"3"=13h*/
0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00, /*"4"=14h*/
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, /*"5"=15h*/
0x00,0x3C,0x4A,0x49,0x49,0x30,0x00,0x00, /*"6"=16h*/
0x00,0x01,0x01,0x79,0x05,0x03,0x00,0x00, /*"7"=17h*/
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, /*"8"=18h*/
0x00,0x06,0x49,0x49,0x29,0x1E,0x00,0x00, /*"9"=19h*/
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00, /*":"=1Ah*/
0x00,0x00,0x56,0x36,0x00,0x00,0x00,0x00, /*";"=1Bh*/
0x00,0x08,0x14,0x22,0x41,0x00,0x00,0x00, /*"<"=1Ch*/
0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00, /*"="=1Dh*/
0x00,0x00,0x41,0x22,0x14,0x08,0x00,0x00, /*">"=1Eh*/
0x00,0x02,0x01,0x51,0x09,0x06,0x00,0x00, /*"?"=1Fh*/
0x00,0x32,0x49,0x79,0x41,0x3E,0x00,0x00, /*"@"=20h*/
0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00, /*"A"=21h*/
0x00,0x41,0x7F,0x49,0x49,0x36,0x00,0x00, /*"B"=22h*/
0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00, /*"C"=23h*/
0x00,0x41,0x7F,0x41,0x41,0x3E,0x00,0x00, /*"D"=24h*/
0x00,0x7F,0x49,0x49,0x49,0x49,0x00,0x00, /*"E"=25h*/
0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00, /*"F"=26h*/
0x00,0x3E,0x41,0x41,0x49,0x7A,0x00,0x00, /*"G"=27h*/
0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,0x00, /*"h"=28h*/
0x00,0x00,0x41,0x7F,0x41,0x00,0x00,0x00, /*"I"=29h*/
0x00,0x20,0x40,0x41,0x3F,0x01,0x00,0x00, /*"J"=2Ah*/
0x00,0x7F,0x08,0x14,0x22,0x41,0x00,0x00, /*"K"=2Bh*/
0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00, /*"L"=2Ch*/
0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00, /*"M"=2Dh*/
0x00,0x7F,0x06,0x08,0x30,0x7F,0x00,0x00, /*"N"=2Eh*/
0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00, /*"O"=2Fh*/
0x00,0x7F,0x09,0x09,0x09,0x06,0x00,0x00, /*"P"=30h*/
0x00,0x3E,0x41,0x51,0x21,0x5E,0x00,0x00, /*"Q"=31h*/
0x00,0x7F,0x09,0x19,0x29,0x46,0x00,0x00, /*"R"=32h*/
0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00, /*"S"=33h*/
0x00,0x01,0x01,0x7F,0x01,0x01,0x00,0x00, /*"T"=34h*/
0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x00, /*"U"=35h*/
0x00,0x1F,0x20,0x40,0x20,0x1F,0x00,0x00, /*"V"=36h*/
0x00,0x7F,0x20,0x18,0x20,0x7F,0x00,0x00, /*"W"=37h*/
0x00,0x63,0x14,0x08,0x14,0x63,0x00,0x00, /*"X"=38h*/
0x00,0x07,0x08,0x70,0x08,0x07,0x00,0x00, /*"Y"=39h*/
0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00, /*"Z"=3Ah*/
0x00,0x00,0x7F,0x41,0x41,0x00,0x00,0x00, /*"["=3Bh*/
0x00,0x02,0x04,0x08,0x10,0x20,0x00,0x00, /*"\"=3Ch*/
0x00,0x00,0x41,0x41,0x7F,0x00,0x00,0x00, /*"]"=3Dh*/
0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x00, /*"^"=3Eh*/
0x00,0x40,0x40,0x40,0x40,0x40,0x00,0x00, /*"_"=3Fh*/
0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x00, /*"`"=40h*/
0x00,0x20,0x54,0x54,0x54,0x78,0x00,0x00, /*"a"=41h*/
0x00,0x7F,0x48,0x44,0x44,0x38,0x00,0x00, /*"b"=42h*/
0x00,0x38,0x44,0x44,0x44,0x28,0x00,0x00, /*"c"=43h*/
0x00,0x38,0x44,0x44,0x48,0x7F,0x00,0x00, /*"d"=44h*/
0x00,0x38,0x54,0x54,0x54,0x18,0x00,0x00, /*"e"=45h*/
0x00,0x00,0x08,0x7E,0x09,0x02,0x00,0x00, /*"f"=46h*/
0x00,0x0C,0x52,0x52,0x4C,0x3E,0x00,0x00, /*"g"=47h*/
0x00,0x7F,0x08,0x04,0x04,0x78,0x00,0x00, /*"h"=48h*/
0x00,0x00,0x44,0x7D,0x40,0x00,0x00,0x00, /*"i"=49h*/
0x00,0x20,0x40,0x44,0x3D,0x00,0x00,0x00, /*"j"=4Ah*/
0x00,0x00,0x7F,0x10,0x28,0x44,0x00,0x00, /*"k"=4Bh*/
0x00,0x00,0x41,0x7F,0x40,0x00,0x00,0x00, /*"l"=4Ch*/
0x00,0x7C,0x04,0x78,0x04,0x78,0x00,0x00, /*"m"=4Dh*/
0x00,0x7C,0x08,0x04,0x04,0x78,0x00,0x00, /*"n"=4Eh*/
0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00, /*"o'=4Fh*/
0x00,0x7E,0x0C,0x12,0x12,0x0C,0x00,0x00, /*"p"=50h*/
0x00,0x0C,0x12,0x12,0x0C,0x7E,0x00,0x00, /*"q"=51h*/
0x00,0x7C,0x08,0x04,0x04,0x08,0x00,0x00, /*"r"=52h*/
0x00,0x58,0x54,0x54,0x54,0x64,0x00,0x00, /*"s"=53h*/
0x00,0x04,0x3F,0x44,0x40,0x20,0x00,0x00, /*"t"=54h*/
0x00,0x3C,0x40,0x40,0x3C,0x40,0x00,0x00, /*"u"=55h*/
0x00,0x1C,0x20,0x40,0x20,0x1C,0x00,0x00, /*"v"=56h*/
0x00,0x3C,0x40,0x30,0x40,0x3C,0x00,0x00, /*"w"=57h*/
0x00,0x44,0x28,0x10,0x28,0x44,0x00,0x00, /*"x"=58h*/
0x00,0x1C,0xA0,0xA0,0x90,0x7C,0x00,0x00, /*"y"=59h*/
0x00,0x44,0x64,0x54,0x4C,0x44,0x00,0x00, /*"z"=5Ah*/
0x00,0x00,0x08,0x36,0x41,0x00,0x00,0x00, /*"{"=5Bh*/
0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00, /*"|"=5Ch*/
0x00,0x00,0x41,0x36,0x08,0x00,0x00,0x00, /*"}"=5Dh*/
0x00,0x02,0x01,0x02,0x04,0x02,0x00,0x00, /*"~"=5Fh*/
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00 /*" "=0x60*/
};
/************************************************************************************************/
/* 中文字符庫定義 */
code unsigned char CCTAB[16][8]={
0x82,0x8A,0x92,0xB2,0x02,0xA7,0x92,0x5E,/*蓬90 = 00H*/
0x2A,0xAF,0x2A,0x5A,0x4A,0x83,0x82,0x00,
0x00,0x80,0x40,0x3F,0x41,0x90,0x95,0x95,
0x95,0xFF,0x95,0x95,0x95,0xD0,0x40,0x00,
0x80,0x64,0x24,0x24,0x3F,0x24,0xA6,0x64,/*勃90 = 01H*/
0x20,0x20,0xFF,0x20,0x20,0xF0,0x20,0x00,
0x00,0x08,0x49,0x89,0x7D,0x0B,0x89,0x40,
0x30,0x0E,0x41,0x80,0x40,0x3F,0x00,0x00,
0x40,0x42,0x44,0xCC,0x00,0x20,0x22,0xE2,/*遠90 = 02H*/
0x22,0x22,0xE2,0x23,0x32,0x20,0x00,0x00,
0x00,0x40,0x20,0x1F,0x20,0x50,0x4C,0x43,
0x40,0x40,0x47,0x48,0x48,0x6E,0x20,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,/*大90 = 03H*/
0xA0,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
0x00,0x40,0x40,0x20,0x10,0x0C,0x03,0x00,
0x01,0x06,0x08,0x10,0x20,0x60,0x20,0x00
};
sbit ACC_7=ACC^7;
/*************************************/
/* 主程序 */
/*************************************/
void main()
{
unsigned char a,b,i,j;
INT_1(); /* 調初始化函數(shù) */
CLEAR(); /* 調清屏函數(shù) */
i=0; /* 繪點顯示 */
j=0;
com=0xc0; /* 顯示起始行設置 */
PR1();
PR4();
PR7();
for(i=0;i<192;)
{
for(j=0;j<64;j++)
{
O_X=i;
O_Y=j;
W_DOT();
i++;
}
if(i==192)
continue;
for(j=64;j>0;j--)
{
O_X=i;
O_Y=j;
W_DOT();
i++;
}
}
O_Y=0x00; /* 漢字顯示 */
O_X=0;
code_1=0x00;
CCW_PR();
O_Y=0x01;
O_X=0x40;
code_1=0x04;
CCW_PR();
O_Y=0x02;
O_X=0x7a;
code_1=0x08;
CCW_PR();
O_Y=0x03;
O_X=0xb0;
code_1=0x0c;
CCW_PR();
O_Y=0x04;
O_X=0x00;
code_1=0x00;
CCW_PR();
O_Y=0x05;
O_X=0x40;
code_1=0x04;
CCW_PR();
O_Y=0x06;
O_X=0x7f;
code_1=0x08;
CCW_PR();
O_Y=0x07;
O_X=0xb0;
code_1=0x0c;
CCW_PR();
a=0; /* 西文顯示 */
b=0;
code_1=0;
for(i=0;i<96;i++)
{
O_Y=a;
O_X=b;
CW_PR();
b=b+8;
code_1++;
if(code_1==96)
{
i=0;
code_1=0;
}
if(b==192)
{
a++;
b=0;
if(a==8)
{
return;
}
}
}
}
/*************************************/
/* 初始化函數(shù) */
/*************************************/
INT_1()
{
com=start_line0;
PR1(); /* 顯示起始行為0 */
PR4();
PR7();
com=display_on; /* 開顯示 */
PR1();
PR4();
PR7();
}
/*************************************/
/* 清屏函數(shù) */
/*************************************/
CLEAR()
{
for(count1=0xb8;count1<0xc0;count1++)
{
com=count1; /* 頁地址 */
PR1();
PR4();
PR7();
com=0x40; /* 列地址設置 */
PR1();
PR4();
PR7();
for(com=0;com<64;com++) /*清除所有HD61202的內部RAM單元*/
{
dat1=0x00;
PR2();
PR5();
PR8();
}
}
}
/*************************************/
/* 直接訪問方式的驅動函數(shù) */
/*************************************/
BUSY1()
{
do
{
ACC=cradd1; /* 讀狀態(tài)字 */
}
while (ACC_7==1); /* 判“忙”標志 */
}
BUSY2()
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -