嵌入式系统课程设计报告Word格式.docx
《嵌入式系统课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计报告Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
2.应用试验箱开发电子密码锁系统……………………………………………5
2.1电子密码锁系统概述…………………………………………………………………5
2.2题目意义………………………………………………………………………………5
2.2.1系统的主要功能……………………………………………………………………5
2.2.2密码锁系统功能框图………………………………………………………………7
2.2.3LCD液晶显示模块…………………………………………………………………7
2.3软件设计流程及主要函数描述………………………………………………………8
2.3.1程序流程图…………………………………………………………………………8
2.3.2主要函数……………………………………………………………………………11
3.程序设计中遇见的问题及解决的方法………………………………………………12
4.课程设计体会………………………………………………………………………………12
5.参考文献……………………………………………………………………………………13
1.绪论
1.1课程设计目的
(1)通过设计加深对书本知识的理解;
(2)增强实践动手能力;
(3)培养综合设计能力。
1.2课程设计要求
(1)根据教师布置的题目自行选题;
(2)根据实验板提供的功能,自行设计功能模块,画出硬件原理图;
(3)画出软件流程图;
(4)采用C语言进行编程;
(5)编写完整的软件程序;
(6)调试、修改、完善;
(7)写出课程设计报告。
1.3课程设计任务
用华邦W90P710开发板实现电子密码锁。
要求:
1、设置密码:
从键盘输入任意6位数字作为密码,将这六位数字经过USI总线存储到Flash芯片中,设置密码完成。
2、通过密码登陆系统:
(1)、从键盘输入密码,比较键盘输入的密码与Flash中存储的密码是否相同。
(2)、如果密码正确,则LED灯点亮;
如果密码不正确,则LED灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。
1.4课程设计的意义
本次实训,在实验指导书中已经给出一些实例程序,其中包括已有实验程序:
(1)启动代码程序;
(2)流水灯程序;
(3)键盘程序;
(4)外部中断程序;
(5)定时计数器程序;
(6)串口通信程序;
(7)实时时钟程序;
(8)USI程序;
(9)LCD显示程序;
通过对已有程序的理解,之后进行修改拼凑,在由华邦W90P710为核心器件的硬件系统上实现了具有一定功能的系统。
通过设计,熟悉了ARM开发系统,及开发流程,并深入了解了嵌入式系统的实际应用,能更深地理解课堂上所学的内容,使得单调的理论知识与实际联系起来,帮助我们更好的理解。
2.应用实验箱开发电子密码锁系统
2.1电子密码锁系统概述
2.2题目意义
生活中,安全一直都是人们关心的话题。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
本次课程设计,我实现一款电子密码锁,既简单又适用。
2.2.1系统的主要功能
本系统的基本功能就是密码锁,如果用户是第一次使用则提示其先设定密码,要求输入两次以确认。
成功设定密码后将密码通过USI写到FLASH中保存,并写入密码已设定的标志。
如果用户不是是第一次使用则提示其输入密码,系统将比对设定好的密码及用户输入的密码,如果密码正确,则屏幕显示“密码正确”;
若不正确则提示错误,同时LED闪烁,若连续三次错误,系统就自动锁定。
2.1.3创新特点
本设计添加了退格键,以便用户输入错误密码时可以退格清除。
在设定密码阶段加上了重输密码以确认的功能,防止用户不小心设定了错误的密码。
界面和操作更友好,更人性化。
2.2硬件电路设计及描述
2.2.1实验箱硬件电路及原理框图
2.2.2密码锁系统功能框图
嵌入式处理器
华邦W90P710
键盘输入
LCD液晶显示器
LED错误提示
KPI接口
系统各个功能模块的概述:
1)嵌入式处理器模块:
此模块为本系统的重心,是程序运行的载体,同时这个模块也是我们这次课程设计的运行平台,我们所做的便是通过编写程序应用其自身的外设和资源。
2)按键输入模块:
通过键盘调实现密码输入。
3)LCD模块:
密码锁界面显示。
2.2.3LCD液晶显示模块
LCD控制器的主要目的是用于将video/OSD的原始图像数据显示到外部显示设备。
它支持一般的小包RGB和小包YUV格式的原始数据,并且能够连接到一般的TFTLCD,STNLCD和电视编码器。
可以支持LG的TFT屏,CASIO的TFT屏,以及STNLCD,支持VIDEO和OSD模式,这两种模式的设定有不同的寄存器控制,通过设定寄存器的设置可以实现不同的模式及功能。
W90P710试验板,使用的是AUO3.0"
TFTA030DL01(960x240,8位数据总线)数字式TFT液晶屏,可以将video/OSD的原始图像数据显示到外部显示设备。
TFT液晶屏的显示是对屏上每个像素点进行操作,通过向这些像素点配置不同的值,以显示不同的颜色,由于其内部没有缓存,所要显示的数据要随着时钟脉冲一点一点的传送过来。
因此,它需要在中开辟出一片缓冲区,将要显示的数据先存放到的缓冲区中,即存在SDRAM中,一般按照一维数组的形式进行存储,然后把存储数据的SDRAM的地址送给FIFO,然后送给颜色生成器,进而实现在屏幕上的显示;
如果在屏上的定位显示,算出所要显示的内容在屏幕上的位置,然后在相应的SDRAM的地址内存入要显示的数据即可。
硬件图如下:
该模块由40个引脚与外界电路相连,由于本身没有寄存器,需要由W90P710提供的LCD控制寄存器来控制选择对应的液晶类型及显示形式,FIFO的使用、颜色的显示模式和时序的设置,并通过配置相应的的寄存器即可实现。
模块可以选择并行或串行方式与微控制器相连,通过配置寄存器、送入指令和数据,可对显示方式和显示内容作出选择。
2.3软件设计流程及主要函数描述
2.3.1程序流程图
主函数流程图:
LED工作流程
LED工作的代码:
for(i=0;
i<
5;
i++)
{
EBILedSet(0xF0);
Delay(1000000);
EBILedSet(0x0f);
}
if(++ti==3)
for(i=0;
10;
{
EBILedSet(0xFF);
Delay(1000000)
EBILedSet(0x81);
Delay(1000000);
}
2.3.2主要函数
intmain(void)
{
LCD_IMAGE_TLCD_Size;
LCD_LOCATION_TLCD_Location;
LCD_Size.width=480;
LCD_Size.height=240;
LCD_Location.StartX=0;
LCD_Location.StartY=0;
LCD_Location.EndX=960;
LCD_Location.EndY=240;
LCDInit();
//LCD初始化
LCDShow(LCD_Size,LCD_Location);
LCDFIFOBufferSet(gImage_login);
//装入背景图片
LCDDisplayOn();
//开显示
KPIInit();
//键盘初始化
EBILedInit();
//LED初始化
USIInit();
//USI初始化
//USIRead_ID();
USIRead(0x0,2,pswSign);
//从FLASH中读取0x0开始的
//两个“已设定密码”标志
if(pswSign[0]==0x00&
&
pswSign[1]==0x01)setFlg=1;
//如果两位分别是0x20,0x09则表示已经设定好密码,置setFlg为1
if(!
setFlg)setPsw();
//如果未设定密码,则先调用设定密码函数
USIRead(0x10,6,psw2);
//从FLASH中读取6位密码
inpPsw();
//调用输入密码函数
return0;
}
3.调试设计中遇见的问题及解决的方法
首先我实现了密码锁最基本的功能:
设置密码,输入正确密码允许进入,输入错误密码禁止进入,三次错误后密码锁锁定,以及相应的屏幕文字显示和LED灯相应变化。
接下来我打算扩展密码锁的功能:
(1)当输入密码正确时显示图片。
(2)操作密码锁是可以作为电子相册。
1)问题:
把多个工程的相关文件组合成一个工程时出现编译错误。
解决方法:
分析各变量、函数所依赖的头文件,把缺失的加入到工程,把相同的定义去除。
2)问题:
LCD无法显示汉字和显示图片失真。
解决方法:
在调试运行时把汉字字库文件加载到内存即可显示汉字。
把图片转换成字模时色彩选择“真彩”,字模数组大小为960*240。
4.课程设计体会
在大学时候的第一次在书本之外,自己设计实现的小系统让我初步的了解嵌入式的前景。
这次小系统设计让我体会了一种学习方式,那就是实践和书本上的理论很不同,却又紧密相关,激发了我积极参与到实践中的热情,收获了实践的经验。
5.参考文献
[1]张石,佘黎煌等.嵌入式系统技术教程.北京:
人民邮电出版社,2009.3
[2]嵌入式实验指导书
程序的主要代码:
MAIN.C
U8np=0,ti=0,i;
U8pswSi