- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘 要
简易计算器是一种非常广泛日常工具,对现代社会越来越流行,它可以进行一些简易的计算。本系统可进行简易的计算信息,该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。软件部分用C51语言编写,主要包括简易计算、显示等。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。
关键字:AT89S52;液晶屏LCD1602;计算器
目 录
引言 1
1.单片机的应用 2
1.1单片机的介绍 2
1.2单片机的应用 2
1.3AT89S52 3
2.硬件设计 6
2.1 系统框图 6
2.2 最小系统 6
2.3 矩阵键盘 7
2.4 LCD1602 8
3. 软件设计 10
3.1矩阵键盘扫描原理 10
3.2 LCD1602的软件设计 10
3.3 主程序设计 12
3.4 源程序 13
3.5 调试结果 13
4. 设计小结 14
参考文献 15
附录 16
引言
随着社会的发展,人们生活水平的提高,单片机的应用越来越贴近生活了,人们常用单片机来实现一些简单的电子设计。单片机由于其微小的体积和极低的成本广泛的应用于家用电器、工业控制等领域中在工业生产中通过
图3.5 调试结果图
4. 设计小结
这次的课题是基于STC89C52的简易计算器设计,本设计采用了STC89C52芯片,基本上实现了利用单片机进行了一个 简单的计算器设计,允许对输入数据进行加、减、乘、除运算以及液晶 1602 进行显示。通过设计简易计算器的过程中我掌握了单片机的基本原理及其各种应用,对它的各种硬件接口与软件设计方法有较深入的认识。通过对电路原理图、电路仿真、掌握了对proteus仿真软件的使用。
在实验前我先是在网上和图书馆找了一些前辈所设计的计算器方案进行学习参考,一开始认为简易计算器制作起来结构相对简单,涉及的知识也有文献可查询,除了程序繁琐一些,其他都还好。但在实际制作过程中并不是这么简单,我们遇到了许多问题,不仅仅是专业知识上的问题,还存在组员之间的意见不同等。最后在老师的指导和组员之间的磨合,都克服了困难,完成了设计。
这次一次课程设计我们不仅将专业知识融会贯通,还提高了动手能力和分工合作,通过课程设计,我们对单片机的认识也有所提升。在用单片机实现简易计算的设计中使用到了AT89s52、LCD1602及其4*4键盘的使用。在设计过程中我通过在网上和图书馆查阅资料,收集了关于单片机和液晶屏LCD1602显示方面的资料,通过对这些资料的学习,我了解了单片机的基本结构和单片机在生活和生产中所发挥的作用;液晶屏LCD1602的原理和使用。
参考文献
[1]徐志保,基于工程导向的单片机实战教程,2011
[2]郭天祥,新概念51单片机c语言教程.北京:电子工业出版社,2009
[3]马忠梅,单片机的C语言应用程序设计.北京:北京航空航天大学出版社,1997
[4]张毅刚,《单片机原理及应用》.北京,高等教育出版社,2008
[5]谭浩强,C程序设计(第二版)[M].北京:清华大学出版社,2003
[6]余锡存,曹国华,单片机原理及接口技术.西安:西安电子科技大学出版社,2000
附录
#includereg51.h //包含单片机寄存器的头文件
#includeintrins.h //包含_nop_()函数定义的头文件
#includemath.h
sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚
sbit BF=P1^7; //忙碌标志位,
#define NO_KEY_PRESS 0xff
unsigned char code tab[]={0xb7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb};
unsigned char code num[]={0123456789};
unsigne
文档评论(0)