send_single_command(0xa1);
counter=0;
}
PTC_PTC0=0;
}
}
void IncreaseTime(void){
second++;
if (second==60){
second=0;
minute++;
if (minute==60){
minute=0;
hour++;
if (hour==24){
hour=0;
}
}
}
}
void Translate(void){
second1=second/10;
second0=second-second1*10;
minute1=minute/10;
minute0=minute-minute1*10;
hour1=hour/10;
hour0=hour-hour1*10;
}
void send_command(unsigned char i_command)
{
unsigned char i;
for(i=0; i<8; i++)
{
PTC_PTC1=((i_command&0x80)==0x80?1:0);
delay(0);
PTC_PTC3=1; // clk=1;
delay(0);
PTC_PTC3=0; // clk=0;
i_command=i_command<<1;
}
}
void send_single_command(unsigned char command){
PTC_PTC2=0; //enable=0
delay(0);
send_command(command);
PTC_PTC2=1; //enable=1
delay(0);
}
void send_double_command(unsigned char command1,unsigned char command2){
PTC_PTC2=0; //enable=0
delay(0);
send_command(command1);
send_command(command2);
PTC_PTC2=1; //enable=1
delay(0);
}
void PrintToZLG7289(void){
if (gleaming==0x0f) gleaming=0x0a;
else gleaming=0x0f;
send_double_command(0x80,second0);
send_double_command(0x81,second1);
send_double_command(0x82,gleaming);
send_double_command(0x83,minute0);
send_double_command(0x84,minute1);
send_double_command(0x85,gleaming);
send_double_command(0x86,hour0);
send_double_command(0x87,hour1);
}
void GleamingHour(void){
send_double_command(0x88,0b00111111);
}
void GleamingMinute(void){
send_double_command(0x88,0b11100111);
}
void GleamingSecond(void){
send_double_command(0x88,0b11111100);
}
void GleamingNone(void){
send_double_command(0x88,0b11111111);
}
void ChangeStatus(void){
if (task==TskPrint) {
T1SC_TOIE=0;
GleamingHour();
task=TskSetHour;
}
else if (task==TskSetHour) {
task=TskSetMinute;
GleamingMinute();
}
else if (task==TskSetMinute) {
task=TskSetSecond;
GleamingSecond();
}
else if (task==TskSetSecond) {
task=TskSleep;
counter=14;
ScreenOpen();
GleamingNone();
T1SC_TOIE=1;
}
else if (task==TskSleep){
task=TskPrint;
PTC_PTC0=1;
GleamingNone();
counter=0;
}
}
void Increase(void){
if (task==TskSetHour) {
hour++;
if (hour==24) hour=0;
Translate();
PrintToZLG7289();
}
if (task==TskSetMinute) {
minute++;
if (minute==60) minute=0;
Translate();
PrintToZLG7289();
}
if (task==TskSetSecond) {
second++;
if (second==60) second=0;
Translate();
PrintToZLG7289();
}
}
void Decrease(void){
if (task==TskSetHour) {
if (hour==0) hour=24;
hour--;
Translate();
PrintToZLG7289();
}
if (task==TskSetMinute) {
if (minute==0) minute=60;
minute--;
Translate();
PrintToZLG7289();
}
if (task==TskSetSecond) {
if (second==0) second=60;
second--;
Translate();
PrintToZLG7289();
}
}
interrupt 6 void OverFlow(){
T1SC_TOIE=0;
T1SC_TOF=0;
if (hs==0){
hs=1;
}
else {
hs=0;
ScreenOpen();
IncreaseTime();
Translate();
PrintToZLG7289();
}
T1SC_TOIE=1;
}
interrupt 15 void KBI_ISR(void)
{
unsigned char i;
INTKBSCR_IMASKK = 1; //屏蔽鍵盤中斷
delay(30000);
if (task!=TskPrint && task!=TskSleep){
if (PTA_PTA2==0)
Decrease();
if (PTA_PTA3==0)
Increase();
}
if (PTA_PTA0==0)
ChangeStatus();
if (PTA_PTA4==0) {
PTC_PTC0=1;
counter=0;
}
INTKBSCR_ACKK = 1; //清除中斷確認(rèn)
INTKBSCR_IMASKK = 0; //開啟鍵盤中斷
}
其硬件接線?圖片怎么傳不上去呢?





