📄 show.c
字号:
#include <reg51.h>
#include <stdio.h>
#include "var.h"
#include "sub.h"
void showhz(void);
void main ()
{
int loop=9;
EA=1;
EX0=1;
IT0=1;
ET0=1;
TMOD=1;
TH0=0xFC;
TL0=0x17;
TR0=1;
InitLCD(30);
showhz();
while(loop==9){};
}
void showhz()
{
char col=0,row=0,j=0;
int start_tep=0,index=0;
for (hz_pointer=0;hz_pointer<hz_size;hz_pointer++)
{
row=hz_pointer/(12/2);//汉子所在的行数。
col=hz_pointer%(12/2);//汉字的列数
start_tep=row*LineChar*16+col*2;//下一个汉字的开启地址
for(j=0;j<16;j++)
{
start_tep=start_tep+LineChar;//地址换一行
OutPortCom3( (unsigned char)(start_tep), (unsigned char)(start_tep>>8), 0x24); //set address
index=hz_pointer*32+j*2;
OutPortCom2( hzdot[index], 0xc0);//输出低位
index=hz_pointer*32+j*2+1;
OutPortCom2(hzdot[index], 0xc4);//输出高位
OutPortCom3( (unsigned char)(start_tep+12), (unsigned char)((start_tep+12)>>8), 0x24); //set address
index=hz_pointer*32+j*2;
OutPortCom2( hzdot[index], 0xc0);//输出低位
index=hz_pointer*32+j*2+1;
OutPortCom2(hzdot[index], 0xc4);//输出高位
if(col<3)
{
OutPortCom3( (unsigned char)(start_tep+24), (unsigned char)((start_tep+24)>>8), 0x24); //set address
index=hz_pointer*32+j*2;
OutPortCom2( hzdot[index], 0xc0);//输出低位
index=hz_pointer*32+j*2+1;
OutPortCom2(hzdot[index], 0xc4);//输出高位
}
}
}
/*
OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
OutPortCom2( 0xff, 0xc0);
OutPortCom2( 0xff, 0xc4);*/
}
void shack() interrupt 0
{
if (key_counter<30)key_counter++;
else key_counter=0;
OutPortCom3((unsigned char)key_counter*60, (unsigned char)((key_counter*60)>>8), 0x42); //set address
}
void ontime() interrupt 1
{
TH0=0xFC;
TL0=0x17;
if (timer_counter<500)timer_counter++;
else
{
timer_counter=0;
if (key_counter<8)key_counter++;
else key_counter=0;
OutPortCom3((unsigned char)(key_counter*240),(unsigned char)((key_counter*240)>>8), 0x42); //set address
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -