《单片机原理课程设计——OLED电子计算器》由会员分享,可在线阅读,更多相关《单片机原理课程设计——OLED电子计算器(34页珍藏版)》请在金锄头文库上搜索。
1、 .课程设计(论文)任务书 电气与电子工程学院 系 自动化 专业 13 班级 1班 一、 课程设计(论文)题目 计算器设计 二、 课程设计(论文)工作自 2016 年 1 月 5 日起至 2016 年 1 月 15 日止。三、 课程设计(论文)的内容要求: 实现五位数(可为带小数数)的加减乘除运算,通过按键输入十进制数据。利用八位数码管显示运算结果。 学生签名: 2016 年 1 月 日课程设计(论文)评审意见(1)题目复杂程度: 复杂( )、较复杂( )、一般( )、简单( )(2)总体方案的选择是否正确:正确()、较正确()、欠正确()、不正确() (3) 系统能否满足任务要求:满足()、
2、较满足()、欠满足()、不满足() (4) 元器件选择是否合理:合理()、较合理()、欠合理()、不太合理() (5) 学习实践态度:好()、较好()、一般()、不太好() (6) 独立工作能力:强()、较强()、一般()、较差() (7) 回答问题是否正确:正确()、较正确()、基本正确()、大多不正确() (8) 图表是否符合标准:符合()、较符合()、基本符合()、大多不符合() (9) 撰写是否规范整洁:规范整洁()、较规范()、欠规范()、不太规范() 总评成绩:优( )、良( )、中( )、及格( )、不及格( )评阅人 职称副教授 2016 年 1 月 日目录第一章课程设计题目分
3、析11.1 课程设计题目要求11.2 课程设计题目要求分析1第二章设计思想和设计说明22.1 设计思想22.2 设计说明2第三章硬件选型33.1 单片机选型33.2 LCD选型33.3 其他器件选型33.4 使用软件说明4第四章硬件原理44.1 硬件整体框图44.2 矩阵键盘电路54.3 复位电路54.4 晶振电路64.5 LCD电路6第五章程序设计原理75.1 程序设计流程75.2 按键扫描程序85.3 输入数据存储与转换算法85.4 LCD驱动8第六章系统功能描述9第七章设计总结和心得体会10附录1 STC89C52RC资料12附录2 器件选型13附录3 硬件原理图14附录4 程序清单15
4、参考文献21Word 资料第一章 课程设计题目分析1.1 课程设计题目要求本次课程设计要求设计一个能实现五位数(可为带小数数)的加减乘除运算的计算器,通过按键输入十进制数据。利用八位数据码管显示运算结果。在经过指导老师的批准后,将题目要求改为用LCD显示运算的结果。1.2 课程设计题目要求分析分析题目要求可知,本次设计要用到的知识有键盘的设计、单片机I/O口的操作、数制的转换与数值的运算、LCD的驱动显示。键盘设计部分的主要任务是设计一个用来输入数值、运算符以及结果显示操作的键盘。单片机的I/O口一是用来接收外部输入的数据,主要是键盘输入的数据,并对这些数据进行判断和处理,第二是用来输出处理过
5、后的数据,主要是将数据输出到LCD上以驱动LCD显示相应的内容。数制转换与数值运算部分的主要任务有:将键盘输入的十进制数据进行十六进制以及二进制的转换,这些操作由单片机内部自动完成;输入数值的整型以及浮点型的处理,这部分需要通过编程实现;运算结果的整型以及浮点型的控制,这部分需要通过编程实现,LCD驱动数据的整型和浮点型向字符型的转换,这部分需要通过编程实现。LCD驱动显示部分主要用来显示输入的两个操作数、一个操作运算符及一个运算结果。通过以上分析可知,本次课程设计的难点在于数制转换与数值运算部分以及LCD驱动显示部分。在进行课程设计之前需要准备的知识有:Keil软件的使用,Altium De
6、signer软件的使用,数值转换与数值运算相关算法的了解,LCD接口以及驱动的了解。第二章 设计思想和设计说明2.1 设计思想从以上的分析可知,本次课程设计可分为两大部分,第一部分是键盘数据的输入及处理,第二部分是LCD部分的输出驱动及显示。按照上述分类,本次设计的硬件部分采用先分开调试后联合调试的方法,即先分开调试键盘部分和LCD部分的硬件电路,待各部分的电路都调试通过后,再将两部分电路联合调试,采用这种调试方法,不仅能提高设计的效率,降低出错率,还能在出现问题时快速找到问题的所在。考虑到LCD底层驱动程序较为复杂,以及本人对汇编语言的掌握不是太好,本次课程设计的程序语言采用C语言进行编写,
7、并采用模块化编程的思想,将LCD的驱动以及键盘部分的驱动分为两个模块进行编写,同样采用先独立调试再联合调试的方法。2.2 设计说明本次设计的详细软硬件资料见附录。设计报告中使用的简写如下:l LCD:Liquid Crystal Display(液晶显示器);l ROM:Read only memory(只读存储器);l RAM:Random access memory(随机存取存储器);l SRAM:Static random access memory(静态随机存取存储器);l PCB:Printed circuit board(印制电路板)。第三章 硬件选型3.1 单片机选型在设计初期采
8、用AT89C51单片机进行调试,发现在LCD的驱动调试好以后占用的ROM已经接近4K,考虑到键盘部分的程序还未编写,所以最终的程序大小可能会超过4K,因此就需要扩展片外的ROM,为了节约设计的制作成本和简化设计的硬件电路,于是采用STC89C52RC单片机进行调试,STC89C52RC单片机拥有8K的Flash RAM以及512B的SRAM和5K的EEPROM,RAM大大小以及ROM的大小完全足够本次设计使用,而且价格适中。STC89C52RC的具体特性见附录1。3.2 LCD选型根据以往做项目的经验,LCD的驱动芯片选用SSD1306 12864液晶显示屏驱动芯片,芯片接口支持SPI协议和I
9、IC协议,通过单片机I/O口的模拟配置就可以驱动显示。LCD模块选择中景园电子的0.96寸LCD模块,其内部集成SSD1306驱动芯片,支持3.35V电源输入,符合本次设计的要求。3.3 其他器件选型考虑到PCB制作成本的问题,本次设计的电路板使用万能板进行焊制。由于LCD的驱动代码较多,为了加快系统的运行速度,晶振采用11.0592MHz的频率,同时也为了方便串口调试时的使用。其他器件的选型见附录2。3.4 使用软件说明本次课程设计的软硬件设计在windows 7系统下进行。程序编写使用Keil uVision4软件;硬件电路图的绘制使用Altium Designer软件;原理框图的绘制使用
10、Microsoft Viso软件;使用stc-isp-15xx-v6.85I软件进行程序的仿真调试与下载。第四章 硬件原理4.1 硬件整体框图硬件整体框图如图1所示。图1 硬件整体框图本设计硬件整体分为六个小部分,分别为:矩阵键盘电路、复位电路、晶振电路、LCD电路、电源电路和STC89C52RC电路,下面对前四部分进行详细说明。4.2 矩阵键盘电路矩阵键盘电路如图2所示,采用44矩阵键盘,共四行四列十六个按键,占用八个I/O口。图2 矩阵键盘电路矩阵键盘的四个行分别与单片机的P1.0P1.3相连接,四个列分别与单片机的P3.4P3.7相连接,采用行列扫描的方法来检测按下的按键,具体的做法是:
11、检测时先让一列为低电平(此时确定了列),其余几列为高电平,然后立即轮流检测各个行是否有低电平出现,如果检测到了某一行有低电平(此时确定了行),就可以确定是那个按键被按下了。图中的S1S10分别对用十进制数09,S11代表小数点,S12代表等号,S13S16分别代表加、减、乘、除四个运算符。4.3 复位电路复位电路如图3所示。图3 复位电路在复位按键没有按下时,复位引脚通过下拉电阻和地GND相连接,为低电平,当复位按键按下时,复位引脚和VCC接通,使单片机复位。4.4 晶振电路晶振电路如图4所示。11.0592MHz的晶振两端通过两个33皮法的电容接地,组成时钟电路,通过引脚输入到单片机内部以提供时钟。图4 晶振电路4.5 LCD电路LCD电