Trích:
Nguyên văn bởi hanspkt
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).