PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Chương trình dịch & các công cụ mô phỏng (http://www.picvietnam.com/forum/forumdisplay.php?f=10)
-   -   Dịch MPLAB (http://www.picvietnam.com/forum/showthread.php?t=354)

nhh 25-03-2006 12:17 PM

Dịch MPLAB
 
Khi nhh mới tập viết chương trình đầu tiên cho con pic, đã setup được Mplab nhưng loay hoay mãi không biết phải làm sao để biên dịch được file asm mình viết sang file hex để nạp.Và đây là một cách:

1.Sau khi setup Mplab (download miễn phí tại www.microchip.com , đã có version 7.31),bạn vào thư mục
C:\Program Files\Microchip\MPASM Suite lôi file MPASMWIN.exe ra desktop luôn
http://www.freewebtown.com/nhhao/PIC/MPASMWIN1.JPG
2.Chạy file này, Browse để tìm đến file asm bạn định biên dịch, click Assemble để biên dịch.
http://www.freewebtown.com/nhhao/PIC/MPASMWIN2.JPG
3.Chương trình sẽ thông báo kết quả sau khi biên dịch xong.
http://www.freewebtown.com/nhhao/PIC/MPASMWIN3.JPG

Hướng dẫn này có thể hơi vớ vẩn, nhưng hy vọng nó sẽ tiết kiệm một ít thời gian cho những ai mới bắt đầu.

falleaf 25-03-2006 01:07 PM

Trong chương trình MPLAB, thì viết file .asm xong, bấm Alt-F10 (hay Ctrl-F10 gì đó, lâu rồi F không nhớ rõ) là chế độ quick build, nó cho phép dịch trực tiếp khi dùng với MPLAB mà không cần phải thông qua MPASM

Trình dịch là trình MPASM, còn môi trường soạn thảo là MPLAB IDE (hay gọi tắt là MPLAB). Trong môi trường soạn thảo (MPLAB) có nhúng sẵn trình dịch (MPASM), vì vậy, có thể soạn thảo xong là dịch trực tiếp luôn.

Chúc vui.

pb1 25-03-2006 04:03 PM

Alt-F10 bác fall à :D, ngoài ra thu nhỏ cái output lại thì dịch nhanh hơn, còn vì sao thì em chẳng biết :D

chúc các bác vui :D

falleaf 30-03-2006 02:06 AM

có bạn nào post bài chi tiết về việc tạo ra một project trong MPLAB như thế nào không? Hiện nay F và anh Nam đang chuẩn hoá vấn đề này, nhưng tiến độ hơi chậm do đợt này cả hai anh em đang bận quá. Bạn nào mở màn đi nhợ?

Chúc vui.

forever_123 12-04-2006 02:08 AM

chào các bác, bác viết việc tạo ra một project đi, em giờ mới học chăng biết phải tạo thế nao.
các bác giúp em voi nhe
thank

namqn 12-04-2006 10:41 PM

5 Attachment(s)
Bây giờ bạn dùng tạm một số hình sau để làm theo nhé. Khi nào có thời gian thì chúng tôi sẽ viết thành tutorial chuẩn.

Bạn cứ theo thứ tự các hình mà làm. Ở bước 7 bạn sẽ chọn lệnh menu File/New để tạo ra một tập tin mới, sau đó bạn chọn lệnh File/Save As để lưu nó thành tập tin "Vidu1.asm" trong thư mục Vidu1. Như vậy đến bước 8 bạn sẽ có tập tin đó để thêm vào project. Nếu mọi việc suôn sẻ thì cuối cùng bạn sẽ có cây quản lý tập tin của project như ở hình số 9.

Thân,

namqn 12-04-2006 10:43 PM

4 Attachment(s)
Gửi tiếp các hình lên (vì mỗi post chỉ được gửi tối đa 5 hình).

Thân,

ndtoan 23-04-2006 09:23 PM

cam on bac nhieu em dang can thu nay

vudinhlieu 12-08-2006 07:59 PM

sau khi xem hết những gì của trưởng lão thì mình có thể viết thế này để dễ hiểu hơn !
Đầu tiên vào MPLAB IDE
.Bạn hãy soạn 1 file mới bằng cách chon File - New (hoặc nhấn Ctrl + N )
.Đánh đại vài chữ cho có save đó lưu lại file với đuôi Tênfile.ASM để các ghi chú ,các lệnh và các từ dành riêng tách ra theo màu thuận tiện hơn cho soạn thảo .Và tiếp tục viết nốt chương trình .Sau đó save lại 1 lần nữa .
.Chọn Project -Project Wizard ... - Chọn Next
.Gõ vào Pic mình dùng (vd Pic16F628A) - Next
.Chọn trình dịch .Ta chọn MPASM Assembler - Next
.Gõ vào tên Project, thư mục chứa Project - Next
.bước 4 ta thêm vào file ten_pic.LKR trong thưmuc /MPAM Suite/LKR(vd 16F628A.LKR. Tiếp theo nữa bạn cũng chọn luôn file.ASM của bạn đã soạn . Nhấn chuột chọn Add file . Đánh dấu chọn vào tên file - Next
.cuối cùng bạn chọn Exit
NHấn Ctrl + F10 để dịch file
kiểm tra lại lổi và sửa lỗi nếu có ! nếu ko có lổi ta sẽ có 1 file.hex
Làm thế có đúng ko vậy trưởng lão !

namqn 12-08-2006 09:47 PM

Trích:

Nguyên văn bởi vudinhlieu
sau khi xem hết những gì của trưởng lão thì mình có thể viết thế này để dễ hiểu hơn !
Đầu tiên vào MPLAB IDE
.Bạn hãy soạn 1 file mới bằng cách chon File - New (hoặc nhấn Ctrl + N )
.Đánh đại vài chữ cho có save đó lưu lại file với đuôi Tênfile.ASM để các ghi chú ,các lệnh và các từ dành riêng tách ra theo màu thuận tiện hơn cho soạn thảo .Và tiếp tục viết nốt chương trình .Sau đó save lại 1 lần nữa .
.Chọn Project -Project Wizard ... - Chọn Next
.Gõ vào Pic mình dùng (vd Pic16F628A) - Next
.Chọn trình dịch .Ta chọn MPASM Assembler - Next
.Gõ vào tên Project, thư mục chứa Project - Next
.bước 4 ta thêm vào file ten_pic.LKR trong thưmuc /MPAM Suite/LKR(vd 16F628A.LKR. Tiếp theo nữa bạn cũng chọn luôn file.ASM của bạn đã soạn . Nhấn chuột chọn Add file . Đánh dấu chọn vào tên file - Next
.cuối cùng bạn chọn Exit
NHấn Ctrl + F10 để dịch file
kiểm tra lại lổi và sửa lỗi nếu có ! nếu ko có lổi ta sẽ có 1 file.hex
Làm thế có đúng ko vậy trưởng lão !

Bạn chọn PIC từ danh sách thả xuống chứ không gõ vào.

Chỗ đánh dấu chọn vào tên file là dùng để thêm file đó vào thư mục của project, với các tập tin nguồn thì nên làm, còn với các tập tin .lkr thì chỉ cần thiết khi bạn cần sửa đổi lại kịch bản liên kết.

Ctrl+F10 sẽ build cả project chứ không chỉ dịch một tập tin (build nghĩa là compile và link các object file lại với nhau).

Thân,

BVT_BK 13-08-2006 03:24 PM

Dich Ra File Hex Thi Don Gian Lam
Khong Can Tao Project Dau
Chi Can Save File Vua Tao Xong Duoi Dang .asm(vi Du Nhu Vay)
Sau Do Vao Project/quick Build La Xong
Neu Chuong Trinh Khong Co Loi La Co .hex Ngon Lanh
Khong Can Phai Tao Project

namqn: Diễn đàn này cho phép (và khuyến khích) sử dụng tiếng Việt có dấu, bạn hãy để ý thanh trạng thái của trình duyệt để biết mình đang ở mode gõ tiếng Việt nào.

cglt 10-03-2007 05:00 PM

Muốn xem hướng dẫn chạy mô phỏng Mplab thì xem ở đâu? các pác chỉ mình với,cảm ơn nhiều.

namqn 10-03-2007 10:35 PM

Trích:

Nguyên văn bởi cglt (Post 7651)
Muốn xem hướng dẫn chạy mô phỏng Mplab thì xem ở đâu? các pác chỉ mình với,cảm ơn nhiều.

Bạn xem cái seminar này nhé:
http://techtrain.microchip.com/webse...SIM_092304.pdf

Theo tôi bản hướng dẫn bằng hình ảnh như vậy là khá đủ, không cần phải dịch sang tiếng Việt.

Thân,

bietkinhky 21-04-2007 11:30 AM

bài viết này rất có ích . Em cảm ơn mọi người nhềi lắm . lúc trướ cứ lóng ngóng không biết phải làm thế nào . BÂy giờ chắc là được rồi . vì em mới bắc đầu mà . hi hi. cảm ơn bác F đã tạo ra diễn đàn thạt hữu ích .

dvty 19-05-2007 01:39 PM

Mình làm lại một bài bác F hướng dẫn thì gặp 3 lỗi khi dịch file hex, mình đã sửa được hai lỗi còn một lỗi chưa biết làm sao:

Error[126] D:\1.ASM 4 : Argument out of range (not a valid config register address)Error[126]

Bạn nào biết làm ơn chỉ giúp mình mới làm quen 2 ngày với Pic nên chả hiểu phải sửa ra sao

namqn 19-05-2007 08:32 PM

Trích:

Nguyên văn bởi dvty (Post 8762)
Mình làm lại một bài bác F hướng dẫn thì gặp 3 lỗi khi dịch file hex, mình đã sửa được hai lỗi còn một lỗi chưa biết làm sao:

Error[126] D:\1.ASM 4 : Argument out of range (not a valid config register address)Error[126]

Bạn nào biết làm ơn chỉ giúp mình mới làm quen 2 ngày với Pic nên chả hiểu phải sửa ra sao

Bạn nên post đoạn code ấy thì người khác mới biết được tại dòng 4 của nó đã gây ra lỗi gì. Bạn thử đặt mình vào vị trí người sẽ trả lời xem họ lấy thông tin gì để trả lời.

Thân,

dvty 20-05-2007 01:38 AM

Nguồn của nó đây thưa bác(bài đầu tiên mà bác F hướng dẫn):

Code:

TITLE                "Mach test LED_1"
                PROCESSOR        P16F628A
                INCLUDE        <P16F628A.inc>
                __CONFIG          _CP_OFF        & _PWRTE_ON & _WDT_OFF &_HS_OSC
ORG        0x0000
                GOTO        MAIN


                ORG        0x0006

MAIN               
                BANKSEL        TRISB                ; bank select
                CLRF                TRISB                ; trisb = 00000000
                                                ; portb = output
                BANKSEL        PORTB
                BSF                PORTB,        0        ; rb0 = 1
                                                ; RB0 = 5V
                GOTO                $                ; dung chuong trinh tai day
                                                ; vong lap tai cho^~
                                                ; khong bao gio ket thuc
                END                                ; lenh bat buoc de ket thuc


Thực ra em không muốn làm mất thời gian của bác vào cái vụ chả ra đâu này vì biết bác rất bận , cái bài này lại chả có gì cả, với lại có lẽ em học ccs cho nhanh thấy luôn....không biết như vậy có nên không nhỉ

namqn 20-05-2007 02:43 AM

Mã nguồn đó không có lỗi gì cả (ngoại trừ bạn có directive TITLE và ORG đầu tiên nằm ở cột 1, sẽ tạo ra 1 warning, và cũng có 1 warning về việc chọn chip sẽ bị MPLAB chọn lại từ dòng lệnh).

Vì bạn nói rằng bạn mới học PIC, tôi cho là bạn xem lại cách biên dịch chương trình.

Thân,

unknown 07-10-2007 01:48 AM

cho mình hỏi một vấn đề này: máy tính của mình cấu hình P3 800MHZ, ram 128M thì có thể chạy được MPLAB version nào. vừa rồi mình có cài MPLAB 7.60a, mình tạo một project theo hướng dẫn trong user's guide của microchip, khi minh nhấn build all thì kết quả không giống như trong tài liệu hướng dẫn, kết quả của mình như trong hinh vẽ.
không biết có phải do cấu hình máy mình yếu nên không thể chạy được hay là do một nguyên nhân nào khác. ai biết xin chỉ giúp, mình xin cảm ơn

unknown 07-10-2007 02:10 AM

mình post hình lên không được

hoanglong12 24-12-2007 10:47 PM

Cảm ơn Các Bạn Nha!!!!!!!!!!!!

dinhbv_dkh 27-12-2007 09:43 AM

Chào các bạn ! mình đang làm về PIC 16F877A sử dụng PWM để điều khiển DC một chiều !! mình đang rất cần các mạch kit của con này !!! ai có hay biết thi giúp mình với !! Thanhs

minoan 21-02-2008 02:03 PM

Trong MBLAP không có mô phỏng chân như READ51 mô phỏng 89C51. Vì vậy việc mô phỏng ngoài( ngắt ngoài, phím bấm..) là khó khăn. Tôi có đọc 1 file .pdf nói về cách mô phỏng nhưng viết mã lệnh như Spice nên đọc hơi mất lâu. Ai đã mô phỏng ghép nối 16f877a với mạch ngoài:keyboard... thì share cho mình 1 ví dụ bất kỳ để tham khảo nhé.

lvt1984 23-03-2008 05:30 AM

2 Attachment(s)
Chào các bạn . Tớ gặp 1 lỗi khi biên dịch ct ASM trong MPlab . Tớ cũng làm từng bước biên dịch như anh nhh đã viết ngay ở đầu của topic này . Kết quả bị lỗi , không hiểu là lỗi từ chương trình hay lỗi từ thao tác biên dịch . Tớ có chụp lại code chương trình và kết quả báo lỗi . Có bạn nào gỡ lỗi giúp tớ với . Cảm ơn !

namqn 23-03-2008 07:01 AM

Trích:

Nguyên văn bởi lvt1984 (Post 15104)
Chào các bạn . Tớ gặp 1 lỗi khi biên dịch ct ASM trong MPlab . Tớ cũng làm từng bước biên dịch như anh nhh đã viết ngay ở đầu của topic này . Kết quả bị lỗi , không hiểu là lỗi từ chương trình hay lỗi từ thao tác biên dịch . Tớ có chụp lại code chương trình và kết quả báo lỗi . Có bạn nào gỡ lỗi giúp tớ với . Cảm ơn !

Bạn thêm org 0x0005 vào giữa lệnh goto start và nhãn start.

Sau này, bạn có thể đọc tập tin .err trong thư mục project của bạn để xem các thông báo lỗi cụ thể. Như vậy có khi bạn tìm ngay được lỗi ở đâu, hoặc có thông tin lỗi cụ thể để post lên, sẽ giúp người khác trả lời cho bạn tốt hơn.

Thân,

lvt1984 24-03-2008 04:16 AM

Cám ơn bác Nam . Tớ thiết lập được cái báo erro rồi nên tìm ra lỗi chương trình : b10001111, phải sửa lại thành b'10001111' mới đúng .

nhanndt 24-04-2008 01:00 PM

Trích:

Nguyên văn bởi dvty (Post 8783)
Nguồn của nó đây thưa bác(bài đầu tiên mà bác F hướng dẫn):

Code:

TITLE                "Mach test LED_1"
                PROCESSOR        P16F628A
                INCLUDE        <P16F628A.inc>
                __CONFIG          _CP_OFF        & _PWRTE_ON & _WDT_OFF &_HS_OSC
ORG        0x0000
                GOTO        MAIN


                ORG        0x0006

MAIN               
                BANKSEL        TRISB                ; bank select
                CLRF                TRISB                ; trisb = 00000000
                                                ; portb = output
                BANKSEL        PORTB
                BSF                PORTB,        0        ; rb0 = 1
                                                ; RB0 = 5V
                GOTO                $                ; dung chuong trinh tai day
                                                ; vong lap tai cho^~
                                                ; khong bao gio ket thuc
                END                                ; lenh bat buoc de ket thuc


Sao không thấy ai giải thích lỗi này vậy.Mình mới nhập môn và bị lỗi như dvty vậy:
"Error[126] E:\DOCUMENTS\DA THIET KE KI THUAT\TESTPORTB.ASM 4 : Argument out of range (not a valid config register address)"
Đang chờ các bậc tiền bối

namqn 24-04-2008 04:02 PM

1 Attachment(s)
Trích:

Nguyên văn bởi nhanndt (Post 15753)
Sao không thấy ai giải thích lỗi này vậy.Mình mới nhập môn và bị lỗi như dvty vậy:
"Error[126] E:\DOCUMENTS\DA THIET KE KI THUAT\TESTPORTB.ASM 4 : Argument out of range (not a valid config register address)"
Đang chờ các bậc tiền bối

Tôi đã trả lời ở post phía dưới rồi. Vì bạn hỏi lại nên tôi đã dịch lại và đính kèm ảnh chụp màn hình của tôi ở đây. Kết quả biên dịch là thành công, với 1 warning cho biết MPLAB sẽ dùng chip được chọn ở menu Configure thay vì chip được chọn trong code. Bạn cũng thấy là tôi đã chọn chip trong MPLAB cũng là PIC16F628A, bạn xem lại đã chọn đúng chip bằng lệnh menu Configure>Select Device... hay chưa.

Thân,

nhanndt 24-04-2008 05:18 PM

Rất cảm ơn Trưởng lão PIC bang đã chỉ giáo.Em mới vào nghề,sau này còn học hỏi nhiều.
Thanks!

hinapicvietnam 13-05-2008 12:19 PM

Bên 8051 có phần mềm dịch ngược từ tệp 'hex' qua 'asm', hình như là disasm... thì phải. Còn pic thì sao hả các bạn? Có cái dịch dc o? Có chính xác o?

falleaf 13-05-2008 12:55 PM

Trích:

Nguyên văn bởi hinapicvietnam (Post 16173)
Bên 8051 có phần mềm dịch ngược từ tệp 'hex' qua 'asm', hình như là disasm... thì phải. Còn pic thì sao hả các bạn? Có cái dịch dc o? Có chính xác o?

Có thằng ICProg, đây là phần source của Nigel Goodwin, đã được nhúng vào ICProg. Nó cho phép dịch ngược các dòng PIC.

DeASM chứ không phải Diasm. Viết từ đầy đủ ra rồi tra trên google sẽ có bạn à.

Chúc vui

namqn 13-05-2008 06:18 PM

Trích:

Nguyên văn bởi hinapicvietnam (Post 16173)
Bên 8051 có phần mềm dịch ngược từ tệp 'hex' qua 'asm', hình như là disasm... thì phải. Còn pic thì sao hả các bạn? Có cái dịch dc o? Có chính xác o?

Import tập tin .hex vào MPLAB IDE, sau đó vào menu View, chọn Program Memory. Ở cột Disassembly là mã mnemonic tương ứng của các lệnh trong bộ nhớ chương trình.

Thân,

cuongkstn 06-08-2008 05:16 PM

Phù ,may quá>Cuối cùng cũng có cao nhân chỉ giúp.

nobitahanh 31-12-2008 01:57 PM

mọi người cho em hỏi làm thế nào để save được một file .c chứ không phải là file .asm??

namqn 31-12-2008 05:20 PM

Trích:

Nguyên văn bởi nobitahanh (Post 21799)
mọi người cho em hỏi làm thế nào để save được một file .c chứ không phải là file .asm??

Ở hộp thoại "Save As", bạn đánh đầy đủ tên của tập tin (cả phần mở rộng .c).

Thân,

t_h_k 24-04-2009 03:33 PM

các bác ơi giúp em với, em mò hoài mà ko tài nào dịch nổi ra file .hex nữa. không biết dịch xong rồi file .hex nằm ở đâu nữa, các bác giúp em với ! cảm ơn các bác

thaithien 24-04-2009 10:14 PM

Trích:

Nguyên văn bởi t_h_k (Post 25202)
các bác ơi giúp em với, em mò hoài mà ko tài nào dịch nổi ra file .hex nữa. không biết dịch xong rồi file .hex nằm ở đâu nữa, các bác giúp em với ! cảm ơn các bác

Bạn có tạo project không?Nếu có thì mặc định file hex dịch ra sẽ nằm trong cùng thư mục,trừ phi bạn đã cấu hình cho trình biên dịch vị trí khác cho file .hex

thi_si_co_don 01-05-2009 05:51 PM

Các bác giúp em cái này với, em đang tập sử dụng MPLAB, em gõ thử 1 đoạn code được lấy từ tài liệu như sau:
Code:

;chuong trinh 1
;testled1

processor        16F877A                        ;khai bao vdk
#include        "p16f877a.inc"        ;header file dinh kem

_CONFIG        _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
                                                        ;khai bao cac configuration bits

        ORG                0X000
        GOTO        start
start
        BCF                STATUS,RP1
        BCF                STATUS,RP0
       
        CLRF        PORTB
        BSF                STATUS,RP0
       
        MOVLW        0X00
        MOVWF        TRISB
       
        BCF                STATUS,RP0

        MOVLW        0X8F
        MOVWF        PORTB

        loop        GOTO        loop

END

và nhận được một thông báo trong file err là:
Code:

Warning[205] C:\DOCUMENTS AND SETTINGS\TA DINH THAM\DESKTOP\THANG\VD1\TEST LED 16F877A.ASM 4 : Found directive in column 1. (processor)
Error[122]  C:\DOCUMENTS AND SETTINGS\TA DINH THAM\DESKTOP\THANG\VD1\TEST LED 16F877A.ASM 7 : Illegal opcode (_CP_OFF)
Message[302] C:\DOCUMENTS AND SETTINGS\TA DINH THAM\DESKTOP\THANG\VD1\TEST LED 16F877A.ASM 20 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Warning[207] C:\DOCUMENTS AND SETTINGS\TA DINH THAM\DESKTOP\THANG\VD1\TEST LED 16F877A.ASM 27 : Found label after column 1. (loop)
Warning[205] C:\DOCUMENTS AND SETTINGS\TA DINH THAM\DESKTOP\THANG\VD1\TEST LED 16F877A.ASM 29 : Found directive in column 1. (END)

các bác giúp em cái :(

thaithien 01-05-2009 08:36 PM

Bạn đánh sai ở chỗ config rồi.MÌnh đã chỉnh lại như sau và đã build thành công.Bạn coi thử nhé.
Code:

;chuong trinh 1
;testled1

processor        16F877A                        ;khai bao vdk
INCLUDE        "P16F877A.inc"        ;header file dinh kem

__CONFIG  _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
                                                        ;khai bao cac configuration bits

        ORG                0x000
        GOTO        start
start
        BCF                STATUS,RP1
        BCF                STATUS,RP0
       
        CLRF        PORTB
        BSF                STATUS,RP0
       
        MOVLW        0X00
        MOVWF        TRISB
       
        BCF                STATUS,RP0

        MOVLW        0X8F
        MOVWF        PORTB

        loop        GOTO        loop

END

CHú ý chỗ __config là 2 dấu gạnh dưới đó nghe.Khi đánh một gạch thì dòng lệnh sẽ không hiện ra màu xanh,chứng tỏ câu lệnh này sai đó.

thi_si_co_don 02-05-2009 04:58 PM

1 Attachment(s)
hi, em thanks bác rất nhiều, giờ em lại đang gặp trục trặc với cái bài sau.
em định cho ma trận led hiển thị chữ A-I bằng ma trạn 8x8 em quét hàng bằng portC và đưa dữ liệu ra cột bằng portB, tuy nhiên vì áp rơi trên led cao hơn so với chân ra nên em phải dùng mấy con NPN để đưa áp vào, hình vẽ dưới
em code và dịch ra ko vđề gì, but khi cho nó chạy mô phỏng thì hỡi ôi toàn bị thông báo là over flow, chả hiểu đc.
Code:

processor 16f877a                ;khai bao vdk
#include "p16f877a.inc"                ;header file dinh kem

__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_OFF&_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF
                                ;khai bao configuration
;------------------------------------------------------
;khai bao bien
;------------------------------------------------------
count        equ        0x23
COUNT1        EQU        0X20                ;dung cho delay
COUNTA        EQU        0X21                ;dung cho delay
COUNTB        EQU        0X22                ;dung cho delay

        org                0x000
        goto        START
START
        BCF                STATUS,RP1
        bcf                STATUS,RP0
        clrf        PORTB
        CLRF        PORTC
        bsf                STATUS,RP0
        movlw        0x00
        movwf        TRISB
        MOVWF        TRISC
        BCF                STATUS,RP0
        MOVLW        B'11111110'
        MOVWF        PORTC
loop
        clrf        count
loop1
        movwf        count
        RRF                PORTC,1
        call        table
        movwf        PORTB
        call        DELAY100MS
        incf        count,0
        xorlw        d'8'
        btfsc        STATUS,Z
        goto        loop
        incf        count,1
        goto        loop1

table
        addwf        PCL,1
        retlw        b'00111111'
        RETLW        B'01010000'
        RETLW        B'10010000'
        RETLW        B'01010000'
        RETLW        B'00111111'
        RETLW        B'00000000'
        RETLW        B'11111111'
        RETLW        B'00000000'

DELAY100MS
        MOVLW        D'200'
        MOVWF        COUNT1
D1
        MOVLW        0XC7
        MOVWF        COUNTA
        MOVLW        0X01
        MOVWF        COUNTB
DELAY_0
        DECFSZ        COUNTA,1
        GOTO        $+2
        DECFSZ        COUNTB,1
        GOTO        DELAY_0
        DECFSZ        COUNT1,1
        GOTO        D1
        RETURN

end

em ko gửi đc cái file của proteus nên chỉ chụp đc hình thôi, các bác xem họ em nhé ^^


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam