单片机键盘计算器课程设计3827.pdf

上传人:得****3 文档编号:83607631 上传时间:2023-03-31 格式:PDF 页数:17 大小:806.25KB
返回 下载 相关 举报
单片机键盘计算器课程设计3827.pdf_第1页
第1页 / 共17页
单片机键盘计算器课程设计3827.pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《单片机键盘计算器课程设计3827.pdf》由会员分享,可在线阅读,更多相关《单片机键盘计算器课程设计3827.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 单片机课程设计报告 教 学 院:专业班级:学 号:学生姓名:指导教师:时 间:地 点:单片机课程设计任务书 一、课题名称 单片机课程设计 二、设计目的 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的单片机课程设计。通过实训使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。三、设计内容 设计基于 51 单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现 099 之间的数进行加、减、乘、除运算的功能。四、设计要求 1、设计简易计算器,要求能对 099 之间的数进行加、减、乘、除运算。2、用 44 的

2、键盘作为输入设备。3、用 LED 或 LCD 进行显示。4、编写无符号数加、减、乘、除运算、输入和显示的程序。5、对系统的进行综合和调试,使其具有对 099 之间的数进行加、减、乘、除运算的功能。6、编写课程设计的总结 五、设计进度表 序号 设计内容 所用时间 1 布置任务,学习简易计算器的工作原理以及硬件电路设计 3 天 2 完成键盘、显示和计算功能的程序设计 3 天 3 制作电路板 1 天 4 答辩、撰写设计报告书 3 天 合 计 10 天 六、设计报告 课程设计报告的基本内容至少包括封面、正文、附录三部分。课程设计报告要求统一格式,字体工整规范。1、封面 封面包括“单片机课程设计课程设计

3、报告”、班级、姓名、学号以及完成日期等。2、正文 正文是实践设计报告的主体,具体由以下几部分组成:(1)课程设计题目;(2)课程设计任务与要求;(3)设计过程(包括设计方案、设计原理、创新点以及采用的新技术等);(4)方案的比较与论证;(5)硬件电路设计,各个模块的设计与器件的选择;(6)软件程序的设计与调试;(7)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法;技术实现技巧和创新点;作品存在的问题和改进设想等);3附录 附录 1:系统设计原理图 附录 2:系统硬件元器件清单 附录 3:系统的程序 七、考核方式与成绩评定办法 评定项目 评分成绩 1.设计的实物功能齐全,制作美观(5

4、0 分)2.态度认真、学习刻苦、遵守纪律(15 分)3.设计报告的规范化、参考文献充分(不少于 5 篇)(20 分)4.答辩(15 分)总分(100 分)备注:成绩等级:优(90 分100 分)、良(80 分89 分)、中(70 分79 分)、及格(60 分69 分)、60 分以下为不及格。八、参考书目 1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 2 李广弟.单片机基础.北京:北京航空航天大学出版社,1994 3 阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989 4 廖常初.现场总线概述J.电工技术,1999.5 徐仁贵等编着.单片微

5、型计算机应用技术.北京:机械工业出版社.2001 年 2 月第 1 版 6 张毅刚等编着.单片机原理及应用.北京:高等教育出版社.2004 年 1 月第 1 版 一、课程设计任务与要求 设计基于 51 单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现099 之间的数进行加、减、乘、除运算的功能,并要求如下:1、设计简易计算器,要求能对 099 之间的数进行加、减、乘、除运算;2、用 44 的键盘作为输入设备;3、用 LED 或 LCD 进行显示;4、使用 C 语言编写无符号数加、减、乘、除运算、输入和显示的程序;5、对系统的进行综合和调试,使其具有对 099 之间的数进行加、

6、减、乘、除运算的功能,还具有清零功能等;6、编写课程设计的总结。二、设计方案与选择方案 1、芯片、方案构思 本设计中的芯片可以采用两种方案,一种是以 FPGA 为核心处理芯片,配备相应的外设;另一种是以 STC89C52 处理器,配备相应的外设。(1)方案一:采用 FPGA 控制 FPGA 是一种高密度的可编程逻辑器件,自从 Xilinx 公司 1985 年推出第一片 FPGA 以来,FPGA 的集成密度和性能提高很快,其集成密度最高达 500 万门/片以上,系统性能可达200MHz。由于 FPGA 器件集成密度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在

7、高密度的可编程逻辑器件领域中独占鳌头。但是基于 SRAM 编程的 FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,保密性差,而其对于一个简单的计算器而言,使用 FPGA 有点大材小用,成本太高。(2)方案二:采用 AT89C51 单片机是单片微型机的简称,故又称为微控制器 MCU(Micro Control Unit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器 CPU,存储器和 I/O 接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛应用于智能产品,智能仪表,测控技术,智能接口等,具有操作

8、简单、实用方便、价格便宜等优点。AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制

9、器。、方案比较与选择 通过以上两种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以 AT89C51 单片机作为中央处理单元进行计算器的设计,这样设计能够实现对六位整数、两位小数的加、减、乘、除的四则运算。2、输入模块、方案构思(1)方案一:采用独立式按键作为输入模块 独立式按键输入模块,其特点是:直接用 I/O 口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单;但是当键数较多时,占用 I/O 口较多,比较浪费资源。其原理图如图 1 所示。图 1 独立的功能按键 图 2 矩阵键盘输入(2)方案二:采用矩阵式键盘作为输入模块 矩阵式按键输入模块,其特点是:电路

10、和软件稍复杂,但相比之下,当键数越多时,越节约 I/O 口,比较节省资源。其原理图如图 2 所示。、方案比较与选择 本设计中的输入模块使用的是矩阵键盘输入。键盘输入预置用于计算,按键较多。若是采用独立按键,需频繁按键,为软件设计增加负担,且操作界面不友好;若是采用矩阵式按键,可以方便地输入一个数值,使操作界面更具有人性化,且节约了宝贵的 I/O 口资源。通过对比,故采用方案二作为系统输入模块。3、显示模块、方案构思(1)方案一:采用 LED 数码管静态显示 采用 LED 数码管的静态显示,其特点是:其亮度较高;这种显示方式接口,编程容易且管理简单;不足的是,占用的 I/O 的线资源较多。如果采

11、用单片机或 CPLD/FPGA 来控制的话,势必存在浪费 I/O 口资源的问题。如图 3 所示。图 3 4 位数码管静态显示(2)方案二:采用 LED 数码管动态显示 采用 LED 数码管的动态显示,其特点是:其亮度比静态显示的亮度要差一些;但其电路比较简单,适合于显示位数较多的情况。如图 4 所示。图 4 4 位数码管的动态显示(3)方案三:采用 LCD1602 液晶显示 采用 LCD1602 液晶显示,其特点是:可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的 I/O 口资源线也不多。、方案比较与选择 本设计中的显示模块使用的是 LCD1602 液晶显示。在计算

12、器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现 LCD 液晶显示,虽然在价格上的确是稍贵于 LED 数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃 LED 数码管,选择 LCD 液晶显示。通过对比,故采用方案三作为系统显示模块。三、整体方案原理框图 硬件与软件系统设计 依据系统分析及实现功能,硬件小系统方框图如图 1 所示:图 5 依据系统硬件设计,软件系统主要包括:单片机 振荡电路 键盘输入 液晶显示 对比度调节 复位电路 单片机控制程序模块:作为系统的主控制程序模块,用 KeilC 编程控制其他程序模块的协调工作;键盘程序模块:用来输入用户的功

13、能,使单片机完成相应的控制功能;液晶显示模块:使用字符型液晶显示器显示用户的选择。单片机模块 单片机控制主程序流程图如下:图 6 单片机外围扩展电路程序模块 为了节约成本,本设计中液晶显示模块与单片机之间采用模拟口线的方式控制,键盘与单片机之间采用扫描的工作方式。键盘程序流程图(扫描方式)键盘程序流程图如下所示:开始 初始化 扫描键盘得键值 显示定位 显示 结束 开始 有键按下 键盘消抖 扫描键盘得键值存入累加器 结束 有键按下 Y Y N N 图 7 LCM 程序流程图如下所示:图 8 本设计的软件系统分别用伟福 E6000 和 KeilC 编写及编译。4*4 键盘程序模块用汇编语言和 C

14、语言编写,实现直接从 P2 口扫描得到键盘码,并采用查询方式得到与之对应的 LCD 字型码,在 LCD 上显示出来。四、单元电路设计 键盘输入 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的 I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条 I/O 线作为行线,四条 I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为 44 个。这种行列式键盘结构能有效地提高单片机系统中 I/O 口的利用率。矩阵键盘的工作原理:开 LCD 初始化 LCD 是否为忙

15、 单片机向 LCD 写命令 单片机向 LCD 写数据 显示数据 结束 Y N 计算器的键盘布局如图 5 所示:一般有 16 个键组成,在单片机中正好可以用一个 P 口实现 16个按键功能,这种形式在单片机系统中也最常用。图 9 键盘布局图 /*-+CLC 9 6 3=8 5 2 0 7 4 1 图 10 矩阵键盘内部电路图 键盘上的每一个按键都有一个键值。给键赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置低电平 0,若读出各行状态为非全 1,这时的行、列数据组合成键值。键盘键值从左到右、从上到下依次是 77,7B,7D,7E;B7,BB,BD,BE,E

16、7,EB,ED,EE。这种负逻辑表示往往不够直观,因而采用行、列线加反向器或软件求反的方法将键盘改成正逻辑。这时,键值依次为 88,84,82,81;48,44,42,41,18,14,12,11。不论是正逻辑还是负逻辑,这种键值表示方式分散度在且不等距,用于指令不太方便。对于不是 4*4 或 8*4 或 8*8 键盘,使用也不容易,故在许多场合下,采用依次排列键值的方法。这时的键值与键号相一致。单片机控制 MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据

17、存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。图 11 单片机控制电路的时钟电路和复位电路 LCD1602 显示 图 12 LCD1602 显示 1602 点阵字符液晶模块(LCM)引脚及功能 1 脚(VDD/VSS):电源 5V10%或接地。2 脚(VSS/VDD):接地或电源(5V。3

18、脚(VO):反视度调整。使用可变电阻调整,通常接地。4 脚(RS):寄存器选择(1:选择数据寄存器;0:选择指令寄存器)。5 脚(R/W):读/写选择(1:读;0:写)。6 脚(E):使能操作(1:LCM 可做读写操作;0:LCM 不可做读写操作)。7 脚(DB0):双向数据总线的第 0 位。8 脚(DB1):双向数据总线的第 1 位。9 脚(DB2):双向数据总线的第 2 位。10 脚(DB3):双向数据总线的第 3 位。11 脚(DB4):双向数据总线的第 4 位。12 脚(DB5):双向数据总线的第 5 位。13 脚(DB6):双向数据总线的第 6 位。14 脚(DB7):双向数据总线的

19、第 7 位。15 脚(VDD):背光显示器电源+5V。16 脚(VSS):背光显示器接地。五、实物效果图 图 13 实物效果图 六、心得体会 两周的时间,终于顺利完成了单片机的课程设计。由于自己对单片机编程还不是很熟悉,结果在设计的时候遇到了一系列问题,程序总是调试部处理,不过还好,最后在同学的帮助下终于把程序调试出来了,虽然程序设计实现的功能与老师要求的不尽相同,不过勉强还算可以。从这里我知道了基本知识的重要性。其实进行程序设计的时候主要是对各功能模块的把握。计算器里面最难的一部分是矩阵键盘的扫描和编码,那个费了很大力气。另外一点就是硬件焊接调试部分。焊接的时候到时轻松,一个下午就焊接好了,

20、然后是调试部分。调试花费的时间还是比较长的。不过有了上个学期数字电路焊接调试的经验,这次单片机调试还算是比较顺利。我也是从电路板的正负电源检测起,一步一步来,最终得到了想要的结果。调试的时候主要遇到了两个问题。一个是键盘总是没有反应,为了这个自己调试了很久,前前后后把电路板检查了几次,最后才发现是键盘本身的问题,和同学们换了个好键盘才行。另一个问题是总是显示不出来 1、4、7 这三个数字。检测来检测去,发现来是在测试最小系统时在一个位选端接了高电平,对位选信号产生了影响。当把那个高电平去掉后,终于得到了正确的结果。总的来说这次课程设计达到了完成了基本任务,达到了基本要求。通过亲身对程序设计和电

21、路焊接调试的体会,自己对单片机有了进一步的了解,单片机编程能力也得到了提高。电路板的焊接与调试,使自己电路调试的方法和思想进一步加强了。这次单片机课程设计应该说是比较成功的。七、参考文献 1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 2 李广弟.单片机基础.北京:北京航空航天大学出版社,1994 3 阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989 4 廖常初.现场总线概述J.电工技术,1999.八、附录 1.系统程序#include#define uchar unsigned char#define uint unsigned int

22、 sbit rs=P10;sbit rw=P11;sbit e=P12;void write_dat(uchar dat);void write_com(uchar com);void keyscan();/*功能说明:显示编码,加上0 x30,分别为1,2,3,+,4,5,6,-,等*/uchar code table1=1,2,3,0 x2b-0 x30,4,5,6,0 x2d-0 x30,7,8,9,0 x2a-0 x30,0,0 x3d-0 x30,0 x01-0 x30,0 x2f-0 x30;uchar k=0,flag=0,num,fuhao,i;long a,b,c;void

23、delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void keyscan()uchar temp;P2=0 xfe;temp=P2;temp=temp&0 xf0;while(temp!=0 xf0)delay(5);temp=P2;temp=temp&0 xf0;while(temp!=0 xf0)temp=P2;switch(temp)case 0 xee:num=0;break;case 0 xde:num=1;break;case 0 xbe:num=2;break;case 0 x7e:num=3;break;while(te

24、mp!=0 xf0)temp=P2;temp=temp&0 xf0;/*当按下1,2,3,松手后执行下面这段语句*/if(num=0|num=1|num=2)if(flag=0)a=a*10+table1num;原器件清单 序号 名称 型号 数量 备注 1 单片机 8051(AT89C51)1 2 电阻 200 1 复位电路 3 电阻 1k 1 复位电路 4 电容 22uF 1 复位电路 5 按键开关(按钮)1 复位电路 6 石英晶振 12MHz 1 晶振电路 7 电容 30pF 2 晶振电路 8 液晶屏 1601 1 显示电路 9 4x4 键盘 用 16 个按钮实现 10 单片机插座 1 11 电源插座 1 12 电路基板 1 13 电源 DC5V 1 可合买(或利用电子技术课程设计中制作的电源)14 焊锡、导线 若干 15 滑动变阻器 10K 1 液晶对比度调节 课程设计成绩评定表 课题名称 单片机课程设计 学生姓名 学号 课程设计答辩记录 1、如何编写程序检测按键是否按下和按键是否释放 答:用 if 判断 If(K!=0 xff)判断释放按下 2、你的程序中如何控制在 LCD 哪行哪个位置显示数据:ShowString(uchar x 行,uchar y 列,unchar*str 数)成绩评定依据 考勤 答辩 报告 实物制作 分数 最终评定成绩 指导教师签字:年 月 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁