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

  • #31
    Chào em.

    Hiển thị led matrix cần cho dữ liệu lần lượt ra các hàng hoặc các cột đúng k?

    Ví dụ, muốn hiện chữ tổng quát chữ X nào đó em cần đầy dữ liệu line1, line2, line3 đễn line8 ra các hàng đúng k em? Tất nhiên là vẫn quét rùi, còn giá trị này thì em lấy trong ROM rùi mà.

    Như thế nếu em cho dữ liệu line1 = 0x00; (tương ứng với xóa) thì em xóa hàng 1, rùi đợi đến 1s sau lại cho line2 = 0x00 xóa hàng 2 đi, ...
    thì có phải là chữ này dần dần bị mất đi k?

    Còn muốn chữ chạy thì đơn giản, ví dụ chạy phải thì 1s đầu (1s hay nhiều s là do em muốn nhanh hay chậm thôi), em cho line1 = 0; line2 = line1; ... tiếp tục thế là ổn.

    Đó là thuật toán anh nghĩ đấy, chẳng biết có good không nữa .

    Lưu ý, tần số quét led phải phù hợp đó em ạ, em chỉnh đến khi không có cảm giá c đèn nhấp nháy là dc rùi. Và tắt led trước khi thay đổi dữ liệu hiển thị lên led.

    Chúc em thành công.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment


    • #32
      @ngohaibac: Bài trên mình đã sửa được. Do mình quên quét LED nên chỉ hiển thị một chớp mắt rồi tắt. Mình muốn hỏi thêm tẹo.

      Bây giờ mình muốn truyền một số có 2,3 chữ số ra LED (LED của mình có 3 chữ số) thì thuật toán có gì thay đổi không? Mình chưa nghĩ ra. Ví dụ : Gõ 10 (số mười) thì sẽ nhận được 10 trên LED. Hiện tại khi làm như vậy mình chỉ nhận được số 0 trên LED thôi. Mất số 1!

      Sau khi nhận thông tin từ SBUF, chuyển qua thanh ghi A, thì làm thế nào để giữ được số 1? (Hỏi thế này có củ chuối không nhỉ?)

      Mong sớm trả lời hộ.
      Last edited by daytripper; 02-05-2007, 00:01.

      Comment


      • #33
        Chào bạn.

        Thuật toán thay đổi hay không là do bạn đó.

        Ví dụ bạn muốn hiển thị 2 kí tự ra 2 led phải không? Thế thì bạn phải có một biến đếm trong hàm ngắt tên là index = 0;

        Khi nhận được kí tự 1 thì cho index = 1; và lưu vào một địa chỉ RAM nào đó.
        Khi nhận được kí tự thứ 2 thì cho index = 0; và lưu vào một địa chỉ RAM nào đó. Việc lưu vào RAM là tự động dựa vào biến index, nếu index = 1 thì lưu vào chỗ A, nếu index = 0 thì lưu vào chỗ B rùi cứ thế mà đọc ra.

        Còn việc scan led thì cứ lấy dữ liệu trong RAM mà cho ra thôi, cái này chắc ok rùi chứ bạn??

        Chúc bạn thành công.
        Technical sale at WT Microelectronics S'pore
        Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
        Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

        Comment


        • #34
          Một số chương trình demo cho các bạn tham khảo !

          Dùng cho mạch Easy MCS51 .
          http://www.nhom3c.com/forum/viewtopic.php?t=937
          Thanks !
          Attached Files

          Comment


          • #35
            chào các bạn, tui là thành viên mới của diễn đàn và cũng thích con 8051, mong rằng sẽ góp phần nào kiến thức cho anh em và cũng học được nhiều từ anh em !
            |

            Comment


            • #36
              Mình đang tìm hiểu để làm mạch tự động nhận và ghi cuộc gọi bằng Vi xử lý , hiện nay đã hoàn thành phần thiết kế mạch nhưng bị kẹt ở đoạn viết chương trình xử lý . Bạn nào có thể giúp mình với . Ý tưởng là khi có cuộc gọi đến . chuông reo khoảng 5 lần thì kích tải giả để thông thoại . các linh kiện chính mình xử dụng là AT89C51, MT8880 và con ISD 1420 . Rất mong các bạn hướng dẫn giúp
              |

              Comment


              • #37
                Nguyên văn bởi genius Xem bài viết
                Mình đang tìm hiểu để làm mạch tự động nhận và ghi cuộc gọi bằng Vi xử lý , hiện nay đã hoàn thành phần thiết kế mạch nhưng bị kẹt ở đoạn viết chương trình xử lý . Bạn nào có thể giúp mình với . Ý tưởng là khi có cuộc gọi đến . chuông reo khoảng 5 lần thì kích tải giả để thông thoại . các linh kiện chính mình xử dụng là AT89C51, MT8880 và con ISD 1420 . Rất mong các bạn hướng dẫn giúp
                Cái này trong diễn đàn đã nói rất nhiều. Bạn cứ tìm trong đó.
                AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                Xem thêm tại Online Store ---> Click here
                Mob: 0982.083.106

                Comment


                • #38
                  cac bac oi minh down keilc koduoc lam on giupminh voi
                  minh cung rat cam on bac bnao da mo chu de nay

                  Comment


                  • #39
                    cac bac oi nhu lammach dong ho thi phai dung chuong trinh quet led ma minh doc vo sao kohieu gi het lam on chi minh voi
                    ca phan cung lan phan mêm nha

                    Comment


                    • #40
                      Anh Hải Bắc ơi anh có thể cho em mạch để điều khiển chuông báo, và chương trình để điều khiển (bằng C và asm ) ở trong trường học được không anh cám ơn anh nhiều em đang cần làm bài tập thực hành về vấn đề này mong anh giúp em với.

                      Comment


                      • #41
                        Nguyên văn bởi n_a_d Xem bài viết
                        Anh Hải Bắc ơi anh có thể cho em mạch để điều khiển chuông báo, và chương trình để điều khiển (bằng C và asm ) ở trong trường học được không anh cám ơn anh nhiều em đang cần làm bài tập thực hành về vấn đề này mong anh giúp em với.
                        http://dientuvietnam.net/forums/showthread.php?t=6191
                        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                        Xem thêm tại Online Store ---> Click here
                        Mob: 0982.083.106

                        Comment


                        • #42
                          Em là thành viên mới. Mong các bậc tiền Bối chỉ giáo.
                          Đây là chương trình điều khiển 2 động cơ bước. Trong đó có 3 led 7 đoạn dùng để đếm sản phẩm từ 000 đến 999.
                          Chương trình có 2 chế độ điều khiển:
                          -Chạy đường thẳng
                          -Chạy đường tròn (Mâm quay)
                          *Ở chế độ đường thẳng:
                          Nhấn chạy thì ĐC sẽ chạy cho đến khi nào đụng S2 thì sẽ về home, sau đó Sản Phẩm sẽ tăng lên 1 (Hiện ở led 7), cứ như vậy cho đến khi bằng 999 thì báo titit không thể tăng được nữa.
                          *Ở chế độ đường tròn:
                          Cũng như vậy nhưng CTHT là S3.

                          Hỏi:
                          Ở chế độ đường tròn thì sản phẩm tăng đến 29 thì chương trình treo hoàn toàn. Nút nhấn không nhấn được nữa.
                          Ở chế độ đường thẳng thì sản phẩm tăng đến 9 thì tự đổi sang chế độ đường tròn, bấm nút chế độ thì không thể đổi chế độ lại được, nhưng vẫn chạy ở chế độ đường tròn được.
                          Bình thường khi chưa gắn động cơ, cho chay không để thừ thì 7805 rất nóng. Nhưng khi gắn động cơ vào thì 7805 còn ấm nhưng DIOD CẦU lại nóng. Tại sao vậy ?
                          Nguyên nhân nào 7805 nóng, điện áp T xài là 12V.
                          Nguyên nhân nào Diod Cầu nóng, Diod cầu T xài 5A và T xài nguồn 12V 5A.

                          Code:
                          ; XU LY THEM LED 7 DEM SP
                          include reg_51.pdf
                          			org 0000h
                          			ljmp main
                          main:
                                   ; DN cac bit
                          			chaythang   bit p3.6
                          			dungthang   bit p3.5
                          			den  			bit p3.0
                          			chaytron   bit p3.3
                          			dungtron    bit p3.2
                          			home	    bit p3.1
                          			chedo    bit p3.4
                          			chuong     bit p3.7
                          			s1			bit p2.4
                          			s2			bit p2.5
                          			s3			bit p2.6
                          			s4 		bit p2.7
                          			hoquang_on bit p2.3
                          ;##########################################################			
                          	; DN cac bien
                          	CNT EQU 7FH
                                  	DONVI EQU 7EH
                                  	CHUC EQU 7DH
                                  	TRAM EQU 7CH
                          	bchedo  bit 7BH
                          			
                          ;##########################################################			
                          			; Xoa cac bien, bit, port
                          			mov p1,0ffh
                          			mov p3,0ffh
                          			setb chedo
                          			clr chuong
                          			clr hoquang_on
                          			setb s1
                          			setb s2
                          			SETB S3
                          			SETB S4
                          			setb chaythang
                          			setb dungthang
                          			setb home 
                          			setb bchedo
                          			clr hoquang_on
                          			
                                 		MOV     P2,#0FFH
                                  		MOV     CNT,#0
                                  		MOV     DPTR,#MALED
                          		 MOV CHUC,#0
                          		 MOV DONVI,#0
                          		 MOV TRAM,#0
                          ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                          chonchedo:
                          		clr hoquang_on
                          		jb chedo,ktchedo
                          		call chongdoi
                          		call tittit
                          	            cpl bchedo
                          		 ;ljmp ktchedo
                          		   ;***********************************
                          ktchedo:
                          			jnb bchedo,ktr_duongtron
                          			jb bchedo, ktr_duongthang
                          			;call ktchedo
                          			
                          ;********************************************		     
                          ktr_duongthang:
                          			CALL QUETLED; DE XEM SO DEM	
                          			setb den
                          	ktdt0: 		jb chaythang,ktdt1
                           			call dc_chay 		
                          	ktdt1:		jb dungthang,ktdt2
                          			call dc_dung_tamthoi_thang		
                          	ktdt2:		jb home,chonchedo	
                          			call home_all								
                          			ljmp chonchedo						
                          ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                          ktr_duongtron:
                          		CALL QUETLED; DE XEM SO DEM
                          		clr den
                          		MOV P1,#0FFH
                          	ktdtr0: 	jb chaytron,ktdtr1
                           		call dc_chaytron 		
                          	ktdtr1:	jb dungtron,ktdtr2
                          		call dc_dung_tamthoi_tron		
                          	ktdtr2:	jb home,ktdtr3
                          		call home_all
                          	ktdtr3:	jb chaythang,ktdtr4
                          		call chaytoi
                          	ktdtr4:	jb dungthang,ktdtr5
                          		call chaylui					
                          	ktdtr5:	ljmp  chonchedo
                          
                          chongdoi:
                          	 	Mov R7,#30 
                                  lap: 	Dec R7
                                       	Cjne r7,#0,lap
                                      	Ret
                          	
                          ;###################################################        
                          dc_chay:	
                          		call tittit
                          		setb hoquang_on  ; bat ho quang
                          back1:	
                          		jb home,skip1
                          		call home_all 
                            skip1: 	jb dungthang,skip2
                          		call dc_dung_tamthoi_thang	; kt xem co nhan Stop hay ko ?
                            skip2: 	jb s2,skip3
                            		call ve_hometd ; kt xem co dung s2 ko ?
                            skip3: 	mov r7,#4 	
                            		mov A,#11111110b
                            begin:		mov p1,A
                           		call delay_ra 
                            		rl A 			
                          		DJNZ r7,begin  ; xuat du 4 bit, roi quay lai begin de nap lai		
                          		 ljmp back1
                          		   
                          chaytoi:	
                          			clr hoquang_on  ; tat ho quang
                            			jb s2,skip4
                            			call tittit ; kt xem co dung s2 ko ?
                            skip4: 		mov r7,#4 	
                            			mov A,#11111110b
                            begin11:	
                            			mov p1,A
                           			call delay_fast
                            			rl A 			
                          			DJNZ r7,begin11  ; xuat du 4 bit, roi quay lai begin de nap lai	
                          		   	ret
                          
                          chaylui:	
                          			clr hoquang_on  ; tat ho quang
                            			jb s1,skip5
                            			call tittit 
                            skip5:			 mov r7,#4 	
                            			mov A,#11110111b
                            begin12:		mov p1,A
                           			call delay_fast 
                            			rr A 			
                          			DJNZ r7,begin12  ; xuat du 4 bit, roi quay lai begin de nap lai	
                          		  	 ret
                          		   
                          		   
                          dc_chaytron: 
                          			call tittit
                          	lap8:	
                          			jb dungtron,skip6
                          			call dc_dung_tamthoi_tron	
                          	skip6:		jnb home,home_all
                          			setb hoquang_on  ; bat ho quang
                          			jb s4,skip7
                          			call ve_hometrontd ; kt xem co dung s2 ko ?
                          	skip7		mov r4,#4 	
                            			mov A,#11101111b
                            begin9		:mov p1,A
                           			call delay_ra
                            			rl A 			
                          			DJNZ r4,begin9  ; xuat du 4 bit, roi quay lai begin de nap lai	
                          		  	 ljmp lap8
                          ;***********************************************
                          home_all:
                          				call tittit
                          				clr hoquang_on
                          		xet3:	
                          				jnb s1,run_cir
                          				mov r4,#4  	
                            				mov A,#11110111b
                            		begin3:  	mov p1,A
                           				call delay_fast
                           				rr  A			
                          				DJNZ r4,begin3
                          		  		ljmp xet3
                          		   
                          		run_cir:	
                          				call tittit
                          				clr hoquang_on
                          			xet4:
                          				jnb s3,dc_dung_luon ; kiem tra xem co dung CTHT S1
                          				mov r4,#4  	
                            				mov A,#01111111b
                            		begin4:		mov p1,A
                           				call delay_ve
                           				rr A 			
                          				DJNZ r4,begin4
                          		   		ljmp xet4
                          		   
                          				ljmp 	chonchedo
                          	
                          ve_hometrontd:
                          			clr hoquang_on
                          			call tittit
                          			call DEMSP
                          	xet1:
                          			jnb s3,dc_dung_luon ; kiem tra xem co dung CTHT S3
                          			mov r4,#4  	
                            			mov A,#01111111b
                           	 begin1:	mov p1,A
                           			call delay_ve
                           			rr A			
                          			DJNZ r4,begin1
                          		  	 ljmp xet1
                          		   
                          ve_hometd:
                          			clr hoquang_on
                          			call tittit
                          			call DEMSP
                          	xet2:	
                          			jnb s1,dc_dung_luon ; kiem tra xem co dung CTHT S1
                          			mov r4,#4  	
                            			mov A,#11110111b
                           	 begin2		:mov p1,A
                           			call delay_fast
                           			rr A			
                          			DJNZ r4,begin2
                          		  	 ljmp xet2
                          ;**********************************************
                          dc_dung_luon:
                          			mov p1,#0ffh; xoa het DL kich 
                          			clr hoquang_on ; tat ho quang
                          			mov r7,#5
                          		tr:	call tittit
                          			call delay_chuong
                          			call delay_chuong
                          			call delay_chuong
                          			call delay_chuong
                          			call delay_chuong
                          			call delay_chuong
                          			djnz r7,tr
                          			ljmp chonchedo
                          dc_dung_tamthoi_thang: 
                          			clr hoquang_on ; tat ho quang
                          			call tittit
                          			mov p1,#0ffh
                          	test:		jb home,skip8
                          			call home_all
                             	skip8:		jb chaythang,skip9
                           	   		call dc_chay ; kiem tra xem co bam chay tro lai ko ?
                          	skip9:		ljmp test
                          	
                          dc_dung_tamthoi_tron: 
                          			clr hoquang_on ; tat ho quang
                          			call tittit
                          			mov p1,#0ffh
                          test2:		jb home,skip10
                          			call home_all
                           	skip10:		jb chaytron,skip11
                           	   		call dc_chaytron ; kiem tra xem co bam chay tro lai ko ?
                          	skip11:		ljmp test2	
                          ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                          ;XU LY LED 7
                          DEMSP: 
                              		 INC CNT; TANG BIEN DEM
                                 		 MOV     A,CNT
                                  		CJNE    A,#100,EXIT
                                 		 MOV     CNT,#0
                                 		INC		 TRAM
                                 		 MOV     A,TRAM
                                  		CJNE A,#10,EXIT ; NEU BANG 1000 THI BAO LA KO THE TANG DC NUA
                                 		 CALL NHAPNHAY
                          EXIT: 		RET
                          
                          QUETLED:
                                  CALL    DOISO
                                  MOV     A,CHUC
                                  MOVC    A,@A+DPTR
                                  MOV     P0,A
                                  CLR     P2.1
                                  CALL    DELAY
                                  SETB    P2.1
                          
                                  MOV     A,DONVI
                                  MOVC    A,@A+DPTR
                                  MOV     P0,A
                                  CLR     P2.0
                                  CALL    DELAY
                                  SETB    P2.0
                                  
                                  MOV     A,TRAM
                                  MOVC    A,@A+DPTR
                                  MOV     P0,A
                                  CLR     P2.2
                                  CALL    DELAY
                                  SETB    P2.2
                                  RET
                                    
                          DOISO:
                                 PUSH ACC
                                 PUSH B
                                 MOV A,CNT
                                 MOV B,#10
                                 DIV AB
                                 MOV CHUC,A
                                 MOV DONVI,B
                                 POP B
                                 POP ACC
                                 RET
                                 
                          DELAY:
                                  MOV R0,#100
                                  DJNZ R0,$
                                  RET
                          ;**********************************************
                          delay_fast:
                          			Push 03
                          			mov tmod,#10h
                          			mov th1,#high(-2000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
                          			mov tl1,#low(-2000)
                          			setb tr1
                          			clr tf1
                          			jnb tf1,$
                          			pop 03
                          			ret	
                          ;#############################################
                          tittit:
                          		setb chuong
                          		call delay_chuong
                          		clr chuong
                          		call delay_chuong
                          		call delay_chuong
                          		setb chuong
                          		call delay_chuong
                          		clr chuong
                          		ret
                          ;############################################
                          NHAPNHAY:
                          		   clr hoquang_on ; tat ho quang
                          			mov r1,#10
                            COMEBACK:
                            			  CALL TITTIT
                            			  mov p0,#10010000B
                          		     CLR P2.0
                          		     CLR P2.1
                          		     CLR P2.2
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     SETB P2.0
                          		     SETB P2.1
                          		     SETB P2.2
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     call delay_chuong
                          		     djnz r1,COMEBACK 
                          	
                          		     CALL CHONCHEDO
                          ;**********************************************
                          ;so0:
                          ;		mov p0,#11000000b
                          		;CLR P2.0
                          		;CLR P2.1
                          ;		CLR P2.2
                          ;		ret
                          ;so1:
                          ;		mov p0,#10111111b
                          ;		CLR P2.0
                          ;		CLR P2.1
                          ;		CLR P2.2
                          ;		ret
                          ;**************************************************
                          		
                          DELAY_XET:
                               	Mov R7,#20 
                          back: 	Dec R7
                                      Cjne r7,#0,back
                                   	Ret
                                  
                          ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                          delay_chuong:
                          			push 03
                                			mov tmod,#10h
                          			mov th1,#high(-50000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
                          			mov tl1,#low(-50000)
                          			setb tr1
                          			clr tf1
                          			jnb tf1,$
                          			pop 03
                          			ret	
                          delay_ra:  		
                          			Push 01
                          			mov tmod,#10h
                          			mov th1,#high(-7000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
                          			mov tl1,#low(-7000)
                          			setb tr1
                          			clr tf1
                          			jnb tf1,$
                          			pop 01
                          			ret
                          delay_ve:  		
                          			Push 01
                          			mov tmod,#10h
                          			mov th1,#high(-6000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
                          			mov tl1,#low(-6000)
                          			setb tr1
                          			clr tf1
                          			jnb tf1,$
                          			pop 01
                          			ret
                          MALED:
                          	DB 11000000B,11111001B,10100100B,10110000B,10011001B,10010010B,10000010B,11111000B,10000000B,10010000B
                          	
                          	end
                          Last edited by VNarmy; 30-10-2007, 15:11. Lý do: Chú ý dùng tag code

                          Comment


                          • #43
                            Đây là sơ đồ nguyên lý mạch. Mong các Bác chỉ giáo.
                            http://www.4shared.com/file/27543318...nly_M_TIG.html

                            Comment


                            • #44
                              Hic. Không ai replay lai cả ?

                              Comment


                              • #45
                                Ngo hai Bac oi sao ban khong viet tiep nua di bon minh dang rat can nhung nguoi nhu ban tren dien dan nay day! cam on nhieu!

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X