📄 test.c
字号:
#include<REG52.h>
#include<intrins.h>
#include<absacc.h>
#include <VI2C_C51.H> /*包含VI2C软件包*/
#include<zf.h>
sbit SDA=P1^0;
sbit CLK=P1^1;
sbit KD_KEY = P1^2;
bit lcd_flag;
#define IOWR XBYTE[0XF800]
#define IORD XBYTE[0XF801]
#define IORS XBYTE[0XF802]
#define PCF8563 0xA2 /*定义器件地址*/
#define WRADDR 0x00
#define RDADDR 0x02
#define WC24C02 0xA0 /*定义器件地址*/
#define WRADR 0x00 /*指定操作地址*/
#define RDADR 0x00 /*指定写入数据*/
unsigned char code led[0x20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89,0x8C,0xc7,0x00};
//0-9,a-f,- H p l
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
for(j=0;j<100;j++);
}
void send(unsigned char a)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(_crol_(a,i)&0x80)
SDA=1;
else
SDA=0;
CLK=0;
CLK=1;
}
}
void display(unsigned char display_buffer[5])
{
unsigned char display_bit;
unsigned char i,k;
display_bit=0x7f;
for(i=0;i<5;i++)
{
k=led[display_buffer[i]];
send(k);
P1=display_bit;
delay(0x01);
P1=0xff;
display_bit=_cror_(display_bit,1);
}
display_bit=0x7f;
}
unsigned char key(void)
{
unsigned char buffer,display_bit,i;
buffer=0xff; //赋初值为0xff
delay(0x01); //延时去抖动
display_bit=0xfe; //扫描键盘
for(i=0;i<8;i++)
{
send(display_bit);
if(!KD_KEY) //是此键按下吗?
{
buffer=display_bit; //是,则保存其键值
return(buffer);
break; //退出
}
display_bit=_crol_(display_bit,1);
//检测下一键
}
}
void c_send(unsigned char a)
{
IORS=0x00;
IOWR=a;
delay(0x02);
}
void d_send(unsigned char b)
{
IORS=0x01;
IOWR=b;
delay(0x02);
}
void lcd(void)
{
c_send(0x38);
c_send(0x01);
c_send(0x06);
c_send(0x0c);
c_send(0x85);
d_send(0x44);
d_send(0x50);
d_send(0x2d);
d_send(0x2d);
d_send(0x35);
d_send(0x31);
c_send(0xc4);
d_send(0x5a);
d_send(0x6c);
d_send(0x67);
d_send(0x2d);
d_send(0x2d);
d_send(0x4d);
d_send(0x43);
d_send(0x55);
}
main()
{
unsigned char a[5];
unsigned char key_i;
unsigned char td[5]={0x00,0x12,0x48,0x30,0x12};
unsigned char p[5]={0x0c,0x02,0x04,0x00,0x02};
ISendStr(PCF8563,WRADDR,td,0x5);
ISendStr(WC24C02,WRADR,p,5);
lcd_flag=0;
key_i=0xff; //赋初值为0xff
while(1)
{
send(0x00); //判断有键盘按
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -