第五届蓝桥杯的题用到了数码管,蜂鸣器,继电器,eeprom,ad转化,ds1302,独立按键。
#include <reg52.h>
#include "iic.h"
#include "ds1302.h"
#include "intrins.h"
#define uchar unsigned char
sbit beep=P0^6;
sbit jidianqi=P0^4;
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
uchar shidu,t=50;
uchar w=0;
bit h=1,b=0;
uchar code tabe[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
uchar write[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90};
uchar read[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d,0x8f,0x91};
uchar time[]={0x30,0x20,0x08,0x07,0x07,0x07,0x18};
void delay(uchar x)
{
while(x--);
}
void eeprom_write(uchar add,uchar dat)
{
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(add);
IIC_WaitAck();
IIC_SendByte(dat);
IIC_WaitAck();
IIC_Stop();
somenop;
}
uchar eeprom_read(uchar add)
{
uchar temp;
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(add);
IIC_WaitAck();
IIC_Start();
IIC_SendByte(0xa1);
IIC_WaitAck();
temp=IIC_RecByte();
IIC_Ack(0);
IIC_Stop();
return temp;
}
void cls_jidianqi(uchar x)
{
jidianqi=x;
P2=(P2&0x1f)|0xa0;