#include <reg52.h>
#include <intrins.h>
#include<string.h>
#define uint unsigned int
#define uchar unsigned char
#define lcd_bus P0
#define date_bus P3
/*************LCD接口定義*************/
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit cs1=P2^3;
sbit cs2=P2^4;
sbit rst=P2^5;
/***************外擴輸出*************/
sbit a573a=P1^0;
sbit a573b=P1^1;
sbit a573c=P1^2;
/*********按鍵*****************/
sbit gn=P1^4;
sbit jia=P1^5;
sbit jian=P1^6;
/***************初始屏(工作)時顯示************/
uchar code table1[][32]={
//"第",
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//"一",
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//"組",
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周圍亮中間黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//"第",
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//"二",
0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,
//"組",
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周圍亮中間黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//"第",
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//"三",
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x84,0xC4,0x86,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
//"組",
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周圍亮中間黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//"第",
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//"四",
0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,
0x04,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,
0x00,0x7F,0x20,0x28,0x24,0x23,0x20,0x20,
0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
//"組",
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周圍亮中間黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圓滅**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/******框中間亮******/
0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,
0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,
/****************圓亮****************************/
0xC0,0xF0,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFE,0xFC,0xFC,0xF8,0xF0,0xC0,
0x03,0x0F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x3F,0x3F,0x1F,0x0F,0x03,
/***************調整時顯示***********************/
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-- 圓 --
0x00,0xFE,0x02,0x82,0xBA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xBA,0x82,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x40,0x4F,0x60,0x50,0x48,0x46,
0x48,0x50,0x60,0x4F,0x40,0xFF,0x00,0x00,
//-- 間 --
0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,
0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,
0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
//-- 隔 --
0x00,0xFE,0x22,0x5A,0x86,0x02,0x7A,0x4A,
0x4A,0x4A,0x4A,0x4A,0x7B,0x82,0x00,0x00,
0x00,0xFF,0x04,0x08,0x07,0xFF,0x09,0x0B,
0x0D,0x79,0x0D,0x4B,0x89,0x7F,0x01,0x00,
//-- 調 --
0x20,0x21,0xE6,0x00,0x00,0xFE,0x82,0x92,
0x92,0xFE,0x92,0xD2,0x82,0xFF,0x02,0x00,
0x00,0x00,0x3F,0x90,0x48,0x3F,0x00,0x3E,
0x12,0x12,0x12,0x5E,0x80,0x7F,0x00,0x00,
//-- 整 --
0x00,0x3A,0xAA,0x6A,0xFF,0x6A,0xAA,0x3A,
0x08,0xB7,0x44,0xA4,0x1C,0x06,0x04,0x00,
0x41,0x41,0x42,0x42,0x7B,0x42,0x42,0x7E,
0x4B,0x4A,0x4A,0x4A,0x43,0x61,0x41,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-- 組 --
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
//-- 間 --
0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,
0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,
0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
//-- 隔 --
0x00,0xFE,0x22,0x5A,0x86,0x02,0x7A,0x4A,
0x4A,0x4A,0x4A,0x4A,0x7B,0x82,0x00,0x00,
0x00,0xFF,0x04,0x08,0x07,0xFF,0x09,0x0B,
0x0D,0x79,0x0D,0x4B,0x89,0x7F,0x01,0x00,
//-- 調 --
0x20,0x21,0xE6,0x00,0x00,0xFE,0x82,0x92,
0x92,0xFE,0x92,0xD2,0x82,0xFF,0x02,0x00,
0x00,0x00,0x3F,0x90,0x48,0x3F,0x00,0x3E,
0x12,0x12,0x12,0x5E,0x80,0x7F,0x00,0x00,
//-- 整 --
0x00,0x3A,0xAA,0x6A,0xFF,0x6A,0xAA,0x3A,
0x08,0xB7,0x44,0xA4,0x1C,0x06,0x04,0x00,
0x41,0x41,0x42,0x42,0x7B,0x42,0x42,0x7E,
0x4B,0x4A,0x4A,0x4A,0x43,0x61,0x41,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };
/************定義變量******************/
uchar sj,sk=1,on,gnb;
uint mm,miao,zuj=40,yuanj=20;
uint fzg,zjg=0;
uint yjiab=3,zjiab=3;
uchar ja=0,tt,ti;
/*******毫秒延時************/
void delay(uint a)
{
uint x,y;
for(x=0;x<a;x++)
for(y=0;y<110;y++);
}
/***********延時*************/
void delayy()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/************測忙**************/
void lcd_busm()
{
uchar temp;
do
{
temp=0x80;
rs=0;
_nop_();
_nop_();
_nop_();
rw=1;
e=1;
temp=lcd_bus;
_nop_();
_nop_();
_nop_();
e=0;
} while((temp&0x80)==0x80);
}
/***********寫指令********************/
void send_comm(uchar comm)
{
lcd_busm();
rs=0;
delayy();
rw=0;
lcd_bus=comm;
delayy();
e=1;
delayy();
e=0;
}
/************寫數據********************/
void send_data(uchar date)
{
lcd_busm();
rs=1;
delayy();
rw=0;
delayy();
lcd_bus=date;
delayy();
e=1;
delayy();
e=0;
}
/*************選屏****************/
void csp(uchar a)
{
switch(a)
{
case 0:
{
cs1=1;
cs2=1;
break;
}
case 1:
{
cs1=1;
cs2=0;
break;
}
case 2:
{
cs1=0; delayy();
cs2=1;
break;
}
default: break;
}
}
/**********初始化*****************/
void init()
{
rst=0;
delay(150);
rst=1;
delay(100);
csp(0);
send_comm(0x3f);
delayy();
send_comm(0xc0);
a573a=0;
a573b=0;
a573c=0;
}
/**************定時器初始化**************/
void time()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0X3C;
TL1=0XB0;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
/***********設置頁地址*************/
void x_page(uchar x)
{
send_comm(0xb8+x);
delayy();
}
/************設置列地址***********/
void y_line(uchar y)
{
send_comm(0x40+y);
delayy();
}
/************設置行地址***********/
void z_hang(uchar z)
{
send_comm(0xc0+z);
delayy();
}
/*************清空顯示內存***********/
void clean()
{
uchar i,j,k;
for(i=0;i<8;i++)
{
csp(0);
y_line(0);
delayy();
x_page(i);
delayy();
csp(1);
for(j=0;j<64;j++)
{
send_data(0x00);
}
delayy();
csp(2);
for(k=64;k<128;k++)
{
send_data(0x00);
}
}
}
/****************頁和列地址*****************/
void write_x_y(uchar x,y)
{
x_page(x);
y_line(y);
}
/**************指定位置寫漢字****************/
void write_zf(uchar a,b,c )
{
uchar k,m;
write_x_y(a,b); //寫頁和列地址是字的上半
for(k=0;k<16;k++)
{
send_data(table1[c][k]);
}
delayy();
write_x_y(a+1,b); //寫頁和列地址是字的下半
for(m=16;m<32;m++)
{
send_data(table1[c][m]);
}
}
/*****************指定位置寫字ASCII*************/
void write_ascii(uchar a,b,c )
{
uchar k,m;
write_x_y(a,b);
for(k=0;k<8;k++)
{
send_data(table1[c][k]);
}
delayy();
write_x_y(a+1,b);
for(m=8;m<16;m++)
{
send_data(table1[c][m]);
}
}
/***************滿行寫字***************/
void write_mh(uchar a,b,c) //(頁,列 ,字)
{
uchar i,d;
csp(1);
for(i=0;i<4;i++)
{
write_zf(a,b+i*16,c++);
}
csp(2); delayy();
for(d=0;d<4;d++)
{
write_zf(a,b+d*16,c++);
}
}
/*************滿屏寫字***************/
void write_mp(uchar zi)
{
uchar i;
for(i=0;i<4;i++)
{
write_mh(i+1*i,0,i*8+zi); //(頁,列,字)
}
}
/***********間隔輸出口動作,液晶指示狀態變化***************/
void yx()
{
switch(zjg)
{
case 0: a573a=1;
a573b=1;
a573c=1;
date_bus=0x00;
a573a=0;
a573b=0;
a573c=0;
a573a=1; date_bus=0x01;
csp(1);
write_zf(6,48,27);
write_zf(0,48,32);
on=1;
if(fzg==1)
{
date_bus=date_bus|0x02;
csp(2);
write_zf(0,0,33);
delay(100);
date_bus=0x01;
write_zf(0,0,31);
}
if(fzg==2)
{
date_bus=date_bus|0x04;
csp(2);
write_zf(0,16,33);
delay(100);
date_bus=0x01;
write_zf(0,16,31);
}
if(fzg==3)
{
date_bus=date_bus|0x08;
csp(2);
write_zf(0,32,33);
delay(100);
date_bus=0x01;
write_zf(0,32,31);
}
if(fzg==4)
{
date_bus=date_bus|0x10;
csp(2);
write_zf(0,48,33);
delay(100);
date_bus=0x01;
write_zf(0,48,31);
if(fzg>4)
{
on=0;
fzg=0;
while(zjg==0);
}
}
break;
case 1: on=1;
if(fzg<3)
{
a573a=1; date_bus=0x20;
}
csp(1);
write_zf(0,48,27);
write_zf(2,48,32);
if(fzg==1)
{
date_bus=date_bus|0x40;
csp(2);
write_zf(2,0,33);
delay(100);
date_bus=0x20;
write_zf(2,0,31);
}
if(fzg==2)
{
date_bus=date_bus|0x80;
csp(2);
write_zf(2,16,33);
delay(100);
date_bus=0x20;
write_zf(2,16,31);
}
if(fzg==3)
{
a573a=0;
date_bus=0x00;
a573b=1; delay(5);
date_bus=0x01;
csp(2);
write_zf(2,32,33);
delay(100);
date_bus=0x00;
write_zf(2,32,31);
}
if(fzg==4)
{ a573c=0;
a573a=0;delay(2);
a573b=1;
date_bus=0x02;
csp(2);
write_zf(2,48,33);
delay(100);
date_bus=0x00;
write_zf(2,48,31);
}
if(fzg>4)
{
on=0;
fzg=0;
while(zjg==1);
}
break;
case 2: on=1;
a573b=0; delay(5); date_bus=0x00;
a573a=1; delay(5);
a573a=0; a573b=1; csp(1);
date_bus=0x04;
write_zf(2,48,27);
write_zf(4,48,32);
csp(2);
if(fzg==1)
{
date_bus=0x04|0x08;
write_zf(4,0,33);
delay(100);
date_bus=0x04;
write_zf(4,0,31);
}
if(fzg==2)
{
date_bus=0x04|0x10;
write_zf(4,16,33);
delay(100);
date_bus=0x04;
write_zf(4,16,31);
}
if(fzg==3)
{
date_bus=0x04|0x20;
write_zf(4,32,33);
delay(10);
date_bus=0x04;
write_zf(4,32,31);
}
if(fzg==4)
{
date_bus=0x04|0x40;
write_zf(4,48,33);
delay(100);
date_bus=0x04;
write_zf(4,48,31);
}
if(fzg>4)
{
on=0;
fzg=0;
while(zjg==2);
}
break;
case 3 : on=1;
date_bus=0x80;
a573b=0;
a573c=1;
csp(1);
write_zf(4,48,27);
write_zf(6,48,32);
csp(2);
if(fzg==1)
{
date_bus=0x01;
write_zf(6,0,33);
delay(100);
date_bus=0x00;
write_zf(6,0,31);
}
if(fzg==2)
{
date_bus=0x02;
write_zf(6,16,33);
delay(100);
date_bus=0x00;
write_zf(6,16,31);
}
if(fzg==3)
{
date_bus=0x04;
write_zf(6,32,33);
delay(100);
date_bus=0x00;
write_zf(6,32,31);
}
if(fzg==4)
{
date_bus=0x08;
write_zf(6,48,33);
delay(100);
date_bus=0x00;
write_zf(6,48,31);
}
if(fzg>4)
{
on=0;
fzg=0;
while(zjg==3);
}
break;
}
}
/****************按鍵檢測****************/
void keyscan()
{
if(gn==0)
{
delay(5);
if(gn==0)
{
gnb++;
while(!gn);
if(gnb>3)gnb=0;
}
}
if(jia==0)
{
delay(5);
if(jia==0)
{ if(gnb==1)
{
yjiab++;
if(yjiab>=7)
yjiab=7;
while(!jia);
}
if(gnb==2)
{
zjiab++;
if(zjiab>=7)
zjiab=7;
while(!jia);
}
}
}
if(jian==0)
{
delay(10);
if(jian==0)
{
if(gnb==1)
{
yjiab--;
if(yjiab<0)
{
yjiab=0;
}
while(!jian);
}
if(gnb==2)
{
zjiab--;
if(zjiab<0)
{
zjiab=0;
}
while(!jian);
}
}
}
}
/**************時間調整****************/
void tiaozhen()
{
if(gnb==1&ti)
{
clean();
write_mh(0,0,34);
switch(yjiab)
{
case 0: csp(1);
write_zf(4,0,33);
yuanj=2;
break;
case 1: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
yuanj=5;
break;
case 2: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
yuanj=10;
break;
case 3: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
yuanj=20;
break;
case 4: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
csp(2);
write_zf(4,0,33);
yuanj=30;
break;
case 5: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
csp(2);
write_zf(4,0,33);
write_zf(4,16,33);
yuanj=40;
break;
case 6: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
csp(2);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
yuanj=50;
break;
case 7: csp(1);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
csp(2);
write_zf(4,0,33);
write_zf(4,16,33);
write_zf(4,32,33);
write_zf(4,48,33);
yuanj=60;
break;
}
}
if(gnb==2&ti)
{
clean();
write_mh(0,0,42);
switch(zjiab)
{
case 0: csp(1);
write_zf(4,0,32);
zuj=2;
break;
case 1: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
zuj=5;
break;
case 2: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
zuj=10;
break;
case 3: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
zuj=20;
break;
case 4: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
csp(2);
write_zf(4,0,32);
zuj=30;
break;
case 5: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
csp(2);
write_zf(4,0,32);
write_zf(4,16,32);
zuj=40;
break;
case 6: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
csp(2);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
zuj=50;
break;
case 7: csp(1);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
csp(2);
write_zf(4,0,32);
write_zf(4,16,32);
write_zf(4,32,32);
write_zf(4,48,32);
zuj=60;
break;
}
}
if(gnb==3)
{
gnb=0;
sk=1;
}
}
/***********主程序*********************/
void main()
{
time();
while(1)
{
keyscan();
tiaozhen();
if(gnb==0)
{
while(sk)
{
init();
clean();
write_mp(ja);
}
yx();
}
}
}
/****************時間中斷***********/
void time0()interrupt 1
{
TH0=0x3c;
TL0=0xb0;
sj++;
if(sj>=5)
{
sj=0;
sk=0;
}
mm++;
if((yuanj*5+zuj)<=mm)
{
zjg++;
if(zjg>3)
zjg=0;
mm=0;
}
}
void time1()interrupt 3
{
TH1=0X3C;
TL1=0XB0;
if(on==1)
miao++;
if(yuanj<=miao)
{
fzg++;
if(fzg>5)
fzg=0;
miao=0;
}
}
|