51单片机计算器设计报告(共12页).doc
《51单片机计算器设计报告(共12页).doc》由会员分享,可在线阅读,更多相关《51单片机计算器设计报告(共12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目录一 设计概述 -3二 硬件电路图 -3三 软件流程图 -4四 结论 -11五 参考文献-13一、1.1设计概述计算器通过编译,能实现简单的四位数加减及两位数的乘除,输入的数通过键盘给出,要求显示要操作的数,并显示结果 ,编译十进制跟十六进制之间转换的程序,实现十进制转十六进制,显示结果。1.2功能说明简单的运算功能:当通过输入键盘数字时,能够在显示器上显示输出的数值,并且通过想实现的简单运算功能,实现计算器的加、减、乘、除,并将结果显示出来。进制转换的功能:通过输入的十进制数,经过计算器的功能将其转换为十六进制数,并将结果显示出来。二、硬件电路图初始化是否为数值显
2、示数值或错误扫描键盘显示结果运算显示16进制是否按下10转16进制三、软件流程图 N Y N Y 主要程序流程说明:主程序首先进行初始化, 设定一些变量及其意义,扫描键盘,当输入有09数字时,通过键盘的扫描程序, 将数值赋给second并在显示器上来,当输入的是加减符号的时候,通过键盘的扫面程序,赋予OP相应值,并跳到运算部分,通过判断preop的值,执行相应的运算部分,将OP的值赋给preop并把second的值赋给first。再一次通过输入09的数字,再一次经过键盘的扫描程序,输出second的值,最后通过输入键盘上的等号,右键盘扫描得出相应的OP,跳到运算部分,根据程序的流程,将第一个数
3、的跟第二个数进行简单的加、减、乘、除运算,并将结果通过显示器输出。同理,当需要进行进制之间的转换时,输入相应的数字,通过键盘的扫描不显示在显示器上,再通过控制,进制转换开关,如果进制转换开关置0 按下,就实现了进制之间的相互转换。程序代码如下: #include #define uint long#define uchar longint zixing16=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; uint op=0;/用来存储+、-、*、/操作符 uint preop=2
4、0; uint first=0;/第一次键入的数值 uint second=0;/第二次键入的数值 uint result=0;/最终运算结果 uchar key=16; uchar kbscan(void); /声明键盘扫描程序void display(uint temp); /声明显示程序void sljzxs(uint temp); /十六进制显示程void yunsuan(void); /声明运算程序void dlms(void); /声明延时程序 /主程序/void main(void) uchar i,j=0; P0=0x01; /进制转换开关置1 P1=0X00; P2=0X00
5、; while(1) key=kbscan(); if(P0=0x00) /如果进制转换开关置按下 sljzxs(second);/显示进制数 second=0;/传送值清 if(key=10&key=0&key=9) /如果KEY在到之间,证明键盘按下的是数值 if(op=0) if(second) second=second*10+key; display(second); key=16; dlms(); if(key=14) /如果KEY位时,证明键盘按下的是C/ON键 display(0); P2=0x20; P1=0x3f; first=0; /清,回复初始状态 second=0;
6、op=0; result=0; preop=20; key=16; if(key=15) /如果KEY位为时,证明键盘按下的是=键 op=key; yunsuan(); dlms(); second=0; op=0; preop=55; key=16; for(i=0;i0)/直到k=0停止循环 n=k%16;/取最低位 P1=zixingn;/显示低位 k=k/16;/去掉最低位 r=P2=(r1);/左移一位 P1=0x00;/移位后会再送数,所以要置 while(P0=0x00);/等待按键放开 /四则运算/void yunsuan(void) if(op!=0) switch(preo
7、p) case 10: result=first+second; first=result; display(result); preop=op; op=0; second=0; break; case 11: result=first-second; first=result; display(result); preop=op; op=0; second=0; break; case 12: result=first*second; first=result; display(result); preop=op; op=0; second=0; break; case 13: result
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 计算器 设计 报告 12
限制150内