ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:504.45KB ,
资源ID:3728020      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3728020.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式课程设计报告-电子密码锁xWord下载.docx)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式课程设计报告-电子密码锁xWord下载.docx

1、(2) 从键盘输入密码,比较键盘输入的密码与 Flash 中存储的密码是否相同。(3) 如果密码正确,则 LED 灯点亮;如果密码不正确,则 LED 灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。扩展功能:(1) 首先显示“请输入密码:”,显示密码锁背景图片 1。(2) 如果密码正确则显示“密码正确”,显示成功进入系统的背景图片 2。(3) 如果密码不正确则显示“密码不正确,请重新输入:”(4) 如果连续三次输入密码错误则显示“对不起,您已经连续三次输入密码错误,系统锁定”,显示图片 1。3、个人开发流程(1) 了解开发板的硬件结构编写适应其硬件结构的程序。(2) 掌握并

2、编写 LCD 显示文本和图片程序。(3) 通过 EBI 对外部 LED 灯进行控制。(4) 键盘键值读取,及密码锁密码比对,密码锁状态转换的程序编写。2、硬件设计及描述1、LED 灯模块CPU 的数据总线低 8 位连接到锁存器 74HC273 的信号输入端,CPU 外部总线接口(EBI)的 nECS0 片选信号连接到锁存器的锁存控制信号,当 CPU访问BANK0 的任一地址空间是,数据总线的低八位的数据被锁存输出,作为控制 8 个 LED 等的发光状态的控制信号,当写入 0xff 是,8 个 LED 灯都灭,写 0x00,8 个 LED 灯都亮。硬件连接图如下。2、KPI 工作模块行列式键盘以

3、矩阵形式排列,每个键有一常开触点,其两端分别于输出扫描线和输入状态线相连,键盘中有无键按下,是由列线扫描输出、读入行线状态 来判断。每个键都有一个键值和键号,通常将行、列按二进制顺序组合成酱汁, 经过查表获得键号。硬件连接图如下3、LCD 工作模块该模块由 40 个引脚与外界电路相连,由于本身没有寄存器,需要 W90P710 提供的 LCD 控制寄存器来控制选择对应的液晶类型及显示形式,FIFO 的使用, 颜色的显示模式和时序的设置,并通过配置相应的寄存器就可实现。4、软件设计及描述1、KPI 模块设计实验中的 GPIO 为键盘模式,使用的是 GPIO_CFG2,查找相应的寄存器进行设置,打开

4、键盘中断,设定中断触发方式和优先级,扫描功能打开,时间约为100ms。2、LCD 显示模块初始化呢控制寄存器,设定 lcd 控制器和中断服务程序,并写到 AIC 中断向量表中。关闭 FIFO1 和 FIFO0,关闭绿的控制器,重置控制器,再讲显示的数据发送到缓存区中,根据时序的配置,从缓冲区中将数据读入液晶。3、整体模块设计及程序流程图在主程序中进行按键初始化,在中断程序中实现,按键值的读取和存储, 通过设定状态标志位,数组。对存储的密码和输入的密码进行比较,判断对错从而改变状态标志位,在中短结束,回到主程序后通过识别状态标志位,显示相应的图形和文字。5、程序代码(主要程序,函数部分见附录)1

5、 、 main.c #include #include 710defs.h/*头文件声明*/ #include HB_it.hmain.h #include lcd_pattern.h extern U8 a6;extern int p;extern U32 KeyValue; int main(void)U32 FLL;int cnt,i;U8 wchar= 设置密码; U8 wchar1= 请输密码 U8 wchar2= 密码正确 U8 wchar3= 密码错误U8 wchar4= 对不起,您已经连续三次输入密码错误,系统锁定LCD_IMAGE_T LCD_Size;/*声明结构体,结构体

6、的具体定义在头文LCD_LOCATION_T LCD_Location;件中*/LCDShowParameter LSP;LCD_Size.width = 480;/*定义 lcd 的显示的长宽像素值*/ LCD_Size.height = 240;LCD_Location.StartX = 0;/*设定显示的起始坐标*/ LCD_Location.StartY = 0;LCD_Location.EndX = 960;LCD_Location.EndY = 240;便显示*/LCDInit();/*初始化*/LCDShow(LCD_Size, LCD_Location);LCDFIFOBuff

7、erSet(BlackBoard);/*将要显示的图片存入缓存中,以LCDDisplayOn();/*显示图片*/KPIInit();/*按键初始化*/printf(Please press keys.n);/*并通过串口输出此时的键值*/ USIInit(); /读器件 ID/*初始化 flash 芯片*/读器件 ID:USIRead_ID(); /擦除扇区 0写使能:n USIWriteEnable(); while(USICheckBusy(); USISectorErease(0x0); EBILedInit(0x0); LSP.StartX = 8;LSP.StartY = 7; L

8、SP.LibPlace = 0x400000; LSP.Color = 0x07ff; LSP.LetterChar = wchar1;LSP.LCDBuffer = BlackBoard;LCDOutputShow(LSP,4); EBILedSet(0x00); while(1)if(p=6)LCDInit(); LCDFIFOBufferSet(BlackBoard); LCDDisplayOn();LSP.StartX = 8;LSP.LetterChar = wchar1; /*正确密码*/ LSP.LCDBuffer = BlackBoard;Delay(10000000);if(

9、p=1) LCDInit();LSP.StartX = 5;LSP.StartY = 5;LSP.LetterChar = wchar2;LCDOutputShow(LSP,22);if(p=2) LCDInit();LSP.LetterChar = wchar3; /*密码错误*/ LSP.LCDBuffer = BlackBoard;if(p=3)LSP.LetterChar = wchar4; /*请输密码*/ LSP.LCDBuffer = BlackBoard;return 0;2、中断服务程序void KPI_Handler(void)/U32 KeyValue, tmp; int

10、 cnt,sum=0;/int shuru;/int i;tmp = REG_KPISTATUS; /取按键值tmp &= 0x0000000f; /因为硬件连接关系,需要对按键进行处理if(tmp 0x7) & (tmp 0x3) & 0x8)KeyValue = tmp + 4;elseKeyValue = tmp;KPI interrupts. %xn, KeyValue);if(c6 & c13)bc-7=KeyValue;/*输入密码*/else if(c=13)USIRead(0x0,a);/*将输入密码放入在 flash 芯片中存储呢*/for(cnt=0;cnt6;cnt+)i

11、f(acnt=bcnt) /*比对密码*/sum+;if(sum=6)测试成功%dn,sum); /*密码正确状态位为 1*/p=1;测试失败%dnp=2;13 &20)bc-14=KeyValue;/*继续读取密码*/else if(c=20)/*继续比对密码*/ for(cnt=0;if(acnt=bcnt) sum+;p=3;20 &27)bc-21=KeyValue;else if(c=27)/*第三次比对*/p=4;else/*这之后程序不再允许进行输入*/invalid operationsnc+;六、实验结果截图(1) 密码锁初始状态,显示设置密码,显示图片 1。(2) 设置密码

12、后显示,输入密码。(3) 当连续输入错误的密码,系统显示密码错误,并且锁定系统。(4) 当输入密码正确时,显示图片 2。七、课程设计体会经过这次课程设计,我对 arm 芯片有了更深入的理解,同时在操作W90P710 这款芯片开发板的过程中提高了动手能力。掌握了 ADS 集成开发环境及 JTAG 仿真器的使用。通过实践,不断更改调试程序的过程中,我对理论学习长得中断源程序的编写、GPIO 控制寄存器、中断寄存器的控制、对库函数的调用有了更好的理解和掌握。 同时也意识到自己的不足,学好汇编和 c 语言基础是未来面向硬件编程的重要基础,在 c 语言部分,指针的知识与应用还需加强。本次课程设计的过程中

13、体现出了 arm 系列芯片较传统 mcu 的优势,接口丰富, 内部存储资源更充裕。但是本次课设主要是运用了芯片偏向 mcu 的功能,并没有在芯片中加载操作系统。Arm 系列的学习才刚刚开始,仅在入门阶段,未来需要深入继续学习嵌入式知识,使自己的技能更上一层楼。八、参考文献1 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安电子科技大学出版社.2008 年 5 月2 华成英,童诗白.模拟电子技术基础.高等教育出版社,2007 年 8月3 唐俊翟等 单片机原理与应用 冶金工业出版社, 2003.94 刘瑞新等 单片机原理及应用教程 机械工业出版社, 2003.75 吴国经等 单片机应用技术

14、中国电力出版社, 2004.16 李全利,迟荣强编著 单片机原理及接口技术 高等教育出版社,2004.1 九、附录/* Function Name: LCDInit* Description: LCD 初始化* Input: None* Output:* Return:*/ void LCDInit(void)REG_GPIO_CFG6 = 0x555555;REG_LCD_LCDCON = 0x30c05; REG_LCD_FIFO1PRM = 0xa;REG_LCD_F1DREQCNT = 0x1e000f0; REG_LCD_FIFO1RELACOLCNT = 0x1e0;/LCD CL

15、KREG_LCD_LCDTCON1 = 0x3b166; REG_LCD_LCDTCON2 = 0x3bf00f1; REG_LCD_LCDTCON3 = 0x105401;REG_LCD_LCDTCON4 = 0x20101; REG_LCD_LCDTCON5 = 0xe; LCDShow 设置 LCD 显示位置*/void LCDShow(LCD_IMAGE_T Size, LCD_LOCATION_T Location)REG_LCD_F1DREQCNT = (Size.width 1);REG_LCD_DISPWINS = (Location.StartY 16) + Location

16、.StartX; REG_LCD_DISPWINE = (Location.EndY 16) + Location.EndX; LCDFIFOBufferSet 指向 LCD 缓冲区存取图像内容 数组名称void LCDFIFOBufferSet(PUINT8 Buffer)REG_LCD_F1SADDR = (U32) Buffer; LCDDisplayOn 打开 LCDvoid LCDDisplayOn(void)lcdIoctl(1, 1, 0); LCDDisplayOff 关闭 LCDvoid LCDDisplayOff(void)lcdIoctl(1, 2, 0); Delay

17、用于不精确延时 延时时间*/ void Delay(U32 t)dot-;while(t); StringShow 显示单个字符 LCD 显示字符相关信息void StringShow(LCDShowParameter LCDShowPara)/用于取汉字点阵图 U32 Offset = 0, Length = 0; U8 PBuffer32 = 0;/用于将汉字点阵图转化为 LCD 显示图U32 BitCounter = 8; /8 U32 ByteCounter = 0; /32 U32 temp;U8 ColorHigh, ColorLow;/用于在 LCD 上显示汉字U32 X = 0, Y = 0, Line = 0, Row = 0; U8 LBuffer512 = 0;Offset=(LCDShowPara.LetterChar0-0xa1)*0x5e+ (LCDShowPara.Le

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2