欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于單片機的簡易計算器數碼管顯示程序
[打印本頁]
作者:
黑人盤子
時間:
2018-5-28 23:14
標題:
基于單片機的簡易計算器數碼管顯示程序
//S4:+ S8:- S12:* S16:/ S15: = S13: remove
#include<reg51.h>
#define DIG P0
#define KEY P1
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned long int count=0,sum=1;
int a[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x00};
unsigned char KeyDate;
unsigned char symbol;
void delay();
void KeyDown();
void DigDisplay();
void conversion();
void DigDisplayNumble();
void main(void)
{
while(1)
{
KeyDown();
DigDisplay();
}
}
void KeyDown()
{
KEY=0x0f;
if(KEY!=0x0f)
{
delay();
if(KEY!=0x0f)
{
KEY=0X0F;
switch(KEY)
{
case(0X07): KeyDate=1;break;
case(0X0b): KeyDate=2;break;
case(0X0d): KeyDate=3;break;
case(0X0e): KeyDate=4;break;
}
KEY=0XF0;
switch(KEY)
{
case(0X70): KeyDate=KeyDate;break;
case(0Xb0): KeyDate=KeyDate+4;break;
case(0Xd0): KeyDate=KeyDate+8;break;
case(0Xe0): KeyDate=KeyDate+12;break;
}
while(KEY!=0xf0) ;
delay();
conversion();
}
}
}
void DigDisplay()
{
unsigned int j,p=0;
for(j=0;j<8;j++)
{
switch(j)
{
case(0):
LSA=0;LSB=0;LSC=0;DIG=a[count%10]; break;
case(1):
LSA=1;LSB=0;LSC=0;
if(count>=10)
DIG=a[count%100/10];
else
DIG=a[10];
break;
case(2):
LSA=0;LSB=1;LSC=0;
if(count>=100)
DIG=a[count%1000/100];
else
DIG=a[10];
break;
case(3):
LSA=1;LSB=1;LSC=0;
if(count>=1000)
DIG=a[count%10000/1000];
else
DIG=a[10];
break;
case(4):
LSA=0;LSB=0;LSC=1;
if(count>=10000)
DIG=a[count%100000/10000];
else
DIG=a[10];
break;
case(5):
LSA=1;LSB=0;LSC=1;
if(count>=100000)
DIG=a[count%1000000/100000];
else
DIG=a[10];
break;
case(6):
LSA=0;LSB=1;LSC=1;
if(count>=1000000)
DIG=a[count%10000000/1000000];
else
DIG=a[10];
break;
case(7):
LSA=1;LSB=1;LSC=1;
if(count>=10000000)
DIG=a[count%100000000/10000000];
else
DIG=a[10];
break;
}
p=10;
while(p--);
DIG=0x00;
}
}
void conversion()
{
unsigned keydate_count;
if(KeyDate%4!=0)
{
if(KeyDate!=15)
{
switch(KeyDate)
{
case 1:
case 2:
case 3:keydate_count=KeyDate;count=count*10+keydate_count;break;
case 5:
case 6:
case 7:keydate_count=KeyDate-1;count=count*10+keydate_count;break;
case 9:
case 10:
case 11: keydate_count=KeyDate-2;count=count*10+keydate_count;break;
case 13: count/=10;break;
case 14 :keydate_count=0;count=count*10+keydate_count;break;
default :break;
}
}
else
{
if(symbol=='+')
sum+=count;
if(symbol=='-')
sum-=count;
if(symbol=='*')
sum*=count;
if(symbol=='/')
sum/=count;
count=sum;
}
}
else
{
switch(KeyDate)
{
case 4: symbol='+';break;
case 8: symbol='-';break;
case 12: symbol='*';break;
case 16: symbol='/';break;
}
sum=count;
count=0;
}
}
void delay()
{
unsigned char b,c;
for(c=200;c>0;c--)
for(b=200;b>0;b--);
}
復制代碼
作者:
admin
時間:
2018-5-29 01:08
原理圖能分享一下嗎?
作者:
黑人盤子
時間:
2018-5-29 08:56
admin 發表于 2018-5-29 01:08
原理圖能分享一下嗎?
可以的 稍后分享
作者:
ABCD丁
時間:
2018-5-31 17:08
非常感謝樓主
作者:
051810610
時間:
2020-12-24 11:31
請問原理圖在哪里呀
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1