性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

這個(gè)單片機(jī)程序?yàn)槭裁床恍校?/h1>

   ORG 0000H     ;程序從此地址開始運(yùn)行
   LJMP MAIN     ;跳轉(zhuǎn)到 MAIN 程序處

   ORG 030H     ;MAIN 從030H處開始
MAIN:SETB P1.0;
     LCALL DELAY;
     CLR P1.0;
     LCALL DELAY;
     LJMP MAIN;

DElAY:MOV R7,#250;
  D1:MOV R6,#250;
  D2:DJNZ R6,D2;
     DJNZ R7,D1;
     RET;
     END

 

這閃燈程序在仿真都好好的,為什么燒錄后運(yùn)行不了,而且好幾個(gè)程序照書上的都不行,而復(fù)制教程的都好好,急啊,完全打擊學(xué)單片機(jī)的僅存的一點(diǎn)信心?。。。?!格式還是語(yǔ)法不行??!

哪位大哥知道,明燈引路,謝謝!

全部回復(fù)(26)
正序查看
倒序查看
fu-tao
LV.4
2
2011-08-19 21:18

0
回復(fù)
2011-08-19 21:19

先硬定確件是不是好的...

0
回復(fù)
2011-08-19 21:25

為什么不用C編寫呢?

0
回復(fù)
fu-tao
LV.4
5
2011-08-19 21:27
@高等數(shù)學(xué)
為什么不用C編寫呢?

硬件是好的,可確定,51單片機(jī),難道就沒人知道怎么回事嗎

0
回復(fù)
2011-08-19 21:40
@fu-tao
硬件是好的,可確定,51單片機(jī),難道就沒人知道怎么回事嗎
建議你到這里去問:www.daxia.com/bibis  .
0
回復(fù)
2011-08-19 22:10
@fu-tao
硬件是好的,可確定,51單片機(jī),難道就沒人知道怎么回事嗎

有沒有燒錄成功過?

0
回復(fù)
fu-tao
LV.4
8
2011-08-20 00:00
@高等數(shù)學(xué)
有沒有燒錄成功過?
天啊,肯定的啦,哎,失望
0
回復(fù)
2011-08-20 09:11
@fu-tao
天啊,肯定的啦,哎,失望

你還是到單片機(jī)論壇問問吧。

不知道你51是什么樣的,我用的是PIC,每次燒錄完了之后,必須拔了ICD2與目標(biāo)板的連線,之后才可以出結(jié)果。

0
回復(fù)
2011-08-20 13:33
@高等數(shù)學(xué)
你還是到單片機(jī)論壇問問吧。不知道你51是什么樣的,我用的是PIC,每次燒錄完了之后,必須拔了ICD2與目標(biāo)板的連線,之后才可以出結(jié)果。
主要是寫完程序后復(fù)位引腳電位被拉高了.編譯軟件上面有一個(gè)快捷按鈕,一按就行了...
0
回復(fù)
kinto
LV.5
11
2011-08-20 13:52
@貼片機(jī)
主要是寫完程序后復(fù)位引腳電位被拉高了.編譯軟件上面有一個(gè)快捷按鈕,一按就行了...

頭文件有沒有包含,復(fù)位電路確認(rèn)了沒有,晶振有沒有起振?

0
回復(fù)
2011-08-20 14:14
@kinto
頭文件有沒有包含,復(fù)位電路確認(rèn)了沒有,晶振有沒有起振?
單片機(jī)大家也都會(huì)啊 厲害啊
0
回復(fù)
konglingzhi
LV.6
13
2011-08-20 14:18
都沒有初始化程序模塊,你這東西能跑的起來(lái)才見鬼了,R6,R7在RAM的哪里,都沒定義
0
回復(fù)
fu-tao
LV.4
14
2011-08-20 15:08
@konglingzhi
都沒有初始化程序模塊,你這東西能跑的起來(lái)才見鬼了,R6,R7在RAM的哪里,都沒定義
教書上是這樣寫的啊,要不哪位哥手修改下讓我們好好學(xué)學(xué),期待天使出現(xiàn)中……
0
回復(fù)
fu-tao
LV.4
15
2011-08-20 15:14
@fu-tao
教書上是這樣寫的啊,要不哪位哥手修改下讓我們好好學(xué)學(xué),期待天使出現(xiàn)中……

 ORG 0000H     ;程序從此地址開始運(yùn)行
 LJMP MAIN     ;跳轉(zhuǎn)到 MAIN 程序處

 ORG 030H     ;MAIN 從030H處開始
MAIN: 
   MOV P2 ,#00H    ;P2為低電平 LED 燈亮
 ACALL DELAY  ;調(diào)用延時(shí)子程序
 MOV P2 ,#0FFH
 ACALL DELAY
 AJMP MAIN        ;跳轉(zhuǎn)到主程序處

DELAY: MOV R5,#04H    ;將立即數(shù)傳給寄存器R5
F3: MOV R6,#0FFH
F2: MOV R7,#0FFH
F1: DJNZ R7,F1        ;若為0程序向下執(zhí)行,若不為0程序跳轉(zhuǎn)到
 DJNZ R6,F2
 DJNZ R5,F3
 RET
 END

 

上面這個(gè)就燒進(jìn)去行,為什么呢?

0
回復(fù)
2011-08-20 16:17
@fu-tao
 ORG0000H    ;程序從此地址開始運(yùn)行 LJMPMAIN    ;跳轉(zhuǎn)到MAIN程序處 ORG030H    ;MAIN從030H處開始MAIN:   MOVP2,#00H   ;P2為低電平LED燈亮 ACALLDELAY  ;調(diào)用延時(shí)子程序 MOVP2,#0FFH ACALLDELAY AJMPMAIN       ;跳轉(zhuǎn)到主程序處DELAY: MOVR5,#04H   ;將立即數(shù)傳給寄存器R5F3: MOVR6,#0FFHF2: MOVR7,#0FFHF1: DJNZR7,F1       ;若為0程序向下執(zhí)行,若不為0程序跳轉(zhuǎn)到 DJNZR6,F2 DJNZR5,F3 RET END 上面這個(gè)就燒進(jìn)去行,為什么呢?

請(qǐng)將

      MOV R7,#250;
  D1:MOV R6,#250

改為

       MOV R7,#0FFH;
  D1:MOV R6,#0FFH

看看

0
回復(fù)
2011-08-20 16:22
@konglingzhi
都沒有初始化程序模塊,你這東西能跑的起來(lái)才見鬼了,R6,R7在RAM的哪里,都沒定義
R6,R7這個(gè)不用定義,默認(rèn)在第一工作寄存器組,字節(jié)地址為00H到07H
0
回復(fù)
835041560
LV.5
18
2011-08-20 21:26

調(diào)用延時(shí)子程序有誤,上面調(diào)用時(shí)用DELAY,而定義時(shí)用DElAY,兩者的"L"大小寫要區(qū)分.

0
回復(fù)
qinzhendong
LV.4
19
2011-08-21 07:38
@835041560
調(diào)用延時(shí)子程序有誤,上面調(diào)用時(shí)用DELAY,而定義時(shí)用DElAY,兩者的"L"大小寫要區(qū)分.

同意樓上  L與l

0
回復(fù)
無(wú)衣
LV.6
20
2011-08-21 12:28

標(biāo)號(hào)是有點(diǎn)問題,你調(diào)用的是DELAY,子程序卻是DElAY,不過在KEIL中,可禁用大小寫敏感,估計(jì)這不會(huì)引起錯(cuò)誤。

真正的錯(cuò)誤是:

    單片機(jī)在執(zhí)行LCALL指令時(shí),會(huì)產(chǎn)生棧操作,首先要把下一條指令的地址壓入堆棧,同時(shí)棧指針加1,而你在子程序中使用了R7,R7在0區(qū)的地址是07H,復(fù)位時(shí),SP堆棧指針指向它,而你在子程序中改變了R7的值,所以,被調(diào)用的子程序不能正常的返回,導(dǎo)致程序跑飛。只要在MAIN的第一行加上MOV SP,#60H;使SP指向60H單元就行了。

0
回復(fù)
zvszcs
LV.12
21
2011-08-21 20:41
@無(wú)衣
標(biāo)號(hào)是有點(diǎn)問題,你調(diào)用的是DELAY,子程序卻是DElAY,不過在KEIL中,可禁用大小寫敏感,估計(jì)這不會(huì)引起錯(cuò)誤。真正的錯(cuò)誤是:   單片機(jī)在執(zhí)行LCALL指令時(shí),會(huì)產(chǎn)生棧操作,首先要把下一條指令的地址壓入堆棧,同時(shí)棧指針加1,而你在子程序中使用了R7,R7在0區(qū)的地址是07H,復(fù)位時(shí),SP堆棧指針指向它,而你在子程序中改變了R7的值,所以,被調(diào)用的子程序不能正常的返回,導(dǎo)致程序跑飛。只要在MAIN的第一行加上MOVSP,#60H;使SP指向60H單元就行了。
路過,對(duì)程序一點(diǎn)不懂
0
回復(fù)
konglingzhi
LV.6
22
2011-08-22 09:21
@fu-tao
 ORG0000H    ;程序從此地址開始運(yùn)行 LJMPMAIN    ;跳轉(zhuǎn)到MAIN程序處 ORG030H    ;MAIN從030H處開始MAIN:   MOVP2,#00H   ;P2為低電平LED燈亮 ACALLDELAY  ;調(diào)用延時(shí)子程序 MOVP2,#0FFH ACALLDELAY AJMPMAIN       ;跳轉(zhuǎn)到主程序處DELAY: MOVR5,#04H   ;將立即數(shù)傳給寄存器R5F3: MOVR6,#0FFHF2: MOVR7,#0FFHF1: DJNZR7,F1       ;若為0程序向下執(zhí)行,若不為0程序跳轉(zhuǎn)到 DJNZR6,F2 DJNZR5,F3 RET END 上面這個(gè)就燒進(jìn)去行,為什么呢?
差別就是R6,R7進(jìn)行的初始化,即F3: MOV R6,#0FFH
F2: MOV R7,#0FFH。 另你第一個(gè)程序,怎么調(diào)MOV P1,0,這個(gè)是錯(cuò)誤,0好象不識(shí)別吧,要寫#00H,很久不碰單片機(jī),很多都忘了,呵呵,編譯程序時(shí)沒有顯示錯(cuò)誤嗎
0
回復(fù)
2011-08-23 23:31
@zvszcs
路過,對(duì)程序一點(diǎn)不懂
懂兩點(diǎn) 三點(diǎn)就可以啦
0
回復(fù)
yousuoqiu
LV.2
24
2011-08-24 09:38
路過,之前寫過,好久沒弄這個(gè)了。。。
0
回復(fù)
cfbbao
LV.4
25
2011-08-24 10:01
@無(wú)衣
標(biāo)號(hào)是有點(diǎn)問題,你調(diào)用的是DELAY,子程序卻是DElAY,不過在KEIL中,可禁用大小寫敏感,估計(jì)這不會(huì)引起錯(cuò)誤。真正的錯(cuò)誤是:   單片機(jī)在執(zhí)行LCALL指令時(shí),會(huì)產(chǎn)生棧操作,首先要把下一條指令的地址壓入堆棧,同時(shí)棧指針加1,而你在子程序中使用了R7,R7在0區(qū)的地址是07H,復(fù)位時(shí),SP堆棧指針指向它,而你在子程序中改變了R7的值,所以,被調(diào)用的子程序不能正常的返回,導(dǎo)致程序跑飛。只要在MAIN的第一行加上MOVSP,#60H;使SP指向60H單元就行了。
頂這個(gè)~~
0
回復(fù)
無(wú)衣
LV.6
26
2011-08-24 22:55
@cfbbao
頂這個(gè)~~
初學(xué)者常遇到的問題。
0
回復(fù)
fengxunshi
LV.5
27
2011-08-25 12:18
@yousuoqiu
路過,之前寫過,好久沒弄這個(gè)了。。。

非常常規(guī) 的51 匯編, 估計(jì)是 學(xué)校里的吧,呵,

你用什么片子跑的呀,設(shè)置不對(duì)還是

 燒進(jìn)去,能不能運(yùn)行 是兩碼事哦,

0
回復(fù)
發(fā)