PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 25-01-2007, 06:29 PM   #1
smile
Nhập môn đệ tử
 
Tham gia ngày: Dec 2006
Bài gửi: 2
:
hỏi về tạo bảng trong ROM bằng CCS

Có bạn nào biết tạo bảng trong ROM không nhỉ? Mình muốn chuyền bài này sang CCS các bạn chuyển giúp mình với. Mình thấy chỗ tạo bảng khó quá. Đây là bài điều khiển Ledmatrix hoặc bạn nào có cách khác thì đưa lên hộ nhé.

RUNNING SIGN for 5x7 Display
;Program for PIC16F84 and only F84 chip
;Takes data from Table1 and runs it across the screen

Start ORG 0x00 ;This sets up the ports
BSF 03,5
MOVLW 00h
MOVWF 05h
MOVWF 06h
BCF 03,5
GOTO Run1

;Table1 holds the hex values for each column of LEDs

Table1 ADDWF 02h,1 ;Add W to Program Counter
RETLW 00h
RETLW 40h
RETLW 40h
RETLW 7Fh
RETLW 40h
RETLW 40h
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 3Fh
RETLW 40h
RETLW 3Fh
RETLW 40h
RETLW 3Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 41h
RETLW 41h
RETLW 3Eh
RETLW 00h
RETLW 70h
RETLW 0Eh
RETLW 01h
RETLW 0Eh
RETLW 70h
RETLW 00h
RETLW 7Fh
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 0Ch
RETLW 02h
RETLW 7Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 45h
RETLW 45h
RETLW 36h
RETLW 00h
RETLW 32h
RETLW 49h
RETLW 49h
RETLW 49h
RETLW 26h
RETLW 00h
RETLW 7Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 45h
RETLW 45h
RETLW 36h
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 0Ch
RETLW 02h
RETLW 7Fh
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 0FFh

Run1 CLRF 11h ;Clear the Ghost locations ready for starting
CLRF 12h
CLRF 13h
CLRF 14h
CLRF 15h
MOVLW 00
MOVWF 19h ;File 19h is the jump value for table
Run2 MOVLW 40h
MOVWF 18h ;File 18h counts the number of scans
CALL Shift ; and controls the "run speed"
INCF 19h,1
MOVF 19h,0 ;Put jump value into W
CALL Table1
MOVWF 15h ;W contains table data - put it in 15h
XORLW 0FFh ;If table value is FF,
BTFSC 03,2 ; bit 2 of file 3 will be SET (=1)
GOTO Run1 ;Start Table1 again
Run3 DECFSZ 18h,1 ;Scan the display 40h times
GOTO Run4
GOTO Run2
Run4 CALL Scan
GOTO Run3

Scan BSF 05,1 ;Reset 4017
NOP
BCF 05,1

MOVF 11h,0 ;Output the data at the 5 Ghost
MOVWF 06h ; locations to the display
CALL DelD
MOVF 12h,0
MOVWF 06h
CALL DelD
MOVF 13h,0
MOVWF 06h
CALL DelD
MOVF 14h,0
MOVWF 06h
CALL DelD
MOVF 15h,0
MOVWF 06h
CALL DelD
RETURN
;SHIFT moves the data one place to the left to give the "movement"
; effect on the screen

Shift MOVF 12h,0 ;Move file 12h to W
MOVWF 11h ;Move W to file 11h
MOVF 13h,0 ;Move file 13h to W
MOVWF 12h ;Move W to file 12h
MOVF 14h,0 ;Move file 14h to W
MOVWF 13h ;Move W to file 13h
MOVF 15h,0 ;Move file 15h to W
MOVWF 14h ;Move W to file 14h
RETURN

DelD DECFSZ 1Bh,1 ;Delay for viewing the
GOTO DelD ; column of LEDs
MOVLW 00h
MOVWF 06
Clk BSF 05,0 ;Clock the 4017 to
NOP ; the next output
BCF 05,0
RETURN

END

RUNNING SIGN for 5x7 Display
;Program for PIC16F84 and only F84 chip
;Takes data from Table1 and runs it across the screen

Start ORG 0x00 ;This sets up the ports
BSF 03,5
MOVLW 00h
MOVWF 05h
MOVWF 06h
BCF 03,5
GOTO Run1

;Table1 holds the hex values for each column of LEDs

Table1 ADDWF 02h,1 ;Add W to Program Counter
RETLW 00h
RETLW 40h
RETLW 40h
RETLW 7Fh
RETLW 40h
RETLW 40h
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 3Fh
RETLW 40h
RETLW 3Fh
RETLW 40h
RETLW 3Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 41h
RETLW 41h
RETLW 3Eh
RETLW 00h
RETLW 70h
RETLW 0Eh
RETLW 01h
RETLW 0Eh
RETLW 70h
RETLW 00h
RETLW 7Fh
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 0Ch
RETLW 02h
RETLW 7Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 45h
RETLW 45h
RETLW 36h
RETLW 00h
RETLW 32h
RETLW 49h
RETLW 49h
RETLW 49h
RETLW 26h
RETLW 00h
RETLW 7Fh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 45h
RETLW 45h
RETLW 36h
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 0Ch
RETLW 02h
RETLW 7Fh
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 0FFh

Run1 CLRF 11h ;Clear the Ghost locations ready for starting
CLRF 12h
CLRF 13h
CLRF 14h
CLRF 15h
MOVLW 00
MOVWF 19h ;File 19h is the jump value for table
Run2 MOVLW 40h
MOVWF 18h ;File 18h counts the number of scans
CALL Shift ; and controls the "run speed"
INCF 19h,1
MOVF 19h,0 ;Put jump value into W
CALL Table1
MOVWF 15h ;W contains table data - put it in 15h
XORLW 0FFh ;If table value is FF,
BTFSC 03,2 ; bit 2 of file 3 will be SET (=1)
GOTO Run1 ;Start Table1 again
Run3 DECFSZ 18h,1 ;Scan the display 40h times
GOTO Run4
GOTO Run2
Run4 CALL Scan
GOTO Run3

Scan BSF 05,1 ;Reset 4017
NOP
BCF 05,1

MOVF 11h,0 ;Output the data at the 5 Ghost
MOVWF 06h ; locations to the display
CALL DelD
MOVF 12h,0
MOVWF 06h
CALL DelD
MOVF 13h,0
MOVWF 06h
CALL DelD
MOVF 14h,0
MOVWF 06h
CALL DelD
MOVF 15h,0
MOVWF 06h
CALL DelD
RETURN
;SHIFT moves the data one place to the left to give the "movement"
; effect on the screen

Shift MOVF 12h,0 ;Move file 12h to W
MOVWF 11h ;Move W to file 11h
MOVF 13h,0 ;Move file 13h to W
MOVWF 12h ;Move W to file 12h
MOVF 14h,0 ;Move file 14h to W
MOVWF 13h ;Move W to file 13h
MOVF 15h,0 ;Move file 15h to W
MOVWF 14h ;Move W to file 14h
RETURN

DelD DECFSZ 1Bh,1 ;Delay for viewing the
GOTO DelD ; column of LEDs
MOVLW 00h
MOVWF 06
Clk BSF 05,0 ;Clock the 4017 to
NOP ; the next output
BCF 05,0
RETURN

END

thay đổi nội dung bởi: smile, 25-01-2007 lúc 06:35 PM.
smile vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:00 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam