|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請大家?guī)蛡忙,很急。。51串口幀通訊)謝謝!! |
| 作者:zhibin21 欄目:單片機 |
真?zhèn)程序是一個采集數(shù)據(jù)并能根據(jù)主機需要將實時數(shù)據(jù)上傳的程序,串口數(shù)據(jù)要求用中斷方式傳送,并且采用幀傳送,現(xiàn)在串口中斷程序編好了,幀傳送怎么實現(xiàn),我不大清楚(現(xiàn)在不用考慮上位機),那位高人能幫幫忙。給我弄個程序例子或者相關(guān)的幀傳送資料都行,我的郵箱zhibin21@163.com qq 158373945 謝謝 #include <reg51.h> #include <string.h> #define uCHAR unsigned CHAR uCHAR r[4]; uCHAR t[4]; CHAR i=0,j=0; void fasong(void) { TI=0; SBUF=t[0]; j=1; } /*SCON SM0 SM1 SM2 REN TB8 RB8 TI RI*/ void serial_port() interrupt 4 using 1 /**/ { if(RI) { RI=0; if(i<4) { r[i]=SBUF; i=i+1; } } if(TI) { TI=0; if(j<4) { SBUF=t[j]; j=j+1; } } } void main() /*主程序--這個不用看*/ { TCON=0x01; /*0工作形式,脈沖下降有效*/ IE=0x91; /*開中斷,允許串口、INT0中斷*/ TMOD=0x20; /*引用:9600 定時1方式和初值*/ TL1=0xfd;TH1=0xfd; //16M晶振設置 SCON=0xd8;PCON=0x00; /*11011000 串口3模式,允許接收;電源未設*/ TR1=1; /*計數(shù)器啟動???*/ while(1) { } } |
| 2樓: | >>參與討論 |
| 作者: xuhuadong 于 2005/7/7 9:23:00 發(fā)布:
我不明白你的意思 串口是不是發(fā)送一串數(shù)據(jù),有頭有尾的,說明白點 |
|
| 3樓: | >>參與討論 |
| 作者: thw 于 2005/7/7 9:50:00 發(fā)布:
定時器益處提供波特率把SBUF發(fā)出去啊 |
|
| 4樓: | >>參與討論 |
| 作者: zhibin21 于 2005/7/7 10:10:00 發(fā)布:
謝謝 請繼續(xù)看 xuhuadong 發(fā)表于 2005-7-7 09:23 侃單片機 ←返回版面 我不明白你的意思 串口是不是發(fā)送一串數(shù)據(jù),有頭有尾的,說明白點 對 我現(xiàn)在做的是機器手臂的一個光電碼盤(和機械鼠標原理一樣),碼盤的轉(zhuǎn)數(shù)放在寄存器里,當上位機給信號,就把碼盤的轉(zhuǎn)數(shù)傳過去。因為現(xiàn)在不能確定讀數(shù)的范圍(加了齒輪組會很大)所以把數(shù)保存在數(shù)祖中,F(xiàn)在所要實現(xiàn)的就是把當前數(shù)組用幀的格式傳送 |
|
| 5樓: | >>參與討論 |
| 作者: zhibin21 于 2005/7/7 13:36:00 發(fā)布:
ziji自己頂一下 |
|
| 6樓: | >>參與討論 |
| 作者: zhibin21 于 2005/7/8 15:02:00 發(fā)布:
誰有通信協(xié)議方面的資料給我傳分也好啊 謝謝 我現(xiàn)在做的是機器手臂的一個光電碼盤(和機械鼠標原理一樣),碼盤的轉(zhuǎn)數(shù)放在寄存器里,當上位機給信號,就把碼盤的轉(zhuǎn)數(shù)傳過去。因為現(xiàn)在不能確定讀數(shù)的范圍(加了齒輪組會很大)所以把數(shù)保存在數(shù)祖中,F(xiàn)在所要實現(xiàn)的就是把當前數(shù)組用幀的格式傳送 zhibin21@163.com 誰有通信協(xié)議方面的資料給我傳分也好啊 謝謝 |
|
| 7樓: | >>參與討論 |
| 作者: ketp 于 2005/7/8 15:20:00 發(fā)布:
- 你現(xiàn)在就是幀啦,j多大,幀就多大。 |
|
| 8樓: | >>參與討論 |
| 作者: zyncn 于 2005/7/8 15:44:00 發(fā)布:
幀 一般幀是隨你定義的,通常是有一個字節(jié)的幀頭+幀長度+命令+數(shù)據(jù)+校驗+幀尾。一般長度用一個字節(jié),幀長度個傳輸效率有關(guān),要看你一般的數(shù)據(jù)長度。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |