蓝桥杯模拟题--15届

一:题目描述

二:参考代码

1、main.c

#include "stc15.h"
#include "intrins.h"
#include "ds1302.h"
#include "iic.h"
#include "Display.h"

sbit L1=P4^4;  //矩阵键盘列引脚定义
sbit L2=P4^2;
sbit L3=P3^5;
sbit L4=P3^4;

unsigned char Time[]={0x59,0x09,0x23};
u8 jilu_time[2];  //保存记录时间
u8 Key_Slow_Flag,Data_Slow_Flag,Smg_Slow_Flag,Led_Slow_Flag;
u8 jiemian=0;  //0:时间界面 1:输入界面 2:记录界面
bit input_flag=0;  //刚进入输入界面还未输入标志为0,有输入为1。
u16 dat=0;  //四位数据
u8 keynum=0xFF;  //键值
u8 count=0;
bit jilu_flag=0;  //记录输入四位数的时间
bit w_f_flag=0;  //输入完成标志
u8 AT_dat[4];  //保存要写入EEPROM的数据
bit led_flag=0;
u8 led=0xFF;
u16 lastdat;  //保存上次数据

void Key_Proc(void);
void Data_Proc(void);
void Smg_Proc(void);
void Led_Proc(void);
void LedDisplay(u8 LED);

void Delay2ms(void)	//@12.000MHz
{
	unsigned char data i, j;

	i = 24;
	j = 85;
	do
	{
		while (--j);
	} while (--i);
}

void Timer0_Init(void)		//2毫秒@12.000MHz
{
	AUXR |= 0x80;			//定时器时钟1T模式
	TMOD &= 0xF0;			//设置定时器模式
	TL0 = 0x40;				//设置定时初始值
	TH0 = 0xA2;				//设置定时初始值
	TF0 = 0;				//清除TF0标志
	TR0 = 1;				//定时器0开始计时
    ET0=1;
    EA=1;
}

void Init(u8 i)
{
    P2&=0x1F;
    switch(i)
    {
        case 4:P0=0xFF;HC138(i);P2&=0x1F;P0=0x00;break;
        case 5:HC138(i);break;
        case 6:HC138(i);break;
        case 7:P2&=0x1F;P0=0xFF;HC138(i);break;
    }
    P2&=0x1F;
}

void main(void)
{
    Init(4);
    Init(5);
    Init(6);
    Init(7);
    Time_Write();
    Timer0_Init();
    while(1)
    {
        Key_Proc();
        Data_Proc();
        Smg_Proc();
        Led_Pr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值