⑴ 無線通信模塊包括哪些模塊
無線通信模塊廣泛地運用在車輛監控、遙控、遙測、小型無線網路、無線抄表、門禁系統、小區傳呼、工業數據採集系統、無線標簽、身份識別、非接觸RF智能卡、小型無線數據終端、安全防火系統、無線遙控系統、生物信號採集、水文氣象監控、機器人控制、無線232數據通信、無線485/422數據通信、數字音頻、數字圖像傳輸等領域中。
通信功能:支持GPRS和短消息雙通道傳輸數據;支持多中心數據通信。
採用功能:採集串口設備數據,如串口儀表、採集器、PLC等。
遠程管理功能:支持遠程參數設置、程序升級。
工業級設計,適用室外惡劣環境。
內置軟硬體看門狗,不死機,不掉線。
支持數據透明傳輸。
支持域名解析功能。
支持各家組態軟體和用戶自行開發軟體系統。
相比較而言,用無線數據傳輸模塊建立專用無線數據傳輸方式比其它方式具有如下優點,下面介紹一下用DATA-6106無線數傳模塊建立專用無線數據傳輸方式相比於有線通訊的優點。有線通信方式的建立必須架設電纜,或挖掘電纜溝,因此需要大量的人力和物力;而用無線數傳電台建立專用無線數據傳輸方式則無需架設電纜或挖掘電纜溝,只需要在每個終端連接無線數傳電台和架設適當高度的天線就可以了。相比之下用無線數傳模塊建立專用無線數據傳輸方式,節省了人力物力,投資是相當節省的。
⑵ 怎樣用51單片機做計算器啊
1、硬體模擬圖
4、程序源代碼
#include <reg51.h>#include <intrins.h>
#include <ctype.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
uchar operand1[9], operand2[9];
uchar operator;
void delay(uint);
uchar keyscan();
void disp(void);
void buf(uint value);
uint compute(uint va1,uint va2,uchar optor);
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
uchar dbuf[8] = {10,10,10,10,10,10,10,10};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan()
{
uchar skey;
P1 = 0xfe;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xee: skey = '7'; break;
case 0xde: skey = '8'; break;
case 0xbe: skey = '9'; break;
case 0x7e: skey = '/'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfd;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xed: skey = '4'; break;
case 0xdd: skey = '5'; break;
case 0xbd: skey = '6'; break;
case 0x7d: skey = '*'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfb;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xeb: skey = '1'; break;
case 0xdb: skey = '2'; break;
case 0xbb: skey = '3'; break;
case 0x7b: skey = '-'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xf7;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xe7: skey = '$'; break;
case 0xd7: skey = '0'; break;
case 0xb7: skey = '='; break;
case 0x77: skey = '+'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
return skey;
}
void main()
{
uint value1, value2, value;
uchar ckey, cut1 = 0, cut2 = 0;
uchar operator;
uchar i, bool = 0;
init:
buf(0);
disp();
value = 0;
cut1 = cut2 = 0;
bool = 0;
for(i = 0;i < 9;i++)
{
operand1[i] = '