单片机课程设计计算器.doc
《单片机课程设计计算器.doc》由会员分享,可在线阅读,更多相关《单片机课程设计计算器.doc(51页珍藏版)》请在咨信网上搜索。
1、课程设计说明书课程设计名称: 单片机课程设计 课程设计题目: 四位数加法计算器的设计 学 院 名 称: 电气信息学院 专 业 班 级: 学 生 学 号: 学 生 姓 名: 学 生 成 绩: 指 导 教 师: 课程设计时间: 2023.10.30 至 2023.11.5 格式说明(打印版格式,手写版不做规定)(1)任务书三项的内容用小四号宋体,1.5倍行距。(2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。(3)章的标题用四号黑体加粗(居中排)。(4)章以下的标题用小四号宋体加粗(顶格排)。(5)正文用小四号宋体,1.5倍行距;段落两端对齐,每个段落首行缩进两个字。(6)图和
2、表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。(8)页码:封面、扉页不占页码;目录采用希腊字母、排列,正文采用阿拉伯数字1、2、3排列;页码位于页脚,居中位置。(9)标题编号应统一,如:第一章,1,1.1,;论文中的表、图和公式按章编号,如:表1.1、表1.2;图1.2、图1.2;公式(1.1)、公式(1.2)。课程设计任务书一、课程设计的任务和基本规定(一) 设计任务(从“单片机课程设计题目”汇总文档中任选1题,根据所选课题的具体设计规定来填写此栏)1. 系统通过4x4的矩阵键盘输
3、入数字及运算符。2. 可以进行4位十进制数以内的加法运算,假如计算结果超过4位十进制数,则屏幕显示E。3. 可以进行加法以外的计算(乘、除、减)。4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。(二) 基本规定1. 有硬件结构图、电路图及文字说明;2. 有程序设计的分析、思绪说明; 3. 有程序流程框图、程序代码及注释说明;4. 完毕系统调试(硬件系统可以借助实验装置实现,也可在Proteus软件中仿真模拟);5. 有程序运营结果的截屏图片。二、进度安排 第9周,10.3011.5 1) 10.30 题目分析,文献查阅 2) 10.
4、31 方案比较,拟定设计方案 3) 10.3111.1 硬件电路设计 4) 11.211.4 程序设计,程序调试,系统联调,系统改善 5) 11.5 课程设计说明书撰写三、参考资料或参考文献1. 林立,张俊亮. 单片机原理及应用基于Proteus和Keil C M.北京:电子工业出版社,20232. 张毅刚,彭喜元. 单片机原理与应用设计M. 北京:电子工业出版社,20233. 马忠梅. 单片机的C语言应用程序设计(第5版) M.北京:北京航空航天大学出版社,20234. 楼然苗、李光飞. 51系列单片机设计实例M. 北京:北京航空航天大学出版社,2023本科生课程设计成绩评估表姓名专业班级学
5、号课程设计题目:课程设计答辩记录:(手写)成绩评估依据:项目得分比例考勤记录设计结果报告撰写答辩成绩备注:成绩评估依据的项目内容和项目分值比例可以由老师按指导的专业进行调整,但成绩评估依据的项目数不得少于3项。最终评估成绩: 指导教师署名: 年 月 日目 录第一章 设计论证11.1 设计分析11.2 设计方案1第二章 硬件设计22.1 硬件结构与工作原理22.2 单元电路设计2第三章 软件设计73.1 系统软件结构73.2 主要功能子程序设计9第四章 系统调试与分析144.1 调试过程与结果144.2 结果分析16第五章 设计小结17附录18第一章 设计论证1.1 设计分析在方案设计过程中,我
6、列出了两种不同的设计方案,分别相应于显示模块和单片机内部运算。显示模块在我的设计中有两种不同的显示方式,分别为数码管显示以及液晶屏显示。对于数码管显示来说,优点是使用简朴,反映速度更快,由于LCD有众多的接口,以及指令,因此在软件上要比数码管复杂。数码管显示的缺陷也比较明显,就是需要占用过多的单片机输出接口,同时,LCD的显示功能更多,也更直观,对于现实生活中的使用也更加舒适。在综合了以上几点的考虑后,我最终选择了LCD1602液晶显示芯片作为显示模块。在单片机内部运算方面,我的设想也有两种,即支持浮点数运算或只支持整数运算,若只支持整数运算,程序设计势必更加简朴易懂,但是出于实用性的考虑,我
7、最终决定了使计算器支持浮点数运算功能。同时,这也能更好地锻炼我的编程思维能力。1.2 设计方案按照系统设计的功能的规定,初步拟定设计系统由主控模块、显示模块、键盘扫描接口电路共四个模块组成。主控芯片使用8051系列的AT89C52单片机,其中带有非易失性Flash程序存储器,它是一种高性能、低功耗的8位CMOS微解决芯片,市场应用最多。显示模块采用LCD1602液晶显示器为主体构成。键盘电路采用4x4矩阵键盘电路。整个单片机的接口电路:P0用于显示输出或LCD1602信号输入,P1口用于键盘扫描输入,P2口用于LCD1602的控制信号输出。为了驱动系统的各个模块正常协调工作,在软件方面我设计了
8、四大模块,分别为显示、键盘、运算、综合模块,通过综合模块的协调来使其它三大模块正常运营,使计算器能对的运算得出对的结果。第二章 硬件设计2.1 硬件结构与工作原理AT89C52显示模块(LCD1602)键盘扫描输入模块(4*4矩阵键盘)图2.1 硬件结构框图 系统的主体部分由输入、运算、输出模块所组成,相应于图2.1中有,输入模块为键盘扫描输入,输出模块为LCD1602显示,运算模块为单片机。在系统上电后,单片机初始化,开始运营内部程序,在程序运营过程中,通过软件功能来实现按下键盘上特定按键后,执行不同的功能,例如加减乘除,并将数据输出至显示模块(LCD1602)显示。在运算过程中显示运算数据
9、及符号,运算完毕后显示运算结果。2.2 单元电路设计2.2.1 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,涉及主控芯片、复位电路和晶振电路。 主控芯片选取AT89C52芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 晶振选取11.0592MHz,晶振旁电容选取20pF。 采用按键复位电路,电阻分别选取100和10K,电容选取10F。 以下为单片机最小系统硬件电路原理图(图2.2),仿真接线图(图2.3)。图2.2 单片机最小系统硬件电路原理图图2.3 单片机最小系统仿真接线图2.2.2 键盘接口电路计算器所需按键有: 数字键:1,2,3,4,5,6,7,8,9,0
10、 。功能键:+, - , *, / , = , C( 清零、小数点)共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0P1.7,这样扫描P1口就可以完毕对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完毕键盘的功能。在Proteus仿真中,我直接使用元件库所有的KEYPAD-SMALLCALC键盘,这种键盘直接实现了4*4键盘的功能,方便使用。如下图2.4所示。在按下其中一个键时,其相应的行与列将都会变成低电平,此时,即可通过判断P1口的值来拟定输入的是哪
11、一个按键,然后将所取得的按键通过软件来进行接下来的解决、运算等工作。图2.4 4*4矩阵键盘2.2.3 LCD1602显示电路LCD1602简介: 如图2.5所示,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正由于如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602采用标准的
12、16脚接口,其中:第1引脚:GND为电源地第2引脚:VCC接5V电源正极第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5引脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714引脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。第15引脚背光正极,第16引脚背光负极。特性3
13、.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM特性应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制注:关于E=H脉冲开始时初始化E为0,然后置E为1。图2.5 LCD1602硬件原理图采用LCD1602显示器对计算过程、结果以及提醒信息进行显示,在仿真电路中,由于Proteus中并没有LCD1602显示芯片,故采用功能相似的LM016L进行替代,其中LM016
14、L的D0D7三个输入输出端口接至单片机的P0.0P0.7口,用来对显示屏输出显示、输出控制指令以及获取状态信息。单片机的P2.5P2.7分别与LM016L的RS、RW、E端口相连,用来对显示芯片进行控制。以下为LCD显示电路的仿真接线图(图2.6)。图2.6 LCD1602(LM016L)仿真接线图第三章 软件设计3.1 系统软件结构如图3.1所示,计算结果并显示开始初始化参数LCD显示有键输入?读取按键解决显示显示操作符,标记操作数1结束等待按键显示小数点是否操作符?是否数字?是否第一次按下?ON/C键是否为=号?/系统启动后,执行LCD初始化程序,然后调用LCD显示程序,在屏幕上输出欢迎信
15、息。接下来调用键盘扫描解决程序,等待按键按下,按下任意键后执行LCD清屏程序,并再次调用键盘扫描解决程序,等待用户输入数据,若用户按下数字键(09),则在显示器上显示并且将输入数据保存至数据存储区。 Y 图3.1 程序流程图本次设计采用模块化设计思想,涉及主程序和初始化子程序、延时子程序、输出数据子程序、检测是否有按键按下子程序、拟定按键子程序、清第一行屏与显示“Welcome”子程序、换算第一个数子程序、运算子程序、显示结果子程序等子程序。运营程序后,一方面调用子程序清屏第一行并显示“Welcome”,清屏第二行并显示“ZCYs Caculator!”,然后检测是否有按键按下,假如没有,继续
16、检测,假如按下,则判断是否是加减乘除键被按下,假如是加减乘除被按下,则显示相应的字符并换算出字符前输入的数据和字符后输入的数字,然后检测是否有等号按下,假如有则完毕相应的运算并显示相应的结果,然后检测是否有清屏键按下,假如有则清屏,相应的流程图如图3.1所示。对于数字键的程序段进行相应的设计,假如运算键(、,*,/)相应标志不为一,则将输入的数字送入第一个操作数缓存区,并且清空所有响应位。否则送入第二个操作数缓存区。另一方面对功能键的程序段进行相应的设计。 假如功能键(、,*,/)第一次被按下,则置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备,假如
17、是第二次按下则先调用运算操作子程序,执行上次按下的运算键的运算,置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备。程序上的具体实现:在单片机上电后,执行两个函数LCD_dsp_string(4,0,Welcome!)以及LCD_dsp_string(1,1,ZCYs Caculator)输出欢迎信息初始化LCD。然后执行keyscan()函数判断是否有按键输入,若有则读取按键,否则循环扫描,直到有按键按下。在获取按键后,判断按键是否为数字,若是,则执行cacul(a)函数,将获取的数字保存为数,然后执行LCD单个字符显示函数LCD_dsp_char(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 计算器
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。