找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1588|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

為什么89C2051單片機(jī)P1每位輸出總是低電平 附匯編代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:997011 發(fā)表于 2022-1-5 16:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
藍(lán)牙與51交叉連接,P1.0接1.5K上拉電阻。給藍(lán)牙發(fā)信息P1每位輸出總是低電平。懇請大家指教。程序如下;
ORG 0000H
SJIMP MAIN
ORG 0060H
MAIN:
MOV P1,#00H
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV PCON,#0
MOV SCON,#50H
SETB EA
SETB ES
SETB TR1
LOOP:
JNB  RI,$
MOV P1.SBUF
CLR RI
JMP LOOP
END
END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:955673 發(fā)表于 2022-1-5 17:08 | 只看該作者
是你設(shè)置的哈
MOV P1,#00H
回復(fù)

使用道具 舉報(bào)

板凳
ID:997011 發(fā)表于 2022-1-5 18:29 | 只看該作者
冰火風(fēng)輪 發(fā)表于 2022-1-5 17:08
是你設(shè)置的哈
MOV P1,#00H

那是初始設(shè)置,之后應(yīng)是LOOP循環(huán)中SBUF賦予的值呀。
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2022-1-5 23:45 | 只看該作者
要么
SETB EA
SETB ES
這兩句去掉。

要么

CSEG   AT  0023H
JBC  RI,Run_INT
RETI
Run_INT:
MOV P1.SBUF
RETI
回復(fù)

使用道具 舉報(bào)

5#
ID:997011 發(fā)表于 2022-1-6 13:13 | 只看該作者

首先感謝總工的回復(fù)解答,試過之后不成就開始懷疑是否自己哪里有問題。檢查硬件才發(fā)現(xiàn)自己犯了不該有的低級錯(cuò)誤。原因是藍(lán)牙的TXD與51的RXD在線路板上連接處有虛焊,導(dǎo)制51根本收不到任何數(shù)據(jù)。原程序是沒問題的。我原先是用過中斷編程的。后來沒把那兩句去掉,應(yīng)按總工的提示去作使程序更簡睫。
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-1-8 13:16 來自觸屏版 | 只看該作者
源程序是有問題的,你開了es,就必須在0023寫中斷函數(shù),并且有reti返回,不然你只要發(fā)了串口數(shù)據(jù),就會PC入棧,而沒有PC出棧,堆棧溢出只是早晚的事,雖然你這個(gè)程序沒有用到r寄存器,也許溢出后繞個(gè)圈,還能接著溢出,但是這種寫法本來就是跑飛的寫法。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表