Mấy cái thanh ghi R0, R1, R2, R3, R4, R5, R6, R7 nó dùng để làm gì vậy...?
Thông báo
Collapse
No announcement yet.
Hỏi về code led cho 89c51!
Collapse
X
-
mà thực ra chương trình của bạn nếu nhiều thì mới là vấn đề vì bạn sẽ phải tính toán thật tiết kiệm bộ nhớ. chứ ít thì cũng không cần lắm. bạn chỉ cần chú ý tập lệnh của nó (8951) vì có 1 số lệnh chỉ thao tác được với thanh ghi A mà từ R0 - R7 thi không được. đọc vđk 8951 đi là hiểu hết bạn ah
Comment
-
Với code này
ORG 0000H
main:
MOV P1,#00000001B
CALL DELAY
MOV P1,#00000010B
CALL DELAY
MOV P1,#00000100B
CALL DELAY
MOV P1,#00001000B
CALL DELAY
MOV P1,#00010000B
CALL DELAY1
MOV P1,#00100000B
CALL DELAY1
MOV P1,#01000000B
CALL DELAY1
MOV P1,#10000000B
CALL DELAY
jmp main
DELAY:
MOV R3, # 255
HERE2:
MOV R4, # 255
HERE:
DJNZ R4, HERE
DJNZ R3, HERE2
RET
DELAY1:
MOV R6,#55
HERE4:
MOV R7,#255
HERE3:
DJNZ R7,HERE3
DJNZ R6,HERE4
RET
END
đc chia làm mấy phần chính vậy bác
VD:
ORG 0000H
main: (mở đầu)
MOV P1,#00000001B
CALL DELAY
MOV P1,#00000010B
CALL DELAY
MOV P1,#00000100B
CALL DELAY
MOV P1,#00001000B
CALL DELAY
MOV P1,#00010000B
CALL DELAY1
MOV P1,#00100000B
CALL DELAY1
MOV P1,#01000000B
CALL DELAY1
MOV P1,#10000000B
CALL DELAY
(phần thân dùng để điều khiển các port P0, P1, P2, P3)
jmp main
DELAY:
MOV R3, # 255
HERE2:
MOV R4, # 255
HERE:
DJNZ R4, HERE
DJNZ R3, HERE2
RET
DELAY1:
MOV R6,#55
HERE4:
MOV R7,#255
HERE3:
DJNZ R7,HERE3
DJNZ R6,HERE4
RET
(không biết, giải đáp giúp e phần này)
END
(kết thúc chương trình)
Comment
-
8951 có thanh ghi A,B , R0 - R7 là các thanh ghi 8bit, dptr(16bit) và các thanh ghi đặc biệt. RAM của nó có 128 byte được chia làm 3 phần chính sau:
1/ 32byte đầu được dùng làm băng thanh ghi và ngăn xếp
2/ 16byte tiếp theo dùng để định địa chỉ theo bit, được dùng làm bộ nhớ đọc or ghi.
3/ 80 byte tiếp dùng như bản nháp.
32 byte đầu lại được chia thành 4 băng, tính ra mỗi băng có 8 thanh ghi (8bit) từ R0- R7 (nằm trong RAM) tương ứng với các ngăn nhớ 0h -7h đối với băng 0 ; 08h- 0fh với băng 1; tương tự với 2 băng còn lại cho tới địa chỉ ngăn nhớ 7fh. chú ý: tránh nhầm tên địa chỉ R0 -R7 trong các băng với các thanh ghi R0-R7 của 8951.
VD thanh ghi R0 (8bit) thì có thể lưu trữ được các giá trị từ 00h- ffh (0-255).
hic còn lại các thứ linh tinh khác thì phải đọc thôi chứ tỉ mỉ hơn thì nó thành sách mất . chúc bạn học tốt. mình cũng mới tiếp xúc với em này được gần 1 năm thôi.
Comment
-
delay và delay1 ở đây là các chương trình con (các chương trình làm chậm). RX ...bạn dùng để làm vòng lặp (các giá trị lặp).để mình giải thích qua cho bạn chương trình delay:
DELAY:
MOV R3, # 255 ;chuyển giá trị 255 vào R3.
HERE2: ; nhãn
MOV R4, # 255 ; chuyển giá trị 255 vào R4.
HERE: ; nhãn
DJNZ R4, HERE ; nhảy tới nhãn here cho tới khi nào r4 giảm về 1 ( nhảy 255 lần)
DJNZ R3, HERE2 ; nhảy tới nhãn here2 cho tới khi nào r3 giảm về 1 (nhảy 255 lần)
RET ; kết thúc 1 chương trình con
ở đây chúng ta có thể tính toán được thời gian trễ bằng cách tính xem lệnh thực hiện tốn bao nhiêu chu trình máy (vd:mov tốn 1 chu trình máy, djnz tốn 2 chu trình máy ) mỗi chu trình máy kéo dài 1.085 micro giây đối với thạch anh 11.0592Mhz sau đó bạn cộng trừ nhân chia với số lần bạn thực hiên lệnh đấy (nhớ tính vòng lặp). thế là bạn đã tính được thời gian trễ bằng tổng thời gian thực hiện delay.
Comment
-
Em kiếm trên mạng có cái lập trình này cũng khá hay..!
mo dau 8051 B1 - Wattpad
nó gọi là lập trình gì vậy bác..?
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 17:39 -
-
Comment on Thắc mắc về hạ áp cho adapter laptopbởi nguyendinhvan
-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nguyendinhvanPhải làm đúng quy chình thì mới được
Bươc 1 lấy cái nguồn điều chỉnh, set về đúng 12v, cấp cho đường out 19v như hình. Chú ý là phần đầu vào adaptor không cấp điện.
Bước 2 . Kiểm tra điện áp tại chân số 3 das001 có đúng...-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi LamVoNhấp nháy có thể do chu kỳ hoạt động bị rút ngắn quá dẫn đến không đủ nguồn nuôi ic, bác thử tăng giá trị tụ nguồn phụ nuôi ic và giảm giá trị điện trở hạn dòng cho nó xem có cải thiện không....
-
Channel: Điện tử dành cho người mới bắt đầu
29-12-2024, 08:45 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Bác đúng là hệ Pháp, nên toàn quên chữ "d".
Nếu em được như bác, đúng 0h mới được stand by với hũ rượu và vợ thì tuyệt.
Nhưng đời không như là mơ, em và lão Đinh Vặn ngấm đủ mà.
Lão Đinh Vặn...-
Channel: Điện tử gia dụng
29-12-2024, 00:17 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101Vì bản chất của nó hoạt động theo dòng. Áp chỉ để mức giới hạn.
Cứ hiểu như bạn khôn hơn 10 người, nhưng khả năng thu nhận kiến thức chỉ bằng 1/10 người khác, thì nó sẽ tự điều chỉnh thôi.-
Channel: Điện tử dành cho người mới bắt đầu
28-12-2024, 23:41 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Ựa... có lý...
Dưng mà lão chỉ dùng 1 con opto là nguy hiểm lắm.
Có khi nó on lúc lão với ấy ấy về nhà lúc vắng vợ thì khổ. Nên phải thêm cái mạch logic nữa mới được....-
Channel: Điện tử gia dụng
28-12-2024, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi lct1610Bác có cách nào khác ngoài quấnlại/rút bớt vòng dây BA (và mua mới ) k nhỉ ? Tại gỡ ra cũng khá lằng nhằng và kì công...
-
Channel: Điện tử dành cho người mới bắt đầu
28-12-2024, 19:30 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi mèomướpDạ với mức áp chênh lệch quá nhìu thì ngoài chỉnh hồi tiếp thì chú cần quấn lại thứ cấp biến áp nữa ạ. Tùy loại mà có thể sẽ khéo léo rút bớt vòng dây đỡ phải tách lõi ferit ạ...
-
Channel: Điện tử dành cho người mới bắt đầu
28-12-2024, 18:57 -
-
bởi lct1610E có adapter laptop cũ hiệu asus chạy tốt ,có đầu ra ổn định ở 19,4v dòng 3,42A ( công suất 60w). E định là hạ nó xuống 12v để cấp nguồn cho đầu camera. Và e đã thử bằng cách can thiệp vào phần hồi tiếp (sử dụng ic DAS001 hay TSM103W) thông...
-
Channel: Điện tử dành cho người mới bắt đầu
28-12-2024, 18:44 -
Comment