音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請(qǐng)大俠指點(diǎn)一下兄弟,我這個(gè)串口程序?yàn)槭裁村e(cuò)誤?

作者:lidongcumt 欄目:單片機(jī)
請(qǐng)大俠指點(diǎn)一下兄弟,我這個(gè)串口程序?yàn)槭裁村e(cuò)誤?
     ORG 0000H
     SJMP MAIN
     ORG 0003H
     SJMP INT0
     ORG 0023H
     SJMP TXSVE
     ORG 0050H
MAIN:MOV TMOD,#20H
     MOV TL1,#0E6H
     MOV TH1,#0E6H
     MOV PCON,#80H
     SETB TR1
     MOV SCON,#40H
     SETB EA
     SETB EX0
     MOV R0,#00H
WAIT:SJMP $
INT0:SETB ES
     RETI
TXSVE:CLR ES
      CLR TI
      MOV A,R0
      MOV P1,A
      MOV C,PSW.0
      CPL C
      MOV ACC.7,C
      MOV SBUF,A
      INC R0
      RETI
      END
這是一個(gè)串口異步方式1下的發(fā)送程序,單片機(jī)頻率12M,波特率2400,奇校驗(yàn).我是希望按一下外部中斷0按鍵發(fā)送一次數(shù)據(jù),數(shù)據(jù)依次加一,同時(shí)送P1口二極管顯示.但是我這個(gè)程序不能工作,連二極管也不亮.為什么??請(qǐng)大家指點(diǎn)一下.

2樓: >>參與討論
Ellensky
T1的初值不對(duì)吧
12M的頻率,2400的波特率。T1的初值應(yīng)該是F3H

3樓: >>參與討論
lidongcumt
補(bǔ)充一點(diǎn)
補(bǔ)充一點(diǎn),我是用這個(gè)程序和電腦通信,電腦上用的是通信測(cè)試軟件.

4樓: >>參與討論
Ellensky
T1
 
5樓: >>參與討論
lidongcumt
Ellensky
Ellensky
T1的初值應(yīng)該是F3H?
你怎么算出來(lái)的?


6樓: >>參與討論
Ellensky
不好意思,對(duì)的,我沒(méi)注意你的SMOD=1
 
7樓: >>參與討論
Ellensky
把頻率改為11.0592試試
 
8樓: >>參與討論
lidongcumt
Ellensky
這個(gè)沒(méi)法改

9樓: >>參與討論
wo21
程序錯(cuò)誤,根本就進(jìn)不了串口中斷。。。。
你只是在INT0中打開(kāi)串口,然后就回主程序執(zhí)行,在主程序中又沒(méi)有發(fā)送數(shù)據(jù),所以根本就進(jìn)不了串口中斷。

10樓: >>參與討論
wo21
不信的話你可以單步執(zhí)行看是否能進(jìn)串口中斷。。。
 
11樓: >>參與討論
lidongcumt
這樣可以嗎?
     ORG 0000H
     SJMP MAIN
     ORG 0003H
     SJMP INT0
     ORG 0023H
     SJMP TXSVE
     ORG 0050H
MAIN:MOV TMOD,#20H
     MOV TL1,#0E6H
     MOV TH1,#0E6H
     MOV PCON,#80H
     SETB TR1
     MOV SCON,#40H
     SETB EA
     SETB EX0
     MOV R0,#00H
     MOV A,R0
     MOV SBUF,A
WAIT:SJMP $
INT0:SETB ES
     RETI
TXSVE:CLR ES
      CLR TI
      INC R0
      MOV A,R0
      CPL A
      MOV P1,A
      MOV C,PSW.0
      CPL C
      MOV ACC.7,C
      MOV SBUF,A
      RETI
      END

12樓: >>參與討論
lidongcumt
謝謝!!!你說(shuō)的對(duì),現(xiàn)在能進(jìn)入串口中斷了.
但通信還是不行
是單片機(jī)程序問(wèn)題,還是上位機(jī)問(wèn)題

13樓: >>參與討論
wo21
這樣不行!
好好設(shè)計(jì)一下程序流程,你這樣只能進(jìn)一次串口中斷。。。。

14樓: >>參與討論
lidongcumt
wo21
 wo21
你看應(yīng)該怎么改?
我不明白為什么要先發(fā)送一個(gè)數(shù)據(jù)才能進(jìn)入中斷?
初始化時(shí)TI不是等于1嗎???

15樓: >>參與討論
電子老鷹
不發(fā)送數(shù)據(jù),怎么會(huì)有中斷標(biāo)志?
TI是硬件置位,你自己不可能做到.上電復(fù)位是0.

你的情況,應(yīng)該在按鍵中斷里完成發(fā)送工作.用查詢方式判斷是否發(fā)完.

你現(xiàn)在的情況,在按鍵中斷里開(kāi)串口中斷,好象要牽涉到優(yōu)先級(jí)問(wèn)題.具體自己琢磨吧.

至于上位機(jī)收不到數(shù)據(jù),沒(méi)仔細(xì)看你程序,但感覺(jué)波特率應(yīng)該先查下.誤差好象不要大于5%. 否則,應(yīng)將初值改為F3,SMOD=0. 另外上位軟件參數(shù)要設(shè)置正確.

16樓: >>參與討論
wo21
改!
兩種辦法,不必用串口中斷即可。
1.在INT0中發(fā)送串口數(shù)據(jù),就不用串口中斷了。
     ORG 0000H
     SJMP MAIN
     ORG 0003H
     SJMP INT0
     ORG 0050H
MAIN:MOV TMOD,#20H
     MOV TL1,#0E6H
     MOV TH1,#0E6H
     MOV PCON,#80H
     SETB TR1
     MOV SCON,#40H
     MOV R0,#00H
     SETB EA
     SETB EX0
WAIT:SJMP $
INT0:MOV A,R0
     MOV P1,A
     MOV C,PSW.0
     CPL C
     MOV ACC.7,C
     MOV SBUF,A
     JNB TI,$
     CLR TI
     RETI
     END
2.在主程序中設(shè)一標(biāo)志位,40H,初始化為0。判斷40H,若為1則發(fā)送數(shù)據(jù),0則等待。
     ORG 0000H
     SJMP MAIN
     ORG 0003H
     SJMP INT0
     ORG 0050H
MAIN:MOV TMOD,#20H
     MOV TL1,#0E6H
     MOV TH1,#0E6H
     MOV PCON,#80H
     SETB TR1
     MOV SCON,#40H
     SETB EA
     SETB EX0
     SETB ES
     MOV R0,#00H
     MOV 40H,#00H
WAIT:MOV A,40H
     CJNE A,#1,WAIT
     MOV A,R0
     MOV P1,A
     MOV C,PSW.0
     CPL C
     MOV ACC.7,C
     MOV SBUF,A
     JNB TI,$
     CLR TI     
     MOV 40H,#00H
     AJMP  WAIT
INT0:MOV 40H,#1
     RETI
     END



17樓: >>參與討論
lidongcumt
還是有問(wèn)題啊
通信還是不行啊

18樓: >>參與討論
wo21
琢磨琢磨!
兄弟,還是你自己弄吧。先單步在電腦上調(diào)試好了,再寫(xiě)入片子,我?guī)筒涣四懔耍?br>
19樓: >>參與討論
lidongcumt
謝謝!!!
 
20樓: >>參與討論
lidongcumt
想了一天了,還是不行
 ORG 0000H
     SJMP MAIN
     ORG 0003H
     SJMP INT0
     ORG 0050H
MAIN:MOV TMOD,#20H
     MOV TL1,#0F3H
     MOV TH1,#0F3H
     MOV PCON,#00H
     SETB TR1
     MOV SCON,#40H
     MOV R0,#00H
     SETB EA
     SETB EX0
WAIT:SJMP $
INT0:MOV A,R0
     CPL A
     MOV P1,A
     MOV A,R0
    ; MOV C,PSW.0
    ; CPL C
    ;MOV ACC.7,C
     MOV SBUF,A
     JNB TI,$
     CLR TI
     INC R0
     RETI
     END
上位機(jī)用的調(diào)試軟件是  串口調(diào)試助手V2.2
我把上位機(jī)的TXD\RXD相連,讓上位機(jī)自己收發(fā)沒(méi)問(wèn)題;單片機(jī)的TXD\RXD也有電壓波動(dòng),應(yīng)該也有輸出.但為什么不能通信???
沒(méi)辦法還需要高手指點(diǎn).
我想了幾天了



21樓: >>參與討論
電子老鷹
看你挺可憐的.
怎么搞這么長(zhǎng)時(shí)間.
我簡(jiǎn)單看了你的程序,串口部分的設(shè)置和運(yùn)行沒(méi)什么問(wèn)題.
把與串口無(wú)關(guān)的東西屏蔽掉,直接在主程序里發(fā)送數(shù)據(jù),看成功否.
若還不成功,可能是硬件問(wèn)題.檢查232電路,細(xì)節(jié)也不放過(guò),不要想當(dāng)然.
另外上位機(jī)設(shè)置應(yīng)該是"波特率2400,8位數(shù)據(jù),無(wú)奇偶校驗(yàn)".上位機(jī)能自己收發(fā)說(shuō)明不了你的問(wèn)題,只能說(shuō)上位機(jī)本身是好的.
哦還有COM口別插錯(cuò)或選錯(cuò).

也就這么些東西了.感覺(jué)你好象某個(gè)細(xì)節(jié)沒(méi)弄清楚.

* - 本貼最后修改時(shí)間:2006-4-10 20:32:26 修改者:電子老鷹

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
新手:MCS-51系列單片機(jī)I/0口的驅(qū)動(dòng)能力是多少?
單片機(jī)連網(wǎng) TCP/IP
介紹一款單片機(jī)的軟件仿真器
俺哭的冒鼻涕泡了,看看吧
32位LED顯示,程序方面如何保證亮度
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)