1 / 22
文档名称:

嵌入式系统课程作业-基于LPC2214的简易计算器设计.doc

格式:doc   页数:22
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统课程作业-基于LPC2214的简易计算器设计.doc

上传人:3346389411 2013/1/20 文件大小:0 KB

下载得到文件列表

嵌入式系统课程作业-基于LPC2214的简易计算器设计.doc

文档介绍

文档介绍:题目: 嵌入式系统课程作业
学号:
姓名:
专业:
课程名称:《嵌入式系统原理与应用》
课程老师:
二零一一年十二月
基于LPC2214的简易计算器设计
一设计任务及要求
:利用LPC2214来控制液晶显示器和矩阵式键盘,实现了简易的计算器功能。
:
电路包括4*6键盘,能够通过按键编辑数据。
显示部件使用LCD,显示内容不少于4个字符。
能够完成4位以上十进制整数的加、减、乘、除功能。
能完成小数的加、减、乘、除功能。
能够连续进行运算。
完整计算式选择。
二引言
本设计利用LPC2214来控制液晶显示器和矩阵式键盘,实现了简易的计算器功能。通过键盘输入需要计算的计算式子,该式子会显示在液晶的第一行,当键入等于号后,计算结果会显示在液晶的第二行。本设计中液晶选用1602字符型液晶显示器,键盘采用4*6矩阵式键盘。
LPC2200系列MCU基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S CPU,处理器时钟高达60M/75MHz,片内集成8KB、16KB、32KB、64KB、128KB、256KB和512KB的高速Flash存储器,128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。此外,片内集成大量外设:外部存储器控制器(EMC)、UART接口、CAN-bus接口、SPI接口、SSP接口、I2C接口、ADC、DAC、USB 、通用定时器、外部中断、PWM、实时时钟、LCD驱动器等等。通过外部存储器接口可以扩展64MB的异步静态存储器设备。
近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。
本文通过周立功的LPC2214芯片完成的简易计算器,正式对嵌入式应用的学习和探索。
三硬件设计

LPC2214是一款基于16/32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU,并带有128/256 k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。 LPC2214采用144脚封装、极低的功耗、多个32位定时器、8路10位ADC、PWM输出以及多达9个的外部中断,这款微控制器特别适合工业控制、医疗系统、收款机控制等应用领域。其可用GPIO范围为76脚(外部存储区)到112脚(单片).由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。
管脚图:

2. 完整电路仿真图如下:

键盘的设计可以有多种方案,相比之下,矩阵式键盘所需要的硬件资源少,控制灵活,操作简单。因此,本设计中采用矩阵式键盘来控制。
键盘工作原理:
特别说明:IO0口悬空时为低电平,故用高电平扫描。
(1)判断键盘中有无键按下将全部行线PO0-PO3置高电平,然后检测列的
状态。只要有一列的电平为高,则表示键盘中有键被按下,而且闭合的键位于高电平线与4根行线相交叉的4个按键之中。若所有列线均为低电平,则键盘中无键按下。
(2)判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键
的过程。其方法是:依次将行线置为高电平,即在置某根行线为高电平时,其它线为低电平。在确定某根行线位置为高电平后,再逐行检测各列线的电平状态。若某列为高,则该列线与置为高电平的行线交叉处的按键就是闭合的按键。

选择理由:1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如‘A’。总体来说,操作简单,价格便宜。
四软件设计
、显示等驱动函数:
*键盘扫描程序:uint8 KEYSCAN(void)
*lcd初始化函数:lcd_init()
*检查总线是否忙:void ChkBusy()
*写命令函数:void LCD_WriteControl (uint8 dat)
*写数据函数:void WrDat(uint8

最近更新

2023年内蒙古电子信息职业技术学院单招职业技.. 39页

2023年内蒙古通辽市单招职业适应性考试模拟测.. 40页

2023年包头铁道职业技术学院单招职业倾向性考.. 40页

2023年北京科技大学天津学院单招职业技能考试.. 40页

2026年免费租房安全协议模板 28页

2023年南京旅游职业学院单招职业适应性考试题.. 41页

2026年光棍节促销活动 17页

2023年南阳职业学院单招职业适应性考试题库推.. 40页

2023年厦门华天涉外职业技术学院单招职业技能.. 40页

2023年台州职业技术学院单招职业适应性考试模.. 40页

2023年周口职业技术学院单招职业倾向性考试题.. 41页

2023年哈密职业技术学院单招职业倾向性考试模.. 40页

2023年哈尔滨幼儿师范高等专科学校单招职业适.. 39页

2023年唐山职业技术学院单招职业技能测试模拟.. 41页

2023年四川中医药高等专科学校单招职业适应性.. 40页

2026年元宵节的由来和传说故事 5页

2026年元宵节发朋友圈的句子 5页

2023年大庆职业学院单招职业倾向性考试题库完.. 37页

2023年大连汽车职业技术学院单招职业适应性考.. 39页

2023年天津医学高等专科学校单招职业倾向性考.. 40页

铁路钢轨探伤车运用管理办法 21页

医院组织生活会批评与自我批评集合6篇 20页

青岛市电梯安全运行服务规范 20页

高等土力学土工试验ppt课件 103页

高等土力学-土工试验 104页

川机管函〔2016〕313号 2页

公安部历任部长 9页

广东省水利工程编制办法及定额 183页

提升机设备点检登记表 4页

《库房生机》.doc 28页