?? main.c
字號:
/*模擬時序*/
#include <reg51.h>
#include <cncode.h>
#include <encode.h>
sbit cd = P2^0;
sbit ce = P2^1;
sbit rd = P2^2;
sbit wr = P2^3;
sbit md2 = P2^4;
sbit fs1 = P2^5;
sbit halt = P2^6;
sbit res = P2^7;
unsigned char x, y;
void delay(unsigned char tt){
for(;tt!=0; --tt);
}
void writed(unsigned char dat){//把數(shù)值傳送到D口
cd = 0;//傳輸類型是數(shù)據(jù)
ce = 0;
wr = 0;
P0 = dat;
delay(1);//lcm占用時間,晶振較快時需要
wr = 1;
//ce = 1;
}
void writec(unsigned char command){//把命令傳送到D口
cd = 1;//傳輸類型是命令
ce = 0;
wr = 0;
P0 = command;
delay(1);
wr = 1;
//ce = 1;
}
void wprintf(char *ptr){
unsigned int posi, i=0;
unsigned char c1, c2, j, k;
while(ptr[i]!=0x00){
c1 = ptr[i];
c2 = ptr[i+1];
posi = x*30 + y;
if(c1 <= 128){//ascii大于128為漢字
for(k=0; k<16; ++k){//16*8
writed(posi&0xff);
writed(posi/256);
writec(0x24);
writec(0xb0);
writed(ASC_MSK[(c1-0x20)*16+k]);
writec(0xb2);
posi += 30;
}
if(y>28){//換行
x += 16;
y = 0;
}else ++y;
++i;
}
else{
if(y>28){//換行
x += 16;
y = 0;
}else{
for(j=0;j<sizeof(GB_16)/sizeof(GB_16[0]);++j){//找到漢字
if(c1 == GB_16[j].Index[0] && c2 == GB_16[j].Index[1]) break;
}
if(j<sizeof(GB_16)/sizeof(GB_16[0])){
for(k=0;k<16;++k){
writed(posi&0xff);
writed(posi/256);
writec(0x24);
writec(0xb0);
writed(GB_16[j].Msk[k*2]);
writed(GB_16[j].Msk[k*2+1]);//16*16,每行2字節(jié)
writec(0xb2);
posi += 30;//下一行
}
}
else{//沒找到則涂黑
for(k=0;k<16;k++){
writed(posi&0xff);
writed(posi/256);
writec(0x24);
writec(0xb0);
writed(0xff);
writed(0xff);
writec(0xb2);
posi += 30;//下一行
}
}
y += 2;
i += 2;//下一字
}
}
}
}
void main(void){
//unsigned int i;
fs1 = 0;//fs1管腳高電平時表示字體為8*6;低電平時為8*8,8*6寫不了16*16中文,所以不用了
md2 = 0;
halt = 0;
writed(0);
writed(0);
writec(0x42);
writed(30);
writed(0);
writec(0x43);
writec(0x80);
writec(0x9a);//關(guān)閉文本顯示,開圖形顯示
x = 0;//坐標(biāo)
y = 0;
wprintf("My Name Is 黃偉鉗, Think You For Download! ^_^\0");
while(1);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -