📄 killc.c
字号:
#include <reg51.h>
#include <intrins.h>
#include <absacc.h>
#include "hzcode.h"
#include "DS1302.h"
#define uchar unsigned char
#define uint unsigned int
sbit R_S= P1^5;
sbit RES= P1^1;
sbit W_R= P1^6;
sbit C_S= P1^0;
//sbit key0= P3^2;
sbit key1= P3^2;
sbit key2= P3^3;
sbit CSRAM= P1^4;
sbit key4= P1^7;
uchar date_buf[8];
uchar time0_count;
void LcdInit();
void Clear();
void DispMnuea();
void DispMnued();
void PanduanFlage(uchar f);
void Delayms(uint ms);
void WrateC(uchar cmd);
void WrateD(uchar dat);
void Setadd(uchar xl,uchar yl);
void WriteEnglish(uchar col,uchar pag,uchar *ptr,bit Fx_flage);
/**************************************************/
/*
void PanduanFlage0(uchar f)
{
if(ID0==f) Fx_flage=0;
else Fx_flage=1;
}
void Mnue0()
{
PanduanFlage(0);
WriteEnglish(0,0,Menu0[0],Fx_flage);
PanduanFlage(1);
WriteEnglish(0,2,Menu0[1],Fx_flage);
PanduanFlage(2);
WriteEnglish(0,4,Menu0[2],Fx_flage);
PanduanFlage(3);
WriteEnglish(0,6,Menu0[3],Fx_flage);
}
*/
void puts(uchar col,uchar pag,uchar ptr)
{
uchar i,j;
ptr+=16;
for(i=0;i<2;i++)
{
Setadd(col,pag);
for(j=0;j<8;j++)
WrateD(fontASCII8x16[ptr][i*8+j]);
pag++;
}
}
void ShowChina(uchar col,uchar pag,uchar ptr)
{
uchar j;
Setadd(col,pag);
for(j=0;j<16;j++)
WrateD(HZ16x16[ptr][j]);
pag++;
Setadd(col,pag);
for(j=0;j<16;j++)
WrateD(HZ16x16[ptr][j+16]);
}
void Showhz(void)
{
ShowChina(0,0,0);
ShowChina(16,0,1);
ShowChina(32,0,2);
ShowChina(48,0,3);
ShowChina(64,0,4);
ShowChina(80,0,5);
ShowChina(96,0,6);
ShowChina(112,0,7);
ShowChina(32,2,8);
ShowChina(48,2,9);
ShowChina(64,2,10);
ShowChina(80,2,11);
}
Int1() interrupt 0
{
EA=0;
while(key1==0)
{;;}
EA=1;
}
Int2() interrupt 2
{
EA=0;
while(key2==0)
{;;}
EA=1;
}
void show_date(void)
{
uchar i,j;
j = 16;
//year
i = date_buf[6]>>4;
i &= 0x0f;
puts(16+j,4,i);
i = date_buf[6] & 0x0f;
puts(24+j,4,i);
//month
i = date_buf[4]>>4;
i &= 0x01;
puts(48+j,4,i);
i = date_buf[4] & 0x0f;
puts(56+j,4,i);
//day
i = date_buf[3]>>4;
i &= 0x03;
puts(80+j,4,i);
i = date_buf[3] & 0x0f;
puts(88+j,4,i);
}
void show_time(void)
{
uchar i,j;
j = 32;
//hour
i = date_buf[2]>>4;
i &= 0x03;
puts(0+j,6,i);
i = date_buf[2] & 0x0f;
puts(8+j,6,i);
//minute
i = date_buf[1]>>4;
i &= 0x07;
puts(32+j,6,i);
i = date_buf[1] & 0x0f;
puts(40+j,6,i);
//second
i = date_buf[0]>>4;
i &= 0x07;
puts(64+j,6,i);
i = date_buf[0] & 0x0f;
puts(72+j,6,i);
}
void time0_init(void)
{
EA = 1;
ET0 = 1;
TMOD = 0x01;
PT0 = 1;
TH0 = 0x3C;
TL0 = 0xB0;
TR0 = 1;
}
void show_date_time(void)
{
// uchar *j;
// j = date_buf;
read_serial(date_buf);
show_date();
show_time();
}
void time0_interrupt() interrupt 1
{
EA=0;
TH0 = 0x3c;
TL0 = 0xb0;
time0_count++;
if(time0_count==20)
{
time0_count=0;
show_date_time();
}
EA=1;
}
void main()
{
uchar j=16;
time0_init();
LcdInit();
EA=1;
IT0=1;
EX0=1;
IT1=1;
EX1=1;
ShowChina(32+j,4,12);
ShowChina(64+j,4,13);
ShowChina(96+j,4,14);
j=32;
ShowChina(16+j,6,15);
ShowChina(48+j,6,16);
ShowChina(80+j,6,17);
//DispMnuea();
Showhz();
while(1)
{
}
}
void Delayms(uint ms)
{
uchar j;
while(ms--)
for(j=0;j<=20;j++);
}
void WrateC(uchar cmd)
{ C_S=0;
R_S=0;
W_R=0;
P0=cmd;
W_R=1;
C_S=1;
}
void WrateD(uchar dat)
{ C_S=0;
R_S=1;
W_R=0;
P0=dat;
W_R=1;
C_S=1;
}
void Clear()
{
unsigned char i,j,m=0;
for(i=0;i<8;i++)
{
Setadd(0,i);
for(j=0;j<128;j++)
WrateD(0x00);
}
}
void LcdInit()
{
RES=0;
Delayms(50);
RES=1;
Delayms(20);
WrateC(0xe2);
WrateC(0xA2);
WrateC(0xA1);
WrateC(0xc0);
WrateC(0x2c);
WrateC(0x2e);
WrateC(0x2F);
WrateC(0x81);
WrateC(0x16);
WrateC(0x25);
WrateC(0xAF);
WrateC(0x40);
Clear();
}
void Setadd(uchar xl,uchar yl)
{ uchar i;
i=xl&0x0f;
xl=(xl>>4)+0x10;
WrateC(0xb0+yl);
WrateC(xl);
WrateC(i);
}
void WriteEnglish(uchar col,uchar pag,uchar *ptr,bit t)
{
uchar i,j;
uchar c;
while(*ptr)
{
c= *ptr;
c -= 32;
if(t)
for(i=0;i<2;i++)
{
Setadd(col,pag);
for(j=0;j<8;j++)
WrateD(fontASCII8x16[c][i*8+j]);
pag++;
}
else
for(i=0;i<2;i++)
{
Setadd(col,pag);
for(j=0;j<8;j++)
WrateD(~fontASCII8x16[c][i*8+j]);
pag++;
}
col+=8;
if(col>0x7f)
{
col=0;
pag+=2;
}
ptr++;
pag-=2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -