欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)串口計(jì)算器源碼
[打印本頁(yè)]
作者:
kaiaki123
時(shí)間:
2017-7-21 15:48
標(biāo)題:
單片機(jī)串口計(jì)算器源碼
這個(gè)計(jì)算器的結(jié)果是在電腦串口上面顯示的
串口計(jì)算器所有資料51hei提供下載:
串口練習(xí).zip
(22.33 KB, 下載次數(shù): 37)
2017-7-21 15:48 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
單片機(jī)源程序如下:
#include<reg52.h>
#include<intrins.h>
// # include <stdlib. h>
#include<math.h>
sbit dula=P2^6; //段選信號(hào)的鎖存器控制
sbit wela=P2^7; //位選信號(hào)的鎖存器控制 ,0x77,0x7c,0x39,0x5e,0x79,0x71
bit flag0=0; //"="號(hào)按鍵標(biāo)志
bit flag1=0; //"+"號(hào)按鍵標(biāo)志
bit flag2=0; //"-"號(hào)按鍵標(biāo)志
bit flag3=0; //"*"號(hào)按鍵標(biāo)志
bit flag4=0; //"^"號(hào)按鍵標(biāo)志
bit flag5=0; //清楚標(biāo)志
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int j,t,sum,s1=0,s2=0,a1,a2,a3;
uint m;
void delay(unsigned int i)
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}
void display(uint s)
{
P0=0xfe;
wela=1;
wela=0;
P0=table[s/100];
dula=1;
dula=0;
delay(6);
P0=0xfd;
wela=1;
wela=0;
P0=table[s%100/10];
dula=1;
dula=0;
delay(6);
P0=0xfb;
wela=1;
wela=0;
P0=table[s%10];
dula=1;
dula=0;
delay(6);
}
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
InitUART();
while(1)
{
display(sum);
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
m= SBUF;
SendOneByte(m);
if((m-0x30)>=0 && (m-0x30)<=9)
{
s1=s1*10+(m-0x30);
// display(m);
}
switch(m)
{
case 0x2B:{ s2=s1;s1=0;flag1=1;}break; //加法
case 0x2a:{s2=s1; s1=0;flag3=1;}break; //乘法
case 0x2d: {s2=s1; s1=0;flag2=1;}break; //減法
case 0x5e: {s2=s1; s1=0;flag4=1;}break; //冪運(yùn)算
case 0x3d: flag0=1; break; //"="號(hào)按鍵
case 0xFF: flag5=1; break; //"/"號(hào)按鍵
default: break;
}
if(flag0==1)
{ if(flag1==1)
{
sum=0;
sum=s1+s2;
}
else if(flag3==1)
{
sum=s1*s2;
}
else if(flag2==1)
{
sum=s2-s1;
}
else if(flag4==1)
{
sum=pow(s1,s2);
}
display(sum);
a1=sum/10;
a2=sum%10;
SendOneByte(a1+0x30);
SendOneByte(a2+0x30);
}
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
作者:
盧卡
時(shí)間:
2020-1-1 23:39
本帖最后由 盧卡 于 2020-1-2 00:00 編輯
感謝,如果加上圖片更好
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1