音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

求助:簡(jiǎn)單de中斷程序被我都看傻了!

作者:tc9148 欄目:單片機(jī)
求助:簡(jiǎn)單de中斷程序被我都看傻了!
;定時(shí)器0工作方式1,定時(shí)1秒,產(chǎn)生中斷,p2.0接一個(gè)發(fā)光led                   
                ORG 0000H
                LJMP MAIN
                ORG 000BH
                LJMP TIME0
                ORG 0100H
            MAIN: MOV A,#0FFH
                  MOV R2,#0
                  MOV TMOD,#01H
                  MOV TH0,#3CH
                  MOV TL0,#0B0H
                  SETB ET0
                  SETB EA
                  SETB TR0
                L0:MOV P2,A
                  SJMP L0
;--------中斷服務(wù)程序                 
              TIME0: MOV TH0,#3CH
                  MOV TL0,#0B0H
                  INC R2
                  CJNE R2,#20,L1
                  CPL A
                  MOV R2,#0
                L1:RETI
                  END
受不了了!我都調(diào)試1個(gè)星期了,準(zhǔn)確的說(shuō),是思考了一個(gè)星期,快瘋了!

2樓: >>參與討論
happytang
怎么啦?
基本程序書上都有,你怎么啦

3樓: >>參與討論
tc9148
我也相信書上說(shuō)的,我也相信你們也都是成功過(guò)。
但是具體到我做的,就有問(wèn)題了,
我反復(fù)檢查了
硬件沒有問(wèn)題
這個(gè)程序也是好像沒有問(wèn)題
用下載線對(duì)s51燒寫的,

4樓: >>參與討論
taoest
什么樣的現(xiàn)象呢?
什么樣的現(xiàn)象呢?

5樓: >>參與討論
南方的老樹
RE:
L1:     SETB    ET0        ;允許定時(shí)器0中斷
        SETB    TR0        ;啟動(dòng)定時(shí)器0   
        RETI
        END

試試看!

6樓: >>參與討論
yuansuini
中斷標(biāo)志是硬件清的嗎?
 
7樓: >>參與討論
joy1zhou
是你傻了還是中斷程序傻了
 
8樓: >>參與討論
joy1zhou
注意你用了P2.0
不知道你用的什么芯片,P2.0是否可用?
另外,也不知道你增強(qiáng)了LED的驅(qū)動(dòng)沒有。

9樓: >>參與討論
南方的老樹
原來(lái)的程序沒有問(wèn)題,應(yīng)該是單片機(jī)沒有工作
在學(xué)習(xí)板上已經(jīng)編譯并運(yùn)行驗(yàn)證為正確了
查晶振、瓷片電容,或者上電復(fù)位和看門狗是否工作
還有就是正如樓上所說(shuō)的,改成mov P1,A試試看


* - 本貼最后修改時(shí)間:2005-10-18 4:30:09 修改者:南方的老樹

10樓: >>參與討論
阿西西里
回復(fù)
1,普通的51單片機(jī)的P2口是沒有輸出鎖存的你可以把P2口換成P1口
2,不要把         L0:MOV P2,A
                  SJMP L0
放在主程序中,沒有必要在主程序中不斷的跳轉(zhuǎn),耗資源
把這些放在中斷里執(zhí)行比較優(yōu)化
3,進(jìn)中斷最好堆棧,養(yǎng)成好的風(fēng)格

還有就是“南方的老樹 ”的
在中斷里開中斷沒有必要的
樓主的程序進(jìn)中斷的時(shí)候并
沒有關(guān)中斷

11樓: >>參與討論
yanfengzhu
理論上程序沒問(wèn)題,應(yīng)該是硬件問(wèn)題
 
12樓: >>參與討論
qjy_dali
樓主先說(shuō)話:用的哪個(gè)具體型號(hào)的MCU?
 
13樓: >>參與討論
tc9148
用的是AT89S51,我用下載線燒寫程序
大家想想看

14樓: >>參與討論
tc9148
關(guān)鍵關(guān)鍵是:當(dāng)我改成查詢中斷(TF0)時(shí),一點(diǎn)問(wèn)題也沒有
真是想不通

15樓: >>參與討論
hwlijianch
程序沒有問(wèn)題
程序是沒有問(wèn)題的,方便的話把硬件電路圖貼出來(lái)。

16樓: >>參與討論
oldzhang
試驗(yàn)一下這個(gè)程序
  ORG  0000H
  LJMP MAIN
  ORG  000BH
  MOV  TL0,#0B0H
  MOV  TH0,#3CH
  DJNZ 20H,NEXT
  MOV  20H,#10
  CPL  P2.0
NEXT:
  RETI
MAIN:
  MOV  TMOD,#1
  SETB ET0
  SETB EA
  MOV  20H,#10
  SETB TR0
  SJMP $
你試驗(yàn)一下,如果不行,把CPL P2.0 改為CPL P1.0試驗(yàn).     

* - 本貼最后修改時(shí)間:2005-10-16 10:08:10 修改者:oldzhang

17樓: >>參與討論
g2004
別抱著一棵死樹吊死
這么簡(jiǎn)單的程序,既然調(diào)試不能通過(guò),就應(yīng)該換一個(gè)思路,重新調(diào)試,為什么一定要抱著一棵死樹吊死呢?從側(cè)面反映出摟主的應(yīng)變能力太差了哦。

18樓: >>參與討論
tc9148
因?yàn)槲乙〞r(shí),所以必須用中斷,如果用查詢的會(huì)有很大的誤差存在
 
19樓: >>參與討論
born
你的SP 堆棧指針 怎沒有設(shè)置?????
 
20樓: >>參與討論
2shift
中斷服務(wù)程序沒有保護(hù)那些應(yīng)該保護(hù)的東西。!
 
21樓: >>參與討論
tc9148
我也沒有多少東西值得要保護(hù)阿!
 
22樓: >>參與討論
陳雙君
你那個(gè)PSW去保擴(kuò)一下呀
各個(gè)標(biāo)志位去保護(hù)一下呀。
或是再寫一個(gè)得了。

23樓: >>參與討論
linwei1234
LED接在端口和VCC,程序是OK的!
也有可能復(fù)位不良!
在復(fù)位時(shí)多加點(diǎn)NOP


24樓: >>參與討論
kanprin
不清楚!
沒有說(shuō)電路的接法, 也沒說(shuō)現(xiàn)象和你預(yù)期的結(jié)果有何出入,難以理解.不過(guò)基本定時(shí)為50MS的,我不確定眼睛能不能分辨出你的LED是否有閃亮,因?yàn)槟阒袛喾祷睾罅⒓淳桶褵魷缌?如果LED是共陽(yáng)接法)。僅調(diào)試上面的程序是沒必要作什么保護(hù),不過(guò)習(xí)慣不是很好。有中斷最好都要在進(jìn)入時(shí)做些相應(yīng)的保護(hù)動(dòng)作。以上程序沒有其他的邏輯錯(cuò)誤,可能就是時(shí)間不夠吧。要不在等待中斷時(shí)改為AJMP $
而不像你上面一樣一直滅燈。

25樓: >>參與討論
pheavecn
標(biāo)志都不保護(hù),該 死.
 
26樓: >>參與討論
liujj
肯定有問(wèn)題,問(wèn)題還不小
1,程序開始,應(yīng)該加MOV SP,#70H
2.進(jìn)入中斷時(shí)要進(jìn)行現(xiàn)場(chǎng)保護(hù)
在中斷中,你用到寄存器A,R2,要保護(hù)
PUSH PSW
PUSH ACC
PUSH R2
3。T0不需要每次都賦值
好好再看看書,多看幾遍


27樓: >>參與討論
yang886
各位說(shuō)的沒錯(cuò),問(wèn)題出在那,數(shù)據(jù)沒有保護(hù),我好象在將廢話
 
28樓: >>參與討論
skybean
沒有清TF0
中斷里必須要清 TF0, 否則會(huì) 重復(fù)中斷

29樓: >>參與討論
2shift
tf0,tf1在中斷服務(wù)程序里面,硬件會(huì)清除的
 
30樓: >>參與討論
kanprin
re:  liujj
你說(shuō)的有些錯(cuò)了, 有些對(duì)了, 我早上說(shuō)的也錯(cuò)了些,呵呵,都沒考慮清楚就說(shuō)了的。 A要保護(hù),R2 一定不能保護(hù),這樣應(yīng)該才對(duì)!而MOV SP #70H, 似乎沒有花去太多的RAM空間。因?yàn)楸纠杏玫降闹袛嗖欢。默認(rèn)的SP好像是從07H單元開始吧,應(yīng)該夠用。而保護(hù)了A以后,這個(gè)程序中的中斷也就沒有意義了,改為位操作吧,進(jìn)入中斷后,你的CPL A, 改為 CPL P2.0 應(yīng)該就可以看到效果了。

31樓: >>參與討論
hb923
把中斷里面的R2改成R3.OK!
 
32樓: >>參與討論
xiaoyu9632
還得好好看書
你的程序還沒有入門呢,
CNT        EQU    30H

          ORG     0000H
                LJMP     MAIN

                ORG     000BH
                LJMP     TIME0

MAIN:
                MOV     TMOD,#01H
                MOV     TH0,#3CH
                MOV    TL0,#0B0H
                SETB     ET0
                SETB     EA
                SETB     TR0

                SJMP     $
;--------中斷服務(wù)程序-------------------
TIME0:
         PUSH    A
         PUSH    PSW
                   MOV     TH0,#3CH
                MOV     TL0,#0B0H
                INC    CNT
                MOV    A,CNT
                CJNE    A,#20,$+7
                MOV     CNT,#0
         CPL    P2.0            

         POP    PSW
         POP    A
                RETI

                END
要讓P2.0翻轉(zhuǎn)嗎?用這個(gè)程序就可以了

33樓: >>參與討論
gaoz2003
中斷未保護(hù)
 
34樓: >>參與討論
teddeng
呵呵,這里初學(xué)者還不少啊
答得牛頭不對(duì)馬嘴!
程序根本就沒問(wèn)題!
只能是硬件了!
樓主說(shuō)換查詢方式就OK,那誰(shuí)都頭大啊,呵呵!

樓主再想想,別急,你真的可以肯定你僅僅只換種寫法就OK?

35樓: >>參與討論
liujj
to kanprin
在本程序中,你這樣做是可以的,但做為一個(gè)嚴(yán)謹(jǐn)?shù)墓こ處,?yīng)該把中斷中所用的都保護(hù)起來(lái),你的程序要修改或擴(kuò)充,豈不又要出問(wèn)題

36樓: >>參與討論
xiaowei446
別灰心
 
37樓: >>參與討論
lufeijian
嚴(yán)重同意!
把發(fā)光二極管接正確了準(zhǔn)沒事!

38樓: >>參與討論
along_yu
搞定沒有?
 
39樓: >>參與討論
tc9148
不好意思,我好久不來(lái)了,我還以為大家不愿意回答呢?
   不好意思,我好久不來(lái)了,我還以為大家覺得這個(gè)問(wèn)題很傻,不愿意回答呢?
   其實(shí),我曾經(jīng)按照書上(2本書以上)的程序?qū)戇^(guò),當(dāng)燒進(jìn)51后,總是沒有反應(yīng),準(zhǔn)確地說(shuō)是沒有進(jìn)入中斷,原來(lái)的程序堆棧是有的,標(biāo)志也是保護(hù)的,但是也沒有反應(yīng),改來(lái)改去總是沒有反應(yīng),我準(zhǔn)備換個(gè)單片機(jī)再說(shuō)!

40樓: >>參與討論
tc9148
見鬼了,換了個(gè)程序和單片機(jī),還是不行,
p2.0接led的負(fù)端,VCC接正端,這只是一個(gè)簡(jiǎn)單的測(cè)試程序,
這是中斷:
                  ORG 0000H
                    LJMP MAIN
                    ORG 000BH
                    LJMP INTT0
                    ORG 0030H
                    MAIN:MOV R1,#00H
                         MOV SP,#70H
                         MOV R7,#10
                         MOV   TMOD,#01H
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         SETB  ET0
                         SETB  EA
                         SETB  TR0
                         MOV   P2,R1
                     
                         SJMP $
                   INTT0: PUSH ACC
                        PUSH PSW
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         DJNZ R7,EXIT
                         MOV R7,#10
                         INC R1
                         MOV P2,R1
                   EXIT: POP PSW
                         POP ACC
                         RETI
                         END

這是查詢TF0:換成查詢就成功了!不知為什么?
                    ORG 0000H
                    LJMP MAIN
                    ORG 0030H
                    MAIN:MOV R1,#00H
                         MOV SP,#70H
                         MOV R7,#10
                         MOV   TMOD,#01H
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         SETB  ET0
                         SETB  EA
                         SETB  TR0
                         MOV   P2,R1
                      L1: JNB TF0,$
                   INTT0: CLR TF0
                        
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         DJNZ R7,L1
                         MOV R7,#10
  &n
41樓: >>參與討論
tc9148
要瘋了,還是不行,換程序和換51
奇怪的是:  
      我把程序改成查詢TF0就好了,一點(diǎn)沒有問(wèn)題

42樓: >>參與討論
tc9148
我肯定,換個(gè)查詢就可以,并且我把編譯工具都換了,
 
43樓: >>參與討論
cabbage36
有問(wèn)題的
對(duì)中斷里用到的寄存器要入棧保護(hù),書中有

44樓: >>參與討論
kanprin
re:
能不能說(shuō)一下現(xiàn)在的現(xiàn)象以及你預(yù)期的結(jié)果是什么?

45樓: >>參與討論
毛毛貓
p2.0接led的負(fù)端,VCC接正端 ?
沒串限流電阻??

46樓: >>參與討論
tc9148
串連電阻沒有必要,
你們都沒有看懂我的問(wèn)題,
1。查詢溢出時(shí)可以的
2。中斷時(shí)沒有響應(yīng)
入棧保護(hù)是有必要的,但是這個(gè)程序太簡(jiǎn)單不過(guò)了,幾乎沒用到附加存儲(chǔ)器,
再說(shuō),你們有的人寫的程序我都試過(guò)了,還是不行!

47樓: >>參與討論
CXCHINA
程序沒問(wèn)題,檢查硬件
程序沒問(wèn)題,檢查硬件

48樓: >>參與討論
wujinlei
re
把中斷的偽指令放到中斷程序上邊,試試看

49樓: >>參與討論
黃勇
你改為這個(gè)試試
      ORG 0000H
                LJMP MAIN
                ORG 000BH
                LJMP TIME0
                ORG 0100H
            MAIN: MOV A,#0FFH
                  MOV R2,#0
                  MOV TMOD,#01H
                  MOV TH0,#3CH
                  MOV TL0,#0B0H
                  SETB ET0
                  SETB EA
                  SETB TR0
                L0:MOV P2,A
                  SJMP L0
;--------中斷服務(wù)程序                 
              TIME0:clr tr0  增加的
clr et0
MOV TH0,#3CH
                  MOV TL0,#0B0H
                  INC R2
                  CJNE R2,#20,L1
                  CPL A
                  MOV R2,#0
setb tr0
setb et0    增加的
                L1:RETI
                  END
你在試試

50樓: >>參與討論
winhiwang
編程思想的問(wèn)題
1.累加器不能這樣用,這種習(xí)慣不好.中間數(shù)據(jù)最好用RAM.
2.使用R寄存器要先設(shè)定區(qū)段.
3.程序開始參數(shù)未初始化,這是不對(duì)的,因?yàn)橛行﹥?nèi)存上電后不會(huì)被初始化,比如SP!
4.中斷中要保護(hù)現(xiàn)場(chǎng),當(dāng)然沒有破壞也不必保護(hù)!

!!單片機(jī)軟硬件設(shè)計(jì)都要考慮上電瞬間和上電后的情況

51樓: >>參與討論
huangyl007
我用keil模擬下來(lái)
我用keil模擬下來(lái)程序似乎沒有問(wèn)題,但是SP指針跑到07H去了,這里可能有問(wèn)題

52樓: >>參與討論
tc9148
我想我最好使用一臺(tái)好的仿真機(jī)試一下
 
53樓: >>參與討論
WOSHIDUDU
我調(diào)試過(guò)
    ORG 0000H
                LJMP MAIN
                ORG 000BH
                LJMP TIME0
                ORG 0100H
            MAIN: MOV A,#0FFH
                  MOV R2,#0
                  MOV TMOD,#01H
                  MOV TH0,#3CH
                  MOV TL0,#0B0H
                  SETB ET0
                  SETB EA
                  SETB TR0
                L0:MOV P2,A
                  SJMP L0
;--------中斷服務(wù)程序                 
              TIME0:clr tr0;  增加的
                 clr et0
                 MOV TH0,#3CH
                  MOV TL0,#0B0H
                  INC R2
                  CJNE R2,#20,L1
                  CPL A
                  MOV R2,#0
                 SETB ET0
                   SETB TR0   ; 增加的
                   L1:
                    SETB ET0
                   SETB TR0   ; 增加的
                   RETI
                  END


54樓: >>參與討論
tc9148
謝謝!
 
55樓: >>參與討論
yzqok
不知現(xiàn)在有否解決問(wèn)題了。
 
56樓: >>參與討論
tc9148
祝賀祝賀!成功了!
我用的是89S51的下載線燒寫程序!原來(lái)我把psen腳接地了,我把它拆了,就可以了!
這是不容易阿!。
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀
可喜可賀

57樓: >>參與討論
tc9148
我改成這樣了也行!
                    ORG 0000H
                    LJMP MAIN
                    ORG 000BH
                    LJMP INTT0
                    ORG 0030H
                    MAIN:MOV A,#00H
                         MOV SP,#70H
                         MOV R7,#10
                         MOV   TMOD,#01H
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         SETB  ET0
                         SETB  EA
                         SETB  TR0
                         MOV   P2,A
                         SJMP $
                   INTT0:
                         MOV   TH0,#3CH
                         MOV   TL0,#0B0H
                         DJNZ R7,EXIT
                         MOV R7,#10
                         cpl A
                         MOV P2,A
                   EXIT: RETI
                       end

58樓: >>參與討論
tc9148
看來(lái)psen可以影響中斷服務(wù),不知為什么?
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教Quartus II 4.2/157的安裝問(wèn)題!!
請(qǐng)幫我分析一下,我用他來(lái)做擴(kuò)展
關(guān)于51控制打印機(jī),打印表格
雙端口RAM IDT7130-SA55J
大家給我介紹一下pic單片機(jī)
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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