毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc

上传人:李主任 文档编号:3282818 上传时间:2019-08-07 格式:DOC 页数:41 大小:478.52KB
返回 下载 相关 举报
毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc_第1页
第1页 / 共41页
毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc_第2页
第2页 / 共41页
毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc_第3页
第3页 / 共41页
毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc_第4页
第4页 / 共41页
毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于ATMega16和iButton的电子锁控制器设计.doc(41页珍藏版)》请在三一文库上搜索。

1、 摘 要近年来,美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。本文设计了一种基于ATMega16单片机和iButton的电子锁的控制器,从硬件和软件两方面阐述了ATMega16单片机对iButton电子锁进行控制的设计方法。首先,本文介绍了基于单总线的iButton电子锁的发展背景,单总线的原理以及现在国内外的iButton电子锁的发展现状。其次,介绍了基于ATMega16和i

2、Button的电子锁控制器的硬件设计。再次,介绍了该系统的软件设计,包括对iButton仿真模拟器的软件设计。最后,进行了系统的仿真和测试。结果表明,该ATMega16单片机能够对iButton进行各种控制,因此该基于ATMega16和iButton的电子锁控制器的设计达到了设计的要求。关键词:单总线,IButton,ATMega16注:本设计题目来源于教师的企业科研项目,项目编号为:1920 AbstractIn recent days, an American company named Dallas Semiconductor had launched the unique 1-Wire

3、 Bus Technology, which could transfer the clock signal and data simultaneously. One signal wire is its tool, and the transmission of it comprises a bidirectional way. Owing to the special design, the 1-Wire Bus Technology operates with simple lines, low hardware expenses and costs, being available t

4、o expand the bus circuit and implement maintenance.This paper designs a controller based on the ATMega16 microcontroller and iButton electronic lock, expounding how to control the iButton electronic lock by ATMega16 microcontroller from both the softwares and hardwares sides.At first, the developmen

5、t of the iButton electronic lock based on 1-Wire bus is introduced, accompanying the principle of 1-Wire Bus and the current condition of iButton electronic lock.Second, the hardware design of the controller based on ATMega16 and iButton is introduced. Third, the software design of the system is pre

6、sented, including a simulative software of iButton. Finally, the simulation and the test of the system are carried out. The results show that the ATMega16 microcontroller is able to conduct various controls on iButton, which eventually implies the eligibility of the designed electronic controllerKey

7、 words: 1-Wire Bus, iButton, ATMega16目 录1绪 论11.1题目背景及目的11.2国内外发展现状21.2.1单总线技术31.2.2多密钥iButton-DS199141.3论文的主要内容62系统的硬件设计72.1开发环境介绍Proteus72.2AVR单片机简介82.3系统硬件电路构成92.3.1系统主控制器102.3.2系统显示器112.3.3系统单总线接线112.3.4系统iButton模拟器122.3.5系统控制键盘133软件设计153.1主控制器设计153.1.1LCD显示器模块设计163.1.2总线基本操作模块203.1.3总线主要功能模块233.

8、2iButton模拟器设计263.2.1模拟器总线基本操作模块273.2.2模拟器主要功能模块284系统的仿真314.1主控制器ROM操作仿真314.2主控制器存储器操作仿真32结 论34参 考 文 献35致 谢361 绪 论1.1 题目背景及目的门禁系统1发展到今天,旧式的机械门锁已逐步加上电子的成分,电子门锁已开始广泛地在一些机密单位、高级宾馆及宅区得到使用。在密码锁、磁卡、IC卡等名目纵多的电子门锁中,由于条形码、磁卡、IC卡等构成的数字识别系统存在着携带不便、易受损坏、不能应用于恶劣环境等不足2;指纹识别系统、人像识别系统有着很高的安全性,不存在以上所说的问题,但是,开发起来十分繁琐,

9、且由于数据量大,由于iButton电子琐保密性强、使用方便、耐用,作为更新一代产品脱颖而出,引起了广泛内的关注。iButton是Information Button的简称,它是一种能够授权给持有它的人的一种电子元件,每一颗iButton内的存储器是记录着一组独一无二的识别码(有64位二进制码组成)3,当iButton接触到门锁的蓝点接收器时,识别码便会被读出。iButton的外型为纽扣状(形同纽扣电池状),封装在耐用的不锈钢外壳内,可在恶劣的环境中使用。除用它可加一个把做成钥匙外,还可以做在戒指上、或装在皮夹上等,使用十分方便。iButton电子锁正是用iButton作为钥匙,当来到受管制的地

10、方,只要将iButton钥匙轻轻接触锁上的蓝点接收器,只要识别码与接收器中存的码相同,门即打开,便马上可以进出。除此之外,系统管理员还可以指定哪扇门,何时,由谁能够打开。储存锁内部的进出资料档可以记录最近的1240笔门锁操作记录。iButton利用单总线技术来与外界沟通,数字化单总线技术4 是Dallas独特的单线传输协定。每个iButton LP中的DS3708都有一个MicroLAN脚,它可连到Host PC作为资料传输。因MicroLAN具有multidrop的功能,数个锁可同时连到Host PC,由Host PC监控。iButton电子提供online和offline两种操作模式。在o

11、nline模式下,各个锁皆能够快速更新资料库,而相对应的分散式管理则意味着使用者能立即得到回应。iButton电子锁完全具备这两项条件。iButton电子锁以其灵活方便的操作方式和极强的保密性能被广泛地利用于门锁、车库锁、电梯控制、汽车防盗等领域4,必将成为新一代电子锁中的佼佼者。本课题即以上述问题为出发点,设计实现了基于ATMega16和iButton的电子锁控制器,该系统不仅实现了ATMega16单片机对iButton的读写操作,而且能够迅速处理数据,并将处理结果通过友好的界面显示给用户,并且使用另一个单片机模拟iButton的输入输出时序和各种功能操作,这样在进行系统开发时便可在Prot

12、eus这个软件里面仿真了,不用真的下载到开发板后再进行仿真,从而提高了系统开发的效率。1.2 国内外发展现状 iButton是基于1-Wire总线技术发展起来的,1-Wire总线与目前多数标准串行数据通信方式如SPI/I2C/MICROWIRE不同,采用单根信号线,既传输时钟又传输数据,同时还为从机(Slave)提供寄生电源,数据传输是双向半工的。由于它只有一个信号线,因此具有节省I/O口线资源、结构简单、成本低廉、便于扩展和维护等优点6。基于以上的优点,国内外对1-Wire总线的开发已经十分广泛。例如,基于1-Wire信号采集系统、基于1-Wire总线的分布式温湿度测控系统、1-Wire总线

13、协议的数字IC温度传感器等。美国达拉斯半导体公司(Dallas Semiconductor Corporation)在99年推出的1种智能化信息载体信息纽扣(iButton),较好地解决了数字识别系统存在的这些问题,为开发更加完善、新颖的数字识别系统提供了技术支持和实现手段7。由于iButton方便、可靠的特点,越来越得到广泛的开发应用,美国的DALLAS公司一直在进行1-Wire的研制和开发,国内像远志科技公司就专门提供1-Wire完整的解决方案。iButton的应用包括替代现金用于小额交易、搬运系统、停车计时器、自动贩卖机、巡检系统、考勤门禁系统等。iButton采用直径17mm、厚36m

14、m的钮扣状不锈钢外壳封装。内部由I/O处理器和存储器两个基本部分组成,某些应用于特殊场合的iButton还内置有感温、时钟。iButton以1-Wire规范作为通信协议,仅用1根数据线来实现与外界的信息交换。本文研究的内容就是对1-Wire总线和多密钥iButton的介绍,并设计基于ATMega16的iButton电子锁控制器。1.2.1 单总线技术单总线技术(1-Wire)是Maxim全资子公司Dallas的一项专有技术。Dallas半导体公司1-Wire器件采用一种特殊的接口协议,通过单条连接线解决了控制、通信和供电,降低了系统成本并简化了设计。1-wire芯片包含多种功能的器件,例如电子

15、标识、传感器、控制和存储等,既有各种传统的IC封装形式,还可提供超小型CSP、不锈钢恺装iButtons等新型封装。单总线(1-Wire)技术与目前多数标准的串行数据通信方式(如I2C串行总线)不同,它将地址线、数据线、控制线合为一根信号线,采用单根信号线双向传输,允许在这根信号线上挂上百个由Dallas公司提供的芯片控制的对象,具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展等优点。 单总线的工作原理顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总

16、线。单总线通常要求外接一个约为4.7k的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。通常把挂在单总线上的器件称之为单总线器件,单总线器件内一般都具有控制、收/发、存储等电路。为了区分不同的单总线器件,厂家生产单总线器件时都要刻录一个64位的二进制ROM代码,以标志其I

17、D号。目前,单总线器件主要有数字温度传感器(如DS18B20)、A/D转换器(如DS2450)、门标、身份识别器(如DS1990A)、单总线控制器(如DS1WM)等。这里介绍一种iButton形式的单总线器件,它是利用瞬间接触来进行数字通信的,这些器件的应用已经渗透到货币交易和高度安全的认证系统之中。IButton是采用纽扣状不锈钢外壳封装的微型计算机晶片,它具有抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠、价格便宜等特点,能较好的解决传统识别器存在的不足,同时又可满足系统在可靠性、稳定性方面的要求。IButton主要有三种类型,分别是Memory iButton(存储器);Java-powered

18、 cryptographic iButton(加密型);Thermochron iButton(温度型)。存储型iButton最大存储空间为64kB,可以存储文本或数字照片。加密型iButton是一种微处理器和高速算法加速器,可以产生大量需要加密和解密的数据信息,它的运行速度非常快,可与Internet应用相结合,并可应用于远程鉴定识别。温度型iButton可以测量温度变化,它内含温度计、时钟、热记录和存储单元等。1.2.2 多密钥iButton-DS1991多密钥 iButton DS1991 是进行读/写操作的数据载体,它有三个独立的电子密钥,提供 1,152 位安全、非易失存储器。其外型

19、如图1.1所示。每个密钥分区包括 384位,具有独立的 64位密码和公共识别区;密码区必须匹配才能访问安全存储器。数据按照 1-Wire 协议传输,只需单条数据线和地回路。512位的暂存器能够保证安全存储器的数据完整性。数据首先写到能读回的暂存器;数据被校验确认后,发出复制暂存器命令,以便将数据传送到存储器。这个过程确保了在改变存储器内容时的数据完整性。每片 图1.1 iButton元件DS1991 内部都有在工厂光刻的 48位序列码,为唯一的身份验证提供了保证,也确保了可绝对跟踪功能;DS1991的家族码是 02H。由于 iButton采用了 MicroCan封装,所以具有防尘、防潮、抗震等

20、特性,适用于在恶劣环境中工作。另外,工程技术人员操作起来也很方便;DS1991 紧凑的纽扣外型使其可以自动对准相应的接收器。与 DS1991 配套的附件使其可以装在塑料钥匙环上、图像身份证上、印刷电路板或任何其它表面平滑的物体上。应用领域包括:安全访问控制、银行存储借贷信息、工作进程的跟踪、旅行者的电子支票和私有资料的保存等。每片DS1991 都有唯一的 64 位ROM代码。6个特定的设备检测命令,包括3个中间结果暂存器命令:Write Scratchpad、Read Scratchpad和Copy Scratchpad;还有3个子密钥命令:Write Password、Write Subke

21、y 和Read Subkey。当选中某个从机设备后,存储器功能命令就会写入DS1991中。这些命令由三段组成,每段长为一个字节;第一个字节为功能代码段,它定义了6个可执行的命令;第二个字节是地址段,其中的前六位定义了命令的起始地址值,后两位是子密钥的地址代码;命令的第三个字节是第二个字节的补码。其暂存器命令和子密钥命令如下:(1) 暂存器命令DS1991中64位的读/写暂存器是没有密码保护的;它通常用于构建数据以进行校验,然后再复制到安全子密钥分区。Write Scratchpad 96H 命令用于将数据输入到暂存器。 Read Scratchpad 69H 令用于提取来自暂存器的数据。 Co

22、py Scratchpad 3CH 命令将指定的数据块从暂存器传递到选中的子密钥分区中。(2) 子密钥命令 DS1991中的每个子密钥块都是单独地进行访问的。处理安全子密钥的数据读、写从命令指定的地址开始,处理过程持续进行直到从机设备复位或子密钥数据读、写完毕。Write Password 5AH 命令用来向已选中的子密钥分区输入识别码和密码。Write Subkey 99H 命令用来将数据 输入到选中的子密钥中。Read Subkey 66H 命令用于提取选中的子密钥区内的数据。初次使用时,无法确定存储在从机设备里的密码,所以需要先对 DS1991 进行初始化。初始化时对选定的子密钥区利用W

23、rite Password 命令直接写入新的识别码和密码(而不必通过暂存器),一旦新的识别码和密码存入从机设备里,再进行修改时,就要通过暂存器。一旦主机检测到在线应答脉冲,就可以发出4条DS1991支持的ROM功能命令。所有ROM操作命令的长度为8位。 Read ROM 33H:此命令允许主机读取的 8 位家族码、48 位唯一的序列号和 8 位CRC校验码。 Match ROM 55H:此命令跟随 64位ROM序列号,允许主机访问多从机总线系统中某个特定的DS1991。 Skip ROM CCH:此命令在单从机总线系统中允许主机直接访问存储器,而无须提 供64位ROM代码,节省时间。 Sear

24、ch ROM F0H:此系统初次上电时,主机可能检测不出 1-Wire总线上从机设备的数目和它们的64位ROM代码,而Search ROM命令能够使得主机通过排除法来检测出总线上所有从机设备的64位ROM代码。1.3 论文的主要内容本设计在软件开发的过程中,尽可能的采用模块化的设计思想设计,构建“平台的模式”,便于仪器的调试、升级和移植。整个系统是在Proteus这个仿真软件里面进行仿真的。第二章介绍了系统的硬件设计,包括控制器的发送单元和接收单元(模拟部分)、信号处理模块(数字部分),界面显示方面等的器件选择和电路原理图。第三章介绍了系统的软件设计,整个程序以模块化的思想设计,大致可有显示器

25、初始化,显示,控制,单总线的初始化,读写操作等延时等几个模块供主控模块调用。其中大部分模块可以形成标准函数库,可方便地实现移植。第四章对系统进行测试和仿真,对系统程序运行是否正确进行测试,并对系统的功能实现效果进行仿真。 2 系统的硬件设计 由于系统是要实现ATMega16单片机对iButton电子锁的控制,硬件设计选用的环境是Proteus 6.7,Proteus是Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的好软件。2.1 开发环境介绍ProteusPROSPICE是结合ISIS原理图设计环境使用的混合型电路仿真器。基于

26、工业标准SPICE3F5的模拟内核,加上混合型仿真的扩展以及交互电路动态,PROSPICE为您提供开发和测试设计的强大交互式环境。其系统特性如下: 完全集成原理图布图环境; 以虚拟仪器以及用户可定义的动态元件支持基于曲线图和交互电路模型; 14种虚拟仪器:直流电压/电流表、交流电压/电流表、信号发生器、数字发生器、 示波器、逻辑分析仪频率计数虚拟终端、SPI调试器、I2C调试器和逻辑探头; 独特的Proteus VSM技术以实现微处理器设计的协同仿真;数字仿真: 事件驱动数字仿真模型定时,失灵以及浮空输入特性; 熔丝图模型允许从JEDEC文件中直接仿真PLD; 完全以定时信息设置TTL和CMO

27、S模型; 一致性分析便易于嵌入系统的自动测试。单片机技术是现代电子工程领域一门迅速发展的技术,应用于各种嵌入式系统中。单片机技术的发展和推广极大地推动了电子工业的发展,其在教学和产业界的技术推广仍然是当今业界的一个热点。单片机技术是现代电子工业中不可缺少的一项技术,掌握单片机技术是电子信息类专业学生就业的一个基本条件。过去,在单片机实验室的建设中基本都是采用硬件仿真系统,所以为了保证实验的顺利开设,同类型的硬件仿真开发系统就需要采购多套设备,这样硬件的投资成本相对较高,然而使用单片机软件仿真系统,就可以大大减少硬件设备的采购,同时降低对硬件设备进行维护的工作量。根据以上的原因所以本系统采用Pr

28、oteus这个软件进行硬件设计。2.2 AVR单片机简介 单片机就是包括了中央处理器CPU(Contral Prosessor Unit)、随机存储器(Ramdom Access Memory)、只读存储器ROM(Read Only Memory)和各种输入输出的单芯片微机系统。 单片微型计算机也称为单片机,目前已被广泛地应用在自动测量、智能仪表、工业控制以及家用电器等各个方面。 AVR单片机是Atmel公司1997年推出的RISC单片机,RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC并非只是简单地减去指令,而是通过使计算机的结构更加简单合理而提高运算速度

29、的。RISC优先的选取使用频率最高的简单指令,避免复杂指令,并固定指令长度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于AVR单片机采用了RISC的这种结构,使AVR系列的单片机都具备了1MIPS/MHZ(百万条指令每秒/兆赫兹)的高速处理能力。 AVR单片机吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同的地址的程序存储器和数据存储器进行。与传统的MCS51系列单片机相比,AVR单片机中,寄存器有32个通用工作寄存器组成,并且任何一个寄存器都可以充当累加器,从而有效的避免了累加器的瓶颈效应,提高了系统的性

30、能2。ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega16有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O 口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器 / 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差

31、分输入级可编程增益 (TQFP 封装 ) 的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式时 CPU 停止工作,而 USART、两线接口、A/D 转换器、 SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声; Standby模式下只有晶体或谐振振荡器运行,其余

32、功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel高密度非易失性存储器技术生产的。片内ISP Flash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application Flash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW操作。通过将8位RISC CPU与系统内可编程的Flash集成在一

33、个芯片内, ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。2.3 系统硬件电路构成图2.1 系统硬件结构图 本系统是以单片机为核心,组成一个集数据的采集、处理、显示及控制为一身的闭环控制系统,其原理图如图2.1所示。系统电路有单片机、控制键盘、单总线线路、LCD显示器和iButton模拟器五个部分组成。2.3.1 系统主控制器系统的主控制器采用ATMega16单片机,如图2.2所示。主控制器C口的第0位作为单总线链接的I/O口线,其执行与挂在总线上的单总线器件进行通信,负责数据的输入输出;主控制器的A口高四位的I/O口与显示器的低四位的数据口相连接

34、;而A.2口则链接到显示器的RS口,用于控制着与显示器交换信息时,数据输入输出的方向;A.3口连接到显示器的使能驱动口,用于对显示器进行使能或否的控制,在系统运行期间该口一直是出于使能的。图2.2 系统主控制器主控制器的B口的第1,2位,作为系统控制键盘的输入口,用于控制主控制器对总线上的单总线器件iButton的操作。2.3.2 系统显示器图2.3 系统显示器该系统使用LM016L型号的LCD显示器,如图2.3所示。LM016L LCD显示器是一个2行16列液晶 可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。没背光,和常用的1

35、602B功能和引脚一样(除了调背光的二个线脚),详细使用请查看LM016L的使用手册。2.3.3 系统单总线接线本系统的单总线连接线路线路图如图2.4所示,由于Proteus6.7这个软件里面没有iButton的DS1991的仿真元件,在进行系统设计时采用另一个ATMega16的AVR单片机模拟iButton的时序。使用另个单片机模拟iButton工作的过程中,如果按照单总线的接线方法进行接线,即主控制器的C0口通过上拉电阻,然后接到iButton模拟器上的单总线I/O口中。在这样的情况下,当执行总线操作时,当主控制器输出低电平拉低单总线的电平时,由于没有真正的地线,所以在iButton模拟器

36、上是感应不到电平的下降的,所以如果按照这种接法是无法实现单总线操作的。主控制器和iButton模拟器是无法通信的。为了解决上述的问题,利用三极管,如图2.5的接法,当主控制器输出低电平时,反向器U3 B输出高电平,这时三极管Q2的基极也为高电平,三极管导通,iButton模拟器的总线输入口上的电平给拉低,模拟器就能正确的读取主控制器的输出信图2.4单总线接线图号;同理当主控制器输出高电平时,由于三极管U3 B为阻断状态,模拟器的输入引脚上的电平也为高电平,这样就可以实现单总线上的电平能够被两控制器的引脚控制,控制器引脚又可释放总线,达到真正进行总线操作时电平的变化效果。2.3.4 系统iBut

37、ton模拟器在进行系统设计时由于Proteus这个软件里面没有iButton的单总线器件,要进行调试时不得不把程序下载到真实的硬件开发板上,这样设计起来不但成本高而且还增加了调试的难度、降低了设计的效率,因为使用硬件开发板进行仿真时,又要花时间制作开发板,每次程序修改都要花时间下载到开发板上来进行调试。所以为了方便设计利用另一个单片机模拟了iButton的输出时序,然后就直接在Proteus软件里面进行电脑的仿真和调试,这样就方便了很多,不必再去做开发板,而且调试起来也特别容易,大大提高了系统的开发。该iButton模拟器的接线图如图2.5,仅使用ATMega16这个单片机的两个I/O端口,其

38、中B7口作为iButton元件在进行单总线操作时的输出口,而A7口则作为输入口,在这里是把iButton元件的单独的总线I/O口的功能分开,用两个单片机的端口来实现其代替这两个功能。图2.5 iButton模拟器接线图2.3.5 系统控制键盘图2.6 主控制器键盘接线系统中的控制键盘实现了两个功能,读取在线的iButton元件的ROM和iButton存储区操作时的密码验证。键R1实现ROM读取功能,键R2实现密码验证功能。具体接线图如2.6,主控制器的B0口接R2,B1口接R1。以上就是系统的所有硬件接线的介绍,由于是在Proteus里面仿真,所以单片机的电源,地和晶振的接线都可以忽略。但是在

39、实物上仿真时就必须按要求进行设计。3 软件设计 软件设计部分主要介绍一下主程序的设计方法,模拟器程序的设计方法。在开始介绍之前先对开发的语言和环境进行介绍一下。软件编程是开发单片机应用系统中的一个重要环节。好的程序不仅能扩充单片机的功能而且还能提高系统的可靠性,便于系统的改进和功能的扩充。对于AVR系列的单片机,既可以采用汇编语言编程,也可以采用BASIC和C等高级语言编程。由于汇编语言编写的系统的程序可读性和可移植性都比较差,因此系统的调试工作比较困难,产品的开发周期也较长。为了提高系统应用程序的编写效率,缩短产品的开发周期,采用Basic和C等高级语言进行单片机应用程序的设计已经成为软件开

40、发的一个主流,它不仅大大缩短开发周期,而且可以显著地增加软件的可读性,从而便于研制开发更大的系统。实践证明,采用高级语言进行单片机系统程序开发的效率要比使用汇编语言高几十倍。C语言是一种编译性的结构化程序设计语言,它具有简单而强大的处理功能,具有运行速度快、编译效率高、移植性好和可读性强等多种优点,并且可以实现对系统硬件的直接操作,C语言支持自顶向下的结构化程序设计方法,并且支持模块化程序设计结构。ICC AVR是ImageCraft公司针对AVR单片机而开发的一个C语言编译器,它采用符合ANSI标准的C语言来开饭单片机程序,并具有以下几个特点: 支持不带SRAM的单片机器件。 带嵌入式的应用

41、程序编译器。 带全局优化器。 支持在线编程(STK200/300)。因此本系统采用C语言进行设计,开发环境为ICC AVR。3.1 主控制器设计主程序设计采用的是循环的方式来进行,工作过程中不断查询是否控制按钮被按下。当有控制按钮被按下的时候,就调用相应的功能模块的程序以完成操作,进行对总线上的iButton元件的数据交换,处理接收到的数据,并显示处理结果。图3.1所示的主控制器程序的流程框图。图3.1 主控制器流程框图3.1.1 LCD显示器模块设计 系统为了更好实现人机操作界面,使用两行16位、型号为LM016L的LCD显示器,它能够很好的反映系统的运行状态。显示器模块的代码如下:/*=/

42、函数功能: 初始化LM016L/形参: void/返回: void=*/void LCD_init(void) /LCD显示器的初始化 LCD_DATA_DDR|=LCD_DATA; /数据口方向为输出 LCD_EN_DDR|=LCD_EN; /设置EN方向为输出 LCD_RS_DDR|=LCD_RS; /设置RS方向为输出 LCD_write_command(0x28); LCD_en_write(); delay_nus(40); LCD_write_command(0x28); /4位显示 LCD_write_command(0x0c); /显示开 LCD_write_command(0

43、x01); /清屏 delay_nms(2); /*=/函数功能: 显示器使能/形参: void/返回: void=*/void LCD_en_write(void) LCD_EN_PORT|=LCD_EN; /设置LCD的使能端口EN为使能状态 delay_nus(1); LCD_EN_PORT&=LCD_EN; /*=/函数功能: 显示器写指令/形参: 指令代码/返回: void=*/void LCD_write_command(unsigned char command) delay_nus(16); LCD_RS_PORT&=LCD_RS; /RS=0 LCD_DATA_PORT&=0

44、X0f; /清高四位 LCD_DATA_PORT|=command&0xf0; /写高四位 LCD_en_write(); command=command4; /低四位移到高四位 LCD_DATA_PORT&=0x0f; /清高四位 LCD_DATA_PORT|=command&0xf0; /写低四位 LCD_en_write(); /*=/函数功能: LM016L写数据/形参: unsigned char/返回: void=*/void LCD_write_data(unsigned char data) delay_nus(16); LCD_RS_PORT|=LCD_RS; /RS=1 LCD_DATA_PORT&=0X0f; /清高四位 LCD_DATA_PORT|=data&0xf0; /写高四位 LCD_en_write(); data=data4; /低四位移到高四位 LCD_DATA_PORT&=0X0f; /清高四位 LCD_DATA_PORT|=data&0xf0; /写低四位 LCD_en_write(); void LCD_set_xy( unsigned char x, unsigned char y ) /写地址函数 unsi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1