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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 06-11-2009, 01:25 PM   #1
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Cùng thảo luận về ASM và ứng dụng của PIC

-em xin chào anh nhh và các anh.em mới học pic6f877a băng ASM nên muốn làm thưấmy cái mạch ứng dụng nhưng đang bí quá.Em rất mong anh em cùng nhau thảo luận về pic như thế này.
-em có vấn đề chưa hiểu mong anh các anh giúp đỡ em nghen.em đang làm thử cái mạch chạy chữ, dùng 2 con led matrix 8 nhan 8 dịch sang trái theo lập trình sẵn. em dùng 138 để quét cột, ngõ ra mắc với 8 con A1015 dùng port C, con 595 để xuất dữ liệu ra các cột dùng Port B. thì lý thuyết là vậy. nhưng bây giờ là cái code. do em mới học ASM à. nên việc viết code cái này em thấy hơi kho khó. em chỉ viết được chương trình đưa 8 byte(1 ký tự) xuất ra led thôi( dựa vào tài liệu co sẵn). chỉ là đưa byte ra thôi. nhưng em không biết nên thêm delay chỗ nào cho ảnh không bị giật hết ? với lại đó chỉ là 1 ký tự nên em viết dài vậy. còn mà em muốn lập trình cho chữ CHAU dịch trái chẳng hạn. thì viết như em chắc là die mất quá.em biết là cách của em là vô cùng dở, nhưng em chỉ mới tìm hiểu được nhiêu đó thôi. em có nghe nói là viết bảng table cho ký tự.nhưng em không hiểu viết bảng như thế nào cả.em nghĩ là lập bảng cho toàn bộ chữ CHAU.nhưng không biết lập như thế nào và liên kết như thế nào với đoạn chương trình chính? và cả delay nữa.em đang kẹt chỗ này.hichic.đây là code:
PROCESSOR 16F877A
INCLUDE <P16F877A.INC>
SENDREG EQU 20H
COUNT EQU 21H
#DEFINE DATA PORTB,0
#DEFINE CLOCK PORTB,1
#DEFINE CLEAR PORTB,2
#DEFINE LATCH PORTB,3
ORG 0000H
START
BCF STATUS,5
BCF STATUS,6
CLRF PORTB
CLRF PORTC
BSF STATUS,5
CLRF PORTB
CLRF PORTC
BCF STATUS,5
;-------------CHUONG TRINH-------------
MAIN
BSF PORTB,2
BCF CLEAR
NOP
BSF CLEAR
MOVLW 0FFH
CALL SEROUT
MOVLW D'0'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE1---------------
MOVLW 1H
CALL SEROUT
MOVLW D'1'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE2---------------
MOVLW 0H
CALL SEROUT
MOVLW D'2'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE3---------------
MOVLW 0CCH
CALL SEROUT
MOVLW D'3'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE4---------------
MOVLW 0CCH
CALL SEROUT
MOVLW D'4'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE5---------------
MOVLW 0H
CALL SEROUT
MOVLW D'5'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE6---------------
MOVLW 1H
CALL SEROUT
MOVLW D'6'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
;-------------XONG BYTE7---------------
MOVLW 0FFH
CALL SEROUT
MOVLW D'7'
MOVWF PORTC
BSF LATCH
NOP
BCF LATCH
GOTO MAIN
SEROUT
MOVWF SENDREG
MOVLW 08H
MOVWF COUNT
TESTBIT
BCF DATA
BTFSC SENDREG,7
BSF DATA
BSF CLOCK
NOP
BCF CLOCK
RLF SENDREG
DECFSZ COUNT,1
GOTO TESTBIT
RETURN
END

trong room này em thấy nhiều anh rành về ASM ghê. em cứ thắc mắc hoài mà không biết hỏi đâu.các anh viết lại giúp em với. cho em biết là nên thêm chỗ nào và viết như thế nào là tối ưu nha. Sửa giúp em thì tốt quá cho em tham khảo
-Xong cái này em định viết chương trình hiển thị chữ ra led mt dùng bàn phím hex. mong được sự giúp đỡ của các anh. em xin cảm ơn trước.
dưới đây là file mô phỏng và code. em không up lên được nên phải làm vậy.các anh xem giúp em ngen.
code:
http://www.mediafire.com/download.php?omm32vqnmyi
mô phỏng:
http://www.mediafire.com/download.php?n5jo5uiim2g
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2009, 10:14 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi zero07a View Post
...
dưới đây là file mô phỏng và code. em không up lên được nên phải làm vậy.các anh xem giúp em ngen.
code:
http://www.mediafire.com/download.php?omm32vqnmyi
mô phỏng:
http://www.mediafire.com/download.php?n5jo5uiim2g
Bạn đọc hướng dẫn cách upload file lên diễn đàn tại đây:
http://www.picvietnam.com/forum/showthread.php?t=3289

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2009, 05:21 PM   #3
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Nhờ các anh giúp đỡ em cái ASM này

dạ em có làm vậy mà. biết bao nhiêu lần rồi mà có đươc đâu nên em mới up link lên đấy chứ. biết là up link như vậy là không được nhưng biết làm sao bây giờ.hichic. em quyết tâm không bỏ cuộc đâu. em lại viết chương trình nữ nè. giúp em với anh nampn ơi.
. Em đang thử viết chương trình hiên thử chữ A, em viết thử theo cách tra bảng. nhưng sao lạ quá. Tạo file hex thì ok. Còn vào proteus chẳng thấy chữ A nào hết vậy các anh?(em vẫn dùng mạch như đã Up phía trên). Hinh như là cái bảng của em là vô tác dụng hay sao đấy. em thấy CALL vậy là vẫn như bình thường nhưng sao chương trình không nhảy xuống được cái bảng này. Với lại em mô phỏng đã không được mà sao nó lại hiện ra cái cột đáng ghét ở con led thứ 2. em quyết tâm không bỏ cuộc đâu.nhưng sao toàn mắc lỗi không vậy ta.hic hic.các anh xem thử em đã sai nơi nào vậy. em không tìm ra được. dưới đây là đoạn chương trình(em có tham khảo):
PROCESSOR 16F877A
INCLUDE <P16F877A.INC>
;--------------------------------------------
;KHAI BAO BIEN
;--------------------------------------------
SENDREG EQU 20H
COUNT EQU 21H
COUNT_138 EQU 22H ;DEM CHO 138
COUNT_8BYTE EQU 23H ;DEM CHO 8BYTE
COUNT1 EQU 24H
COUNTA EQU 25H
COUNTB EQU 26H
;--------------------------------------------
;DINH NGHIA PHAN CUNG
;--------------------------------------------
#DEFINE DATA PORTB,0
#DEFINE CLOCK PORTB,1
#DEFINE CLEAR PORTB,2
#DEFINE LATCH PORTB,3
;--------------------------------------------
;CHUONG TRINH CHINH
;--------------------------------------------
ORG 0000H
START ;CHUONG TRINH CHINH
BCF STATUS,5
BCF STATUS,6
CLRF PORTB
CLRF PORTC
BSF STATUS,5
CLRF PORTB ;CHON BR3:RB0 LA OUTPUT
CLRF PORTC ;CHON RB2:RB0 LA INPUT
BCF STATUS,5 ;CHON BANK1
;============CHUONG TRINH CHINH==============
CLRF COUNT_138
CLRF COUNT_8BYTE
MAIN
MOVLW 04H
MOVWF PORTB ;DUA CHAN SCLK LEN CAO
MOVLW D'255'
MOVWF PORTC
BCF CLEAR ;RESET DU LIEU TRONG 74HC595
NOP ;clear tac dong canh XUONG
BSF CLEAR ;DUA PIN SCLR TRO VE MUC LOGIC CAO
DI
MOVF COUNT_8BYTE,0 ;DUA GIA TRI COUNT_8BYTE VAO
;THANH GHI W
CALL TABLE ;GOI CHUONG TRINH CON TABLE
CALL SEROUT ;GOI CHUONG TRINH CON DUA 8BIT VAO 595
INCF COUNT_138,1 ;TANG COUNT_138 LEN 1 KET QUA LUU
;TRONG COUNT_138
BSF LATCH
NOP
BCF LATCH
CALL DELAY_8ms ;TAO TRE 8ms LUU 1 BYTE TREN LED MT
INCF COUNT_8BYTE,1 ;TANG COUNT_8BYTE LEN 1 KET
;QUA LUU TRONG COUNT_8BYTE
XORWF D'8' ;XOR COUNT_8BYTE VOI 8
BTFSS STATUS,Z ;KT BIT Z
GOTO DI ;NEU Z CHUA BANG 0 THI TIEP TUC LAY DU
;LIEU TRONG BANG TRA
GOTO MAIN
SEROUT
MOVWF SENDREG
MOVLW 08H
MOVWF COUNT
TESTBIT
BCF DATA
BTFSC SENDREG,7
BSF DATA
BSF CLOCK
NOP
BCF CLOCK
RLF SENDREG
DECFSZ COUNT,1
GOTO TESTBIT
RETURN
TABLE
ADDWF PCL,F
RETLW B'11111111'
RETLW B'00000001'
RETLW B'00000000'
RETLW B'11100100'
RETLW B'11100100'
RETLW B'00000000'
RETLW B'00000001'
RETLW B'11111111'
DELAY_8ms
MOVLW D'100'
MOVLW COUNT1
LOOP
MOVLW 0C7H
MOVWF COUNTA
MOVLW 01H
MOVWF COUNTB
LOOP1
DECFSZ COUNTA,1
GOTO $+2
DECFSZ COUNTB,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP1
RETURN
END

mà anh nampn ơi. em thấy anh nhh rất giỏi cái ASM này thì phải. chắc là ảnh bận nên không trả lời em quá. mong các anh giúp đỡ em hoàn thành cái này với.
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2009, 07:34 PM   #4
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Hic.ko ai giúp em hết vậy ta.1 lời khuyên cũng được mà.em xin phép ad và mod cho em được phép duy trì luồng này nghen.
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2009, 11:02 PM   #5
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Red face Xem giúp em code ASM sai chỗ nào

Đi học về => truy cập inter xem chủ đề hy vọng sẽ có nhiều anh quan tâm và giúp đỡ => chẳng thấy 1 lời khuyên nào dù chỉ là gợi mở => chán nản => shut down máy tính.
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2009, 02:57 PM   #6
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi zero07a View Post
Đi học về => truy cập inter xem chủ đề hy vọng sẽ có nhiều anh quan tâm và giúp đỡ => chẳng thấy 1 lời khuyên nào dù chỉ là gợi mở => chán nản => shut down máy tính.
cứ từ từ:
phân tích c/t cửa bạn nhé:

PROCESSOR 16F877A
INCLUDE <P16F877A.INC>
thiếu câú hình cho pic
;--------------------------------------------
;KHAI BAO BIEN
;--------------------------------------------
SENDREG EQU 20H
COUNT EQU 21H
COUNT_138 EQU 22H ;DEM CHO 138
COUNT_8BYTE EQU 23H ;DEM CHO 8BYTE
COUNT1 EQU 24H
COUNTA EQU 25H
COUNTB EQU 26H
;--------------------------------------------
;DINH NGHIA PHAN CUNG
;--------------------------------------------
#DEFINE DATA PORTB,0
#DEFINE CLOCK PORTB,1
#DEFINE CLEAR PORTB,2
#DEFINE LATCH PORTB,3
;--------------------------------------------
;CHUONG TRINH CHINH
;--------------------------------------------
ORG 0000H
START ;CHUONG TRINH CHINH
BCF STATUS,5
BCF STATUS,6
CLRF PORTB
CLRF PORTC
BSF STATUS,5
CLRF PORTB ;CHON BR3:RB0 LA OUTPUT;dùng tris để định i/o port
CLRF PORTC ;CHON RB2:RB0 LA INPUT
BCF STATUS,5 ;CHON BANK1
;============CHUONG TRINH CHINH==============
CLRF COUNT_138
CLRF COUNT_8BYTE
MAIN
MOVLW 04H
MOVWF PORTB ;DUA CHAN SCLK LEN CAO
MOVLW D'255'
MOVWF PORTC
BCF CLEAR ;RESET DU LIEU TRONG 74HC595
NOP ;clear tac dong canh XUONG
BSF CLEAR ;DUA PIN SCLR TRO VE MUC LOGIC CAO
DI
MOVF COUNT_8BYTE,0 ;DUA GIA TRI COUNT_8BYTE VAO
;THANH GHI W
CALL TABLE ;GOI CHUONG TRINH CON TABLE
CALL SEROUT ;GOI CHUONG TRINH CON DUA 8BIT VAO 595
INCF COUNT_138,1 ;TANG COUNT_138 LEN 1 KET QUA LUU
;TRONG COUNT_138
;tăng lên rồi xuât đi đâu để d/k quét matrix
BSF LATCH
NOP
BCF LATCH
CALL DELAY_8ms ;TAO TRE 8ms LUU 1 BYTE TREN LED MT
INCF COUNT_8BYTE,1 ;TANG COUNT_8BYTE LEN 1 KET
;QUA LUU TRONG COUNT_8BYTE
XORWF D'8' ;XOR COUNT_8BYTE VOI 8
BTFSS STATUS,Z ;KT BIT Z
GOTO DI ;NEU Z CHUA BANG 0 THI TIEP TUC LAY DU
;LIEU TRONG BANG TRA
GOTO MAIN
SEROUT
MOVWF SENDREG
MOVLW 08H
MOVWF COUNT
TESTBIT
BCF DATA
BTFSC SENDREG,7
BSF DATA
BSF CLOCK
NOP
BCF CLOCK
RLF SENDREG
DECFSZ COUNT,1
GOTO TESTBIT
RETURN
TABLE;bảng tra dạng này lên đưa lên đầu c/t
ADDWF PCL,F
RETLW B'11111111'
RETLW B'00000001'
RETLW B'00000000'
RETLW B'11100100'
RETLW B'11100100'
RETLW B'00000000'
RETLW B'00000001'
RETLW B'11111111'
DELAY_8ms;bạn tính lại chỗ này thời gian quá dài
MOVLW D'100'
MOVLW COUNT1
LOOP
MOVLW 0C7H
MOVWF COUNTA
MOVLW 01H
MOVWF COUNTB
LOOP1
DECFSZ COUNTA,1
GOTO $+2
DECFSZ COUNTB,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP1
RETURN
END
bạn coi lại nhé rôi tính tiếp.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2009, 03:07 PM   #7
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi zero07a View Post
Đi học về => truy cập inter xem chủ đề hy vọng sẽ có nhiều anh quan tâm và giúp đỡ => chẳng thấy 1 lời khuyên nào dù chỉ là gợi mở => chán nản => shut down máy tính.
bạn gửi lại phần cứng đi dạng proteus để mô phỏng mạch.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2009, 05:42 PM   #8
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
đầu tiên cho em được cảm ơn anh đã bỏ tí thời gian đọc bài của em. dạ được, để em xem lại. em sẽ có câu trả lời sớm nhất cho anh vào ngày mai. em đang ngồi mạng không mang USB theo. nhưng em up mấy lần rồi cứ báo lỗi hoài à. em đã nén rất nhiều dạng nhưng cung không được. để mai em cố gáng lại xem sao. giờ em xem lại đã. 1 lần nữa xin cảm ơn anh nhiều nghen.
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2009, 07:24 PM   #9
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Báo cáo : Thất bại lần 1

á á. anh ơi em đã sửa lại rồi đó. cái đoạn cấu hình thì em biết, nhưng khi chạy để chuyển sang fire hex là báo lỗi liền à. nên em không đánh vào.ngồi từ sáng tới giờ. suy nghĩ => thất bại => làm lụi => cuối cùng là cái mạch mô phỏng chạy như vậy đây. em thử rồi cái table hôm nay có call được, nhưng hình như là chỉ tới dòng thứ 2 à. trong khi đó hình như mọi thứ có vẻ ổn mà ta. ngồi hoài mà không biết cái ngu của mình là ở đâu. anh giúp em tìm ra cái ngu của em với. buồn quá vội vã ra mạng nên quên chép file mô phỏng rồi. chán ghê.
em không up file lên được. báo lỗi hoài à. em gửi cho anh code đấy. anh xem giúp em với nghen.
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2009, 05:53 PM   #10
zero07a
Đệ tử 1 túi
 
zero07a's Avatar
 
Tham gia ngày: Nov 2009
Bài gửi: 21
:
Herher. Sau mấy ngày mò mẫm ráp code thì đã có chữ A. hehe. cuối cùng thì em 138 đã quét được rầu. em 595 còn nhịp nhịp nữa chứ.tuy chưa được bi nhiêu cũng cảm thấy có gì đó vui vui. Bây giò lại đi tiếp bước nữa đây.
1.chạy chữ trên 1 led
2.chạy trên nhiều led
mô phỏng:
http://www.mediafire.com/download.php?013gyj1mjjz
__________________
Cùng nhau chia sẻ tri thức
zero07a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
led matrix


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à 10:38 PM.


Đượ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