|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這是我人生的第一個程序-8251,請求大蝦給予指導(dǎo) |
| 作者:ccjchen 欄目:嵌入式系統(tǒng) |
我現(xiàn)在使用了簡單的三線通信,即8251的rxd通過MAX232后與電腦的txd相連,8251的txd通過MAX232后與電腦的rxd相連;接地信號相連;然后是電腦自己的rts,cts相連,dsr,dtr相連;8251自己的rts,cts相連,dsr,dtr相連;8251的其他引腳都有信號,為什么txd還是沒信號?不能發(fā)也不能收,用過去的匯編卻通信正常。 #define _TEST_C_ #include "reg52.h" #include "stdlib.h" #include "absacc.h" #include "intrins.h" #include "test.h" #include "math.h" #define uCHAR unsigned CHAR #define uint unsigned int #define COM8251 XBYTE[0x8701] #define DAT8251 XBYTE[0x8700] uCHAR data_temp[10]={0xAA,0x10,0x22,0x32,0x00}; uCHAR m=0,n=0,k; uCHAR s; void wait(uCHAR p,q); void main(void) { wait(11,82);//8251工作速度慢,每送一個控制字,等待一會兒延時2ms COM8251 = 0x00; wait(11,82); COM8251 = 0x00; wait(11,82); COM8251 = 0x00; wait(11,82); COM8251 = 0x40;//以上為8251復(fù)位部分 wait(11,82); COM8251 = 0x4e;//9600baud,1停止位,無校驗,8位數(shù)據(jù),X16 wait(11,82); COM8251 = 0x37; while(1) { DAT8251 = data_temp[m];//寫 m++; if (m==4) { m = 0; } } } void wait(uCHAR p,q) { uCHAR i,j; //(2*j+3)*i+4 for (i=p;i>0;i--) for (j=q;j>0;j--); } |
| 2樓: | >>參與討論 |
| 作者: ccjchen 于 2007/3/8 15:24:00 發(fā)布:
我的程序幾乎是那個匯編的翻版,依然不行啊 |
|
| 3樓: | >>參與討論 |
| 作者: ccjchen 于 2007/3/8 16:04:00 發(fā)布:
這種情況怎么回事。? 發(fā)送時8251TXD有正確波形,可是從MAX232出來后,就沒有波形了。 開始時用萬用表測試,MAX232各引腳電壓完全正常。從MAX232出來以后,應(yīng)該波形一樣, 只是幅度變化? |
|
| 4樓: | >>參與討論 |
| 作者: high 于 2007/3/8 19:54:00 發(fā)布:
電腦的tx發(fā)送,示波器觀察232cmos端rx是否有信號 常見錯誤是104電容沒有焊接,或沒有正確,或虛焊。 簡單的話,其實就連結(jié)3線就行了,其他rts,cts...可以不管 void wait(uchar p,q);--這不是好習(xí)慣。 void wait(uchar p , uchar q); |
|
| 5樓: | >>參與討論 |
| 作者: 將軍令 于 2007/3/9 8:03:00 發(fā)布:
支持一下,良好的開端 |
|
| 6樓: | >>參與討論 |
| 作者: ccjchen 于 2007/3/9 13:03:00 發(fā)布:
謝謝啊,樓上的兄弟! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |