📄 main.c
字号:
#include"reg52.h"
sfr WDT_CONTR=0xe1;
#define zimushuru 0
#define pinyinchazhao 1
#define hazixianshi 2
#define xunhuan_xianshi 3
#define write_to_eprom 4
#define read_of_eprom 5
#define yiwei_xianshi 6
extern void display(void);
extern bit keyread(unsigned char *keyborad);
extern unsigned char translatekeytoasc(key);
extern void Readtodisp_kuodown(unsigned char ASCIICode,unsigned char count);
extern void Clear_one_zimu(unsigned char ge);
extern void Pre_hz();
extern void Next_hz();
extern void Choose_hz(unsigned char no);
extern void pyInit();
extern void Pageup();
extern void Pagedown();
extern void pinyinchazi(unsigned char *py);
extern void Clear_one_hanzi(void);
extern unsigned char page;
extern void Save_eprom();
extern void Read_eprom();
extern void Choose_eprom();
extern void Init();
extern void Clear_all(void);
extern void flash_disply(void);
extern void flash_this_page(void);
extern void begin(void);
xdata unsigned char key;
unsigned char zhuangtai=zimushuru;
sbit OE=P3^5; //138的使能
unsigned char zi_mu_ge_shu=0,zimu[7]="";
bit flag_begin=0;
void main()
{
pyInit();
zhuangtai=1;
begin();
TMOD=0x01;
TH0=0xf8;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
OE=0;
while(1)
{
if(keyread(&key))
{
key=translatekeytoasc(key);
if(flag_begin==0&&key!=24)
continue;
if(flag_begin==0&&key==24)
{
flag_begin=1;
Init();
}
if(key>='a'&&key<='z')
{
if(zhuangtai<=hazixianshi)
{
if(zhuangtai!=zimushuru)
Clear_all();
zhuangtai=zimushuru;
if(zi_mu_ge_shu<=5)
{
zimu[zi_mu_ge_shu]=key;
Readtodisp_kuodown(key,zi_mu_ge_shu);
zi_mu_ge_shu++;
}
}
}
else if(key==12) //撤消键
{
if(zhuangtai==zimushuru&&zi_mu_ge_shu!=0)
{
zi_mu_ge_shu--;
zimu[zi_mu_ge_shu]='\0';
Clear_one_zimu(zi_mu_ge_shu);
}
else if(zhuangtai==hazixianshi)
{
Clear_one_hanzi();
}
}
else if(key==29)
{
if(zhuangtai==zimushuru) //空格键
{
pinyinchazi(zimu);
zhuangtai=pinyinchazhao;
zi_mu_ge_shu=0;
zimu[0]='\0';
zimu[1]='\0';
zimu[2]='\0';
zimu[3]='\0';
zimu[4]='\0';
zimu[5]='\0';
zimu[6]='\0';
}
}
else if(key==18)
{
if(zhuangtai==pinyinchazhao) //拼音下翻字
{
Next_hz();
}
}
else if(key==17)
{
if(zhuangtai==pinyinchazhao) //拼音上翻字
{
Pre_hz();
}
}
else if(key>=49&&key<=52)
{
if(zhuangtai==pinyinchazhao) //选字
{
zhuangtai=hazixianshi;
Choose_hz(key-49);
}
}
else if(key==15) //上翻页
{
if(zhuangtai<=hazixianshi)
{
zhuangtai=hazixianshi;
Pageup();
}
}
else if(key==16) //下翻页
{
if(zhuangtai<=hazixianshi)
{
zhuangtai=hazixianshi;
Pagedown();
}
}
else if(key==24) //ESC
{
if(zhuangtai==hazixianshi)
{
flash_disply();
zhuangtai=xunhuan_xianshi; //组循环显示
page=0;
}
else
{
zhuangtai=hazixianshi;
if(zhuangtai==xunhuan_xianshi)
page=0;
flash_this_page();
}
}
else if(key==27) //ctrl
{
if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi)
zhuangtai=write_to_eprom; //保存词组状态
}
else if(key==32) //enter
{
if(zhuangtai==read_of_eprom)
{
Choose_eprom();
zhuangtai=hazixianshi;
}
}
else if(key==21) //del键
{
if(zhuangtai!=xunhuan_xianshi)
zhuangtai=yiwei_xianshi;
}
else
{ if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi) //在循环和移位显示状态不能进入
{
if(zhuangtai==write_to_eprom)
{
zhuangtai=hazixianshi;
Save_eprom(); //保存字
}
else
{
Read_eprom();
zhuangtai=read_of_eprom; //读取已存的字
}
}
}
}
}
}
void dis(void) interrupt 1
{
TH0=0xf0;
TL0=0x00;
display();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -