基于mcs-51单片机的简易计算器的设计与实现毕业设计论文(编辑修改稿)内容摘要:

922 的 DA 引脚经过一个非门连接到单片机的 /INT0 脚,当 MM74C922 检测到键盘输入时, DA 产生高电平,与之相连的 /INT0 检测到低电平,给单片机一个中断,单片机从P2 口的低四位读入键盘上按下的键的值。 图 37 键盘接口电路图 江苏农牧科技职 业学院毕业论文(设计) 8 第四章 软件设计 本设计主要包含主程序、外部中断 0 程序。 主程序设计 主程序函数表示:允许中断;初始化键盘接口连接、 LCD 显示、 LCD、 LCD 输入数据函数。 图 41 主程 序流程图 外部中断 0 处理程序 有键按下时,单片机响应外部中断 0,转入外部中断 0 中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。 其中调用键值转化函数、算术运算函数。 开始 允许中断 初始化键盘接口 初始化 LCD 显示 初始化 LCD 初始化 LCD 输入数据函数 江苏农牧科技职 业学院毕业论文(设计) 9 图 42 外部中断 0函数流程图 键值转化为键盘上按键值程序 该程序函数的作用是将输入的键值转化为数值或符号。 图 43 键值转化为键盘上按键值流程 开始 输入键值 读取键码 转化为数值或符号 数值送显示缓冲 键值转化 是否为数字键 将当前输入值 *10+输入值 当前输入值是否为第一个算术值 y=当前输入值 x=当前输入值 当前输入值是否超出范围规定 LCD显示当前输入值 数值溢出 是否为清除键 数值清 0 是否为“ =” 是否为“ +” 是否为“ ” 是 否 为“ *” 是 否 为“ /” 调用运算函数 Y N N Y N Y N N N N N Y Y 江苏农牧科技职 业学院毕业论文(设计) 10 算术运算程序 在外部中断函数对键值进行判断后,进行加、减、乘、除运算,运 算后的数值如果超出范围规定,则数值溢出处理。 图 44 算术运算程序 LCD 显示程序 利用 LCD 静态显示,通过程序向 LCD 写指令字或数据使 LCD 完成不同功能或显示相运 算 符 号是否为“ +” N 开始 Y Y 进行加号运算 运算后数值是否超出范围规定 运算符号是否为“ ” 进行减号运算 运 算 符 号是否为“ /” 进行乘号运算 运 算 符 号是否为“ *” Y N 进行除号运算 Y LCD 显示数值 N 溢出 N Y 江苏农牧科技职 业学院毕业论文(设计) 11 应数据。 /**************LCD 初始化函数 *************/ void init_LCM() { write_(0x30)。 write_(0x30)。 write_(0x30)。 write_(0x38)。 write_(0x08)。 write_(0x01)。 write_(0x06)。 write_(0x0e)。 } /***********LCD 写数据函数 *************/ void write_data(char ddata) { RS=1。 /*写指令 */ R_W=0。 EN=1。 /*使能信号开 */ P1=ddata。 /*将数据送入 p1 口 */ EN=0。 /*使能信号关 */ check_BF()。 } /***********LCD 写指令函数 *************/ void write_(char mand) { RS=0。 /*写指令 */ R_W=0。 江苏农牧科技职 业学院毕业论文(设计) 12 EN=1。 /*使能信号开 */ P1=mand。 /*将数据送入 p1 口 */ EN=0。 /*使能信号关 */ check_BF()。 } /************LCD 检查忙碌函数 ***********/ void check_BF() { char i,x=0x80。 P1=0xff。 while(xamp。 0x80) { RS=0。 R_W=1。 EN=1。 x=P1。 EN=0。 for (i=0。 i10。 i++)。 } EN=0。 /*关闭使能信号 */ } /**********LCD 清屏函数 **********/ void clearLCD() { write_(0x01)。 } /**********LCD 显示函数 **********/ void display(long a) { 江苏农牧科技职 业学院毕业论文(设计) 13 long temp,b,c=1。 int lenth=1,i,j。 clearLCD()。 if(a0) { a=a*c。 write_data(39。 39。 )。 } temp=a。 while((temp=temp/10)!=0) { lenth++。 } for(i=lenth。 i0。 i) { b=1。 for(j=0。 ji1。 j++) { b=b*10。 } write_data(0x30+a/b)。 a=a%b。 } } 第五章 开发体会 Keil 软件调试 keil软件。 keil 集成开发环境中创建新项目( Project),扩展文件名为 .UV2,并为该项目 江苏农牧科技职 业学院毕业论文(设计) 14 选定合适的单片机 CPU器件(本设计采用 ATMEL公司下的 AT89C51)。 keil的文本编辑器编写源文件,可以是汇编语言,也可以为 c语言,完成后将该文件添加到项目中去。 注意保存的时候如果是 c语言编写程序必须在后面加 .C。 keil 的相关选择项,配置编译环境、连接定位器以及 Debug调试器的功能。 ,生成绝对目标代码和可选的 HEX文件,如果出现编译连接错误则返回到第 2步,根据软件中的错 误提示进行修改源文件,切记不要浮躁,一步一步修改直到最后提示没有差错最终生成 hex文件。 ,调试成功后将 HEX文件写入到单片机应用系统的 ROM中。 Protues 软件仿真 1.首先在电脑里下载正确的软件,此软件主要是对硬件部分进行模拟。 2.进入软件后蓝色框内就是工作区域,可以在里面随意选择元器件,移。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。