1、51单片机双显示计算器自己制作的单片机程序,既可以用数码管显示,也可以用1602显示#include#include #define uint unsigned int#define uchar unsigned charuchar code tabledu16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code tablewe4=4,5,6,7;uchar table=0123456789;unsigned char dispbuf4=0,0,0,0;uchar
2、aa,temp,key,keypos,flag,fuhao,a0,b0,c0,d0,e0;long num1,num2,num3;sbit RS=P25;sbit RW=P26;sbit E=P27;sbit key1=P34;void keyscan1();void ukeyscan1(); void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void change(uchar *p,uchar count) count=4-count; while(count=0)&(key11) keypos+; if(keypos=
3、0)&(key11) keypos+; if(keypos=0)&(key10) keypos+; if(keypos9)&(key9)&(key=0)&(key11) keypos+; if(keypos=0)&(key11) keypos+; if(keypos=0)&(key10) keypos+; if(keypos9)&(key9)&(key9)&(key9)&(key9)&(key14) wcmd(0x0e); wdata(0x01); num1=num3; fuhao=key; if(key=10)key=0x2B; else if(key=11)key=0x2d; else if(key=12)key=0x2a; else if(key=13)key=0x2f; if(a0!=0)wdata(tablea0); if(b0!=0)wdata(tableb0); else if(a0!=0)wdata(tableb0); if(c0!=0)wdata(tablec0); else if(a0!=0)|(b0!=0)wdata(tablec0); if(d0!=0)wdata(tabled0); else if(a0!=0)|(b0!=0)|(c0!=0