![]() |
|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
![]() Mình thấy cai proteus hay hay. Lên làm một chương trình chạy thử
![]() ![]() ![]() Code:
TITLE "P16F877A_REG1" PROCESSOR P16F877A INCLUDE <P16F877A.INC> __CONFIG _CP_OFF & _CPD_OFF & _WRT_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC delay_reg1 equ 0x20 delay_reg2 equ 0x21 delay_reg3 equ 0x22 constant buflength = 8 variable j = 0 cblock 0x23 ; bo dem du lieu hien thi ra man hinh bodem : buflength endc #define clock PORTB,0 ; xung kick hoat #define dieukhien_quetcot PORTB,1 ; dieu khien xung quet cot org 0x0000 goto Main ;org 0x0005 Main banksel TRISB bcf TRISB,0 bcf TRISB,1 banksel PORTB bcf clock bcf dieukhien_quetcot banksel TRISD clrf TRISD banksel PORTD clrf PORTD ; Dam bao an toan truoc khi di ^_^ j = 0 while j < 8 bcf dieukhien_quetcot bsf clock bcf clock j += 1 endw ; Xoabodem j = 0 while j<buflength clrf bodem+j j += 1 endw ;Load du lieu vao bo dem j = 0 while j < buflength movlw j call Table0 movwf bodem+j j += 1 endw Hienthi clrw bsf dieukhien_quetcot j = buflength-1 while j>=0 movf bodem+j,W movwf PORTD call Delay_10ms bsf clock call Delay_10ms bcf dieukhien_quetcot bcf clock j -= 1 endw goto Hienthi Delay_10ms movlw d'1' movwf delay_reg1 Loop1 movlw 0xc7 movwf delay_reg2 movlw 0x01 movwf delay_reg3 Loop2 decfsz delay_reg2,1 goto Loop2 decfsz delay_reg3,1 goto Loop2 decfsz delay_reg1,1 goto Loop1 return ;org 0xc0 ;Table1 ; addwf PCL,1 ; retlw b'11100111' ; retlw b'11110011' ; retlw b'11111001' ; retlw b'00000000' ; retlw b'00000000' ; retlw b'00000000' ; retlw b'00000000' ; retlw b'00000000' org 0xe0 Table0 addwf PCL,1 retlw b'11111111' retlw b'10000001' retlw b'00000000' retlw b'00111100' retlw b'00000000' retlw b'10000001' retlw b'11111111' retlw b'11111111' end thay đổi nội dung bởi: namqn, 12-02-2009 lúc 07:11 PM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 4 túi
Tham gia ngày: Jan 2007
Bài gửi: 79
: |
Tư vấn cho bạn là: LÀM MẠCH THẬT.
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Bạn xem luồn này nè:
http://www.picvietnam.com/forum/showthread.php?t=3111 |
![]() |
![]() |
![]() |
#4 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
mình đã bảo là thử delay chậm lại thì thấy nó quét đúng. Nhưng giảm thời gian delay đến một lúc nào đó mà không nhìn thấy hiện tượng quét nữa thì lại thấy thiếu nét :F. Nếu giúp đc thì chạy thử rồi cho ý kiến giùm
![]() |
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
hình đây nè X_X
|
![]() |
![]() |
![]() |
#6 | |
Trưởng lão PIC bang
|
Trích:
LED ma trận của bạn dùng phương pháp quét để hiển thị, và màn hình máy tính cũng vậy, dẫn đến nếu tần số quét của LED là bội số của tần số quét của màn hình (khả năng này xảy ra càng cao khi thời gian delay giữa những lần quét là càng nhỏ) thì bạn sẽ gặp hiệu ứng trên, tương tự như dùng máy quay phim để quay hình ảnh các màn hình máy tính (bạn sẽ thấy màn hình máy tính thường bị rung). 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 |
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
Nhân tiện các bác cho hỏi là với tập lệnh mở rộng của MPASM thì với các lệnh khai báo biến nó có ngốn thêm bộ nhở của PIC không, nếu có thì nó quy định bộ nhớ theo kiểu j
![]() |
![]() |
![]() |
![]() |
#8 | |
Trưởng lão PIC bang
|
Trích:
http://ww1.microchip.com/downloads/e...Doc/33014J.pdf 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 |
|
![]() |
![]() |
![]() |
#9 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
cảm ơn bác
![]() ![]() |
![]() |
![]() |
![]() |
#10 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#11 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
cái macro thì mình không nói. Cái chính la mình lúc đầu còn băn khoăn là khai báo variable , do có thể thay đổi đc gia trị của biến lên băn khoăn MPASM có dùng thanh ghi nào của VDK để cất giá trị này không. Sau khi xem lại thì hóa ra MPASM chỉ dùng 1 bảng lưu các khai báo directive, ví dụ như mình khai báo variable i = 0. ++i thì nó thay bằng 0 và 1. nói chung là mình không có năng khiếu diễn đạt nên nói nôm na như thế
![]() ![]() |
![]() |
![]() |
![]() |
Tags |
help me !!! |
Ðiều Chỉnh | |
Xếp Bài | |
|
|