我做了一個(gè)VB與單片機(jī)通訊的程序,主機(jī)是微機(jī),從機(jī)單片機(jī)使用AT89C52,從機(jī)ID號(hào)=01h或者02h時(shí)通訊正常,主機(jī)叫號(hào)時(shí)單片機(jī)向微機(jī)發(fā)送從機(jī)ID號(hào)。當(dāng)從機(jī)ID號(hào)=31h時(shí),主機(jī)叫號(hào)時(shí)單片機(jī)不發(fā)送從機(jī)ID號(hào)。調(diào)試程序使用串口精靈,軟仿真沒有發(fā)現(xiàn)問題,缺少仿真器不能進(jìn)行仿真不知道問題在那里。因?yàn)楸救耸且粋(gè)養(yǎng)牛農(nóng)民,水平太低,向各位老師請教!程序如下:主意紅色部分。本人郵箱:lyz8421@163.com
jh EQU 01h ;從機(jī)ID號(hào)=01H,通訊正常收到從機(jī)號(hào) jh EQU 31h ;從機(jī)ID號(hào)=31H,接收不到從機(jī)號(hào) org 0000h sjmp main ;轉(zhuǎn)主程序 org 0023h ;中斷入口地址 ljmp sm ; 轉(zhuǎn)收碼程序 org 0030h ; main: setb p1.0 ;準(zhǔn)備接收數(shù)據(jù) mov th1,#0fdh mov tl1,#0fdh ;9.6k po mov scon,#0f0h ;方式1=50h,方式3=f0h mov pcon, #00h mov ie,#82h setb tr1 setb ea wait: sjmp wait ;中斷通訊程序子程序 sm: push psw push acc clr es ;關(guān)串口中斷 clr ri mov a, sbuf ;接收第一個(gè)數(shù)據(jù)(叫號(hào)) xrl a, #jh ;異或,和本機(jī)號(hào)比較* jnz return ;不是本機(jī)號(hào),則退出 clr p1.0 ;485工作時(shí)p1.0為1發(fā)送,為0接收 mov a,#jh ;發(fā)送本機(jī)編號(hào) mov sbuf, a . . . return: ;結(jié)束中斷 end
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |