View Single Post
Old 03-12-2006, 10:06 AM   #11
Jerry
Đệ tử 5 túi
 
Jerry's Avatar
 
Tham gia ngày: Sep 2006
Bài gửi: 100
:
Đổi mã nhị phân 16bit sang 5 byte bcd unpacked

Trích:
Nguyên văn bởi hanspkt View Post
Xin chào!
Em vừa mới tìm được cách chuyển đổi từ mã nhị phân 8bit sang mã bcd để xuất ra led 7 doan, nhưng em không biết cách để chuyển mã nhị phân 16bit sang mã bcd, mong được các bác chỉ giáo.
Code:
; Đổi mã nhị phân 16bit sang 5byte BCD unpacked

;****************************
;Binary 16 bit to BCD unpacked 5 digit
;****************************
; Input : hex number in Hi, Lo (16bit binary)
; Output : TenK:Thou:Hun:Ten:Ones

bin16tobcdup5:
	swapf	Hi,w	
        	andlw   	0x0F     	
        	addlw   	0xF0		
        	movwf   	Thou	
        	addwf   	Thou,f	
        	addlw   	.226	
        	movwf  	Hun	
        	addlw   	.50	
       	movwf   	Ones	

        	movf    	Hi,w	
        	andlw   	0x0F
        	addwf   	Hun,f	
        	addwf   	Hun,f	
        	addwf   	Ones,f	
        	addlw   	.233	
        	movwf   	Ten	
        	addwf   	Ten,f	
        	addwf   	Ten,f	

        	swapf   	Lo,w	
        	andlw   	0x0F	
        	addwf   	Ten,f	
        	addwf   	Ones,f	

        	rlf     	Ten,f	
        	rlf     	Ones,f	
        	comf    	Ones,f	
        	rlf     	Ones,f	

        	movf    	Lo,w	
        	andlw   	0x0F	
        	addwf   	Ones,f	
        	rlf     	Thou,f	

        	movlw   	0x07	
        	movwf   	TenK	

        	movlw   	.10	
Lb1:			
        	addwf   	Ones,f	
        	decf    	Ten,f	
       	btfss   	3,0
         	goto   	Lb1	
	
Lb2:			
        	addwf   	Ten,f	
        	decf    	Hun,f	
        	btfss   	3,0
         	goto   	Lb2	
Lb3:			
        	addwf   	Hun,f	
        	decf    	Thou,f	
        	btfss   	3,0
         	goto   	Lb3	
Lb4:			
        	addwf   	Thou,f	
        	decf    	TenK,f	
        	btfss   	3,0
         	goto   	Lb4	
        	retlw   	0

; Phần khai báo đầu chương trình thêm vào khai báo RAM:
	CBLOCK	0x20
	TenK
	Thou
	Hun
	Ten
	Ones
	Hi
	Lo
             ENDC

; gọi thử chương trình đổi mã nhị phân 16bit sang 5 byte bcd unpacked 
	movlw	0xff
	movwf	Hi
	movlw	0xff
	movwf	Lo
	call	bin16tobcdup5

Notes: Nhờ các Mod edit lại phần code sao cho dễ nhìn hộ em, em chẳng biết làm thế nào!!!Thanks

namqn: Chọn phần code cần định dạng, chọn nút có hình dấu '#' trên thanh công cụ (ở trong khung soạn thảo lớn nhé). Cách khác là đặt mã [ code] trước phần code cần định dạng, và mã [ /code] ngay sau phần cần định dạng (nhớ là không có khoảng trắng bên trong các tag [] nhé, tôi phải để khoảng trắng thì các tag mới hiển thị được).

thay đổi nội dung bởi: namqn, 03-12-2006 lúc 07:12 PM.
Jerry vẫn chưa có mặt trong diễn đàn