我不知道是不是還有其他人也會(huì)碰到這種錯(cuò)誤
我簡單的提一下
寫程序的風(fēng)格 問題 不知道LZ 是自學(xué)的匯編 還是在大學(xué)生 在笑學(xué)習(xí)的
我想對你說一句 你寫程序很爛 希望你別見氣
做為規(guī)范 規(guī)范這個(gè)東西 并不是說 它很牛 我們得照著做
而是就像我們溝通的語言一樣 大家都遵守規(guī)范了 我們才能更有效的溝通
LZ 的程序 很亂 放進(jìn)UV2 首先 一個(gè)程序 沒有一條備注
這里我建議剛學(xué)寫程序 時(shí) 就最好學(xué)著 給程序加注釋 在最開始的時(shí)候 你覺得很簡單 不必要
但是到了后來 你寫一個(gè) 上千條的匯編 行的程序時(shí) 你就會(huì)發(fā)現(xiàn) 你去吃了飯 陪女朋友去看場 電影 和朋友打打籃球 回來 你連自己寫的程序都要花很大的時(shí)間去理順里面的各個(gè)跳轉(zhuǎn) 各個(gè)框架
這也是為什么你看但飯是搞計(jì)算機(jī)程序設(shè)計(jì)的東西 經(jīng)常趕通宵 加班 思路不能段 不然又會(huì)花很多的時(shí)間去整理清楚
多的話不說了 話有點(diǎn)直 希望你不要介意
改好的程序
我貼出來 你自己看吧
標(biāo)號 頂格 代碼縮進(jìn)對齊
整個(gè)程序 整齊 歸整 盡量多加一些備注 至少10%
;-----------------------------------------
;流水燈測試程序
;時(shí)間:---
;作者;---
;說明:----
;-----------------------------------------
ORG 00H
JMP START
ORG 03H
JMP EXTO ;03H是外部中斷0的入口地址 。。。。。。。。。。 這里應(yīng)該是 0B 和1B
ORG 13H ;13H是外部中斷1的入口地址 。。。。。。。。。。
JMP ETX1
;-----------------------------------------
;主程序
;-----------------------------------------
START: MOV IE, #10000101B
MOV IP, #00000100B
MOV TCON, #00000000B
MOV SP, #70H
MOV A, #00
MOV P1, A
MOV A,#00
LOOP: MOV P1, A
CALL DELAY
CPL A
JMP LOOP
;-----------------------------------------
;定時(shí)器0中斷子程序
;-----------------------------------------
EXTO: PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
MOV R3, #03
LOOP1: MOV A, #0FFH
CLR C
MOV R2, #08H
LOOP2: RLC A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP2
MOV R2, #07
LOOP3: RRC A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP3
DJNZ R3, LOOP1
POP PSW
POP ACC
RETI
;-----------------------------------------
;定時(shí)器1中斷子程序
;-----------------------------------------
ETX1: PUSH ACC
PUSH PSW
SETB RS1
CLR RS0
MOV R3, #03
LOOP4: MOV A, #0FCH
MOV R2, #06
LOOP5: RL A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP5
MOV R2, #06
LOOP6: RR A
MOV P1,A
CALL DELAY
DJNZ R2, LOOP6
DJNZ R3, LOOP4
POP PSW
POP ACC
RETI
;-----------------------------------------
;延時(shí)子程序
;-----------------------------------------
DELAY:
MOV R5, #20
D1: MOV R6, #20
D2: MOV R7, #248
DJNZ R7, $
DJNZ R6, D2
DJNZ R5, D1
RET
END
ORG 00H
JMP START
ORG 0003H
JMP EXT0
ORG 0013H
LJMP EXT1
START: MOV IE, #10000101B
MOV IP, #00000100B
MOV TCON, #00000000B
MOV SP, #70H
MOV A, #00
MOV P1, A
MOV A,#00
LOOP: MOV P1, A
CALL DELAY
CPL A
JMP LOOP
EXT0: PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
MOV R3, #03
LOOP1: MOV A, #0FFH
CLR C
MOV R2, #08H
LOOP2: RLC A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP2
MOV R2, #07
LOOP3: RRC A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP3
DJNZ R3, LOOP1
POP PSW
POP ACC
RETI
EXT1: PUSH ACC
PUSH PSW
SETB RS1
CLR RS0
MOV R3, #03
LOOP4: MOV A, #0FCH
MOV R2, #06
LOOP5: RL A
MOV P1, A
CALL DELAY
DJNZ R2, LOOP5
MOV R2, #06
LOOP6: RR A
MOV P1,A
CALL DELAY
DJNZ R2, LOOP6
DJNZ R3, LOOP4
POP PSW
POP ACC
RETI
DELAY: MOV R5, #20
D1: MOV R6, #20
D2: MOV R7, #248
DJNZ R7, $
DJNZ R6, D2
DJNZ R5, D1
RET
END
改好的,但不知道你的程序?qū)Σ粚Γ⒁鈽?biāo)號中的O和0及標(biāo)號的寫法!
頂!樓上的。
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h>
void delay(void) //延時(shí)子程序
{
unsigned int i,j; //循環(huán)延時(shí)
for(i=0;i<400;i++)
{
for(j=0;j<121;j++)
{;}
}
}
void main(void) //主程序
{
uchar code ledp[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0xff,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00,0xff,
0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x00,0xff,
0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0x00,0xff,
0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x00,0xff,
0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0x00,0xff,
0xf0,0xe1,0xc3,0x87,0x0f,0x00,0xff,
0x0f,0x87,0xc3,0xe1,0xf0,0x00,0xff,
0xe7,0xc3,0x81,0x00,0xff,
0x81,0xc3,0xe7,0x00,0xff,
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff,0x00,0xff,
0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff,0x00,0xff,
0x00,0xff,0x00,0xff};//預(yù)定的寫入P1的值
uchar ledi; //定義一個(gè)變量
while(1)
{
P1=ledp[ledi]; //P1口讀取預(yù)定值
delay(); //調(diào)用延時(shí)程序
ledi++; //延時(shí)一次后讀入下一個(gè)值
if(ledi==104) //如果讀到最后一個(gè)數(shù)值
{
ledi=0; //則將變量置0,從頭開始
}
}
}
獻(xiàn)丑了
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |