基于单片机编程计算器的实现.docVIP

  • 3
  • 0
  • 约7.29千字
  • 约 10页
  • 2017-08-25 发布于河南
  • 举报
/****************************************************************** ******************************************************************* 按键说明 S6--S11 数字0--9的输入 S12 清零 S13 等于 S14--S17加减乘除 程序功能: 本程序为简易计算器。可以算整数且正数类型的运算。 但是暂时没有实现其连算功能,故在每次运算之后,请按下清零键。 ******************************************************************/ #includereg51.h #define uchar unsigned char uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k; uchar jia,jian,cheng,chu,dengyu,jia0,jian0,cheng0,chu0,qingling; uchar s0,s1,s2,s3,s4,s5; //参加运算的各个位 unsigned long qian,hou;//定义参于运算的第一个数和第二个数。 sbit dula=P2^6; sbit wela=P2^7; sbit beep=P2^3; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; void delay(uchar i) { for(j=i;j0;j--) for(k=125;k0;k--); } void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f) { dula=0; P0=table[a]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table[b]; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); P0=table[c]; dula=1; dula=0; P0=0xfb; wela=1; wela=0; delay(5); P0=table[d]; dula=1; dula=0; P0=0xf7; wela=1; wela=0; delay(5); P0=table[e]; dula=1; dula=0; P0=0xef; wela=1; wela=0; delay(5); P0=table[f]; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(5); } void keyscan() { { P3=0xfe; temp=P3; temp=temp0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xee: key=0; wei++; break; case 0xde: key=1; wei++; break; case 0xbe: key=2; wei++; break; case 0x7e: key=3; wei++; break;

文档评论(0)

1亿VIP精品文档

相关文档