key.c
#include "key.h" //把led.h文件包含进来
#include "system.h" //把timer0.h文件包含进来
uchar code smgduan[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
uchar DisplayData[8]; //定义8位数组
//---DS1302 写入和读取时分秒的地址命令---//
//---秒分时日月周年 最低位读写位;-------//
uchar code READ_RTC_ADDR[7] = {
0x81, 0x83, 0x85, 0x87, 0x89, 0x8b,
0x8d};
uchar code WRITE_RTC_ADDR[7] = {
0x80, 0x82, 0x84, 0x86, 0x88, 0x8a,
0x8c};
//---DS1302 时钟初始化2016 年 5 月 7 日星期六 12 点 00 分00秒。---//
//---存储顺序是秒分时日月周年,存储格式是用 BCD 码---//
uchar TIME[7] = {
0, 0x27, 0x23, 0x07, 0x05, 0x06, 0x16};
void Dig_Poll() //数码管显示
{
static uchar i;
P0=0x00;//消隐
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=1;LSB=1;LSC=1; P0=DisplayData[0];break;//显示第0位
case(1):
LSA=0;LSB=1;LSC=1; P0=DisplayData[1];break;//显示第1位
case(2):
LSA=1;LSB=0;LSC=1; P0=DisplayData[2];break;//显示第2位
case(3):
LSA=0;LSB=0;LSC=1; P0=DisplayData[3];break;//显示第3位
case(4):
LSA=1;LSB=1;LSC=0; P0=DisplayData[4];break;//显示第4位
case(5):
LSA=0;LSB=1;LSC=0; P0=DisplayData[5];break;//显示第5位
case(6):
LSA=1;LSB=0;LSC=0; P0=DisplayData[6];break;//显示第6位
case(7):
LSA=0;LSB=0;LSC=0; P0=DisplayData[7];break;//显示第7位
}
i++; //延时