c语言编译 创建卡号信息表,51单片机读ID卡号 源代码 C语言

基于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()

}//-----------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值