主文件函数:
#include <reg52.h>
#include "./delay/delay.h"
#define PORTLEN P0
#define KEYPORT P1
sbit bit_select = P2^0;
sbit seg_select = P2^1;
sbit beem = P3^2;
unsigned char code SONG_TONE[]={239,239,212,189,159,159,189,159,159,142,126,120,120,159,120,120,142,159,189,142,159,189,239,212,189,159,142,159,189,212,239};
unsigned char code SONG_LONG[]={6,6,9,3,6,6,12,6,6,6,6,6,6,12,6,6,9,3,6,6,9,3,6,3,3,6,3,3,6,6,9};
unsigned char src[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char qrc[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char second1[8];
unsigned char ch[9] = {0};
void uart_send_byte(unsigned char byte);
void uart_send_str(unsigned char *str);
unsigned char flag = 0;
unsigned char shi = 0;
unsigned char fen = 0;
unsigned char miao = 0;
unsigned char Dshi = 3;
unsigned char Dfen = 1;
unsigned char Dmiao = 0;
unsigned char j = 7;
unsigned char k = 0;
void timer0_init(void)
{
EA = 1;
TMOD |= 0x01;
TH0 = (65536 - 20000) / 256;
TL0 = (65536 - 20000) % 256;
ET0 = 1;
TR0 = 1;
}
unsigned char key_scan(void)
{
unsigned char keyvalue;
KEYPORT = 0xf0;
if(0xf0 != KEYPORT)
{
delay_ms(10);
if(0xf0 != KEYPORT)
{
KEYPORT = 0xfe;
if(0xfe != KEYPORT)
{
keyvalue = KEYPORT;
keyvalue &= 0xf0;
keyvalue += 0x0e;
while(0xfe != KEYPORT);
delay_ms(10);
while(0xfe != KEYPORT);
return keyvalue;