使用單片機制作一個十以內加減法串口計算器,如通過串口向單片機發送1+2時,單片機需要通過串口發出結果3
使用單片機制作一個十以內加減法串口計算器,如通過串口向單片機發送1+2時,單片機需要通過串口發出結果3
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 receive[5];
u16 i=0;
u8 sum;
void UsartInit()
{
TMOD=0x20;
TH1=0xf9;
TL1=0xf9;
PCON=0x80;
TR1=1;
SCON=0x50;
EA=1;
ES=1;
}
void main()
{
UsartInit();
while(1);
}
void Uasart() interrupt 4
{
ES=0;
receive[i++]=SBUF;
if(i==3 )
{
i=0;
switch(receive[1])
{
case '+': sum=receive[0]+receive[2]-48;break;
case '-': sum=receive[0]-receive[2]+48;break;
}
SBUF=sum;
while(!TI);
TI=0;
}
ES=1;
RI=0;
}
uj5u.com熱心網友回復:
case '+': sum=receive[0]+receive[2]-48后-48,什么意思?
不理解。
uj5u.com熱心網友回復:
48是0的ASCII值,就是將ASCII碼轉換成數字
uj5u.com熱心網友回復:
不知道是不是--用工控機里面的字串--來讀取51單片機的程式和轉換到工控機--PLC來讀取想換引數的??請大神幫幫忙解答我的我問題--51 單片機的讀寫和plc--怎么通信的??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/35585.html
標籤:單片機/工控
上一篇:小白學C語言之簡易版掃雷游戲
