Cảm ơn bạn Tranninh đã có lời. Rất mong được mọi người góp ý. Thanks
Thông báo
Collapse
No announcement yet.
Lập trình ASM cho 8051
Collapse
X
-
hiện tại thì mình có thể cho chạy được 256 chử trên led ma trận,còn cao hơn thì bác nào biết chỉ giùm nha.
bạn nên lưu những chử cần chạy vào một ô nhớ nào đó
vd: 500h chẳng hạn (vd 00h,c8h,0f0h,0c0h,) và lần lượt như thế cho đến khoảng 255 ký tự.
sau đó dùng thanh ghi con tro dptr để lấy dử liệu, và chuyển wa thanh ghi a, còn những việc quét hay hiển thị là ở bạn
chúc thành công
Comment
-
Cho mình hỏi là trước lệnh RLC A có cần CLR A khôngNguyên văn bởi ngohaibac Xem bài viếtChi tiết về không gian nhớ của 8051 các bạn có thể xem ở đây:
http://dientuvietnam.net/forums/show...t=1163&page=24
Các bài viết của mình dưới đây có thể chưa tối ưu, mong sự góp ý của các bạn vê thuật giải cũng như cách viết để cho mình thi tốt trong kì thi tới
.
1/Bài 1: Cộng hai số 5 byte, yêu cầu và cách làm mình đều viết trong chương trình:
Mình xin giải thích cách làm:Code:;======================================================== ; Ten chuong trinh : Cong 2 so 5 bytes ; Nguoi thuc hien : Ngo Hai Bac ; Ngay thuc hien : 29/12/06 ; Phien ban : 1.0 ; Mo ta phan cung : Dung AT89S52 - thach anh 11.0592 MHZ ;---------------------------------------------------------------- ; Ngay hoan thanh : 29/12/06 ; Ngay kiem tra : ; Nguoi kiem tra : Ngo Hai Bac ;---------------------------------------------------------------- ; Chu thich : Chuong trinh don gian dung cho thi cu ; Hai so hang deu trong bo nho, ket qua cat vao so hang dau ; Chu y: MSB duoc cat vao o co dia chi nho ; So I: 49 50 51 52 53 54 ; So II: 60 61 62 63 64 ; O nho 49 dung luu so nho tu phep cong truoc neu co tran ;======================================================== ORG 00h ; Reset NOP LJMP Start ORG 003h ; Int EX0 NOP RETI ORG 0bh ; Int Timer0 NOP RETI ORG 13h ; Int EX1 NOP RETI ORG 1bh ; Int Timer1 NOP RETI ORG 23h ; Int Communication NOP RETI ;==================================================================== stack equ 2fh ;==================================================================== ; Main Program ;==================================================================== ORG 4bh Start: PUSH 00h PUSH 01h PUSH 02h ; Cat R0, R1, R2 vao Stack MOV R0, #54h MOV R1, #64h MOV R2, #5 CLR C ;Xua co nho C Loop: CLR A ; Xoa thanh ghi Accumulator MOV A, @R0 ; A = du lieu co dia chi = R0 ADDC A, @R1 ; A = A + @R1 + C MOV @R0,A ; Cat ket qua vao byte so thu nhat DEC R0 ; R0 = R0 - 1 DEC R1 ; R1 = R1 - 1 DJNZ R2, Loop ; Giam R2 va kiem tra neu R2 #0 thi nhay ve Loop, ; = 0 thi chay tiep RLC A ; Quay trai A voi bit C => A = C MOV @R0,A ; O nho 49h co gia tri = C POP 02h POP 01h POP 00h END.
2 số 5 byte là:
(mõi số là số 1 byte)Code:b5 b4 b3 b2 b1 b0 a4 a3 a2 a1 a0
với mỗi cặp tương ứng (bi, ai) thì chúng ta cộng như sau:
tổng = ai + bi + nhớ từ phép cộng của hàng trước;
nếu tổng >0xFF thì nhớ sang hàng tiếp theo và bi = tổng - 0xFF
nếu tổng <0xFF thì gán bi = tổng
Điều này thực hiện dễ dàng bằng lệnh ADDC, khi có nhớ từ bit 7 thì sẽ set cờ nhớ C, không nhớ thì nó sẽ tự xóa cờ nhớ này. Do đó C như là số nhớ từ phép tính trước.Vì nó tự động xóa hoặc set nên không cần xóa Nên chỉ cần dùng như sau:
Như vậy cần thực hiện 5 vòng lặp. Có nhiều cách lặp, mình sử dụng kiểu Do.. While; (trong C);Code:; R0 là địa chỉ của bi ; R1 là địa chỉ của ai MOV A, @R0 ADDC A, @R1 MOV @R0, A
Tướng ứng trong ASM:Code:index = m; // m = const Do{ // Làm việc gì đó index -- ; } while (index>0)
DJNZ: Decrease and Jump if Not EqualCode:MOV R2,#5 ; gán R2 = 5 LOOP: ; do something DJNZ R2,LOOP ; Giảm R2, nếu chưa = 0 thì nhảy đến Loop
Chi tiết hơn về các lệnh anh em xem trong tệp lệnh nhé. Rảnh thì mình sẽ viết luôn cả code C cho anh em so sánh nhé :d.
Chúc anh em thành công.
Comment
Bài viết mới nhất
Collapse
-
bởi theidiotcatViệc lựa chọn một chiếc laptop gaming phù hợp với nhu cầu, ngân sách chưa bao giờ là dễ dàng. Và điều đó càng khó hơn trong năm 2026 khi mà mức giá liên tục tăng.
Nếu bạn chưa biết nên chọn một chiếc laptop gaming như thế nào...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:29 -
-
bởi theidiotcatVới mức ngân sách 20 - 30 triệu đồng trong năm 2026, các bạn sinh viên và dân văn phòng có thể tìm thấy nhiều lựa chọn cao cấp, mạnh mẽ, pin “trâu”, đặc biệt là các mẫu laptop AI hỗ trợ cho học tập và làm việc.
Trong phân...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:25 -
-
bởi theidiotcatDưới đây là một số mẫu laptop nổi bật trong phân khúc dưới 20 triệu giúp các bạn văn phòng, sinh viên và đặc biệt là tân sinh viên có thể dễ dàng lựa chọn được mẫu laptop phù hợp với nhu cầu và ngân sách của mình.
Thị...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:07 -
-
bởi theidiotcatViệc chọn mua một bộ máy tính phục vụ cho các nhu cầu làm việc văn phòng và sử dụng cơ bản hàng ngày đang trở nên dễ dàng và tiết kiệm hơn bao giờ hết. Thay vì phải đau đầu trích ngân sách để mua cả vi xử lý lẫn card đồ họa rời...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:23 -
-
bởi theidiotcatViệc nâng cấp từ một dàn máy tính cũ lên cấu hình mới luôn khiến nhiều người đắn đo về mức chi phí bỏ ra. Nếu bạn đang tìm kiếm một sự lột xác hoàn toàn về hiệu năng mà vẫn cân đối được dòng tiền, combo giữa vi xử lý Ryzen...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:06 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanVí dụ một trang như thế này
...-
Channel: Điện tử công suất
24-06-2026, 19:57 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanỔ bi có loại chịu lực dọc, loại chịu lực ngang.
Bạn kiếm một quyển Data cũng một hãng vòng bi nào đó. Họ sẽ cấp cho bạn đủ thông số kỹ thuật.
Khi lựa chọn được mã sản phẩm, bạn chỉ việc tìm mua mã đó, hoặc đặt hàng....-
Channel: Điện tử công suất
24-06-2026, 19:52 -
-
bởi GargiChào mọi người, tôi đang gặp một vấn đề kỹ thuật và muốn được nghe ý kiến của mọi người.
Tôi đã lắp một đĩa xích vào trục đầu ra của hộp số hành tinh bánh răng xoắn dùng cho truyền động xích. Sau vài tháng hoạt động, ổ bi đầu ra bị hỏng.
Bản thân...-
Channel: Điện tử công suất
24-06-2026, 13:22 -
-
bởi vi van phamSau hàng chục năm, không biết có ai còn nghĩ gì về tôi? Riêng tôi, nhớ nhiều về dientuviet nam. net. Ngày ấy tìm 1 người bạn đam mê về điện từ khó như trúng số độc đăc. Tôi đã trúng số độc đắc khi được mời về dientuvietnam.net...
-
Channel: Tâm tình dân kỹ thuật
23-06-2026, 22:43 -

Comment