久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
普中51單片機數碼管矩陣按鍵計算器代碼
[打印本頁]
作者:
accssory
時間:
2021-11-2 10:19
標題:
普中51單片機數碼管矩陣按鍵計算器代碼
這里使用的是普中科技的A2開發板,開發板用了一個38譯碼器來控制數碼管,利用數碼管動態顯示可以實現一個簡易計算器的功能。
#include <reg52.h>
#define GPIO_KEY P1
#define u16 unsigned int
#define u8 unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 b[8]={0,0,0,0,0,0,0,0};
u16 num1,num2,mode;
int KeyValue;
u8 DisplayData[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(u16 i)
{
u8 k;
while(i--)
for(k=110;k>0;k--);
}
void KeyDown()
{
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)
{
delay(10);
if(GPIO_KEY!=0x0f)
{
GPIO_KEY=0X0f;
switch(GPIO_KEY)
{
case(0X07): KeyValue=9;break;
case(0X0b): KeyValue=8;break;
case(0X0d): KeyValue=7;break;
case(0X0e): KeyValue=-1;break;
}
GPIO_KEY=0Xf0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue-3;break;
case(0Xd0): KeyValue=KeyValue-6;break;
case(0Xe0): KeyValue=KeyValue-9;break;
}
}
if(KeyValue>=0)
{
mode=1;
}
else if(KeyValue==-1)
{
mode=2;
}
else if(KeyValue==-4)
{
mode=3;
}
else if(KeyValue==-7)
{
mode=4;
}
else if(KeyValue==-10)
{
mode=5;
}
else if(KeyValue==-2)
{
mode=6;
}
while(GPIO_KEY!=0Xf0)
{
delay(1);
}
}
}
void DigDisplay()
{
u8 j;
for(j=0;j<8;j++)
{
switch(j)
{
case(7):
LSA=1;LSB=1;LSC=1;break;
case(6):
LSA=0;LSB=1;LSC=1;break;
case(5):
LSA=1;LSB=0;LSC=1;break;
case(4):
LSA=0;LSB=0;LSC=1;break;
case(3):
LSA=1;LSB=1;LSC=0;break;
case(2):
LSA=0;LSB=1;LSC=0;break;
case(1):
LSA=1;LSB=0;LSC=0;break;
case(0):
LSA=0;LSB=0;LSC=0;break;
}
P0=DisplayData[j];
delay(1);
P0=0x00;
}
}
void Init_timer0()
{
TMOD=0x01;
TH0=0xb8;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
void output_number(u16*p,u16 t);
void main()
{
u16 i,f,g=0,d;
u16 num[8]={0,0,0,0,0,0,0,0};
Init_timer0();
while(1)
{
KeyDown();
if(mode==1)
{
for(i=7;i>0;i--)
{
b[i]=b[i-1];
}
b[0]=KeyValue;
if(g==0)
{
num1=(b[7]*10000000 + b[6]*1000000 + b[5]*100000 + b[4]*10000 + b[3]*1000 + b[2]*100 + b[1]*10 + b[0]);
}
else
{
num2=(b[7]*10000000 + b[6]*1000000 + b[5]*100000 + b[4]*10000 + b[3]*1000 + b[2]*100 + b[1]*10 + b[0]);
}
for(i=0;i<8;i++)
{
if(b[i]!=0)
{
f=i+1;
}
}
for(i=0;i<f;i++)
{
DisplayData[i]=smgduan[b[i]];
}
mode=0;
}
if(mode==2)
{
for(i=0;i<8;i++)
{
b[i]=0;
DisplayData[i]=0x00;
}
mode=0;
g++;
d=1;
}
if(mode==3)
{
for(i=0;i<8;i++)
{
b[i]=0;
DisplayData[i]=0x00;
}
mode=0;
g++;
d=2;
}
if(mode==4)
{
for(i=0;i<8;i++)
{
b[i]=0;
DisplayData[i]=0x00;
}
mode=0;
g++;
d=3;
}
if(mode==5)
{
for(i=0;i<8;i++)
{
b[i]=0;
DisplayData[i]=0x00;
}
mode=0;
g++;
d=4;
}
if(mode==6)
{
if(d==1)
{
output_number(num,num1+num2);
for(i=0;i<8;i++)
{
if(num[i]!=0)
{
f=i+1;
}
}
for(i=0;i<f;i++)
{
DisplayData[i]=smgduan[num[i]];
}
for(i=f;i<8;i++)
{
DisplayData[i]=0x00;
}
}
if(d==2)
{
output_number(num,num1-num2);
for(i=0;i<8;i++)
{
if(num[i]!=0)
{
f=i+1;
}
}
for(i=0;i<f;i++)
{
DisplayData[i]=smgduan[num[i]];
}
for(i=f;i<8;i++)
{
DisplayData[i]=0x00;
}
}
if(d==3)
{
output_number(num,num1*num2);
for(i=0;i<8;i++)
{
if(num[i]!=0)
{
f=i+1;
}
}
for(i=0;i<f;i++)
{
DisplayData[i]=smgduan[num[i]];
}
for(i=f;i<8;i++)
{
DisplayData[i]=0x00;
}
}
if(d==4)
{
output_number(num,num1/num2);
for(i=0;i<8;i++)
{
if(num[i]!=0)
{
f=i+1;
}
}
for(i=0;i<f;i++)
{
DisplayData[i]=smgduan[num[i]];
}
for(i=f;i<8;i++)
{
DisplayData[i]=0x00;
}
}
}
}
}
void output_number(u16 *p,u16 t)
{
p[7]=t/10000000;
p[6]=(t%10000000)/1000000;
p[5]=((t%10000000)%1000000)/100000;
p[4]=(((t%10000000)%1000000)%100000)/10000;
p[3]=(((t%10000000)%1000000)%100000)%10000/1000;
p[2]=(((t%10000000)%1000000)%100000)%10000%1000/100;
p[1]=(((t%10000000)%1000000)%100000)%10000%1000%100/10;
p[0]=(((t%10000000)%1000000)%100000)%10000%1000%100%10;
}
void timer0() interrupt 1
{
TH0=0xb8;
TL0=0x00;
DigDisplay();
KeyDown();
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久精品网站
|
成人网av
|
久久伊人精品一区二区三区
|
91精品国产一区二区在线观看
|
亚洲一区久久久
|
9久久婷婷国产综合精品性色
|
国产成人免费视频网站高清观看视频
|
久久国产欧美日韩精品
|
免费黄色的视频
|
91视频在线看
|
久久亚洲视频
|
亚洲综合二区
|
国产 日韩 欧美 在线
|
亚洲天堂一区二区
|
午夜激情影院
|
成年精品
|
中文字幕一区在线观看视频
|
99福利视频
|
国产精品激情小视频
|
日本一区视频在线观看
|
日本一区二区高清不卡
|
夜夜爽99久久国产综合精品女不卡
|
成人免费网站视频
|
久久综合伊人一区二区三
|
日韩免费福利视频
|
精品综合视频
|
91视频网址
|
嫩草视频网站
|
黄色网址免费看
|
黄色一级电影在线观看
|
91啪亚洲精品
|
涩涩视频网站在线观看
|
全免费a级毛片免费看视频免费下
|
视频二区在线观看
|
亚洲伊人精品酒店
|
午夜精品久久久久久久久久久久久
|
日韩欧美在线观看一区
|
国产精品久久精品
|
找个黄色片
|
久久精品16
|
国产精品一区二区久久久久
|