题目
代码
timer.c
#include <timer.h>
void Timer0Init(void) //1毫秒@12.000MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x20; //设置定时初值
TH0 = 0xD1; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
EA=ET0=1;
}
timer.h
#ifndef _TIMER_H_
#define _TIMER_H_
#include <STC15F2K60S2.H>
void Timer0Init(void);
#endif
smg.c
#include <smg.h>
unsigned char code smgduan[12]={
0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
0X80,0X90,0XBF,0XFF};
unsigned char dspbuf[8];
void smg_display(void)
{
static unsigned char i=0;
P2=(P2&=0X1F)|0XE0;
P0=0XFF;
P2&=0X1F;
P2=(P2&=0X1F)|0XC0;
P0=0x01<<i;
P2&=0X1F;
P2=(P2&=0X1F)|0XE0;
P0=smgduan[dspbuf[i]];
P2&=0X1F;
if(++i==8)
i=0;
}
smg.h
#ifndef _SMG_H_
#define _SMG_H_
#include <STC15F2K60S2.H>
void smg_display(void);
extern unsigned char dspbuf[8];
#endif
keybord.c
#include <keybord.h>
unsigned char key_value,key_press,keybord;
void key_case(void);
void key_read(void)
{
unsigned char key_sum,i;
P3=0XF0;
P44=P42=1;
if(P44==0||P42==0||P35==0||P34==0)
{
for(i=0;i<4;i++)
{
P3=0XFF;
P44=P42=1;
P3&=~(0X01<<i);
if(P44==0) key_value=4*i;
if(P42==0) key_value=4*i+</