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 Khác nhau giữa mạch cân bằng chủ động toàn dãy và mạch cân bằng chủ động kiểu so áp 2 string liền kề.bởi louisnkCụ đã lên design chi tiết cho mạch để test chưa?
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 08:12 -
-
bởi Manh.n.trMọi người cho em hỏi có bác nào làm project mạch đo độ mặn chưa ạ. Cho em hỏi có bác nào mô phỏng được trên Proteus không ạ? Em sinh viên đầu năm 3 tay mơ chưa biết nhiều mong mọi người giúp đỡ ạ
-
Channel: Các mạch điện ứng dụng
17-09-2024, 13:54 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi yname11Ko đc bác ạ, mạch nó tự ngắt. Thôi đành dùng 1 kênh vậy, thanks bác nhé....
-
Channel: Điện thanh
15-09-2024, 10:44 -
-
bởi nguyendinhvanTôi thì không học về MCU, không giỏi về VXL , cũng mờ tịt về công nghiệp thực phẩm, nhưng cũng cố gắng tự làm được cái này.
Đồ ở chợ mua về cứ đặt ở sân, rồi xếp cái máy này lên trên, rồi đi chơi.
Một lúc sau quay...-
Channel: Tâm tình dân kỹ thuật
15-09-2024, 02:36 -
-
Trả lời cho Thép hàn cube led ???bởi nguyendinhvanRa chợ kim khí mua, có nhiều loại to nhỏ. Họ bán cho thợ xây dựng buộc khung đúc bê tông.
Về cắt thành đoạn.
Nhưng làm cho các đoạn dây thép đó thẳng tưng như cái gói mì Ý, thì cũng đòi hỏi công nghệ khéo tay.-
Channel: Điện tử dành cho người mới bắt đầu
15-09-2024, 02:03 -
-
Trả lời cho Thép hàn cube led ???bởi bqvietThép nào cũng hàn thiếc được : thép các-bon, thép không gỉ ... miễn là có chất trợ dung phù hợp. Dùng nhựa thông bình thường thì khó hàn, nhưng trên thị trường bán nhiều loại chất trợ dung đủ kiểu. Đơn giản nhất là dung dịch kẽm clorua ZnCl2.
-
Channel: Điện tử dành cho người mới bắt đầu
15-09-2024, 00:34 -
-
bởi tuyenda1985Các bác cho em hỏi.
Định làm cube led chơi chơi, nhưng vụ que thép để cho nó cứng
Mà chưa biết mua ntn, vì đang alwn tăn, loại này là loại nào (như hình em úp) mà có thể dùng thiếc hàn ??
Cảm ơn...-
Channel: Điện tử dành cho người mới bắt đầu
14-09-2024, 22:05 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi thetungPhương án của bạn có thể được ,nhưng có thể rủi ro . Mặt khác bạn muốn tăng công suất thì phải giảm trở kháng của loa ( thí dụ dùng loa 2 ohm )...
-
Channel: Điện thanh
14-09-2024, 11:46 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi yname11chập 2 đầu r+, l+ vào làm 1, 2 đầu r-, l- vào làm 1 . rồi đấu vào loa...
-
Channel: Điện thanh
14-09-2024, 07:40 -
-
Trả lời cho Em là người mới . Xin các bác chỉ giáo cách mod điều chỉnh điện áp trên nguồn DELTA esr 48/56abởi nguyendinhvanTheo tôi ấy, mấy cái hệ delta powerone ấy. Cứ để in như thế bán lấy tiền ăn phở.
Có chất bổ vào người, đầu sẽ thông minh ra, sau đó tự nghiên cứu chế tạo một cái nguồn theo ý mình.
Thế là vừa được thông minh, vừa được...-
Channel: Điện tử dành cho người mới bắt đầu
14-09-2024, 01:33 -
Comment