欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3099|回復(fù): 1
收起左側(cè)

51單片機(jī)八路搶答器代碼

[復(fù)制鏈接]
ID:851135 發(fā)表于 2021-6-22 16:46 來自觸屏版 | 顯示全部樓層 |閱讀模式
#include   //頭文件
#define uint unsigned int //
#define uchar unsigned char

sbit lcden=P2^3; //定義引腳
sbit rs=P2^4;
sbit rw=P2^0;
sbit busy=P0^7;

char i,j,temp,num,num_1;
long a,b,c;     //a,第一個(gè)數(shù) b,第二個(gè)數(shù) c,得數(shù)
float a_c,b_c;
uchar flag,fuhao;//flag表示是否有符號(hào)鍵按下,fuhao表征按下的是哪個(gè)符號(hào)

uchar code table[]={
7,8,9,0,
4,5,6,0,
1,2,3,0,
0,0,0,0};
uchar code table1[]={
7,8,9,0x2f-0x30,
4,5,6,0x2a-0x30,
1,2,3,0x2d-0x30,
0x01-0x30,0,0x3d-0x30,0x2b-0x30};

void delay(uchar z) // 延遲函數(shù)
{
uchar y;
for(z;z>0;z--)
for(y=0;y<110;y++);
}

void check() // 判斷忙或空閑
{
do{
P0=0xFF;
rs=0;     //指令
rw=1;     //讀
lcden=0;     //禁止讀寫
delay(1); //等待,液晶顯示器處理數(shù)據(jù)
lcden=1;     //允許讀寫
}while(busy==1); //判斷是否為空閑,1為忙,0為空閑
}
void write_com(uchar com) // 寫指令函數(shù)
{
P0=com;    //com指令付給P0口
rs=0;
rw=0;
lcden=0;
check();
lcden=1;
}

void write_date(uchar date) // 寫數(shù)據(jù)函數(shù)
{
P0=date;
rs=1;
rw=0;
lcden=0;
check();
lcden=1;
}

void init() //初始化
{
num=-1;
lcden=1; //使能信號(hào)為高電平
write_com(0x38); //8位,2行
write_com(0x0c); //顯示開,光標(biāo)關(guān),不閃爍*/
write_com(0x06); //增量方式不移位 顯竟獗暌貧 柚?
write_com(0x80); //檢測(cè)忙信號(hào)
write_com(0x01); //顯示開,光標(biāo)關(guān),不閃爍
num_1=0;
i=0;
j=0;
a=0;     //第一個(gè)參與運(yùn)算的數(shù)
b=0;     //第二個(gè)參與運(yùn)算的數(shù)
c=0;
flag=0; //flag表示是否有符號(hào)鍵按下,
fuhao=0; // fuhao表征按下的是哪個(gè)符號(hào)
}
void keyscan() // 鍵盤掃描程序
{

P3=0xfe;
if(P3!=0xfe)
{
delay(20); 延遲20ms
if(P3!=0xfe)
{
temp=P3&0xf0;
switch(temp)
{
case 0xe0:num=0;
break;
case 0xd0:num=1;
break;
case 0xb0:num=2;
break;
case 0x70:num=3;
break;
}
}
while(P3!=0xfe);
if(num==0||num==1||num==2)//如果按下的是'7','8'或'9
{
if(j!=0)
{
write_com(0x01);
j=0;
}
if(flag==0)//沒有按過符號(hào)鍵
{
a=a*10+table[num];
}
else//如果按過符號(hào)鍵
{
b=b*10+table[num];
}
}
else//如果按下的是'/'
{
flag=1;
fuhao=4;//4表示除號(hào)已按
}
i=table1[num];
write_date(0x30+i);
}

P3=0xfd;
if(P3!=0xfd)
{
delay(5);
if(P3!=0xfd)
{
temp=P3&0xf0;
switch(temp)
{
case 0xe0:num=4;
break;

case 0xd0:num=5;
break;

case 0xb0:num=6;
break;

case 0x70:num=7;
break;
}
}
while(P3!=0xfd);
if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6'
{
if(j!=0)
{
write_com(0x01);
j=0;
}
if(flag==0)//沒有按過符號(hào)鍵
{
a=a*10+table[num];
}
else//如果按過符號(hào)鍵
{
b=b*10+table[num];
}
}
else//如果按下的是'/'
{
flag=1;
fuhao=3;//3表示乘號(hào)已按
}
i=table1[num];
write_date(0x30+i);
}

P3=0xfb;
if(P3!=0xfb)
{
delay(5);
if(P3!=0xfb)
{
temp=P3&0xf0;
switch(temp)
{
case 0xe0:num=8;
break;

case 0xd0:num=9;
break;

case 0xb0:num=10;
break;

case 0x70:num=11;
break;
}
}
while(P3!=0xfb);
if(num==8||num==9||num==10)//如果按下的是'1','2'或'3'
{
if(j!=0)
{
write_com(0x01);
j=0;
}
if(flag==0)//沒有按過符號(hào)鍵
{
a=a*10+table[num];
}
else//如果按過符號(hào)鍵
{
b=b*10+table[num];
}
}
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2021-6-22 23:50 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表