⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 dp51单片机的实验程序
💻 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 + -