标题:[讨论]想和單片機高手一起討論下這個簡單串口中斷程序是否能工作~
只看楼主
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
 问题点数:0 回复次数:4 
[讨论]想和單片機高手一起討論下這個簡單串口中斷程序是否能工作~
我編寫了一個串口中斷匯編程序,不復雜,調試也沒有出現問題,但是就是工作不了,我想和大家討論下究竟是什么錯誤導致它運行出錯~請大家幫忙...

T2CON EQU 0C8H
T2MOD EQU 0C9H
TR2 BIT T2CON.2
RCAP2L EQU 0CAH
RCAP2H EQU 0CBH
TH2 EQU 0CDH
TL2 EQU 0CCH
ET2 BIT IE.5        ;以上為定義

ORG 0000H          ;MAIN入口地址
LJMP MAIN

ORG 0023H          ;串口中斷地址
LJMP CHECKIT

ORG 30H
MAIN:
MOV SCON,#01010000B        ;串口工作在方式1,允許串口接受(REN=1)
MOV R0,#10H        

MOV T2CON,#00010100B
MOV T2MOD,#00000000B
MOV RCAP2H,#0FFH
MOV RCAP2L,#0D9H
MOV TH2,RCAP2H
MOV TL2,RCAP2L                             ;以上為利用T2作為串口波特率發生器的設置,波特率為9600

SETB EA                          ;開總中斷
SETB ES                         ;開串口中斷

SJMP $                             ;循環等待

ORG 100H
CHECKIT:                       ;串口中斷轉入的中斷子程序
JNB RI,$                          ;查詢接收完畢沒有,當RI=1時向下執行
CLR RI                             ;清除RI(接收中斷標志位)
SJMP SEND                            ;轉入到發送子程序

SEND:
MOV SBUF,R0                         ;把R0=10H由串口發送出去
JNB TI,$                                       ;等待發送完成
CLR TI                                         ;清除發送中斷標志位
SJMP SEND                               ;轉回到SAND子程序繼續執行,目的是不斷地從串口輸出數據

END                                ;結束

以上就是我的程序和注解,調試方面已經通過,燒到單片機里面發現,當我從用串口調試軟件從串口輸出一個數后,單片機進入不了中斷子程序CHECKIT,因為我嘗試在子程序中加上一個CPL P1.2發現P1.2腳的電壓沒有改變,這到底是什么回事,大家有沒有看出我的程序到底哪里漏了什么或者錯了什么,請告訴我謝謝!@!!!!

[此贴子已经被作者于2007-1-7 20:47:46编辑过]

搜索更多相关主题的帖子: EQU BIT 
2007-01-07 20:45
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
程序对了,不一定实验就能成功
我上次做VHDL实验的时候,程序是对的,但有的芯片就是出不来结果,而有的芯片却可以
所以不成功可能跟硬件有关

不过我没做过LZ这种实验,所以也不能判断程序是不是错了

2007-01-07 21:31
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
得分:0 
謝謝你的回帖,其實我是覺得為題應該是出在那個串口中斷上面,串口中斷應該是向串口發送一個字符,比如01H,那么就會引起一個串口中斷,是這樣嗎?我現在的意識里面就是這樣認為的,不知道你們能不能把串口中斷的流程說明清楚一下給我呢...謝謝
2007-01-07 21:36
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
不用谢
我对串口之类的不太懂,是不是直接发送字符硬件就能产生中断呢,要不要调用中断号

2007-01-07 22:20
wanchaoh
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-7-22
得分:0 
無錯拉
我覺得這個就是問題,
不是有兩種方式嗎?一種是中斷,一種是查詢
所以我才想上來看哪位能告訴我這個問題的答案呀...
謝謝...
2007-01-07 22:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114766-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.259389 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved