单片机应用技术计算器--四则运算程序

上传人:206****923 文档编号:42409941 上传时间:2018-06-02 格式:DOC 页数:5 大小:42.50KB
返回 下载 相关 举报
单片机应用技术计算器--四则运算程序_第1页
第1页 / 共5页
单片机应用技术计算器--四则运算程序_第2页
第2页 / 共5页
单片机应用技术计算器--四则运算程序_第3页
第3页 / 共5页
单片机应用技术计算器--四则运算程序_第4页
第4页 / 共5页
单片机应用技术计算器--四则运算程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机应用技术计算器--四则运算程序》由会员分享,可在线阅读,更多相关《单片机应用技术计算器--四则运算程序(5页珍藏版)》请在金锄头文库上搜索。

1、01020304050607080910111213141516171819202122232425262728293031323334353637383940/proj12.c/计算器-四则运算程序#include /52 系列单片机头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义#define dis_port P0/宏定义#define key_port P3/宏定义sbit dx=P26;/定义 74HC573 段选位sbit wx=P27;/定义 74HC573 位选位bitfushu; /负数标志bit

2、twobz; /第二个操作数标志bit zero; /0 标志(操作数为“0“时此标志为 1,此时输入 0 无效)uchar fh; /fh 为运算符号标记uint num1,num2,number; /分别为第一个操作数,第二个操作数和结果单元变量/定义矩阵键盘码:D代表除、M代表乘、S代表减、A代表加、C代表清除、E代表等号uchar code jp44=7,8,9,D,4,5,6,M,1,2,3,S,C,0,E,A;/与 4*4 矩阵键盘相对应/定义位码数组及相应的值uchar dis_wei=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定义共阴字形

3、码,前 10 个元素依次为 09 的字形码,/第 11 个元素(下标为 10)为消隐码、第 12 个元素为出错标记“E“字形码、第 13 个元素为“-“的字形码uchar code LEDcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x79,0x40; /定义显示缓冲区uchar buff8;void delay(uint t)/延时子函数 uchar i;while(t-)for(i=0;i=num2) number=num1-num2; else/不够减结果为负数number=num2-num1;fushu=1;b

4、reak;case M:number=num1*num2;break;/执行乘法运算case D:/执行除法运算if(num2) number=num1/num2;else/分母为零显示出错标记121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160cls1();cls2();buff0=11;/显示出错标记“E“buff7=0;return; cls1();/显示缓冲区初始化/拆分运算结果放入对应显示缓冲区中i

5、=7;while(number)buffi-=number%10;/每次取出最低一位number=number/10; /剔除最低位后的剩余位if(fushu)buff0=12;/不够减结果为负数,最高位显示“-“cls2();/各数据暂存区初始化/*=按键判断与处理=*/keypd()uchar key;key=getkey();if(key!=255)if(key10)shuzichuli(key); /数字键处理else if(key=C)cls1(),cls2();/按下清除键则重新初始化else if(key=E)jisuanjieguo(); /计算结果else /除以上几种按键外

6、,其它的就是运算符号键fh=key; /保存运算符号cls1(); /显示缓冲区初始化twobz=1; /为接收第二个操作数做准备zero=1; /第二个数从 0 开始/*=数码管显示=*/void disp() /显示子函数161162163164165166167168169170171172173174175176177178179180181182183184185186187uchar i;for(i=0;i8;i+)wx=0; /关位选锁存器dx=0; /关段选锁存器dis_port=dis_weii;wx=1; /开位选锁存器wx=0; /关位选锁存器/送段码,最低位带小数点if(i=7)dis_port=LEDcodebuff7+0x80;else dis_port=LEDcodebuffi;dx=1; /开段选锁存器dx=0; /关段选锁存器delay(5);/短暂延时 main() /主函数cls1(); /初始化显示缓冲区cls2(); /初始化各临时变量while(1) /大循环keypd(); /按键判断与处理disp(); /调用显示子函数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号