Thông báo

Collapse
No announcement yet.

Lập trình ASM cho 8051

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #46
    Cảm ơn bạn Tranninh đã có lời. Rất mong được mọi người góp ý. Thanks

    Comment


    • #47
      Các Bạn oi! Có thể cho Mình biết chương trình treo là vì những lí do nào không ?. Mình đã thử tách chương trình số đếm từ 000-999 thì mạch vân đếm đựơc. Nhưng khi đưa vào chương trình trên để đếm sản phẩm thì chương trình bị treo giống như ở trên đã nói.

      Comment


      • #48
        T đã thử đem chương trình qua Pinacle để Simulate nhưng báo là bị lỗi Nop..... gì đó. Có thể cho T biết lỗi Nop là lỗi gì không. Có người giới thiệu T xài Pinacle nhưng vì là tự mò nên chưa gì đã bị lỗi trên.
        Có ai biết sử dụng hay tài liệu về Pinacle thì Shared cho Mình nha. Thanks.

        Comment


        • #49
          Hic... Ít người quan tâm vậy sao ?

          Comment


          • #50
            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


            • #51
              Có ai biết Pinacle ko ?. Shared cho T ít tài liệu được không ?

              Comment


              • #52
                có cách nào ghi tạm 2-3 thanh ghi vào ROM nội của 8051 ko nhỉ các bác ? Để phòng hờ cúp điện ấy mà ! Khi có điện thì có thể đọc ROM nội ra
                Như thế để khỏi giao tiếp ROM ngoài , liệu có khả thi không nhỉ các bác ?

                Comment


                • #53
                  Mình đang nghiên cứu về UART mode 3 của 8051 (truyền thông đa xử lý). Hệ thống gồm 3 vi điều khiển 89D52 (1 master và 2 slave). Các bạn nào có biết xin giúp mình với.

                  Comment


                  • #54
                    Hệ thống gồm 3 vi điều khiển 89S52 (1 master và 2 slave).Mình gõ nhầm.

                    Comment


                    • #55
                      Xin chào các bạn, máy mình mới cài lại sơ ý xoá mất chương trình batronix pro studio 5.28 (mình phân vùng partition lại, giờ không phục hồi được) dùng lập trình cho chi điều khiển. bạn nào có chương trình này chia sẻ chi mình với. Cám ơn nha.

                      Comment


                      • #56
                        bạn ơi hãy đưa ra những bài tập cụ thể hơn sau đó ta đi sau vào nó nhé ! lúc đó mình nghĩ sẽ có hứng hơn đó

                        Comment


                        • #57
                          Nguyên văn bởi ngohaibac Xem bài viết
                          Chi 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.
                          Mình xin giải thích cách làm:
                          2 số 5 byte là:
                          Code:
                          b5 b4 b3 b2 b1 b0
                              a4 a3 a2 a1 a0
                          (mõi số là số 1 byte)

                          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
                          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:
                          index = m; // m = const
                          Do{
                          // Làm việc gì đó
                          index -- ;
                          } while (index>0)
                          Tướng ứng trong ASM:
                          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
                          DJNZ: Decrease and Jump if Not Equal

                          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.
                          Cho mình hỏi là trước lệnh RLC A có cần CLR A không

                          Comment


                          • #58
                            chào mọi người , em là thành viên mới tập tọe nghiên cứu con IC 8051 . em muốn hỏi mọi người về cách hiện chữ trên LCD sử dụng IC này
                            Đề bài cụ thể của nó đây ạ : T.kế hệ thốg hiển thị sử dụng màn hình LCD character 40*4 hiển thị dòg chữ "Hello world" với IC 8051.
                            thank mọi người

                            Comment


                            • #59
                              Khi dùng chương trình Reads51 để chuyển từ file .asm sang .hex. Tới dòng lệnh MOV A, #"A" (hoặc bất kỳ ký tự nào khác là ) trình dịch có báo lỗi Undecodable line, Syntax error là lỗi gì vậy? Làm thế nào để sửa nó?
                              |

                              Comment


                              • #60
                                Bác ngohaibac ơi xem lại link download đi die rùi.

                                Comment

                                Về tác giả

                                Collapse

                                ngohaibac Tìm hiểu thêm về ngohaibac

                                Bài viết mới nhất

                                Collapse

                                • mèomướp
                                  Trả lời cho Công thức điện tử
                                  bởi mèomướp
                                  Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                  hôm nay, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                  hôm nay, 20:31
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  Ok , thanks bác đã chỉ...
                                  hôm nay, 15:06
                                • nguyendinhvan
                                  Công thức điện tử
                                  bởi nguyendinhvan
                                  Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                  Chập thì thay. Cháy thì tháo
                                  Làm thì láo. Báo thì hay
                                  May thì khoe. Rủi thì bỏ
                                  Thành tích nhỏ. Báo thành to
                                  Làm cho có. Báo chi li
                                  Sai cả li. Báo
                                  ...
                                  hôm nay, 00:35
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                  Hôm qua, 22:31
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                  Hôm qua, 22:14
                                • bactho
                                  Trả lời cho Tự làm máy đo Cuộn cảm
                                  bởi bactho
                                  Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                  Hôm qua, 21:48
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                  Hôm qua, 21:43
                                • bactho
                                  Trả lời cho các bạn giúp mình về file HEX với!!!
                                  bởi bactho
                                  Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                  Hôm qua, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                  Hôm qua, 20:43
                                Đang tải...
                                X