久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

mega16單片機科學計算器程序(帶有加減乘除功能)初步收尾了

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年09月18日   【字體:

支持最大八位的無符號長整型數值計算,后期會添加帶符號運算及其它計算功能。

 

 

#include<iom16v.h>
#include<macros.h>
//#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define EA SREG|=BIT(7)
uchar temp,old,key_turn,flag=0;
ulong datA=0,datB=0;
const uchar wela[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
const uchar tab[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
extern uchar dat[8]={0,0,0,0,0,0,0,0};
extern uchar dat_right[]={0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a};
void delay(uint z)
{
while(z--);
}
void display(uchar z)
{
uchar i;
while(z--)
for(i=0;i<8;i++)
{
PORTB=wela[i];
PORTD=tab[dat_right[i]];
delay(30);
PORTB=0XFF;
}
}

void clean_junk()
{
uchar i,p=0;
for(i=0;i<8;i++)
{
dat_right[i]=0x0a;
}
for(i=0;i<8;i++)
{
if(dat[i]>0)p=1;
if(p)dat_right[i]=dat[i];
}
}
void delete()
{
uchar i;
for(i=0;i<8;i++)
{
dat[i]=0;
}
clean_junk();
}
void disan_he()
{
ulong i;
     i=dat[0]*1e7+dat[1]*1e6+dat[2]*1e5+dat[3]*1e4+dat[4]*1e3+dat[5]*1e2+dat[6]*1e1+dat[7];
if(flag)datB=i;
else datA=i;
flag=1;
delete();
}
void disan_fen()
{
dat[0]=datA/1e7;
dat[1]=datA%10000000/1000000;
dat[2]=datA%1000000/100000;
dat[3]=datA%100000/10000;
dat[4]=datA%10000/1000;
dat[5]=datA%1000/100;
dat[6]=datA%100/10;
dat[7]=datA%10;
flag=0;

}
void move()
{
uchar i;
if(temp>0&temp<0x0b)
{
for(i=0;i<8;i++)
{
dat[i]=dat[i+1];
}
if(temp==0x0a){dat[0]=0;temp=0;}
dat[7]=temp;temp=0;
}
}
void clean()
{
uchar i;
flag=0;
for(i=0;i<8;i++)
{
dat[i]=0;
}
temp=0;
old=0;
datA=0;
datB=0;
}
void disan()
{
if(temp>0&temp<0x11)switch(temp)
{
case 0x0e:clean();break;
case 0x0b:old=temp;temp=0;disan_he();break;
case 0x0c:old=temp;temp=0;disan_he();break;
case 0x0d:old=temp;temp=0;disan_he();break;
case 0x10:old=temp;temp=0;disan_he();break;
case 0x0f:switch(old)
{
case 0x0b:if(flag)disan_he();datA=datA/datB;old=0;temp=0;disan_fen();break;
case 0x0c:if(flag)disan_he();datA=datA*datB;old=0;temp=0;disan_fen();break;
case 0x0d:if(flag)disan_he();datA=datA-datB;old=0;temp=0;disan_fen();break;
case 0x10:if(flag)disan_he();datA=datA+datB;old=0;temp=0;disan_fen();break;
default:temp=0;old=0;break;
}break;
default:move();temp=0;break;
}

// disan_fen();delete();


}
void diskey()
{
uchar i,n;
const uchar code[]={0xFE,0xFD,0xFB,0xF7};
if(temp==0x00)for(i=0;i<4;i++)
{
PORTA=code[i];
temp=PINA;
if(~temp&0xf0)i=6;
while(~PINA&0xf0)display(1);
PORTA=0xff;
}
if(temp>0x10)switch(temp)
{
case 0xEE:temp=0x07;break;
case 0xDE:temp=0x08;break;
case 0xBE:temp=0x09;break;
case 0x7E:temp=0x0b;break;
/////////////////////////
case 0xED:temp=0x04;break;
case 0xDD:temp=0x05;break;
case 0xBD:temp=0x06;break;
case 0x7D:temp=0x0c;break;
//////////////////////////
case 0xEB:temp=0x01;break;
case 0xDB:temp=0x02;break;
case 0xBB:temp=0x03;break;
case 0x7B:temp=0x0d;break;
////////////////////////
case 0xE7:temp=0x0e;break;
case 0xD7:temp=0x0a;break;
case 0xB7:temp=0x0f;break;
case 0x77:temp=0x10;break;
/////////////////////////
default:temp=0x00;break;
}
disan();

}
void main()
{
  MCUCSR|= 1<<JTD; //禁用jtag功能
  MCUCSR|= 1<<JTD; //再次禁用jtag功能生效
DDRC=0XFF;
DDRB=0XFF;
DDRD=0XFF;
DDRA=0X0F;
while(1)
{
display(1);
diskey();
clean_junk();
}
}

關閉窗口

相關文章

主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 不卡一区二区三区四区 | 日韩成人av在线 | 国外激情av | 国产成人精品一区二区 | 国产精品久久久久久网站 | 亚洲人成在线观看 | 狠狠躁躁夜夜躁波多野结依 | 日本福利视频免费观看 | 欧美在线免费 | 天堂资源视频 | 亚洲欧美另类在线 | 欧美视频二区 | 日韩欧美手机在线 | 国产一级视屏 | 日一区二区| 视频一区在线观看 | 久久久久久久久国产精品 | 99视频免费在线观看 | 国产成人免费在线观看 | 在线视频亚洲 | 欧洲一区二区视频 | 中文字幕不卡在线观看 | 男人的天堂久久 | 国产毛片毛片 | 欧美久久久久久久 | 午夜一级黄色片 | 九九精品影院 | 国产精品亚洲欧美日韩一区在线 | 中文字幕在线网 | 久久久久久久久久久福利观看 | www.成人久久 | 粉嫩av | 亚洲区视频 | 日韩精品极品视频在线观看免费 | 一区二区三区欧美 | 久久久久香蕉视频 | 日韩精品成人 | 国产美女在线精品免费 | 国产视频三级 | 天天爽夜夜爽精品视频婷婷 |