单片机课程设计之电子密码锁.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
word格式整理版 文档可编辑 课程设计(综合实验)报告 ( 2009 -- 2010 年度第 二 学期) 名 称: 微处理器系统课程设计 题 目: 电子密码锁设计 院 系: 电子与通信工程系 班 级: 电子0702班 学 号: 200703020201 学生姓名: 白羽峰 指导教师: 张宁 设计周数: 1周 成 绩: 日期: 2010 年 7 月 单片机课程设计之电子密码锁 课程设计要求 1.通过键盘输入密码。 密码正确与错误进行相应的音乐提示,与液晶显示提示。 3次按下错误密码则锁死,禁止信号输入。 2.通过超级密码(长度为16位)进入密码修改模式,进行密码修正,用户密码长度为8位。 二、实验目的 进一步的掌握使用ICC进行编程以及程序调试,熟悉并掌握AVR单片机片上外设功能及其使用,熟练掌握单片机学习板上矩阵键盘、1602液晶、蜂鸣器、EEPROM(AT24C02)等外设的使用以及和单片机间的通信。 三、设计思路 利用EEPROM(AT24C02)掉电不丢失的特性设计电子密码锁,先向AT24C02中写入一组数据作为密码(密码设定),然后进入密码输入界面,输入密码并进行密码真伪判别,密码真伪有不同对应的提示,表现在液晶显示和蜂鸣器鸣响上,出现三次密码输入错误则锁死,不能进行任何操作,只能关闭电源重新开始。 四、实验源程序代码如下: #include iom16v.h #include macros.h #include math.h #define uchar unsigned char #define uint unsigned int #define LCD_EN BIT(PC3) #define LCD_RS BIT(PC2) //EEPROM控制寄存器位定义: #define EERE 0 //读 #define EEWE 1 //写 #define EEMWE 2 //总写入 #define WWRIE 3 //中断 uint add[8]={0x0100,0x0101,0x0110,0x0111,0x1000,0x1001,0x1010, 0x1011}; uchar sc[16]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38, 0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38}; uchar title[]={Code:}; uchar title1[]={Hint:}; uchar title2[]={Error!}; uchar title3[]={OK!}; uchar title8[]={Hello!I like AVR}; uchar title4[]={Warnning!}; uchar title5[]={Super Code:}; uchar title6[]={Input New Code:}; uchar title7[]={Set Code:}; uint xians[]={0}; uchar key_flag; unsigned data_temp; void_init(void) { DDRB=0xff; //定义B口输出 PORTB=0xff; } void eeprom_w(uint eeadd, uchar eedata) { while(EECR(1 EEWE)); //写等待 EEAR=eeadd; //设置写入地址 EEDR=eedata; //设置写入数据 EECR|=(1EEMWE); //总写入允许 EECR|=(1 EEWE); //开始写入 } char eeprom_r(uint eeadd) { while(EECR(1 EEWE)); //写等待 EEAR=eeadd; //设置读入地址 EECR|=(1EERE); //读命令 return EEDR; //返回数据 } void delay_1ms(void) { uint i; for (i=0;i1140;i++); } void delay(uint n) { uint i=0; for (i=0;in;i++) del

文档评论(0)

xiangxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档