• 大小: 9KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C/C++
  • 标签: RFID  

资源简介

RFID读卡的C语言设计,包含一部分注解,理解起来更方便

资源截图

代码片段和文件信息

/********************************************
MR系列ID卡读卡演示程序
        
*************************************************/

#include 
#include 
#include 
#include 
#include 
#include 
sbit P12=P1^2; //蜂鸣器
sbit P14=P1^4; //指示灯 
sbit P13=P1^3;
sbit P11=P1^1; //解码输入 


sbit LCD_RS  =  P3^5;            //寄存器选择输入 
sbit LCD_RW  =  P3^6;            //液晶读/写控制
sbit LCD_EN  =  P3^4;            //液晶使能控制
sbit LCD_PSB =  P3^7;            //串/并方式控制
#define uchar unsigned char
#define uint  unsigned int
#define LCD_data  P0             //数据口
#define SPK P12 //蜂鸣器
#define LED P14 //指示灯 
#define LED2    P13
#define INPORT P11 //解码输入 

//用来区分脉冲宽度的参数
#define TIME00 50
#define TIME05 260
#define TIME10 550
uchar flag;
unsigned long  sum;
int n=8;
bit bitin; //上一次的状态位
unsigned char Buff[30]; //解码缓冲区
unsigned char  string[10];
unsigned char code dis1[] = {“临沂大学信息学院“}; //8
unsigned char code dis2[] = {“  2013-2014-1“}; //16
unsigned char code dis3[] = {“    期末考试“};//7
unsigned char  dis4[] = {“卡号:“}; //6
void lcd_pos(char Xchar Y);  //确定显示位置
/*******************************************************************/
/*                                                                 */
/*  延时函数                                                       */
/*                                                                 */
/*******************************************************************/
void delay(int ms)
{
int ij;
for(j=0;j for(i=0;i<110;i++);
}
/*******************************************************************/
/*                                                                 */
/*检查LCD忙状态                                                    */
/*lcd_busy为1时,忙,等待。lcd-busy为0时闲,可写指令与数据。      */
/*                                                                 */
/*******************************************************************/
bit lcd_busy()
 {                          
    uchar result;
    LCD_RS = 0;
    LCD_RW = 1;     
   // delayNOP();    
while(1)
{
P0=0xff;
LCD_EN = 1;
result =P0;
     LCD_EN = 0;
    if((result&0x80)==0)
break; 
}
 }
/*******************************************************************/
/*                                                                 */
/*写指令数据到LCD                                                  */
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。                             */
/*                                                                 */
/*******************************************************************/
void lcd_wcmd(uchar cmd)
{                          
   lcd_busy();
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_EN = 0;
    LCD_data = cmd;
  delay(5);
    LCD_EN = 1;
  delay(5);
    LCD_EN = 0;  
}
/*******************************************************************/
/*                                                                 */
/*写显示数据到LCD 

评论

共有 条评论