avr单片机+RFID的门禁系统

2019-10-22来源: 51hei关键字:avr单片机  RFID  门禁系统

        DDRA =0XF8;                                                        //AD转换时要设为输入、且端口要清0

        DDRB =0XFF;

        DDRC =0b11111000;

        DDRD =0b11110010;                                        //INT0、INT1、RXD设成输入;TXD设成输出

        TIMSK=(1<

        TCCR1A=0;                                        

        TCCR1B=0X0D;                                                //CTC模式,1024分频

        OCR1A=7200;                                                        //定时1S

        GICR=(1<

        MCUCR=(1<

        ADCSRA=(1<

        WDTCR=0x0f;                                                        //(1<

        write_com(0x01);                                        //清除显示,并且设定地址指针为00H

        menu_initial();                                                //菜单数组初始化

        send_initial();                                                //串口初始化

        WDR();                                                                //喂狗

        card_pro();                                                        //读EEPROM,到RAM中

        lcd_reset();                                                //LCD初始化

        write_com(0x90);

        buzzer_on;

        LCD_BACK_ON;                                                                                                        //打开LCD背光

        han_zi_display("  系统正在启动  ");

        write_com(0x88);

        han_zi_display("    请稍后......");

        delay_ms(500);

        clear_gdram();                                                //清除GDRAM--绘图RAM

        clear_screen();                                                //清屏

        buzzer_off;                                                                                                        //峰鸣器指示

        lcd_back_en=0xaa;                                                                                                //打开计时变量

        lcd_back_time=0;                                                                                                //计时变量清0

        SEI();                                                                //使能全局中断

        while(1)

        {

                WDR();                                                        //喂狗

                if(scan_en==0)                                        //只有在scan_en=0的时候扫描主屏,平时只更新时间

                {

                        scan_en=~scan_en;

                        clear_screen();

                        temp0=temperature_check();        //温度检测

                        root_directory();

                }

                if(second_temp!=tem[5])                        //每秒钟扫描一次

                {

                        second_temp=tem[5];

                        date_time_display();

                } 

                if(close_read==1)

                {

                        if(xx>=5)

                        {

                                xx=0;

                                close_read=0;

                                second_temp=0;

                                GICR=((1<

                        }

                }

                if(kk)                                                                                                                //=1表示有按键按下

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ..[26]
关键字:avr单片机  RFID  门禁系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic477943.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:控制单个单片机IO的按键+定时器10ms定时器程序
下一篇:AVR单片机读取DS18B20温度上传到串口程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。一.51单片机IO口的操作51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。#i ncludesbit bv=P2^0;//定义位变量,关联P2.0
发表于 2019-12-05
PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
轻松玩转LCD12864-基于AVR单片机的LCD12864串行显示
:VO,对比度调整,一般接+5V就行了4:D/I(CS*),片选,也叫使能,接+5V5:R/W(SID*),数据输入端6:E(SCLK*),时钟输入端7~14:DB0 ~ DB7,并行数据总线15:PSB,串并模式选择,串行模式下接地,并行模式下接+5V16:NC,空引脚,不需要连接17:RSTB,复位端,低电平有效,一般接+5V就行了18:VEE,空引脚,不需要连接19:BLA,背光正极,接+5V20: BLK,背光负极,接地在实际编程时,有串行、并行两种模式可以选择。个人觉得,并行模式占用单片机引脚多(11个),优点是速度快(一次传8位数据,速度自然快),串行模式占用引脚少(2个),速度慢点。我喜欢使用串行模式,AVR单片机
发表于 2019-12-04
轻松玩转LCD12864-基于AVR单片机的LCD12864串行显示
AVR单片机教程——开发环境配置
;以上为废话,我们来配置开发环境吧。快速导航:下载 安装 配置1. 概述我们要安装以下几个软件:Atmel Studio 7.0(简称AS7),是Atmel为自家单片机推出的IDE,基于Visual Studio 2015;AVRDUDESS,是支持多种下载器的AVR单片机烧写工具AVRDUDE的GUI版,如果你熟悉命令行,直接用AVRDUDE也行;Zadig,用于安装USB驱动,无需安装,下载即用,只需要用一次;Serial Port Utility(简称SPU),是一个串口通信工具,界面比同类软件干净;串口工具的驱动,取决于你使用的型号,一般只有PL2303和CH340两种,在网上下载并安装对应的驱动即可。2.
发表于 2019-12-03
AVR单片机教程——开发环境配置
AVR单片机教程——点亮第一个LED
中的函数就可以了。用单片机来控制,最简单的就是点亮LED了。这个程序没有输入,有一个输出,就是让LED亮起。但即使简单,它也需要库,请在这里下载。库下载完以后是不能直接用的,我们要把它放进编译器的包含目录下。在EElib1.0.7z文件中有两个目录,分别是include和lib。打开Atmel Studio 7.0的安装目录,一路找toolchain→avr8→avr8-gnu-toolchain→avr,我是默认位置安装的,找到的目录就是C:Program Files (x86)AtmelStudio7.0toolchainavr8avr8-gnu-toolchainavr,这个目录下也有include和lib两个文件夹。把压缩包
发表于 2019-12-03
AVR单片机教程——点亮第一个LED
AVR单片机教程——闪烁LED
上次我们把LED点亮了。你可能已经试过把 LED_RED 换成其他灯,也可能已经用 led_on() 把所有LED一起点亮了。但是LED点亮以后,程序就退出了,之后LED一直没有暗,直到没有供电。这一次,我们用程序来控制LED的亮和暗。新建一个C executable项目,选择ATmega324PA单片机,在项目属性中添加库libee1,将配置改为Release。这是本教程现阶段中每一次新建项目都要做的。我刚才尝试用project template简化,然而设置无法导入。默认生成的main.c中的内容我们还是不要,全部删除后敲入以下代码: 1 #include <ee1/led.h> 
发表于 2019-12-03
AVR单片机教程——流水灯
,以及 int16_t 、uint16_t 等,一直到64位。avr-gcc还提供了24位整型作为编译器扩展:__int24、 __uint24 ,但它们毕竟是编译器扩展,尽量别用;同时如果你的单片机程序中有16位整数搞不定的东西,那就应该考虑简化一下了。我们用的单片机是8位机,指令只能处理8位整数,如果是16位,则需要多条指令进行组合。而C语言内置类型 int 在这个环境中是16位的。因此,为了节省空间、提升性能,当一个数可以用8位表示时,应该使用 int8_t 或 uint8_t 代替 int 。讲了这么多,为什么LED可以用 uint8_t 表示呢?把光标移动到任一表示LED的宏上,右键,点击Goto Implementation,或按下
发表于 2019-12-03
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved