欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
10以內(nèi)的計算器 單片機(jī)程序
[打印本頁]
作者:
kakami
時間:
2019-8-19 15:55
標(biāo)題:
10以內(nèi)的計算器 單片機(jī)程序
問題是按鍵時第一次和第二次按下時正常,按下第三個時一下子出3~4個相同的數(shù)求
批注 2019-08-19 150357.png
(99.15 KB, 下載次數(shù): 35)
下載附件
2019-8-19 15:55 上傳
單片機(jī)源程序如下:
#include<reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
unsigned char code xianshi[16]={'*','0','#','=','7','8','9','/','4','5','6','-','1','2','3','+'};
unsigned char code shu[16]={0,0,0,0,7,8,9,0,4,5,6,0,1,2,3,0};
unsigned char code table[]={'0','1','2','3','4','5','6','7','8','9'};
#define anjian P1
#define LCD_D P2
sbit LCD_RS=P3^0;
sbit LCD_RW=P3^1;
sbit LCD_E=P3^2;
u8 jianwei,i=0,jieguo;
u8 zancun[4];
void delay(u16 i)
{
while(i--);
}
void delayms(u16 c) //延時函數(shù)ms 誤差 0us
{
u8 a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
void dat(u8 d) //寫入數(shù)據(jù)
{
LCD_E=0; //關(guān)閉使能端
LCD_RW=0; //進(jìn)入 寫
LCD_RS=1; //選擇 數(shù)據(jù)
LCD_D=d; //輸入數(shù)據(jù)
delayms(1); //等待數(shù)據(jù)穩(wěn)定
LCD_E=1; //打開使能端
delayms(5); //延時1ms
LCD_E=0; //關(guān)閉使能端
}
void junzhenanjian()
{
u8 a;
anjian=0x0f;
if(anjian!=0x0f)
{
delay(1000); //消抖
if(anjian!=0x0f)
{
anjian=0x0f;
switch(anjian)
{
case(0x07): jianwei=0;break;
case(0x0b): jianwei=1;break;
case(0x0d): jianwei=2;break;
case(0x0e): jianwei=3;break;
}
anjian=0xf0;
switch(anjian)
{
case(0x70): jianwei=jianwei; break;
case(0xb0): jianwei=jianwei+4; break;
case(0xd0): jianwei=jianwei+8; break;
case(0xe0): jianwei=jianwei+12;break;
}
while((a<50)&&(anjian!=0xf0))
{
delay(1000);
a++;
}
dat(xianshi[jianwei]);
zancun[i]=jianwei;
i++;
}
}
}
void com(u8 c) //寫入命令
{
LCD_E=0; //關(guān)閉使能端
LCD_RW=0; //進(jìn)入 寫
LCD_RS=0; //選擇 命令
LCD_D=c; //輸入命令
delayms(1); //等待數(shù)據(jù)穩(wěn)定
LCD_E=1; //打開使能端
delayms(5); //延時1ms
LCD_E=0; //關(guān)閉使能端
}
void qingping() //清屏
{
com(0x06); //光標(biāo)右移
com(0x0c); //顯示光標(biāo)
com(0x38); //8線 1行 5×10
com(0x01); //清屏
com(0x80); //設(shè)置起點
}
void main()
{
u8 shi,ge;
qingping();
while(1)
{
junzhenanjian();
if(i==4)
{
switch(zancun[1])
{
case(0):jieguo=(shu[zancun[0]]*shu[zancun[2]]);break;
case(7):jieguo=(shu[zancun[0]]/shu[zancun[2]]);break;
case(11):jieguo=(shu[zancun[0]]-shu[zancun[2]]);break;
case(15):jieguo=(shu[zancun[0]]+shu[zancun[2]]);break;
}
if(jieguo>=10)
{
shi=jieguo/10;
ge=jieguo-shi*10;
dat(table[shi]);
dat(table[ge]);
}
else
dat(table[jieguo]);
i=0;
}
}
}
復(fù)制代碼
作者:
xysds
時間:
2019-8-22 20:43
拿來學(xué)習(xí),挺有用的。感謝
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1