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
-
Nguyê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:
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à:
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:
Code:; R0 là địa chỉ của bi ; R1 là địa chỉ của ai MOV A, @R0 ADDC A, @R1 MOV @R0, A
Code:index = m; // m = const Do{ // Làm việc gì đó index -- ; } while (index>0)
Code: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 Ng.Phuong.5Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
Mấy con...-
Channel: Cadence ORCAD
Hôm qua, 19:44 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi viettinhBác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...-
Channel: Điện thanh
Hôm qua, 18:12 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi nguyendinhvanTheo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
Cách đơn giản...-
Channel: Điện thanh
Hôm qua, 00:04 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
-
Channel: Điện tử công suất
08-01-2025, 19:02 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi tuyennhanChủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
-
Channel: Điện tử công suất
08-01-2025, 15:43 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi tuyennhanLoa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
-
Channel: Điện thanh
08-01-2025, 15:28 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
-
Channel: Điện thanh
08-01-2025, 11:44 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi viettinhNó không phải cái loa rời. Chả nhẽ đèo thêm 2 con loa tép ngoài thì kỳ lắm....
-
Channel: Điện thanh
08-01-2025, 09:45 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ chú mua thêm loa tép nối tiếp qua con tụ rồi mắc vào cùng loa trung là được ạ...
-
Channel: Điện thanh
07-01-2025, 19:53 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi mèomướpDạ cháu hỏi bạn cháu thì bạn ấy trả lời như thế này ạ. Cháu cũng hông bít có đúng hông nữa ạ
Linh kiện điện tử với mã "943BA" và "W58BAL" là một loại cầu chì tự động (circuit breaker) do TE Connectivity sản...-
Channel: Điện tử dành cho người mới bắt đầu
07-01-2025, 19:50 -
Comment