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 Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment