資源簡介
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?
- 上一篇:利用MATLAB 改寫的基于c++的模糊邏輯
- 下一篇:RSA加解密算法 C語言實現
評論
共有 條評論