91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

本設計是基于51系列單片機來進行的數字計算器系統(tǒng)設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除六位數范圍內的基本四則運算,并在LCD上顯示相應的結果。設計電路采用AT89C51單片機為主要控制電路,利用MM74C922作為計算器4*4鍵盤的掃描IC讀取鍵盤上的輸入。顯示采用字符LCD靜態(tài)顯示。軟件方面使用C語言編程,并用PROTUES仿真。 附件內容: ┠─────基于AT89C51單片機簡易計算器的設計.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)
{
}
}
/**********鍵值轉化為鍵盤上按鍵值函數*************/
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處理函數*************/
void?INT_0(void)?interrupt?0?using?0
{
key=translate(P2&0x0f);
if(key<=‘9‘&&key>=‘0‘)??????//判斷按下的鍵是否為數值
{
num=num*10+(key-‘0‘);
if?(operators>0)
{
y=num;
iny=1;
}
else
x=num;
if(num<134217728&&num>-134217728)????//當前數值是否超出限定范圍
{
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;
}
}

}
/**********算術運算函數*************/
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;

}
}
/**

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

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

?????文件?????964096??2010-07-03?01:25??基于AT89C51單片機簡易計算器的設計.doc

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

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

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

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


評論

共有 條評論

相關資源