我做了一個VB與單片機通訊的程序,主機是微機,從機單片機使用AT89C52,從機ID號=01h或者02h時通訊正常,主機叫號時單片機向微機發送從機ID號。當從機ID號=31h時,主機叫號時單片機不發送從機ID號。調試程序使用串口精靈,軟仿真沒有發現問題,缺少仿真器不能進行仿真不知道問題在那里。因為本人是一個養牛農民,水平太低,向各位老師請教!程序如下:主意紅色部分。本人郵箱:lyz8421@163.com
jh EQU 01h ;從機ID號=01H,通訊正常收到從機號 jh EQU 31h ;從機ID號=31H,接收不到從機號 org 0000h sjmp main ;轉主程序 org 0023h ;中斷入口地址 ljmp sm ; 轉收碼程序 org 0030h ; main: setb p1.0 ;準備接收數據 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 ;關串口中斷 clr ri mov a, sbuf ;接收第一個數據(叫號) xrl a, #jh ;異或,和本機號比較* jnz return ;不是本機號,則退出 clr p1.0 ;485工作時p1.0為1發送,為0接收 mov a,#jh ;發送本機編號 mov sbuf, a . . . return: ;結束中斷 end
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |