硬件设计

(末尾附文件)

原理图:

程序设计

#include<reg52.h> //
#include<stdio.h>
#include <intrins.h>
#include "delay.h"
#include "rc522.h"
#include "1602.h"
#include "eeprom.h"sbit key1 =P1^0;  //引脚定义
sbit key2 =P1^1;
sbit key3 =P1^2;
sbit key4 =P1^3;/********************/
unsigned char cardId[4]={0xD6,0x5F,0x2A,0x79};  //该出修改有效卡ID号/********************/unsigned char UID[5];     //暂存卡号
unsigned char Temp[4] ;   //中间变量unsigned long time_20ms;   //定时计数
xdata char dis0[16];               //显示数组变量
xdata char dis1[25];               //显示数组变量
bit disFlag;               //显示更新标志
unsigned char timelater =0; //时间延时计数
unsigned char readCardFlag = 0;  //读卡状态
unsigned int SetNum = 10;//扣费金额
bit rekey =0;//防止重复按下
unsigned char yuE = 100;//余额void Init_Timer0(void);
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);unsigned char initFlagData;    //初始化数据存读取/******************把数据保存到单片机内部eepom中******************/
void write_eeprom()
{SectorErase(0x2000);              //擦除整个扇区 注意整个扇区数据都擦出了byte_write(0x2001, yuE);byte_write(0x2055, initFlagData);
}/******************把数据从单片机内部eepom中读出来*****************/
void read_eeprom()
{yuE  = byte_read(0x2001); //读取高字节initFlagData      = byte_read(0x2055); //数据初始化读取
}/**************开机初始化保存的数据*****************/
void init_eeprom()
{read_eeprom();     //先读if(initFlagData != 0x55)       //新的单片机初始单片机内问eeprom 如果不是0x55重新写入{yuE  = 100;initFlagData = 0x55;   //修改值write_eeprom();     //保存数据}
}void main (void)
{     Init_Timer0();        //定时器0初始化UART_Init();LCD_Init();           //初始化液晶DelayMs(20);          //延时有助于稳定LCD_Clear(); init_eeprom();uartSendStr("ready ok!",9);PcdReset();//复位RC522PcdAntennaOn();//开启天线发射 while (1)         //主循环{if(PcdRequest(0x52,Temp)==MI_OK){if(PcdAnticoll(UID)==MI_OK){
//          uartSendByte(0x00);
//          uartSendStr(UID,4);//上报卡号
//          uartSendByte(0x00);}}if(disFlag == 1)  //定时更新显示{if(readCardFlag == 1)     //有效卡{LCD_Write_String(0,0,"S:YouXiaoIDCZ:10");//显示}                                                    else if(readCardFlag == 2)    //无效卡{LCD_Write_String(0,0,"S:WuXiaoID CZ:10");//显示}else              //无卡{LCD_Write_String(0,0,"S:NoID     CZ:10");//显示}}if((key1==0)||(key2==0)||(key3==0)||(key4==0)) //检测到按键按下{if(rekey == 0)//防止重复按下{DelayMs(20); if(key1==0)//按键按下{rekey =1;if(readCardFlag == 1)    //有效卡{if(yuE <= 190)  //防止过充 最高充值200元{yuE = yuE + 10 ;//充值10元sprintf(dis1,"CZ:10 NowYuE:%03d \r\n ",(unsigned int)yuE); uartSendStr(dis1,20);//发送数据}}}else if(key2==0)//按键按下{rekey =1;if(SetNum>1)     //值--{SetNum =SetNum-1;}}write_eeprom();       //保存数据                       }}else{rekey =0 ;} //防止重复按下}
}

.

文件仅供参考:
链接:https://pan.baidu.com/s/1jpk8cm5qicebwcp43mgPZA
提取码:gadz

.

基于51单片机的RFID一卡通刷卡扣费充值系统设计原理图程序设计相关推荐

  1. 基于51单片机射频RFID卡考勤上课上班统计设计

    具体实现功能 系统由STC89C52单片机电路+RFID模块电路+1602液晶显示电路+电源电路组成. 具体功能: (1)系统有3张卡,分别代表依次是张三.李四.王二: (2)任何一个人刷卡成功能,1 ...

  2. B47 - 基于51单片机的RFID停车计费系统

    任务摘要 当今社会,交通压力不断增加,智能停车场管理系统是人们对便捷高效交通的一种追求.本智能停车场管理系统运用RFID技术,采用STC8H8K64U单片机.RC522.串口屏.光电传感器实现系统设计 ...

  3. 基于51单片机的RFID RC522智能钱包

    RFID RC522智能钱包 基于51单片机的RFID RC522智能钱包,这个程序主要演示的是RFID RC522智能钱包中的设置及扣款功能,相信会扣款那么充值也就改一个数字的事,具体的功能要自己根 ...

  4. 136 基于单片机RFID智能一卡通扣费充值系统设计【毕设课设】

    51RFID一卡通扣费充值系统设计-RFID-LCD1602-KEY 本设计由STC89C52单片机电路+RFID读卡器模块+液晶LCD1602显示电路+按键电路+串口模块PL2303电路+电源电路组 ...

  5. 基于51单片机的扫地小车,扫地机器人设计。 有原理图,程序代码

    基于51单片机的扫地小车,扫地机器人设计. 有原理图,程序代码,原文. 可做实物. 主要功能有寻迹避障,来回清扫功能,往返清扫功能. YID:3350665853241481

  6. 基于51单片机的扫地小车,扫地机器人设计。有原理图,程序代码,原文论文。可做实物

    基于51单片机的扫地小车,扫地机器人设计.有原理图,程序代码,原文.可做实物. 主要功能有寻迹避障,来回清扫功能,往返清扫功能.

  7. 基于51单片机GPS定位公交车自动报站系统(程序+原理图+PCB+论文+全套资料)

    功能介绍: 1.电路设计合理. 2.熟练地使用STC89C52单片机.GPR模块,掌握其原理. 3.可设置播报声音的大小.上行或下行.显示时间等内容 4.采用LCD12864显示时间,位置等信息. 5 ...

  8. T039基于51单片机射频RFID卡考勤人数计数系统设计原理图PCB

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU,LCD1602作为显示器 1.3张卡别代表依次是张.李.王,任何一个人刷卡成功能,1602液晶响应显示,未刷卡显示空" &q ...

  9. 4、基于51单片机智能语音识别小车控制 语音口令说话控制系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六. 程序源码 七.资料包括 摘要 随着电子工业的发展,具有语音控制功能的小 ...

最新文章

  1. 怎么解决tomcat占用8080端口问题图文教程
  2. npp夜光数据介绍 viirs_惊艳!珞珈一号卫星“眼中”的夜光衡水
  3. Maven报错“未结束的字符串字面值”
  4. jQ复制按钮的插件zclip
  5. 编写下载服务器。 第五部分:油门下载速度
  6. Javassist实现JDK动态代理
  7. cmd 命令提示符常用操作
  8. ai 2.5d插件_【插画AI教程】从0到1,学会16 种热门插画设计风格!
  9. 安徽大学(线性代数第一章详细答案)
  10. 创建数据库中,常用的MySQL命令(含解析与全部代码)
  11. 关系抽取方法总结(基于规则-传统机器学习-深度学习)
  12. 接口测试工具postman
  13. 北京大学计算机同等学力申硕信息平台,北京大学同等学力申硕有哪些专业?
  14. C++制作加密聊天程序:这样设置一下,再也不用担心女朋友翻你手机了!
  15. 线索二叉树中序非递归线索化以及递归线索化构建和遍历算法
  16. FreeKD:Free-direction Knowledge Distillation for Graph Neural Networks
  17. 【QFD】质量保证需求
  18. linux 系统 Shell语言 基础
  19. Image Denoising State-of-the-art
  20. 比尔-盖茨出席新世代厕所博览会,展示新一代卫生产品

热门文章

  1. azul zing_微软和Azul将OpenJDK提升到Azure云中
  2. 用 UrlSchemes 实现调用应用并传参
  3. HDFS操作及命令介绍
  4. php木马伪装成图片,木马伪装图片运行的技巧
  5. 解决“Windows 平台 FIPS 验证的加密算法的一部分”问题
  6. Celery分布式任务队列学习记录
  7. 第一次使用CSDN写博客
  8. oracle支持utf8字符集,AL32UTF8/UTF8(Unicode)数据库字符集含义
  9. chrome无法访问商店,打不开网页怎么办,五步轻松解决
  10. 分享你一定不知道的10 款小工具