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 theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phambao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 21:58 -
-
bởi ittcChào các anh em, tình hình là mình lo làm ăn không để ý sức khỏe, giờ có chút vấn đề rồi? không biết trên này có anh em nào độ tuổi U35 -> 40 đang có dùng các loại thuốc, thuốc bổ hay thực phẩm chức năng giúp bổ thận tráng dương,...
-
Channel: Tâm tình dân kỹ thuật
05-06-2026, 12:28 -
-
bởi theidiotcatTrong thế giới phần cứng năm 2026, AMD Ryzen 5 7500X3D không chỉ là một cái tên mới, nó là một tuyên ngôn về hiệu suất. Dựa trên các thử nghiệm khắt khe trong môi trường chơi game chuyên nghiệp, con chip này đã chứng minh rằng: bạn không cần...
-
Channel: Đánh giá sản phẩm DTVN
05-06-2026, 10:05 -

Comment