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

📄 wg_26readprg.c

📁 韦根程序,感应卡读卡器发送来的数据通过单片机读取
💻 C
字号:
#include<reg52.h> 
#include <intrins.h> 
#define uchar unsigned char 
#define uint unsigned int 
uchar idata wiegand[26]; 
sbit rs=P2^0; 
sbit en=P2^2; 
sbit rw=P2^1; 
sbit DATA0=P3^2; 
sbit DATA1=P3^3; 
bit re_even; 
bit re_odd; 
bit even_check; 
bit odd_check; 

uchar num; 
void delay(uint z) 
{ 
  uchar j; 
  while(z--) 
	{ 
	  for(j = 0; j < 114; j++); 
	} 
} 

void write_com(uchar com) 	//写指令
{ 
	rs=0; 
	rw=0; 
	P0=com; 
	delay(2); 
	en=0; 
	delay(2); 
	en=1; 
	delay(1); 
} 

void write_date(uchar date) 	  //写数据
{ 
	rs=1; 
	rw=0; 
	P0=date; 
	delay(2); 
	en=0; 
	delay(2); 
	en=1; 
	delay(1); 
} 

void write_num(uchar date) 
{ 
	if(date<10) 
	 { 
	   write_date(0x30+date); 
	 } 
} 

void main(void) 
{ 
	uchar i; 
	num=0; 
	en=0; 
	EA=1; 
	ET0=1; 
	TMOD=0x01; 
	TH0=0x68; 
	TL0=0xcc; 
	// TR0=1; 
	EX0=1; 
	EX1=1; 
	// PX0=1; 
	IT0=1; 
	IT1=1; 
	write_com(0x38); 
	write_com(0x38); 
	write_com(0x0c); 
	write_com(0x06); 
	write_com(0x01); 
	delay(1); 
	while(1) 
		{ 
		  if(num>25) 
            { 
			    EA=0; 
			    write_com(0x01); 
				write_com(0x80); 
				for(i=0;i<16;+i++) 
				write_num(wiegand[num]); 
				write_com(0x80+0x40); 
				for(i=16;i<26;+i++) 
				write_num(wiegand[num]); 
				num=0; 
				EA=1; 
			} 
		} 
} 

void data0() interrupt 0 
{ 
	EX0=0; 
	wiegand[num]=0; 
	num++; 
	EX0=1; 
} 

void data1() interrupt 2 
{ 
	EX1=0; 
	wiegand[num]=1; 
	num++; 
	EX1=1; 
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -