基于51单片机的id卡读卡器
/*******************************************************************************
* 实验名 : 串口实验
* 使用的IO : P2
* 实验效果 : 将接收到发送回电脑上面。
*注意 :
*******************************************************************************/
#include
#define MAX_ARRAY 200
#define HIGH 1
#define LOW 0
sbit SSS= P3^5;
sbit LED1=P2^1;
unsigned int i;
void UsartConfiguration();
unsigned char xdata mcode[MAX_ARRAY];
//unsigned char mcode[MAX_ARRAY];
/*******************************************************************************
* 函数名 :UsartConfiguration()
* 函数功能 :设置串口
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void UsartConfiguration()
{
SCON=0X50;//设置为工作方式1
//TMOD=0X20;//设置计数器工作方式2
PCON=0X80;//波特率加倍
TH1=0XF3;//计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1;//打开接收中断
EA=1;//打开总中断
TR1=1;//打开计数器
//void InitTimer0(void) //256us 12M
TMOD = 0x01 | 0x20;
TH0 = 0x00;
TL0 = 0x01;
//EA = 1;
// ET0 = 1;
TR0 = 1;
}
/*******************************************************************************
* 函数名 :Delay(unsigned int i)
* 函数功能 : 延时函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void Usart() interrupt 4
{
unsigned char receiveData;
receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
//SBUF=receiveData;//将接收到的数据放入到发送寄存器
//while(!TI); //等待发送数据完成
//TI=0; //清除发送完成标志位
}//------------------------------------------------------------------
//定时器中断 把P21口的状态读到内存 P21与LM339比较器的 out1 口连接
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x00;
TL0 = 0x01; //TR0 =0 ;停止 TR0=1 ;开始 EA ET0 都可以控制
SBUF= '\0';//将接收到的数据放入到发送寄存器
while(!TI); //等待发送数据完成
TI=0;
}//end function timeer
void sentstr(char *str );//发送字符串到串口
unsigned char scansss();//扫描数据
unsigned char checkdata(unsigned char start);//检查数据
void sendalldata();//发所有数据到串口
void main()
{
int j;
for(j=0;j
UsartConfiguration();
while(1)
{
j= scansss();
if(!j){
j=checkdata(0);
sentstr("\r\nbuffer full:\r\n");
sendalldata();
if(!j)
{ sentstr("\r\nUp datas checked OK!\r\n&
quot;);
}
}else sentstr("Error Time!");
}//while()
}//-----------------------------------------------------------------