基于AVR单片机的电子密码锁设计_第1页
基于AVR单片机的电子密码锁设计_第2页
基于AVR单片机的电子密码锁设计_第3页
基于AVR单片机的电子密码锁设计_第4页
基于AVR单片机的电子密码锁设计_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳理工大学学士学位论文i摘摘 要要本文主要介绍了基于 avr 单片机的电子密码锁设计。主要内容为仿真硬件电路的设计和软件程序的设计 。主要实现的功能是实现人机接口矩阵输入,这种输入方式更节约管脚,数码管显示输出 (lcd1602)。本例用 avr 单片机 eeprom 保存密码,输入正确密码时开锁灯亮,液晶显示屏显示开锁成功。在开锁之后可以实现密码的修改和储存,并且重新输入的密码经过md5 加密后以密文的形式存储在eeprom 中,更加安全可靠。此模块是基于 avr 单片机的,该模块的硬件 开发平台采用的是 atmel 公司的atmega16 单片机,且 atmega16 是基于增强型的 a

2、vr risic 结构的低能耗 8 位cmos 微控器,速度快,且存储空间大,这给设计带来了极大的方便。将调试成功的c 程序工程加载到 atmega16 单片机中就可以实现以上的功能。本次设计软件方面主要使用的开发平台是 winavr 和 avr_studio,所使用的编程语言是 c 语言。完成本次设计需要掌握 atmega16 单片机的相关知识与实际应用,单片机外围电路的设计,相关 c 程序的设计与仿真等。该驱动程序能够正常运行,运行结果正确,证明设计思路正确。关关键键词词:md5 加加密密;avr_studio;protues;atmega16 单单片片机机沈阳理工大学学士学位论文iiab

3、stract this paper mainly introduces the design of electronic password lock based on avr microcontroller. design of the main content for the design of hardware circuit and software program. the main function is to achieve human-machine interface matrix input, the input mode is more economical in pin,

4、 digital tube display output (lcd1602). the save password with avr microcontroller eeprom, enter the correct password to unlock the lights, the lcd screen displays the unlock success. in the unlocking can be achieved after the password changes and storage, and re-enter the password encrypted with md

5、5 after stored in encrypted form in eeprom, more safe and reliable. this module is based on avr mcu, the developing platform of the hardware of the module is based on atmels atmega16 chip, and atmega16 is a unit, micro control enhanced avr risic structure type of low-energy consumption based on 8 bi

6、ts cmos speed, and large storage space, which brings great convenience to design. the successful debugging c program project is loaded into the atmega16 microcontroller can be achieved above functions. the main use of the design software development platform is winavr and avr_studio, the programming

7、 language used is c language. complete knowledge of the design need to master the atmega16 mcu and practical applications, single-chip peripheral circuit design, c program design and simulation.the driver can run normally, run results correctly, prove that design idea is correct. keywords: md5 encry

8、ption;avr_studio; protues;atmega16 mcu 沈阳理工大学学士学位论文iii目 录1绪 论.11.1 电子密码锁的介绍.11.2 avr 单片机的发展过程及现状.21.2.1 发展过程.21.2.2 avr 单片机的现状.31.2.3 avr 单片机的优点.31.2.4 avr 单片机的型号标识解释.51.2.5 avr 8-bit mcu 的最大特点.51.3 md5 加密算法的介绍.61.3.1 md5 的简介.61.3.2 md5 算法的原理.61.4 本论文的结构.82 系统整体设计.92.1 原理框图.92.2 系统仿真平台.92.2.1 protue

9、s 简介.92.2.2 protues 新特点.102.3 软件开发平台.132.3.1 winavr 与 avr_studio 的介绍.132.3.2 avr_studio 的安装.132.3.3 winavr 的安装.153 仿真硬件电路设计.173.1 硬件开发平台.173.1.1 atmega16 介绍.173.1.2 atmega16 产品特征及性能.183.2 单片机外围电路设计.233.2.1 液晶显示屏的设计.233.2.2 矩阵键盘输入的设计.25沈阳理工大学学士学位论文iv3.2.3 外围时钟电路的设计.253.2.4 蜂鸣器及开锁指示灯的设计.263.2.5 单片机的引脚

10、连接设计.263.2.6 电源与时钟电路的设计.263.3 电路的完整设计.264 软件设计.274.1 单片机 c 语言程序设计技术.274.1.1 单片机 c 语言的主要特点.274.2 整体程序设计简要介绍.284.2.1 整体程序的设计.284.3 各程序模块的设计.284.3.1 各函数定义.284.3.2 主函数模块.334.3.3 lcd1602 液晶显示屏模块.384.3.4 矩阵键盘输入模块.414.3.5 md5 加密算法模块.424.3.6 蜂鸣器子模块.484.3.7 读取密码及存储密码模块.485 系统的实现.515.1 系统运行结果.515.1.1 程序的加载.51

11、5.1.2 功能的实现.52结 论.56致 谢.57参考文献.58附录 a 英文原文.59附录 b 中文翻译.67沈阳理工大学学士学位论文11 绪 论1.1 电子密码锁的介绍目前,最常用的锁是 20 世纪 50 年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每 4000 把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。由于人们对锁的安全性,方

12、便性等性能有更高的要求,许多智能锁也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。电子锁是采用电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化所锁,相比传统的锁具,电子锁不使用金属钥匙,保密性、精度都很高。电子锁的发明思路,源自古代的自动机械,它们以重力或蒸汽压力驱动,最广泛用途是用在古代古墓的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进1。电子密码锁是 在电子锁的基础上设计的, 一种通过密码输入来控制电路或是芯片工作,从而控

13、制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的 。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论是在技术上还是在性能上都大大提高。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带处理器的智能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们生活水平的提高,电子密码锁作为防盗卫士的作用日趋重要

14、。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。随着人们生活水平的提高,如何实现防盗这一问题也变的尤其的突出,沈阳理工大学学士学位论文2传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间18。随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,ic 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。电子锁由于其

15、保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流2。因为电子密码锁具有保密性好、编码量多、密码可变、误码输入保护、电子密码锁操作简单易行、干扰码功能 、在输入正确密码前可输入任意码、安保功能等功能。使用电子密码锁这些问题都能够解决,这也就是电子密码锁成为电子防盗产品主要研究对象的原因。1.2 avr 单片机的发展过程及现状1.2.1 发展过程avr 单片机是 1997 年由 atmel 公司研发出的增强型内置 flash 的 risc(reduced instruction set cpu) 精简指令集高速 8 位

16、单片机。avr 的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。atmel 挪威设计中心的 a 先生与 v 先生,于 97 年设计出一款使用 risc 指令集的 8 位单片机,起名为 avr。avr 单片机系列齐全,可适用于各种不同场合的要求。avr 单片机有 3 个档次:低档 tiny 系列 avr 单片机: 主要有 tiny11/12/13/15/26/28 等; 中档 at90s 系列 avr 单片机: 主要有 at90s1200/2313/8515/8535 等; (正在淘汰或转型到 mega 中,详情请参考:avr 宣布到期的芯片清单)高档

17、 atmega 系列 avr 单片机: 主要有 atmega8/16/32/64/128( 存储容量为8/16/32/64/128 kb)以及 atmega8515/8535。 新的型号还有 atmega48/88/168 (存储容量为 4/8/16k) 等3。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥的方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度减沈阳理工大学学士学位论文3慢。以后的 cmos 单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观;此间虽有某些精简指令集单片机(risc)问世,但依然沿袭对时钟分频的做法

18、。 atmel 公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。20 世纪 90 年代初 ,atmel 率先把 mcs-51 内核与其擅长的flash 技术相结合,推出轰动世界的 at89 系列单片机。1997 年,atmel 挪威设计中心出于市场需求考虑,充分发挥其 flash 技术优势,推出全新配置的精简指令集(risc)单片机,简称 avr。几年来,avr 单片机已形成系列产品,其attiny,at90,atmega 分别对应为低、中、高档产品4。1.2.2 avr 单片机的现状电子技术如今迅猛发展,尤其是单片机已广泛地应用于军事、工业、家用电器、智能

19、玩具、便携式智能仪表、机器人制作等领域,使产品功能、精度和质量大幅度提高,且电路简单,故障率低,可靠性高,成本低廉。avr 单片机价格低廉、可擦除 1000 次以上,不再有报废品产生,且对掉电后数据的保存带来方便,来电时能记住掉电时的工作状态,给用户带来极高的可靠性,受到一致好评5。1.2.3 avr 单片机的优点 单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高,成本低廉。单片机种类很多,在简易机器人制作和创新中。1)简便易学,费用低廉首先,对于非专业人员来说,选择 avr 单片机的最主要原

20、因,是进入 avr 单片机开发的门槛非常低,只要会操作电脑就可以学习 avr 单片机的开发。单片机初学者只需一条 isp 下载线,把编辑、调试通过的软件程序直接在线写入 avr 单片机,即可以开发 avr 单片机系列中的各种封装的器件。avr 单片机因此在业界号称“一线打天下”。其次,avr 单片机便于升级。avr 程序写入是直接在电路板上进行程序修改、烧录等操作,这样便于产品升级。再次,avr 单片机费用低廉。学习 avr 单片机可使用 isp 在线下载编程方式(即把 pc 机上编译好的程序写到单片机的程序存储器中),不需购买仿真器、编程器、擦抹器和芯片适配器等,即可进行所有 avr 单片机

21、的开发沈阳理工大学学士学位论文4应用,这可节省很多开发费用。程序存储器擦写可达 10000 次以上,不会产生报废品。2)高速、低耗、保密首先,avr 单片机是高速嵌入式单片机,avr 单片机具有预取指令功能,即在执行一条指令时,预先把下一条指令取进来,使得指令可以在一个时钟周期内执行。多累加器型,数据处理速度快。avr 单片机具有 32 个通用工作寄存器,相当于有 32 条立交桥,可以快速通行。中断响应速度快。avr 单片机有多个固定中断向量入口地址,可快速响应中断。其次,avr 单片机耗能低。对于典型功耗情况,wdt 关闭时为100na,更适用于电池供电的应用设备。有的器件最低 1.8 v

22、即可工作。再次,avr 单片机保密性能好。它具有不可破解的位加密锁 lock bit 技术,保密位单元深藏于芯片内部,无法用电子显微镜看到10。3)i/o 口功能强,具有 a/d 转换等电路avr 单片机的 i/o 口是真正的 i/o 口,能正确反映 i/o 口输入/输出的真实情况。工业级产品,具有大电流(灌电流)1040 ma,可直接驱动可控硅 scr 或继电器,节省了外围驱动器件。 avr 单片机内带模拟比较器,i/o 口可用作 a/d 转换,可组成廉价的 a/d 转换器。atmega48/8/16 等器件具有 8 路 10 位 a/d。 部分 avr 单片机可组成零外设元件单片机系统,使

23、该类单片机无外加元器件即可工作,简单方便,成本又低。 avr 单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全保护,可防止程序走乱飞,提高了产品的抗干扰能力。4)有功能强大的定时器/计数器及通讯接口定时/计数器 t/c 有 8 位和 16 位,可用作比较器。计数器外部中断和 pwm(也可用作 d/a)用于控制输出,某些型号的 avr 单片机有 34 个 pwm,是作电机无级调速的理想器件。avr 单片机有串行异步通讯 uart 接口,不占用定时器和 spi 同步传输功能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达 576k。5)片内 eepromeep

24、rom 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。eeprom 的寿命至少为 100,000 次擦除周期。eeprom 的访问由地址寄存器、数据寄存器和控制寄存器决定。通过 spi 和 jtag 及并行电缆下载 eeprom 数据的操作6。总的来说,在相同的系统时钟下 avr 运行速度最快;芯片内部的沈阳理工大学学士学位论文5flsah、eeprom、sram 容量较大;所有型号的 flash、eeprom 都可以反复烧写、全部支持在线编程烧写(isp);多种频率的内部 rc 振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;每个 io 口都可以以推换驱

25、动的方式输出高、低电平,驱动能力强;内部资源丰富,一般都集成 ad、da 模数器;pwm;spi、usart、twi、i2c 通信口;丰富的中断源等。目前支持 avr 单片机编译器的语言主要有汇编语言、c 语言、basic 语言等。其中 c 编译器主要有 codevisionavr、avrgcc、iar、iccavr 等,c 语言编译器由于它具有功能强大、运用灵活、代码小、运行速度快等先天性的优点,使得它在专业程序设计上具有不可代替的地位6。 1.2.4 avr 单片机的型号标识解释1)型号紧跟的字母,表示电压工作范围。带“v”:1.8-5.5v;若缺省,不带“v”:2.7-5.5v。例:at

26、mega48-20au,不带“v”表示工作电压为 2.7-5.5v。2)后缀的数字部分,表示支持的最高系统时钟。例:atmega48-20au, “20”表示可支持最高为 20mhz 的系统时钟。3)后缀第一(第二)个字母,表示封装。 “p”:dip 封装, “a”:tqfp 封装, “m”:mlf 封装。例:atmega48-20au, “a”表示 tqfp 封装。4)后缀最后一个字母,表示应用级别。 “c”:商业级, “i”:工业级(有铅) 、 “u”工业级(无铅) 。例:atmega48-20au, “u”表示无铅工业级。atmega48-20ai, “i”表示有铅工业级7。1.2.5

27、avr 8-bit mcu 的最大特点与其它 8-bit mcu 相比,avr 8-bit mcu 最大的特点是:1)哈佛结构,具备 1mips / mhz 的高速运行处理能力。2)超功能精简指令集(risc) ,具有 32 个通用工作寄存器,克服了如 8051 mcu采用单一 acc 进行处理造成的瓶颈现象17。3)快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号 flash 非常大,特别适用于使用高级语言进行开发16。4)作输出时与 pic 的 hi/low 相同,可输出 40ma(单一输出) ,作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备 10ma

28、-20ma 灌电流的能力。沈阳理工大学学士学位论文65)片内集成多种频率的 rc 振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠。6)大部分 avr 片上资源丰富:带e2prom,pwm,rtc,spi,uart,twi,isp,ad,analog comparator,wdt 等。7)大部分 avr 除了有 isp 功能外,还有 iap 功能,方便升级或销毁应用程序8。1.4 md5 加密算法的介绍1.4.1 md5 的简介md5 算法即信息摘要算法(message digest algorithm 5),在 20 世纪 90 年代初由mit 的计算机科学实

29、验室和 rsa data secutity inc 发明,经历的版本有 md2 md3 md4,md5 广泛用于加密技术,很多系统用户密码都以 md5 加密方式保存,用户登录时,系统将用户输入的密码转换成 md5 值,然后再与系统中保存的 md5 值比较,以此来验证用户的合法性,这样比保存密码明文要安全的多,密码明文容易被窃取和使用,而经 md5 加密后的密码,由于其不可逆运算的特性,即使 md5 加密后的密码被窃取,系统安全也不会受到威胁16。1.4.2 md5 算法的原理md5 以 512 位(bit)分组来处理输入的信息,每一分组又被划分为若干子分组,经过了一系列的处理后,算法的输出由

30、4 个 32 位分组组成,将这 4 个 32 位分组组合后将生成一个 128 位散列值,这 128 位二进制数相当于 16 个字节,由这 16 个字节转换的字节串就是最后输出的 32 个字符(每字节转换为 2 个字符) 。本设计 md5 算法中,上下文结构变量 context 的 buffer 成员是 512 位的信息处理缓冲,state 成员保存 md5 算法的 4 个 32 位初始幻数及最终的组合输出数位,count 成员保存信息位长。在初始化上下文结构变量 context 以后,算法首先调用 md5update 函数对原始信息串进行变换。核心变换函数为 md5update,对于长串会进行

31、尽可能多次的 md5 四轮变换,每次进行的四轮变换由函数 md5transform 完成,变换后的结果存入于 context沈阳理工大学学士学位论文7的状态成员 state。md5 算法接着再进行信息串填充,使其位长度对 512 求余的结果等于 448(即512-64) ,信息的位长度被扩展至 n*512+448 位(bit) ,即 n*64+56 字节(n 为一个正整数)19。md5 算法填充信息串时,在原始信息的后面填充一个 1 和若干个 0,直到满足上面的条件为止。md5.c 中使用的数组 padding64=0 x80,0,0,用于填充处理,该数组所有字节展开为二进制数时就是 1000

32、000,它以 1 个 1 开头,后面是 511 个0,共 512 位。实际填充时会使用其第 0 个字节开始的若干个连续字节。在进行填充处理后再调用核心函数 md5update 继续进行变换,完成填充后再使 64位二进制表示的填充前信息长度参与变换,此时是第 3 次调用 md5update 函数,本设计中附加的填充前信息长度由 8 字节的 bits 数组给出。md5 加密算法中,4 个加密幻数为:a=0 x01234567,b=0 x89abcdef,c=0 xfedcba98,d=0 x76543210。它们按 little endian 方式初始存放于 contextstate 中。md5

33、加密的四轮变换函数 md5transform 使用了以下 4 个非线性函数(每轮 1 个):f(x,y,z)=(x&y)|(x)&z)g(x,y,z)=(x&z)|(y&(z)h(x,y,z)=xyzi(x,y,z)=y(x|(z)在经过 md5final 的最后变换以后,contextstate 中保存的 16 字节数据就是待输出的加密数据,这 16 个字节被复制到摘要字节数组 digest,程序最后将这 16 个字节转换为十六进制字符,每字节转换为 2 个字符,得到最后的加密输出字符串。以下为对原始密码“123456”进行 md5 加密的跟踪过程:(1)调用

34、 md5init 函数初始化 context,初始化以后的 context 各成员初值如下: 位长成员 count0-count1:0 x00000000 00000000; 状态成员 state0-state3:0 x10325476 98badcfe efcdab89 67452301; 缓冲成员 buffer:64 个 0 x00。(2)首次调用 md5 核心计算函数 md5update:md5update(&context,(int8u*)str,len)。沈阳理工大学学士学位论文8 本次调用 md5update 对原始信息串进行变换处理,处理后的 context 内容如下:

35、count0-count1:0 x00000030 00000000,即 count=48(这里的 48 表示原始串长为 6字节,共 48 位) ; state0-state3:0 x10325476 98badcef efcdab89 6745230; 缓冲成员 buffer:31 32 33 34 35 36 80 0000,其中 80 开始的 50 个字节为填充字节,以 1 个二进制 1 开头,后面为 447 个 0,buffer 的最后 8 个字节仍为 0 x00。 再次调用 md5update 函数:md5update(context,bits,8),附加用 64 位(8 字节)表示

36、的填充前串进行变换: count0-count1:0 x00000200 00000000 ,即 count=512;(512=448+64) state0-state3:0 x39dc0ae1 0 xab59ba49 0 x57e056be 0 x3e880ff2; buffer 的内容不变。最后输出的 md5 加密密码为:e10adc3949ba59abbe56e057f20f883e该字符串是将 state0-state3中 4 个十六进制长整数逆转并转换为小写以后的结果。为将初始密码“123456”进行 md5 加密以后的密码存入单片机的 eeprom 存储器,需要先将“e10adc3

37、949ba59abbe56e057f20f883e”保存到 password.bin 文件。创建 password.bin 以后,打开单片机属性窗口找到“advanced properties下拉框,选择“initial contents of eeprom项,在其后面的文本框中选择 password.bin 文件即可完成对 eeprom 的初始数据绑定。1.4 本论文的结构本论文包括五大部分,第一部分是绪论,其中描述了电子密码锁的介绍,md5 算法的介绍,论文的结构,和 avr 单片机的发展过程和现状;第二部分是系统的整体设计,其中包括系统的整体框图,硬件开发工具和软件开发工具,讲述了系统的

38、设计的每个小框架,软件和硬件的功能菜单的介绍;第三部分是仿真硬件电路的设计,包括cpu 的选型,所选 cpu 的功能介绍,外围电路的设计以及各模块的功能介绍;第四部分是软件设计,包括每个模块的软件设计流程图,及主要代码介绍;第五部分是系统的实现,包括程序的加载和功能的实现,介绍了软件的运行结果。沈阳理工大学学士学位论文92 系统整体设计2.1 系统框图图 2.1 系统框图如图 2.1 所示,这个框图实现电子密码锁的功能,在设计中用 avr 单片机的eeprom 保存密码,当用户输入正确密码时开锁指示灯亮,液晶显示屏显示开锁成功。开锁成功后用户可按下重设密码键设置新密码,在输入十位以内的新密码后

39、按下存入键可将新密码用 md5 算法加密并写入 eeprom,下次开锁时用新密码才能打开。每次按键蜂鸣器都会发出声音以表示按键成功。2.2 系统开发平台2.2.1 protues 简介proteus 软件是英国 labcenter electronics 公司研发的 eda 工具软件。它是一个集模拟电路、数字电路、模/数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。是目前同类软件中最先进、最完整的电子类仿真平台之一。它真正实现了在沈阳理工大学学士学位论文10计算机上完成从原理图、电路分析与仿真、单片机代码调试与仿真、系统测试与功能验证到 pcb 板生成的完整的电子产品研发过程9。已经

40、安装了 proteus isis7 软件的桌面上就会有图标。双击该图标,出现工作界面如图 1 所示。界面中包括:标题栏、下拉主菜单、快捷按钮栏、标准工具栏、绘图工具箱、状态栏、选择元器件按钮、预览对象方位控制按钮、仿真操作按钮、预览窗口、电路原理图编辑窗口等。1、电路图的绘制运行的程序后, 进入该仿真软件的主界面。作图步骤: (1)绘图前, 为了便于作图, 可作一些设置。如设置栅格、栅格捕捉精度、图形界面颜色、大小等。(2)通过对象选择按钮p, 利用其搜索引擎, 将所需元器件加入到对象选择器窗口。列元件清单,如表表 2-1 元件清单元件清单(3)放置元器件至图形编辑窗口, 并调整到合适位置。(

41、4)修改属性,如电阻, 设置电阻值(5)放置总线至图形编辑窗口。(6)完成元器件之间以及元器件与总线的连线。(7)给与总线连接的导线贴标签, 以便于系统识别10。2.2.2 protues的特点 proteus软件具有其它eda工具软件(例:multisim)的功能。这些功能是:(1)元件名称型号数量proteus 中的名称单片机芯片mega161mega16晶振1mhz1crystal电容22pf2cap液晶显示屏lcd16021lm016l电阻2201res电阻10k1res沈阳理工大学学士学位论文11原理布图 (2)pcb自动或人工布线(3)spice电路仿真 革命性的特点 :(1)互动

42、的电路仿真 用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部分iic器件。 (2)仿真处理器及其外围电路 可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,proteus建立了完备的电子设计开发环境。 功能模块:(1)智能原理图设计(isis)丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件; 智能化的连线功能:自动连线功能使连接导线简单快捷,大

43、大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的bmp图纸,可以方便地供word、powerpoint等多种文档使用。 (2)完善的电路仿真功能(prospice)prospice混合仿真:基于工业标准spice3f5,实现数字/模拟电路的混合仿真; 超过27000个仿真器件:可以通过内部原型或使用厂家的spice文件自行设计仿真器件,labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件) 、指数信号、单频fm、数字时钟

44、和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、spi调试器、i2c调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(asf):基于图标的分析可以精确分析电路的多项指标,包沈阳理工大学学士学位论文12括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析11; (3)独特的单片机

45、协同仿真功能(vsm)支持主流的cpu类型:如arm7、8051/52、avr、pic10/12、pic16、pic18、pic24、dspic33、hc11、basicstamp、8086、msp430等,cpu类型随着版本升级还在继续增加,如即将支持cortex、dsp处理器; 支持通用外设模型:如字符lcd模块、图形lcd模块、led点阵、led七段显示模块、键盘/按键、直流/步进/伺服电机、rs232虚拟终端、电子温度计等等,其compim(com口物理接口模型)还可以使仿真电路通过pc机串口和外部电路实现双向异步串行通信; 实时仿真:支持uart/usart/eusarts仿真、中断

46、仿真、spi/i2c仿真、mssp仿真、psp仿真、rtc仿真、adc仿真、ccp/eccp仿真; 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、avr、pic的汇编编译器,也可以与第三方集成编译环境(如iar、keil和hitech)结合,进行高级语言的源码级仿真和调试; (4)实用的pcb设计平台原理图到pcb的快速通道: 原理图设计完成后,一键便可进入ares的pcb设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使pcb设计更为合理; 整的pcb设计功能:最多可设计

47、16个铜箔层,2个丝印层,4个机械层(含板边) ,灵活的布线策略供用户设置,自动设计规则检查,3d 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括gerber文件的导入或导出,便利与其它pcb设计工具的互转(如protel)和pcb板的设计和加工12。 在proteus绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在proteus的原理图中看到模拟的实物运行状态和过程。 roteus 是单片机课堂教学的先进助手。 proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以沈阳

48、理工大学学士学位论文13达到的效果13。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 图 2.2 系统仿真平台界面2.3 软件开发平台2.3.1 winavr 与 avr_studio 的介绍avr_studio 是 atmel 官方针对 avr 系列单片机推出的集成开发环境,它集开发调试与一体,有很好的用户界面与很好的稳定性。由于 avr_studio 仅支持编译汇编语言程序,不支持对 c 语言程序的编译。要基于 avr_studio 搭建 avr 单片机 c 语

49、言开发环境,除下载安装 avr_studio 之外,还需要下载安装 winavr 来提供 avr-gcc编译器。 winavr 是 gnu 组织组织推出的 avr 单片机的 gcc 编译器,该编译器的编译效率极高,gcc 编译器是开源的也是免费的,使用 gcc 编译器,可以掌握标准 c 的语法等,为学习 linux 等奠定基础14。沈阳理工大学学士学位论文142.3.2 winavr 的安装按如下系列的图示 2.3 进行安装:沈阳理工大学学士学位论文15图 2.3 winavr 的安装双击安装包启动安装开始准备安装同意 license选择安装路径选择 usb 驱动确定开始安装并且完成安装2.3

50、.2avr_studio 的安装沈阳理工大学学士学位论文16图 2.4 avr_studio 的安装选择安装向导语言接收协议选择安装目录选择安装组件正在安装完成安装安装后的软件界面如图 2.5 所示: 图 2.5 软件开发平台界面沈阳理工大学学士学位论文17 3 硬件电路设计3.1 cpu 选型3.1.1 atmega16 介绍本课题是基于avr单片机。所以选用atmel公司推出的atmega16完成。atmega16是基于增强的avr risc结构的低功耗8 位cmos微控制器。由于其先进的指令集以及单时钟周期指令执行时间,atmega16 的数据吞吐率高达1 mips/mhz,从而可以减缓

51、系统在功耗和处理速度之间的矛盾15。atmega16 avr 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与运算逻单元(alu) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的cisc 微控制器最高至10 倍的数据吞吐率。atmega16 有如下特点:16k字节的系统内可编程flash(具有同时读写的能力,即rww),512 字节eeprom,1k 字节sram,32 个通用i/o 口线,32 个通用工作寄存器,用于边界扫描的jtag 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(t/c)

52、,片内/外中断,可编程串行usart,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(tqfp 封装) 的adc ,具有片内振荡器的可编程看门狗定时器,一个spi 串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时cpu 停止工作,而usart、两线接口、a/d 转换器、sram、t/c、spi 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; adc 噪声抑制模式时终止cpu 和除了异步定时器与adc 以外所有i/o

53、 模块的工作,以降低adc 转换时的开关噪声; standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展standby 模式下则沈阳理工大学学士学位论文18允许振荡器和异步定时器继续工作16。本芯片是以atmel 高密度非易失性存储器技术生产的。片内isp flash 允许程序存储器通过isp 串行接口,或者通用编程器进行编程,也可以通过运行于avr 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用flash存储区(applicationflash memory)。在更新应用flash存储区时引导fl

54、ash区(boot flash memory)的程序继续运行,实现了rww 操作。 通过将8 位risc cpu 与系统内可编程的flash 集成在一个芯片内, atmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。atmega16 具有一整套的编程与系统开发工具,包括:c 语言 编译器、宏汇编、 程序调试器/ 软件仿真器、仿真器及评估板。3.1.2 atmega16 产品特征及性能先进的 risc 结构131条指令大多数指令执行时间为单个时钟周期32个8位通用工作寄存器全静态工作工作于16mhz 时性能高达16mips只需两个时钟周期的硬件乘法器非易失

55、性程序和数据存储器16k 字节的系统内可编程 flash,擦写寿命: 10,000次具有独立锁定位的可选 boot 代码区,通过片上 boot 程序实现系统内编程,真正的 同时读写操作17512 字节的 eeprom,擦写寿命: 100,000次1k 字节的片内 sram可以对锁定位进行编程以实现用户程序的加密jtag 接口( 与 ieee 1149.1 标准兼容)符合 jtag 标准的边界扫描功能支持扩展的片内调试功能通过 jtag 接口实现对 flash、eeprom、熔丝位和锁定位的编程沈阳理工大学学士学位论文19外设特点两个具有独立预分频器和比较器功能的8位定时器/计数器一个具有预分频

56、器、比较功能和捕捉功能的16位定时器/计数器具有独立振荡器的实时计数器 rtc 四通道 pwm8路10位 adc,8个单端通道,2个具有可编程增益(1x, 10 x, 或200 x)的差分通道面向字节的两线接口两个可编程的串行 usart可工作于主机/ 从机模式的 spi 串行接口具有独立片内振荡器的可编程看门狗定时器 片内模拟比较器特殊的处理器特点上电复位以及可编程的掉电检测 片内经过标定的 rc 振荡器片内/片外中断源6种睡眠模式: 空闲模式、adc 噪声抑制模式、省电模式、掉电模式、standby 模式以及扩展的 standby 模式 i/o 和封装32个可编程的 i/o 口40引脚 p

57、dip 封装, 44引脚 tqfp 封装, 与44引脚 mlf 封装18工作电压:atmega16l:2.7 - 5.5vatmega16:4.5 - 5.5v速度等级8mhz atmega16l 0-16mhz atmega16atmega16l 在1mhz, 3v, 25c 时的功耗正常模式: 1.1 ma空闲模式: 0.35 ma掉电模式: 1 a沈阳理工大学学士学位论文20atmega16 引脚功能vcc 电源正gnd 电源地端口 a(pa7.pa0) 端口 a 做为 a/d 转换器的模拟输入端。端口 a 为 8 位双向 i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动

58、特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使 系统时钟还未起振,端口 a 处于高阻状态。端口 b(pb7.pb0) 端口 b 为 8 位双向 i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 b 处于高阻状态19。端口 b 也可以用做其他不同的特殊功能 .端口 c(pc7.pc0) 端口 c 为 8 位双向 i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性

59、,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 c 处于高阻状态。如果 jtag 接口使能,即使复位出现引脚 pc5(tdi)、 pc3(tms)与 pc2(tck)的上拉电阻被激活。端口 c 也可以用做其他不同的特殊功能 .端口 d(pd7.pd0) 端口 d 为 8 位双向 i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 d 处于高阻状态。端口 d 也

60、可以用做其他不同的特殊功能20.reset 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见 p36table 15。持续时间小于门限间的脉冲不能保证可靠复位。xtal1 反向振荡放大器与片内时钟操作电路的输入端。xtal2 反向振荡放大器的输出端。avcc avcc 是端口 a 与 a/d 转换器的电源。不使用 adc 时,该引脚应直接与 vcc 连接。使用 adc 时应通过一个低通滤波器与 vcc 连接。沈阳理工大学学士学位论文21aref a/d 的模拟基准输入引脚。为了获得最高的性能以及并行性, avr 采用了 harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论