51单片机课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南大学

单片机课程设计

设计课题: 简单计算器及七号楼自习室查询器姓名: 刘铭、庞杰、王海云、黄彦海学院: 物理与电子学院

专业: 测控技术与仪器

班级: 2007级一班

指导教师: 高伟

河南大学物理与电子学院测控工程系

简单计算器及七号楼自习室查询器

摘要

随着高校日益扩招,学校的自习室越来越紧张,能找到一个合适的自习室自习,已成为同学们经常谈论的话题,为此专门设计一个键盘和显示器显然大材小用,看到此种情况,我们想到了两种解决方法:①仅通过程序,即借助同学们手机都大都带有Java扩展功能,通过现有的硬件来实现自习室的查询。②可设计一种单片机控制的计算器通过扩展其功能实现查询功能,计算器仍是它的主要功能,这样不会增加硬件成本,仅需编写程序即可利用计算器的电路实现,我们这里仅以7号教学楼为例,如输入112代表周一的1、2节的自习室分布情况(空教室)。这时会显示72037401。代表本时段的空自习室为7203、7401教室,可使同学们迅捷的找到自习室。本电路在嵌入式系统软硬件设计平台Proteus上仿真通过。能显示所查时段五个自习室,基本上能满足同学们的需要。

目录

第一章设计任务与要求 (4)

第二章方案的论证与选择: (3)

第三章系统硬件总图及原理: (4)

3.1总电路图 (4)

3.2原理: (4)

3.3.运行实际效果: (7)

第四章程序设计 (8)

4.1程序流程图: (8)

4.2LCD驱动程序 (9)

4.3计算器及自习室查询程序代码: (11)

4.4自习室查询程序 (16)

4.5键盘程序 (17)

第五章作品改进及前景 (19)

第六章经验心得体会 (19)

小组成员及分工 (20)

元件清单 (20)

参考文献: (22)

第一章设计任务与要求

随着大学的日益扩招,各个学校的自习室也逐渐紧张起来,对于勤奋的学生而言能迅速找到合适自习室,自然是一件开心的事情。由于我们学校没有固定的自习室,故而只能利用教室没课的情况下充当自习室,而这些教室常常是变动的。河南大学学生会制作过一份《河南大学自习室一览表》,为此我们小组认为这样一份纸制的表格,实际上可以变成一种程序,可以通过输入----查表----输出的方式实现自习室的查询。而为了不单独增加成本,我们设计了一种兼有计算器功能的终端,使其既能作为计算器实用又能作为一个自习室查询器。使其较高的成本能体现更多的价值。结合当前学习的C51单片机原理,我们觉得可以通过一个计算器键盘,一个AT89C51,一个LCD显示器实现这两个功能。

①任务:1,设计一个简易计算器。

2,通过输入有一定意义的数字代码输出相应的自习室。

3,任务分配:刘铭070230036负责选题编程及仿真调试。

庞杰070230040负责撰写报告。

王海云070230012负责查找资料。

黄彦海070230053负责绘制硬件电路。

②要求:1,能实现最基本的加减乘除运算(十位以内)。

2,输入制定数字时,能至少输出5个自习室供选择。

3,响应足够快

4,可以扩展其它显示功能如电子书等。

第二章方案的论证与选择:

方案一:我们试图通过数码管显示,但是由于需要的数码管太多,即使做出来了也不方便携带,不具又便携性。

方案二:通过12864等分辨率较小的LCD,但考虑到今后本电路可以扩展为整个金明校区的自习室显示的功能。即显示的自习室较多,故而我们选择了分辨率较高的160128显示器。

方案三:采用160128分辨率的显示器,并集成简易计算器功能,今后通过扩展RAM还可以实现电子书的阅读功能。使芯片能发挥它的最大价值。

因此我们最终采用了方案三。

第三章系统硬件总图及原理:

3.1总电路图

图3-1

本电路有三部分组成,1,单片机89C51的最小系统。

2,简易计算器键盘。

3,160*128点阵的LCD(PG160128)。

3.2原理:

①先做一个简易的十位计算器。此种电路已较为成熟,可在网上下载到,可以进行加减乘除运算,通过设计这个计算器为自习室查询器,提供好键盘电路和显示器电路。PG160128的驱动通过搜索也可找到,我们只需解决好显示器的选择和驱动管脚连接问题。图1-2为硬件外观图,图1-3为PG160128datasheet内容。

图3-2

图3-3

②在单片机里烧入0,1,2,3,4,5,6,7,8,9,‘~’及其它常用的字模。以供LCD显示。

0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,// '0'

0x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,// '1'

0x00,0x78,0xcc,0xcc,0x0c,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,// '2'

0x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,// '3'

0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,// '4'

0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,// '5'

0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,// '6'

0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,// '7'

0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,// '8'

0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x70,0x00,0x00,// '9'

0x00,0x73,0xda,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// '~'

字模的生成可由专门的生成器生成,故此电路也可显示其它字符,甚至汉字。

③对未定义键“?”进行定义,把其定义为查询键(详细见子程序chaxun()),

相关文档
最新文档