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 Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment