华南农业大学单片机优秀课程设计简易计算器.doc
《华南农业大学单片机优秀课程设计简易计算器.doc》由会员分享,可在线阅读,更多相关《华南农业大学单片机优秀课程设计简易计算器.doc(19页珍藏版)》请在咨信网上搜索。
单片机课程设计汇报 简易计算器 姓 名: 班 级: 学 号: 指导老师: 日 期: 华南农业大学工程学院 摘要:本设计是基于51系列单片机进行十进制计算器系统设计,能够完成计算器键盘输入,进行加、减、乘、除3位无符号数字简单四则运算,并在LED上对应显示结果。 设计过程在硬件和软件方面进行同时设计。硬件方面从功效考虑,首先选择内部存放资源丰富AT89C51单片机,输入采取4×4矩阵键盘。显示采取3位7段共阴极LED动态显示。软件方面从分析计算器功效、步骤图设计,再到程序编写进行系统设计。编程语言方面从程序总体设计和高效性和功效性对C语言和汇编语言进行比较分析,针对计算器四则运算算法尤其是乘法和除法运算实现。 关键字:单片机、简易计算器、汇编语言、功效模块 目 录 一、系统设计要求 4 1.1基础要求 4 1.2发挥部分 4 二、 系统硬件设计和实现 4 3.1系统硬件基础组成部分 4 3.2关键单元电路设计 5 三、 系统软件设计 6 四、 系统测试 14 五、 总结 14 致 谢 15 参考文件 15 一、系统设计要求 1.1基础要求 在课程设计时,三人一组,老师在动员大会上关键指明设计思绪,启发学生独立设计思绪。 功效要求关键以下:(1)键盘输入;(2)数值显示;(3)加、减运算(此次只要求加减);(4)对错误控制及提醒。 在十进制加减法计算中:输入范围为(1~99),该程序输入两个定点数,每个2位,输出3位;A为加,B为减,C为等于,输出为3位计算结果。数据输入采取规范化输入,即必需输入2个数才算完成一个运算数输入,两个运算数之间输入运算符A或B,输入完成按C显示计算结果。 1.2发挥部分 能够选择扩张更多功效,如乘法,除法,三角函数等,使这简易计算器功效更全方面。 二、 系统硬件设计和实现 2.1系统硬件基础组成部分 8086CPU,单片机试验箱键盘模块(0-9,a-f),LED数码管等。 单片机最小系统就是支持主芯片正常工作最小电路部分,包含主控芯片、复位电路和晶振电路。 主控芯片选择74LS164芯片,因其含有良好性能及稳定性,价格廉价应用方便。 晶振选择11.0592MHz,晶振旁电容选择22pF。 采取按键复位电路,电阻分别选择560Ω和10K,电容选择10μF。 1、键盘接口电路 计算器所需按键有: 数字键:“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” 功效键:“A(+)”“B(—)”“C(*)”“D(/)”“E(=)” 键盘累计15个按键,其中15个按键采取到,采取4*4矩阵键盘,键盘行和列之间全部有公共端相连,四行和四列8个公共端分别接P1.0~P1.7,这么扫描P1口就能够完成对矩阵键盘扫描,经过对16个按键进行编码,从而得到键盘口地址,对比P1口扫描结果和各按键地址,我们就能够得到是哪个键按下,从而完成键盘扫描功效。 2、数码管显示电路 采取6位数码管对计算数据和结果显示,这里选择共阳数码管,利用NPN三极管对数码管进行驱动,为了节省I/O资源,采取动态显示方法来显示计算数据及结果,动态扫描。 为了实现数码管动态显示,P2口输出显示值,经过P2口二进制代码送到数码管进行显示。 P3.0~P3.5用来作为位选端,控制哪几位数码管进行显示。比如当P3.2为高电平时,其它位全给0,具体在软件中会有说明。此时就将扫描数据送给指定数码管显示。 2.2关键单元电路设计 设计思绪是:首先利用程序不停扫描键盘是不是有输入,假如没有就一直扫描,假如有就停止扫描,完成输入,利用汇编程序查对输入键数值,经过调用子程序完成数据储存或是加减运算。运算完成后将运算结果储存并显示到LED显示器上。 三、 系统软件设计 设计总体步骤图,分模块编写程序 开始 输入六个数字或符号 R1*10+R2=R2 R4*10+R5=R4 R2+R4 R3是加号? N R2-R4 R3是减号? N R2*R4 R3是乘号? R2/R4 N 显示结果 结束 键盘扫描步骤图: 开始 初始化地址参数 输出列扫描信号 列扫描信号移位 读入行信号 该列有键输入? 四列扫描完? 返回 根据行列计算键值 查表得键码 等候按键释放 返回 否 是 是 否 程序源代码: Z8279 EQU 212H D8279 EQU 210H LEDMOD EQU 00000000B ;左边输入,八位显示,外部译码八位显示 DATA SEGMENT DATA1 DB 0,0,0,0,0 ;第一个数据(作为被减数) DATA2 DB 0,0,0,0,0 ;第二个数据(作为减数) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: PUSH CS POP DS PUSH CS POP ES MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL ;--------------------------------------------------------- MOV DX,Z8279 ;清FIFO RAM寄存器 MOV AL,0D1H OUT DX,AL KAISHI: MOV SI,OFFSET DATA1 MOV BX,10 Q1: MOV BYTE PTR[SI+BX-1],'0';数据区清零 DEC BX JNZ Q1 CALL SHURU ;读取第一个字符;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV [SI],AL ;存入第一个字符 MOV BX,1 CALL DISPL CALL SHURU ;输入第二个字符 ;;;;;;;;;;;;;;;;;;;;;;; CMP AL,'0' JB T1 MOV BL,BYTE PTR[SI] MOV BYTE PTR[SI],AL MOV BYTE PTR[SI+1],BL MOV BX,2 CALL DISPL CALL SHURU T1: PUSH AX ;存入运算符 MOV DX,Z8279 MOV AL,0D1H OUT DX,AL WAIIT6: IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT6 CALL SHURU ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV SI,OFFSET DATA2 MOV BYTE PTR[SI],AL ;输入第三个字符 MOV BX,1 CALL DISPL CALL SHURU ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CMP AL,'=' JZ T99 ;计算跳转 MOV BL,BYTE PTR[SI] ;输入第四个字符 MOV BYTE PTR[SI],AL MOV BYTE PTR[SI+1],BL MOV BX,2 CALL DISPL CALL SHURU ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; T99: JMP JISUAN ;-------------------------------------------------------------- SHURU PROC ;输入函数 MOV DX,Z8279 MOV AL,0C2H OUT DX,AL ;置空FIFO寄存器 WAIIT: NOP IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT ;FIFO正在清除期间则跳转等候 MOV AL,BL AND AL,0FH CMP AL,00H JE WAIIT ;无键按下则等候 MOV AL,40H ;写 读FIFO RAM命令字 OUT DX,AL MOV DX,D8279 ;读入FIFO RAM内容 IN AL,DX NOP CMP AL,11 JNZ T101 MOV DX,Z8279 MOV AL,0D1H OUT DX,AL ;置空FIFO寄存器 WAIIT1: IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT1 JMP KAISHI T101: LEA BX,LEE XLAT RET SHURU ENDP DISPL PROC ;显示子功效 PUSH BX MOV DX,Z8279 MOV AL,0D1H OUT DX,AL ;置空FIFO寄存器 WAIIT4: IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT4 POP BX MOV AL,40H OUT DX,AL MOV DX,D8279 MOV AL,[SI+4] CMP AL,'E' JNZ DSI8 MOV AL,79H OUT DX,AL JMP DSI9 DSI8: MOV AL,[SI+BX-1] CMP AL,'0' JA DSI0 DEC BX JNZ DSI8 MOV AL,3FH ;显示0 OUT DX,AL RET DSI0: MOV CX,BX MOV BX,0 DSI2: MOV AL,[SI+BX] SUB AL,30H PUSH BX LEA BX,TABLE XLAT OUT DX,AL POP BX CMP BX,1 JNZ T119 OUT DX,AL OUT DX,AL T119: INC BX CMP CX,BX JZ T103 JMP DSI2 T103: MOV AL,[SI+4] CMP AL,'-' JNZ DSI9 MOV AL,40H OUT DX,AL;显示-号 DSI9: RET DISPL ENDP ;计算区................................................................................................... JISUAN: MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 SUB BYTE PTR[SI],30H SUB BYTE PTR[DI],30H SUB BYTE PTR[SI+1],30H SUB BYTE PTR[DI+1],30H MOV DL,10 MOV AL,BYTE PTR[SI+1] MUL DL ADD AL,[SI] MOV BL,AL MOV AL,[DI+1] MUL DL ADD AL,[DI] XCHG AL,BL ;AL被减数,BL减数 POP CX ;弹出运算符 CMP CL,'+' JZ JIA CMP CL,'-' JZ JIAN CMP CL,'*' JZ CHENG JMP CHU CHU: AAD CMP BL,0 JNZ T20 MOV SI,OFFSET DATA1 MOV BYTE PTR[SI+4],'E' ;除数为零 MOV BX,5 CALL DISPL JMP KAISHI T20:DIV BL MOV AH,0 ;余数置0 JMP XIANSHI JIA: ADD AL,BL JMP XIANSHI JIAN: CMP AL,BL JNB N1 XCHG AL,BL MOV BYTE PTR[SI+4],'-' N1:SUB AL,BL JMP XIANSHI CHENG: MUL BL JMP XIANSHI XIANSHI: MOV CX,1000 MOV DX,0 DIV CX ADD AX,30H MOV [SI+3],AL MOV AX,DX MOV CL,100 DIV CL ADD AL,30H MOV [SI+2],AL MOV AL,AH MOV AH,0 MOV CL,10 DIV CL ADD AL,30H ADD AH,30H MOV [SI+1],AL MOV [SI],AH MOV BX,5 ;显示结果 CALL DISPL JMP KAISHI LEE: DB 37H,34H,31H,30H DB 00H,00H,00H,00H DB 38H,35H,32H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 39H,36H,33H,'=' DB 00H,00H,00H,00H DB '+','-','*','/' DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH CODE ENDS END START 四、 系统测试: 1.首先给予显示缓冲初始值‘00 00’,并把数据存放单元清零。 2.主程序调用键盘扫描子程序,判定键值,是数字第一次直接给予23H单元,如是第二次输入数字,则把第一次值乘十后和第二次值相加,结果存放到23H单元,并R4计数2次,表示已输入两位,扫描键值时就不再赋值和显示。等候运算符号按下,按下等于号就直接计算并显示,如加减就R5加一并把R4清零,表示能够输入下一操作数,和第一次相同,并等候等于键按下。清零键则不管在任何情况下全部清零,相当于软复位。 3.在扫描完键盘后,调用数据显示转换子程序把值转换为七段码。 4.调用数码管动态显示子程序,显示数值,重新循环。 五、总结: 首先,接到这个课程设计,我们头脑全部是一片空白,无从下手,后悔当初课,没认真听讲,不懂没有立即处理,造成不知所措局面。经过这次课程设计,让我们深深意识到我们单片机学不够扎实,不会很多,当然这次课程设计做计算器程序用是汇编语言,不是上学期学过c语言,所以极难适应。一开始真很着急,毫无头绪,以后找了很多资料,也参考了同学程序,其中每一个子程序模块全部认真去读,去分析,化为己用,最关键按键扫描和显示程序,还有包含加减乘除运算程序。尽管大家全部知道汇编编这个程序也很困难,但还是相互学习,四处找资料看,问同学,所以我们组软件主程序才能编译成功,系统才能调试出结果。 这次课程设计让我们相互分工、协调工作能力得到了提升,愈加关键是我们促进了对单片机了解,也更深入地利用了汇编语言。最终一点就是我们学会一个道理:笨鸟先飞,勤能补拙。 致 谢 本论文是在姜晟老师、邓小玲老师亲切教导和悉心指导下完成。在论文写作过程中,即使花了一定心血,但因为前期作业做了一定铺垫,所以完成还是比较顺利。也感谢这篇论文所包含到各位学者,本文引用了数位学者研究文件,假如没有她们文件,我们组也极难将此次文件检索课题完成。 最终,再一次对感谢一路以来关心,帮助过我老师和同学! 参考文件 王卫星 单片机原理和应用开发技术 中国水利水电出版社- 配套讲稿:
如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。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文