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

下载本文档

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

文档简介

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

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

3、机 沈阳理工大学学士学位论文 ii abstract 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 mor

4、e economical in pin, 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 passwo

5、rd encrypted with md5 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 consu

6、mption based on 8 bits 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_stu

7、dio, the programming 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

8、. keywords: md5 encryption;avr_studio; protues;atmega16 mcu 沈阳理工大学学士学位论文 iii 目 录 1绪 论.1 1.1 电子密码锁的介绍.1 1.2 avr 单片机的发展过程及现状.2 1.2.1 发展过程.2 1.2.2 avr 单片机的现状.3 1.2.3 avr 单片机的优点.3 1.2.4 avr 单片机的型号标识解释.5 1.2.5 avr 8-bit mcu 的最大特点.5 1.3 md5 加密算法的介绍.6 1.3.1 md5 的简介.6 1.3.2 md5 算法的原理.6 1.4 本论文的结构.8 2 系统整体设计

9、.9 2.1 原理框图.9 2.2 系统仿真平台.9 2.2.1 protues 简介.9 2.2.2 protues 新特点.10 2.3 软件开发平台.13 2.3.1 winavr 与 avr_studio 的介绍.13 2.3.2 avr_studio 的安装.13 2.3.3 winavr 的安装.15 3 仿真硬件电路设计.17 3.1 硬件开发平台.17 3.1.1 atmega16 介绍.17 3.1.2 atmega16 产品特征及性能.18 3.2 单片机外围电路设计.23 3.2.1 液晶显示屏的设计.23 3.2.2 矩阵键盘输入的设计.25 沈阳理工大学学士学位论文

10、iv 3.2.3 外围时钟电路的设计.25 3.2.4 蜂鸣器及开锁指示灯的设计.26 3.2.5 单片机的引脚连接设计.26 3.2.6 电源与时钟电路的设计.26 3.3 电路的完整设计.26 4 软件设计.27 4.1 单片机 c 语言程序设计技术.27 4.1.1 单片机 c 语言的主要特点.27 4.2 整体程序设计简要介绍.28 4.2.1 整体程序的设计.28 4.3 各程序模块的设计.28 4.3.1 各函数定义.28 4.3.2 主函数模块.33 4.3.3 lcd1602 液晶显示屏模块.38 4.3.4 矩阵键盘输入模块.41 4.3.5 md5 加密算法模块.42 4.

11、3.6 蜂鸣器子模块.48 4.3.7 读取密码及存储密码模块.48 5 系统的实现.51 5.1 系统运行结果.51 5.1.1 程序的加载.51 5.1.2 功能的实现.52 结 论.56 致 谢.57 参考文献.58 附录 a 英文原文.59 附录 b 中文翻译.67 沈阳理工大学学士学位论文 1 1 绪 论 1.1 电子密码锁的介绍 目前,最常用的锁是 20 世纪 50 年代意大利人设计的机械锁,其机构简单、使用 方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的 不同齿形与锁芯的配合来工作的。据统计,每 4000 把锁中就有两把锁的钥匙齿牙相同 或类似,故安全

12、性低。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁 的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾 馆等公共场所使用。由于人们对锁的安全性,方便性等性能有更高的要求,许多智能 锁也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高 且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品 的普及和推广。 电子锁是采用电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机 电一体化所锁,相比传统的锁具,电子锁不使用金属钥匙,保密性、精度都很高。 电子锁的发明思路,源自古代的自动机械,它们以重力或蒸汽压力驱动,最广泛用

13、途是用在古代古墓的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可 能,于是有了电子锁一日千里的跃进 1。 电子密码锁是 在电子锁的基础上设计的, 一种通过密码输入来控制电路或是 芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类 很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电 子密码锁是以芯片为核心,通过编程来实现的 。在安全技术防范领域,具有防盗报 警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、 安全性能差的缺点,使密码锁无论是在技术上还是在性能上都大大提高。随着大规模 集成电路技术的发展,特别是单片机的问世

14、,出现了带处理器的智能密码锁,它除了 具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码 锁具有很高的安全性、可靠性,应用日益广泛。 随着人们生活水平的提高,电子密码锁作为防盗卫士的作用日趋重要。电子密码 防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保 密性差的缺点。随着人们生活水平的提高,如何实现防盗这一问题也变的尤其的突出, 沈阳理工大学学士学位论文 2 传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新 型的锁-电子密码锁,提供了发展的空间18。 随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世

15、。但 是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。 而且指纹识识别器若在公共场所使用存在容易机械损坏,ic 卡还存在容易丢失、损坏 等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。电子锁由于其 保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。鉴于目前的技术水 平与市场的接收程度,电子密码锁是这类电子防盗产品的主流2。 因为电子密码锁具有保密性好、编码量多、密码可变、误码输入保护、电子密 码锁操作简单易行、干扰码功能 、在输入正确密码前可输入任意码、安保功能等功 能。使用电子密码锁这些问题都能够解决,这也就是电子密码锁成为电子防盗产品主 要

16、研究对象的原因。 1.2 avr 单片机的发展过程及现状 1.2.1 发展过程 avr 单片机是 1997 年由 atmel 公司研发出的增强型内置 flash 的 risc(reduced instruction set cpu) 精简指令集高速 8 位单片机。avr 的单片机可以广泛应用于计算 机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 atmel 挪威设计中心的 a 先生与 v 先生,于 97 年设计出一款使用 risc 指令集 的 8 位单片机,起名为 avr。 avr 单片机系列齐全,可适用于各种不同场合的要求。avr 单片机有 3 个档次: 低档 tiny

17、系列 avr 单片机: 主要有 tiny11/12/13/15/26/28 等; 中档 at90s 系列 avr 单片机: 主要有 at90s1200/2313/8515/8535 等; (正在淘 汰或转型到 mega 中,详情请参考:avr 宣布到期的芯片清单) 高档 atmega 系列 avr 单片机: 主要有 atmega8/16/32/64/128( 存储容量为 8/16/32/64/128 kb)以及 atmega8515/8535。 新的型号还有 atmega48/88/168 (存储 容量为 4/8/16k) 等3。 早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原

18、因,所以 采取稳妥的方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度减 沈阳理工大学学士学位论文 3 慢。以后的 cmos 单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态 并未被彻底改观;此间虽有某些精简指令集单片机(risc)问世,但依然沿袭对时钟 分频的做法。 atmel 公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的 一流半导体制造公司。20 世纪 90 年代初 ,atmel 率先把 mcs-51 内核与其擅长的 flash 技术相结合,推出轰动世界的 at89 系列单片机。1997 年,atmel 挪威设计中 心出于市场需求考虑,充分发挥其

19、flash 技术优势,推出全新配置的精简指令集 (risc)单片机,简称 avr。几年来,avr 单片机已形成系列产品,其 attiny,at90,atmega 分别对应为低、中、高档产品4。 1.2.2 avr 单片机的现状 电子技术如今迅猛发展,尤其是单片机已广泛地应用于军事、工业、家用电器、智 能玩具、便携式智能仪表、机器人制作等领域,使产品功能、精度和质量大幅度提高,且 电路简单,故障率低,可靠性高,成本低廉。avr 单片机价格低廉、可擦除 1000 次 以上,不再有报废品产生,且对掉电后数据的保存带来方便,来电时能记住掉电时的 工作状态,给用户带来极高的可靠性,受到一致好评5。 1.

20、2.3 avr 单片机的优点 单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器 人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠 性高,成本低廉。单片机种类很多,在简易机器人制作和创新中。 1)简便易学,费用低廉 首先,对于非专业人员来说,选择 avr 单片机的最主要原因,是进入 avr 单片 机开发的门槛非常低,只要会操作电脑就可以学习 avr 单片机的开发。单片机初学者 只需一条 isp 下载线,把编辑、调试通过的软件程序直接在线写入 avr 单片机,即可 以开发 avr 单片机系列中的各种封装的器件。avr 单片机因此在业界号称“一线打天

21、 下”。其次,avr 单片机便于升级。avr 程序写入是直接在电路板上进行程序修改、 烧录等操作,这样便于产品升级。再次,avr 单片机费用低廉。学习 avr 单片机可 使用 isp 在线下载编程方式(即把 pc 机上编译好的程序写到单片机的程序存储器中), 不需购买仿真器、编程器、擦抹器和芯片适配器等,即可进行所有 avr 单片机的开发 沈阳理工大学学士学位论文 4 应用,这可节省很多开发费用。程序存储器擦写可达 10000 次以上,不会产生报废品。 2)高速、低耗、保密 首先,avr 单片机是高速嵌入式单片机,avr 单片机具有预取指令功能,即在执 行一条指令时,预先把下一条指令取进来,使

22、得指令可以在一个时钟周期内执行。多 累加器型,数据处理速度快。avr 单片机具有 32 个通用工作寄存器,相当于有 32 条 立交桥,可以快速通行。中断响应速度快。avr 单片机有多个固定中断向量入口地址, 可快速响应中断。其次,avr 单片机耗能低。对于典型功耗情况,wdt 关闭时为 100na,更适用于电池供电的应用设备。有的器件最低 1.8 v 即可工作。再次, avr 单片机保密性能好。它具有不可破解的位加密锁 lock bit 技术,保密位单元深藏 于芯片内部,无法用电子显微镜看到10。 3)i/o 口功能强,具有 a/d 转换等电路 avr 单片机的 i/o 口是真正的 i/o 口

23、,能正确反映 i/o 口输入/输出的真实情况。 工业级产品,具有大电流(灌电流)1040 ma,可直接驱动可控硅 scr 或继电器,节省 了外围驱动器件。 avr 单片机内带模拟比较器,i/o 口可用作 a/d 转换,可组成廉价 的 a/d 转换器。atmega48/8/16 等器件具有 8 路 10 位 a/d。 部分 avr 单片机可组成 零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。 avr 单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全 保护,可防止程序走乱飞,提高了产品的抗干扰能力。 4)有功能强大的定时器/计数器及通讯接口 定时

24、/计数器 t/c 有 8 位和 16 位,可用作比较器。计数器外部中断和 pwm(也可用 作 d/a)用于控制输出,某些型号的 avr 单片机有 34 个 pwm,是作电机无级调速 的理想器件。avr 单片机有串行异步通讯 uart 接口,不占用定时器和 spi 同步传输功 能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达 576k。 5)片内 eeprom eeprom 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。 eeprom 的寿命至少为 100,000 次擦除周期。eeprom 的访问由地址寄存器、数据 寄存器和控制寄存器决定。通过 spi 和 j

25、tag 及并行电缆下载 eeprom 数据的操作6。 总的来说,在相同的系统时钟下 avr 运行速度最快;芯片内部的 沈阳理工大学学士学位论文 5 flsah、eeprom、sram 容量较大;所有型号的 flash、eeprom 都可以反复烧写、 全部支持在线编程烧写(isp);多种频率的内部 rc 振荡器、上电自动复位、看门狗、 启动延时等功能,零外围电路也可以工作;每个 io 口都可以以推换驱动的方式输出高、 低电平,驱动能力强;内部资源丰富,一般都集成 ad、da 模数器; pwm;spi、usart、twi、i2c 通信口;丰富的中断源等。 目前支持 avr 单片机编译器的语言主要有

26、汇编语言、c 语言、basic 语言等。其 中 c 编译器主要有 codevisionavr、avrgcc、iar、iccavr 等,c 语言编译器由 于它具有功能强大、运用灵活、代码小、运行速度快等先天性的优点,使得它在专业 程序设计上具有不可代替的地位6。 1.2.4 avr 单片机的型号标识解释 1)型号紧跟的字母,表示电压工作范围。带“v”:1.8-5.5v;若缺省,不带“v”: 2.7-5.5v。例:atmega48-20au,不带“v”表示工作电压为 2.7-5.5v。 2)后缀的数字部分,表示支持的最高系统时钟。例:atmega48-20au, “20”表示 可支持最高为 20m

27、hz 的系统时钟。 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 avr 8-bit mcu 的最大特点 与其它 8-bit mcu 相比,avr 8-bit mcu 最大的特点是: 1)哈佛结构,具备 1mips / mhz 的高

28、速运行处理能力。 2)超功能精简指令集(risc) ,具有 32 个通用工作寄存器,克服了如 8051 mcu 采用单一 acc 进行处理造成的瓶颈现象17。 3)快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效 率,部分型号 flash 非常大,特别适用于使用高级语言进行开发16。 4)作输出时与 pic 的 hi/low 相同,可输出 40ma(单一输出) ,作输入时可设 置为三态高阻抗输入或带上拉电阻输入,具备 10ma-20ma 灌电流的能力。 沈阳理工大学学士学位论文 6 5)片内集成多种频率的 rc 振荡器、上电自动复位、看门狗、启动延时等功能, 外围电路更加简

29、单,系统更加稳定可靠。 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 的计算机科学实验室和 rsa data secutity inc 发明,经历的版本有 md2 md3 md4,md5 广泛用于加密技术,很多系

30、统用户密码都以 md5 加密方式保存,用户登 录时,系统将用户输入的密码转换成 md5 值,然后再与系统中保存的 md5 值比较, 以此来验证用户的合法性,这样比保存密码明文要安全的多,密码明文容易被窃取和 使用,而经 md5 加密后的密码,由于其不可逆运算的特性,即使 md5 加密后的密码 被窃取,系统安全也不会受到威胁16。 1.4.2 md5 算法的原理 md5 以 512 位(bit)分组来处理输入的信息,每一分组又被划分为若干子分组,经 过了一系列的处理后,算法的输出由 4 个 32 位分组组成,将这 4 个 32 位分组组合后 将生成一个 128 位散列值,这 128 位二进制数相

31、当于 16 个字节,由这 16 个字节转换 的字节串就是最后输出的 32 个字符(每字节转换为 2 个字符) 。 本设计 md5 算法中,上下文结构变量 context 的 buffer 成员是 512 位的信息处理 缓冲,state 成员保存 md5 算法的 4 个 32 位初始幻数及最终的组合输出数位,count 成 员保存信息位长。 在初始化上下文结构变量 context 以后,算法首先调用 md5update 函数对原始信 息串进行变换。核心变换函数为 md5update,对于长串会进行尽可能多次的 md5 四轮 变换,每次进行的四轮变换由函数 md5transform 完成,变换后的

32、结果存入于 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,用于填充处理,该 数组所有字节展开为二进制数时就是 1000000,它以 1 个 1 开头,后面是 511 个 0,共 512 位。实际填充

33、时会使用其第 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 加密的四轮变换函数 md5transform 使用了以下 4 个

34、非线性函数(每轮 1 个) : f(x,y,z)=(x 状态成员 state0-state3:0 x10325476 98badcfe efcdab89 67452301; 缓冲成员 buffer:64 个 0 x00。 (2)首次调用 md5 核心计算函数 md5update:md5update( 缓冲成员 buffer:31 32 33 34 35 36 80 0000,其中 80 开始的 50 个字节为填充 字节,以 1 个二进制 1 开头,后面为 447 个 0,buffer 的最后 8 个字节仍为 0 x00。 再次调用 md5update 函数:md5update(context,

35、bits,8),附加用 64 位(8 字节)表 示的填充前串进行变换: 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 加密以后的密码存入

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

37、设 计,其中包括系统的整体框图,硬件开发工具和软件开发工具,讲述了系统的设计的 每个小框架,软件和硬件的功能菜单的介绍;第三部分是仿真硬件电路的设计,包括 cpu 的选型,所选 cpu 的功能介绍,外围电路的设计以及各模块的功能介绍;第四部 分是软件设计,包括每个模块的软件设计流程图,及主要代码介绍;第五部分是系统 的实现,包括程序的加载和功能的实现,介绍了软件的运行结果。 沈阳理工大学学士学位论文 9 2 系统整体设计 2.1 系统框图 图 2.1 系统框图 如图 2.1 所示,这个框图实现电子密码锁的功能,在设计中用 avr 单片机的 eeprom 保存密码,当用户输入正确密码时开锁指示灯

38、亮,液晶显示屏显示开锁成功。 开锁成功后用户可按下重设密码键设置新密码,在输入十位以内的新密码后按下存入 键可将新密码用 md5 算法加密并写入 eeprom,下次开锁时用新密码才能打开。每 次按键蜂鸣器都会发出声音以表示按键成功。 2.2 系统开发平台 2.2.1 protues 简介 proteus 软件是英国 labcenter electronics 公司研发的 eda 工具软件。它是一个 集模拟电路、数字电路、模/数混合电路以及多种微控制器系统为一体的系统设计和仿 真平台。是目前同类软件中最先进、最完整的电子类仿真平台之一。它真正实现了在 沈阳理工大学学士学位论文 10 计算机上完成

39、从原理图、电路分析与仿真、单片机代码调试与仿真、系统测试与功能 验证到 pcb 板生成的完整的电子产品研发过程9。 已经安装了 proteus isis7 软件的桌面上就会有图标。双击该图标,出现工作界 面如图 1 所示。界面中包括:标题栏、下拉主菜单、快捷按钮栏、标准工具栏、绘图 工具箱、状态栏、选择元器件按钮、预览对象方位控制按钮、仿真操作按钮、预览窗 口、电路原理图编辑窗口等。 1、电路图的绘制 运行的程序后, 进入该仿真软件的主界面。 作图步骤: (1)绘图前, 为了便于作图, 可作一些设置。如设置栅格、栅格捕捉精度、图形 界面颜色、大小等。 (2)通过对象选择按钮p, 利用其搜索引擎

40、, 将所需元器件加入到对象选择器窗口。 列元件清单,如 表表 2-1 元件清单元件清单 (3)放置元器件至图形编辑窗口, 并调整到合适位置。 (4)修改属性,如电阻, 设置电阻值 (5)放置总线至图形编辑窗口。 (6)完成元器件之间以及元器件与总线的连线。 (7)给与总线连接的导线贴标签, 以便于系统识别10。 2.2.2 protues的特点 proteus软件具有其它eda工具软件(例:multisim)的功能。这些功能是:(1) 元件名称型号数量proteus 中的 名称 单片机芯片mega161mega16 晶振1mhz1crystal 电容22pf2cap 液晶显示屏lcd16021

41、lm016l 电阻2201res 电阻10k1res 沈阳理工大学学士学位论文 11 原理布图 (2)pcb自动或人工布线(3)spice电路仿真 革命性的特点 : (1)互动的电路仿真 用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部 分spi器件,部分iic器件。 (2)仿真处理器及其外围电路 可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在基于原 理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系 统配置的虚拟逻辑分析仪、示波器等,proteus建立了完备的电子设计开发环境。 功能模块: (1)智能原理图

42、设计(isis) 丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件; 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的bmp图纸,可以方便 地供word、powerpoint等多种文档使用。 (2)完善的电路仿真功能(prospice) prospice混合仿真:基于工业标准spice3f5,实现数字/模拟电路的混合仿真; 超过27000个仿真器件:可以通过内部原型或使用厂家的spice文件自行设计仿

43、真 器件,labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件) 、 指数信号、单频fm、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号 发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻 辑探头、虚拟终端、spi调试器、i2c调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压 大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能

44、(asf):基于图标的分析可以精确分析电路的多项指标,包 沈阳理工大学学士学位论文 12 括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可 以进行一致性分析11; (3)独特的单片机协同仿真功能(vsm) 支持主流的cpu类型:如 arm7、8051/52、avr、pic10/12、pic16、pic18、pic24、dspic33、hc11、basicst amp、8086、msp430等,cpu类型随着版本升级还在继续增加,如即将支持 cortex、dsp处理器; 支持通用外设模型:如字符lcd模块、图形lcd模块、led点阵、led七段显示 模块、键盘/按键、直

45、流/步进/伺服电机、rs232虚拟终端、电子温度计等等,其 compim(com口物理接口模型)还可以使仿真电路通过pc机串口和外部电路实现双 向异步串行通信; 实时仿真:支持uart/usart/eusarts仿真、中断仿真、spi/i2c仿真、mssp仿 真、psp仿真、rtc仿真、adc仿真、ccp/eccp仿真; 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带 8051、avr、pic的汇编编译器,也可以与第三方集成编译环境(如iar、keil和 hitech)结合,进行高级语言的源码级仿真和调试; (4)实用的pcb设计平台 原理图到pcb的快速通道: 原理图设计完成后

46、,一键便可进入ares的pcb设计 环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人 工布线;支持引脚交换/门交换功能使pcb设计更为合理; 整的pcb设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边) , 灵活的布线策略供用户设置,自动设计规则检查,3d 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括gerber文件的导入或导出,便 利与其它pcb设计工具的互转(如protel)和pcb板的设计和加工12。 在proteus绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在 proteus

47、的原理图中看到模拟的实物运行状态和过程。 roteus 是单片机课堂教学的先进助手。 proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程 形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以 沈阳理工大学学士学位论文 13 达到的效果13。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上 替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路 修改、软件调试、运行结果等。 图 2.2 系统仿真平台界面 2.3 软件开发平台 2.3.1 winavr 与 avr_studio 的介绍 avr_studio

48、 是 atmel 官方针对 avr 系列单片机推出的集成开发环境,它集开发 调试与一体,有很好的用户界面与很好的稳定性。由于 avr_studio 仅支持编译汇编语 言程序,不支持对 c 语言程序的编译。要基于 avr_studio 搭建 avr 单片机 c 语言开 发环境,除下载安装 avr_studio 之外,还需要下载安装 winavr 来提供 avr-gcc 编译器。 winavr 是 gnu 组织组织推出的 avr 单片机的 gcc 编译器,该编译器的编译 效率极高,gcc 编译器是开源的也是免费的,使用 gcc 编译器,可以掌握标准 c 的 语法等,为学习 linux 等奠定基础1

49、4。 沈阳理工大学学士学位论文 14 2.3.2 winavr 的安装 按如下系列的图示 2.3 进行安装: 沈阳理工大学学士学位论文 15 图 2.3 winavr 的安装 双击安装包启动安装开始准备安装同意 license选择安装路径 选择 usb 驱动确定开始安装并且完成安装 2.3.2avr_studio 的安装 沈阳理工大学学士学位论文 16 图 2.4 avr_studio 的安装 选择安装向导语言接收协议选择安装目录选择安装组件正在安装 完成安装 安装后的软件界面如图 2.5 所示: 图 2.5 软件开发平台界面 沈阳理工大学学士学位论文 17 3 硬件电路设计 3.1 cpu

50、选型 3.1.1 atmega16 介绍 本课题是基于avr单片机。所以选用atmel公司推出的atmega16完成。 atmega16是基于增强的avr risc结构的低功耗8 位cmos微控制器。由于其先进的 指令集以及单时钟周期指令执行时间,atmega16 的数据吞吐率高达1 mips/mhz, 从而可以减缓系统在功耗和处理速度之间的矛盾15。 atmega16 avr 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器 都直接与运算逻单元(alu) 相连接,使得一条指令可以在一个时钟周期内同时访问两 个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的cisc 微控制

51、器最 高至10 倍的数据吞吐率。 atmega16 有如下特点:16k字节的系统内可编程flash(具有同时读写的能力, 即rww),512 字节eeprom,1k 字节sram,32 个通用i/o 口线,32 个通用工作 寄存器,用于边界扫描的jtag 接口,支持片内调试与编程,三个具有比较模式的灵 活的定时器/ 计数器(t/c),片内/外中断,可编程串行usart,有起始条件检测器的通 用串行接口,8路10位具有可选差分输入级可编程增益(tqfp 封装) 的adc ,具有片 内振荡器的可编程看门狗定时器,一个spi 串行端口,以及六个可以通过软件进行选 择的省电模式。 工作于空闲模式时cp

52、u 停止工作,而usart、两线接口、a/d 转换器、 sram、t/c、spi 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所 有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行, 允许用户保持一个时间基准,而其余功能模块处于休眠状态; adc 噪声抑制模式时 终止cpu 和除了异步定时器与adc 以外所有i/o 模块的工作,以降低adc 转换时的 开关噪声; standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状 态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展standby 模式下则 沈阳理工大学学士学位论文 18 允许振荡器和异

53、步定时器继续工作16。 本芯片是以atmel 高密度非易失性存储器技术生产的。片内isp flash 允许程 序存储器通过isp 串行接口,或者通用编程器进行编程,也可以通过运行于avr 内核 之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用flash 存储区(applicationflash memory)。在更新应用flash存储区时引导flash区 (boot flash memory)的程序继续运行,实现了rww 操作。 通过将8 位risc cpu 与系统内可编程的flash 集成在一个芯片内, atmega16 成为一个功能强大 的单片机,为许多嵌入式控制应用提

54、供了灵活而低成本的解决方案。atmega16 具有 一整套的编程与系统开发工具,包括:c 语言 编译器、宏汇编、 程序调试器/ 软件仿 真器、仿真器及评估板。 3.1.2 atmega16 产品特征及性能 先进的 risc 结构 131条指令 大多数指令执行时间为单个时钟周期 32个8位通用工作寄存器 全静态工作 工作于16mhz 时性能高达16mips 只需两个时钟周期的硬件乘法器 非易失性程序和数据存储器 16k 字节的系统内可编程 flash,擦写寿命: 10,000次 具有独立锁定位的可选 boot 代码区,通过片上 boot 程序实现系统内编程,真正 的 同时读写操作17 512 字

55、节的 eeprom,擦写寿命: 100,000次 1k 字节的片内 sram 可以对锁定位进行编程以实现用户程序的加密 jtag 接口( 与 ieee 1149.1 标准兼容) 符合 jtag 标准的边界扫描功能 支持扩展的片内调试功能 通过 jtag 接口实现对 flash、eeprom、熔丝位和锁定位的编程 沈阳理工大学学士学位论文 19 外设特点 两个具有独立预分频器和比较器功能的8位定时器/计数器 一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器 具有独立振荡器的实时计数器 rtc 四通道 pwm 8路10位 adc,8个单端通道,2个具有可编程增益(1x, 10 x, 或2

56、00 x)的差分通道 面向字节的两线接口 两个可编程的串行 usart 可工作于主机/ 从机模式的 spi 串行接口 具有独立片内振荡器的可编程看门狗定时器 片内模拟比较器 特殊的处理器特点 上电复位以及可编程的掉电检测 片内经过标定的 rc 振荡器 片内/片外中断源 6种睡眠模式: 空闲模式、adc 噪声抑制模式、省电模式、掉电模式、standby 模 式以及扩展的 standby 模式 i/o 和封装 32个可编程的 i/o 口 40引脚 pdip 封装, 44引脚 tqfp 封装, 与44引脚 mlf 封装18 工作电压: atmega16l:2.7 - 5.5v atmega16:4.

57、5 - 5.5v 速度等级 8mhz atmega16l 0-16mhz atmega16 atmega16l 在1mhz, 3v, 25c 时的功耗 正常模式: 1.1 ma 空闲模式: 0.35 ma 掉电模式: 1 a 沈阳理工大学学士学位论文 20 atmega16 引脚功能 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 也可以用做其他不同的特殊功 能20. reset 复位输入引脚。持续时间超过最小门限时

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

温馨提示

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

评论

0/150

提交评论