Thông báo
Collapse
No announcement yet.
CẦN GIÚP hiệu ứng 8 led với 89c2051
Collapse
X
-
Bạn tham khảo:
sáng đuổi:
mov p1,#00h
mov a,#00h
setb c
mp1:
mov p1,a
acall delay
mov p1,#00h
rrc a
jnc mp1
ret
sáng chan lẽ:
mov p1,#01010101b
acall delay
clp p1
acall delay
ret
sang chay vao chay ra:
mov p1,#18h
acall delay
mov p1,#24h
acall delay
mov p1,#42h
acall delay
mov p1,#81h
acall delay
mov p1,#81h
acall delay
mov p1,#42h
acall delay
mov p1,#24h
acall delay
mov p1,#18h
ret
trên đó là 3 hiệu ứng, mỗi hiệu ứng chạy 1 lượt, nếu bạn cân mấy lượt thì cứ cài đặt cho nó.
delay thì tùy bạn cho chạy nhanh hay chậm mà set cho thích hợp.
chúc bạn vuiKhông biết ngày mai sẽ ra sao?
Mà có ra sao cũng chẳng sao.
-
anh viết cụ thể từ đầu đến cuối được không anh .em k biết ghép các phần với lặp lại các hiệu ứng đó nữa .học lý thuyết có 2,3 pữa nên còn gà mờNguyên văn bởi rongdatvamuc Xem bài viếtBạn tham khảo:
sáng đuổi:
mov p1,#00h
mov a,#00h
setb c
mp1:
mov p1,a
acall delay
mov p1,#00h
rrc a
jnc mp1
ret
sáng chan lẽ:
mov p1,#01010101b
acall delay
clp p1
acall delay
ret
sang chay vao chay ra:
mov p1,#18h
acall delay
mov p1,#24h
acall delay
mov p1,#42h
acall delay
mov p1,#81h
acall delay
mov p1,#81h
acall delay
mov p1,#42h
acall delay
mov p1,#24h
acall delay
mov p1,#18h
ret
trên đó là 3 hiệu ứng, mỗi hiệu ứng chạy 1 lượt, nếu bạn cân mấy lượt thì cứ cài đặt cho nó.
delay thì tùy bạn cho chạy nhanh hay chậm mà set cho thích hợp.
chúc bạn vui
Comment
-
cách viết của bạn nếu tạo mảng const gọi phần tử trong mảng ra sẽ gọn hơnNguyên văn bởi tychuot289 Xem bài viếtanh viết cụ thể từ đầu đến cuối được không anh .em k biết ghép các phần với lặp lại các hiệu ứng đó nữa .học lý thuyết có 2,3 pữa nên còn gà mờ
Comment
-
BẠN nên áp dụng cách tra bảng là tốt nhất cho bài này .Nguyên văn bởi tychuot289 Xem bài viếtai giúp e viết hết và giải thích câu lệnh được không .gần nộp bài tập rồi .gặp ông thầy gay bà điên bà khùng nữa
;**********************
xuat equ p...
org 0000
ljmp main
main:
canh1:
mov dptr,#c_trinh1
mov r0,#8
mov r1,#0
laplai1:mov a,r1
movc @a+dptr
mov xuat,a
lcall delay
inc r1
djnz r0,laplai1
canh2:
mov dptr,#c_trinh2 ; thay đổi
mov r0,#8
mov r1,#0
laplai2:mov a,r1
movc @a+dptr
mov xuat,a
lcall delay;co the thay đổi để phù hợp c trinh
inc r1
djnz r0,laplai2
ljmp.....
;***********************
delay: tu viet
ret
c_trinh1: db 01h,02h,04h,08h,10h,20h,40h,80h;chay tu trai qua phai...led sang muc 1
c_trinh2: db 10000001b,01000010b,00100100b,00011000b,00011000b, 00100100b,01000010b,10000001b
end
;bạn cố giắng học đi nhé,chứ viết như vậy là quá rỏ rồi.....
Comment
-
Chương trình đầy đủ:
$MOD51
ORG 00H
MAIN:
ACALL HIEUUNG1
ACALL HIEUUNG2
ACALL HIEUUNG3
SJMP MAIN
HIEUUNG1:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGDUOI
MOV R1,#5 ;SO LUOT CHAY ?K M?I HIEU UNG LA 5 LAN
MP1:
MOV R0,#00H
MOV P1,#00H
ACALL DELAY
MP2:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#8,MP2
DJNZ R1,MP1
POP 01H
POP 00H
RET
HIEUUNG2:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGDAN
MOV R1,#5
MP11:
MOV R0,#00H
MOV P1,#00H
ACALL DELAY
MP22:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#8,MP22
DJNZ R1,MP11
POP 01H
POP 00H
RET
HIEUUNG3:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGCHANLE
MOV P1,#00H
ACALL DELAY
MOV R1,#5
MP111:
MOV R0,#00H
MP222:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#2,MP222
DJNZ R1,MP111
POP 01H
POP 00H
RET
DELAY: ;DELAY 0.5S
PUSH 00H
PUSH 01H
MOV TMOD,#01H
MOV R0,#100
DEL:
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,DEL
POP 01H
POP 00H
RET
SANGDUOI:
DB 01H,02H,04H,08H,10H,20H,40H,80H
SANGDAN:
DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
SANGCHANLE:
DB 10101010B,01010101B
ENDKhông biết ngày mai sẽ ra sao?
Mà có ra sao cũng chẳng sao.
Comment
-
đoạn đầu $MOD51Nguyên văn bởi rongdatvamuc Xem bài viếtChương trình đầy đủ:
$MOD51
ORG 00H
MAIN:
ACALL HIEUUNG1
ACALL HIEUUNG2
ACALL HIEUUNG3
SJMP MAIN
HIEUUNG1:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGDUOI
MOV R1,#5 ;SO LUOT CHAY ?K M?I HIEU UNG LA 5 LAN
MP1:
MOV R0,#00H
MOV P1,#00H
ACALL DELAY
MP2:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#8,MP2
DJNZ R1,MP1
POP 01H
POP 00H
RET
HIEUUNG2:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGDAN
MOV R1,#5
MP11:
MOV R0,#00H
MOV P1,#00H
ACALL DELAY
MP22:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#8,MP22
DJNZ R1,MP11
POP 01H
POP 00H
RET
HIEUUNG3:
PUSH 00H
PUSH 01H
MOV DPTR,#SANGCHANLE
MOV P1,#00H
ACALL DELAY
MOV R1,#5
MP111:
MOV R0,#00H
MP222:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
INC R0
CJNE R0,#2,MP222
DJNZ R1,MP111
POP 01H
POP 00H
RET
DELAY: ;DELAY 0.5S
PUSH 00H
PUSH 01H
MOV TMOD,#01H
MOV R0,#100
DEL:
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,DEL
POP 01H
POP 00H
RET
SANGDUOI:
DB 01H,02H,04H,08H,10H,20H,40H,80H
SANGDAN:
DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
SANGCHANLE:
DB 10101010B,01010101B
END
ORG 00H
nghĩa là sao anh .em viết giống như anh nhưng k đc .bị lỗi gì đó .chip của em là at98c2051
Comment
-
Mình đã viết lại code cho bạn,nhưng hơi chỉnh sửa 1 chút,nếu nối mạch như bạn thì mức tích cực là 1 (thì led sáng),nhưng nếu làm mạch thực thì người ta ko làm vậy mà sẽ cho mức tích cực là 0 (vì con 89 mà ở chế độ xả dòng thì led ko đủ sáng),code mình viết lại như sau:Nguyên văn bởi tychuot289 Xem bài viếtmới học nên còn gà .ai giúp với
#include<At892051.h> // khai bao thu vien cho 89c2051
void delay (int ms) // ham tao tre
{
int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<125;j++)
{}
}
}
// KHAI BAO MANG
unsigned char mang1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00},// SANG DON
mang2[]={0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e} ; // sang chay vao chay ra
void main()
{
int i;
while(1)
{
for(i=0;i<8;i++) // sang don
{
P1=mang1[i]; delay(300);
}
P1=0xff;delay(500);
for(i=0;i<8;i++) // sang ra-vao
{
P1=mang2[i]; delay(300);
}
P1=0xff;delay(500);
for(i=0;i<4;i++) // led chan led-sang tat
{ P1=0xaa;delay(300);
P1=0x55;delay(300);
}
P1=0xff;
delay(1500);
}
}
Last edited by viboyth.haui; 08-09-2012, 21:40.vanduc0211@gmail.com
Comment
-
lặp lại hiệu ứng vài lần thì thêm gì nữa bạn .bạn viết kiểu sáng dồn nháy từng led rồi dồn lại không .kiểu dồn của bạn là sáng dần rồi .thêm kiểu tắt dần cũng đcNguyên văn bởi viboyth.haui Xem bài viếtMình đã viết lại code cho bạn,nhưng hơi chỉnh sửa 1 chút,nếu nối mạch như bạn thì mức tích cực là 1 (thì led sáng),nhưng nếu làm mạch thực thì người ta ko làm vậy mà sẽ cho mức tích cực là 0 (vì con 89 mà ở chế độ xả dòng thì led ko đủ sáng),code mình viết lại như sau:
[ATTACH=CONFIG]51440[/ATTACH]
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -

Comment