久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
主從機多機通信模型類似云臺解碼器一樣用跳線設置從機地址
[打印本頁]
作者:
liuyy
時間:
2015-1-11 20:08
標題:
主從機多機通信模型類似云臺解碼器一樣用跳線設置從機地址
#include //STC12C5AxxS2系列單片機頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
uchar DZ;//地址號,為接線方便本程序占用P1口用做手工地址設置后面的控制會對P1口無效
//一幀標準數據幀
int D=0; //緩沖區指針標志
uchar DATA[3]; //數據幀格式為【地址】【請求OR設置標志(1為請求2為設置,請求時數據位為空數據)】【IO口號0對應P0,1對應P1.....】【數據】
/*********************************************************************************************
函數名:毫秒級CPU延時函數
調 用:DELAY_MS (?);
參 數:1~65535(參數不可為0)
返回值:無
結 果:占用CPU方式延時與參數數值相同的毫秒時間
備 注:應用于1T單片機時i<600,應用于12T單片機時i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
/*********************************************************************************************
函數名:UART串口初始化函數
調 用:UART_init();
參 數:無
返回值:無
結 果:啟動UART串口接收中斷,允許串口接收,啟動T/C1產生波特率(占用)
備 注:振蕩晶體為12MHz,PC串口端設置 [ 4800,8,無,1,無 ]
/**********************************************************************************************/
void UART_init (void){
EA = 1; //允許總中斷(如不使用中斷,可用//屏蔽)
ES = 1; //允許UART串口的中斷
TMOD = 0x20; //定時器T/C1工作方式2
SCON = 0x50; //串口工作方式1,允許串口接收(SCON = 0x40 時禁止串口接收)
TH1 = 0xF3; //定時器初值高8位設置
TL1 = 0xF3; //定時器初值低8位設置
PCON = 0x80; //波特率倍頻(屏蔽本句波特率為2400)
TR1 = 1; //定時器啟動
}
/**********************************************************************************************/
/*********************************************************************************************
函數名:UART串口接收中斷處理函數
調 用:[SBUF收到數據后中斷處理]
參 數:無
返回值:無
結 果:UART串口接收到數據時產生中斷,用戶對數據進行處理(并發送回去)
備 注:過長的處理程序會影響后面數據的接收
/**********************************************************************************************/
void UART_R (void) interrupt 4 using 1{ //切換寄存器組到1
unsigned char UART_data; //定義串口接收數據變量
if(RI&&D<=3){
RI = 0; //令接收中斷標志位為0(軟件清零)
UART_data = SBUF; //將接收到的數據送入變量 UART_data
DATA[D]=UART_data;
D++;
}
}
/**********************************************************************************************/
/*********************************************************************************************
函數名:UART串口發送函數
調 用:UART_T (?);
參 數:需要UART串口發送的數據(8位/1字節)
返回值:無
結 果:將參數中的數據發送給UART串口,確認發送完成后退出
備 注:
/**********************************************************************************************/
void UART_T (unsigned char UART_data){ //定義串口發送數據變量
SBUF = UART_data; //將接收的數據發送回去
while(TI == 0); //檢查發送中斷標志位
TI = 0; //令發送中斷標志位為0(軟件清零)
}
/**********************************************************************************************/
/*********************************************************************************************
函數名:UART串口發送字符串函數
調 用:UART_TC (?);
參 數:需要UART串口發送的數據(8位/1字節)
返回值:無
結 果:向串口發送一個字符串,長度不限。
備 注:例:UART_TC("d9887321$"); 此函數需要#include 頭文件支持。
/**********************************************************************************************/
void UART_TC (unsigned char *str){
while(*str != '\0'){
UART_T(*str);
*str++;
}
*str = 0;
}
/**********************************************************************************************/
/*********************************************************************************************
函數名:主函數
調 用:無
參 數:無
返回值:無
結 果:程序開始處,無限循環
備 注:
/**********************************************************************************************/
void main (void)
{
uint x;
//地址初始化
DZ=P1;
//串口初始化
UART_init ();
while(1)
{
//地址初始化
DZ=P1;
if(D>3)
{
//已經收到一幀控制數據
if(DATA[0]==DZ)
{
if(DATA[1]==1)
{
//返回IO口狀態數據
switch( DATA[2])
{
case 0:
DATA[3]=P0;
for(x=0;x<=3;x++)
{
UART_T(DATA[x]);
}
break;
case 2:
DATA[3]=P2;
for(x=0;x<=3;x++)
{
UART_T(DATA[x]);
}
break;
}
}else if(DATA[1]==2)
{
//設置IO口狀態
switch( DATA[2])
{
case 0:
P0=DATA[3];
break;
case 2:
P2=DATA[3];
break;
}
}
}
D=0;
}
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久久久国产免费视网址
|
欧美日韩在线精品
|
成人在线欧美
|
成人黄在线观看
|
国产一区在线免费观看
|
热久色
|
久久久久91
|
欧美国产亚洲一区二区
|
日韩中文字幕在线视频
|
做a视频在线观看
|
久久一区二区三区四区
|
一区二区三区四区毛片
|
色狠狠一区
|
国产在线小视频
|
欧美综合在线观看
|
日本一本视频
|
日韩欧美国产一区二区
|
一区二区三区四区av
|
成人精品
|
国产91视频播放
|
午夜亚洲
|
少妇淫片aaaaa毛片叫床爽
|
天天射美女
|
夜夜艹
|
一区二区免费在线视频
|
午夜精品久久久久久久久久久久久
|
亚洲三区在线观看
|
日本免费一区二区三区四区
|
一级无毛片
|
亚洲性网
|
国产精品久久久久久婷婷天堂
|
国产精品一区二区免费
|
久久久久久亚洲
|
www.久久久久久久久
|
国产高清区
|
欧美日韩免费一区二区三区
|
成人精品在线视频
|
国产精品精品视频一区二区三区
|
av电影一区二区
|
欧洲一级毛片
|
精品一区二区三区在线观看
|