xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 798KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-07
  • 語言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

本設(shè)計(jì)是基于51系列單片機(jī)來進(jìn)行的數(shù)字計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入,進(jìn)行加、減、乘、除六位數(shù)范圍內(nèi)的基本四則運(yùn)算,并在LCD上顯示相應(yīng)的結(jié)果。設(shè)計(jì)電路采用AT89C51單片機(jī)為主要控制電路,利用MM74C922作為計(jì)算器4*4鍵盤的掃描IC讀取鍵盤上的輸入。顯示采用字符LCD靜態(tài)顯示。軟件方面使用C語言編程,并用PROTUES仿真。 附件內(nèi)容: ┠─────基于AT89C51單片機(jī)簡(jiǎn)易計(jì)算器的設(shè)計(jì).doc ┃ ┠─────calculator.c ┃ ┠─────calculator.DSN ┃    ┠─────calculator.hex

資源截圖

代碼片段和文件信息

#include
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
char?translate(int?keycode);
void?arithmetic();
void?init_LCM();
void?write_data(char?ddata);
void?write_com(char?command);
void?check_BF();
void?clearLCD();
void?display(long?a);
void?dealerror(); ?
void?dataoverflow();

long?x=0y=0num=0;
int?operatorsinputiny=0;
char?key;
char?error[5]=“error“;
char?overflow[8]=“overflow“;
sbit?EN=P3^4;
sbit?R_W=P3^5;
sbit?RS=P3^6;
main()
{
????EA=1;
EX0=1;
IT0=1;
????P2=0xff;
display(0);
init_LCM();
write_data(0x30);
while(1)
{
}
}
/**********鍵值轉(zhuǎn)化為鍵盤上按鍵值函數(shù)*************/
char?translate(int?keycode)
{
switch(keycode)
{
case?0:
return?‘7‘;
break;
case?1:
return?‘4‘;
break;
case?2:
return?‘1‘;
break;
case?3:
return?‘c‘;
break;
case?4:
return?‘8‘;
break;
case?5:
return?‘5‘;
break;
case?6:
return?‘2‘;
break;
case?7:
return?‘0‘;
break;
case?8:
return?‘9‘;
break;
case?9:
return?‘6‘;
break;
case?10:
return?‘3‘;
break;
case?11:
return?‘=‘;
break;
case?12:
return?‘/‘;
break;
case?13:
return?‘*‘;
break;
case?14:
return?‘-‘;
break;
case?15:
return?‘+‘;
break;
}???????
}
/***********外部中斷0處理函數(shù)*************/
void?INT_0(void)?interrupt?0?using?0
{
key=translate(P2&0x0f);
if(key<=‘9‘&&key>=‘0‘)??????//判斷按下的鍵是否為數(shù)值
{
num=num*10+(key-‘0‘);
if?(operators>0)
{
y=num;
iny=1;
}
else
x=num;
if(num<134217728&&num>-134217728)????//當(dāng)前數(shù)值是否超出限定范圍
{
display(num);
}
else
dataoverflow();

}
else
{
switch(key)
{
case?‘c‘:
x=0;
y=0;
num=0;
iny=0;
operators=0;
display(num);
break;
case?‘=‘:
arithmetic();
iny=0;
operators=0;
num=0;
break;
case?‘+‘:
????if?(operators)
arithmetic();
operators=1;
num=0;
break;
case?‘-‘:
????if?(operators)
arithmetic();
operators=2;
num=0;
break;
case?‘*‘:
????if?(operators)
arithmetic();
operators=3;
num=0;
break;
case?‘/‘:
if?(operators)
arithmetic();
operators=4;
num=0;
break;
}
}

}
/**********算術(shù)運(yùn)算函數(shù)*************/
void?arithmetic()
{
if?(iny)
{
switch(operators)
{
case?1:
x=x+y;
num=x;
if(num<134217728&&num>-134217728)
{
display(num);
}
else
dataoverflow();
break;
case?2:
x=x-y;
num=x;
if(num<134217728&&num>-134217728)
{
display(num);
}
else
dataoverflow();
break;
case?3:
x=x*y;
num=x;
if(num<134217728&&num>-134217728)
{
display(num);
}
else
dataoverflow();
break;
????case?4:
if?(y==0)
dealerror();
else
{
x=x/y;
num=x;?
if(num<134217728&&num>-134217728)
{
display(num);
}
else
dataoverflow();
}
break;
}
y=0;

}
}
/**

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????5636??2010-06-29?14:31??calculator.hex

?????文件?????964096??2010-07-03?01:25??基于AT89C51單片機(jī)簡(jiǎn)易計(jì)算器的設(shè)計(jì).doc

?????文件???????4512??2010-06-29?06:43??calculator.c

?????文件?????134760??2010-06-29?14:32??calculator.DSN

-----------?---------??----------?-----??----

??????????????1109004????????????????????4


評(píng)論

共有 條評(píng)論

相關(guān)資源