基于51单片机的简易计算器设计内容摘要:

算机的显示器和液晶电视等。 电子密码锁中需要显示的信息比较多,为了能直观的看到结果,并且为了设计显的美观,使用总线和排阻进行简化连接方式,本设计采用液晶显示屏 LCD 进行显示,具体连接方式如图 所示: 主电路 控制电路即 单片机 电路 , 主要由 MCS51 单片机组成 , 单片机运行系统程序 , 结合外部输入来控制显示电路 , 显示相应运算结果。 结合键盘电路、显示电路,主图 6 键盘电路图 图 7 显示 电路 8 电路设计如下: 软件设计方案 软件的设计是关乎整个系统能否达到设计目标的关键因素 ,软件设计需要注意的地方很多,其中首先要考虑的就是设计语言的选择,编程语言的难易程度也是设计软件的因素,有的程序设计语言会占用过多的存储空间,而且执行速度也会大大受影响;其次就是对于编程者而言,根据实际应用系统选择设计语言是最重要的,对于本系统,程序执行速度没有太高的要求,但考虑到单片机实际内存,所以语言的选择很重要。 C语言是适合于单片机运行的一种面向对象的语言,其优点是语句简单,程序设计采用结构化,执行时间短,容易掌握其编程技巧,而且对于大规模程序而言, C语言能够明显减少程序语句,使得程序不过于繁琐。 图 8 系统主电路 9 汇编语言是面向硬件的设计语言 , 汇编语言的优点是基于硬件基础 , 能够有效使用硬件资源 , 程序效率较高 ;但对于一般编程人员而言,要充分掌握硬件资源后才能展开编程,而且当实现功能过于复杂时会使得成语句过多,运行时间变长。 通过对比以上两种编程语言后 , 根据实际设计目标 , 选择 C 语言作为软件设计语言。 系统 程序 设计 流程图 根据设计方案及实际功能 ,程序设计采用结构化设计方法,分为主程序和运算程序两部分,主程序设计流程图如下: 单片机是一块芯片中集成了 CPU、 RAM、 ROM、图 9 主程序 设计流程图 10 定时器、计数器、和多功能 I/O 等一台计算器所需要的基本功能部分。 如果按功能划分,它由如下功能部分组成,即微处理器( CPU)、数据处理器( RAM)、程序处理器( ROM/CPROM)、并行 I/O 口、串行口、定时器、计数器、中断系统及特殊功能寄存器( SFR)。 单片机是靠程序运行的,并且可以修改。 通过不同的程序实现不同的功能,尤其是特殊一些功 能,通过使用单片机编写的程序可以凸显高智能、高效率以及高可靠性, 可以很快实现运算功能。 运算程序设计主要实现运算功能 , 运算结果通过 显示电路显示 , 流程图如下 : 安装顺序 按照元件选择清单买好元件后 , 首先要做的工作就是检查买回元件的好坏,各元件的检测方法各异 , 应当细心操作 , 按各元件的检测方法分别进行检测,一定要仔细认真。 而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。 、焊接 各元件 按照电路设计 原理图的位置放置各元件,在放置过程中要先放置、焊接位置形状图 10 运算 程序设计流程图 11 较低的元件,后焊较高的和要求较高的元件。 特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过 10s,另外要特别注意芯片的安装方向。 下面是安装实际效果图: 故障原因及排除方法 焊接时,因为对于原件结构没有了解清楚,导致在焊接好之后才发现开关位置放错 针对这个故障 ,我们的解决方法是卸载重新安装,因为焊锡与万用板结合之后不容易去掉,因此。 我们借助吸锡器来帮助去掉残留在万用板上的焊锡,通过一系列工作,最终重新安装上开关按键。 LCD1602 因为体积稍微偏大,如果贴板安装就会使得单片机安装变得困难 针对这个问题 , 我们的解决方法是让 LCD1602 一边固定,一边不固定,这样图 11 实际安装 效果图 12 LCD1602 就不能妨碍单片机的安装。 ,发现使用的导线数量不够 针对这个问题 , 我们才要美好量体裁衣的方法来解决 , 对于每一段导线都尽量使它紧贴万用板面 , 这样不仅能够节省线的长度 ,还 可以使得结构更美观,便于查错。 调试结果 在安装成功之后 , 通过 加载程序进行 调式 , 能够满足设计要求。 课程设计是培养学生综合运用所学知识 ,发现 ,提出 ,分析和解决实际问题 ,锻炼实践能力的重要环节 ,是对学生实际工作能力的具体训练和考察过程。 通过此次课程设计,让我们了解到学习不仅仅是理论,更多的是理论联系实际,通过各种课程设计将自己学到的理论知识运用到实践中,一方面可以很好地理解理论知识,另一方面可以更好地锻炼自己的动手能力。 作为工科学生,尤其需要掌握这种能力。 回顾起此次单片机课程 设计, 从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西。 通过这次课程设计使我 门 懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 通过这次课程设计使我 门 得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。 使我们在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。 随 着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 通过此次课程设计,是的我们对单片机的相关知识有了更为全面的理解与掌握。 [1] 陈桂友 . 单片机应用技术基础 . 机械工业出版社 , 2020 [2] 魏二友 . 单片机 应用 系统设计 与实现教程 . 清华大学出版社 , 2020 [3] 邓世建 . 微机原理与应用 . 中国矿业大学出版社 , 2020 [4] 周立功 . 项目驱动:单片机应用设计基础 . 北京航空航天大学 出版社 , 2020 [5] 陈萌 . C 语言编程思维 . 清华 大学出版社 , 2020 13 附录一 图片 附录二 Proteus 仿真电路图 14 附录三 系统程序 部分设计程序 include include include include include define uint unsigned int define uchar unsigned char sbit batt = P3^5。 float num1。 // 保存第一个数 float num2。 // 保存第二个数 uchar jjcc。 // 加减乘除标志变量 uchar idata Lcd_Str[17]。 // 显示区缓存 uchar idata Num_str[17]。 uchar Lcd_num2_add = 0。 // 第二个数据开始位的增量 uchar Lcd_dis1_i = 0。 // 记录显示第一行字符 uchar Lcd_num1_i = 0。 // 记录 num1 是几位数 uchar Lcd_num2_i = 0。 // 记录 num2 是几位数 uchar Dian_i = 0。 // 小数点位数 //函数名称: delayms。 函数功能:延时 z 毫秒;形 参: z (延时时间参数 ) void delayms(uchar z) { uint x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } uchar Key_io。 // 暂存 IO 值 uchar Key_jl。 // 松手检测自锁变量 uchar Key_value。 // 返回键值 uchar Key_D_bit。 15 uchar saom(void) { Key_value=18。 P2=0xf0。 // 拉低第四位 Key_io=P2。 if(Key_io!=0xf0) // 查看搞四位是否有低电平 { Key_io|=0x0f。 // 保持高四位出现低电平的管脚,拉高第四位。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。