![]() |
|
Tài trợ cho PIC Vietnam |
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 |
|
![]() |
#1 | |||
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 23
: |
Trích:
Trích:
Trích:
Em hỏi thêm tý: em muốn dùng ngắt bàn phím, nhưng không biết mắc thế nào. Hiện nay Port B đã dùng để cho LCD 4 bit (RB0-RB3 cho D4-D7, RB4 cho RS, RB6 cho R/W, RB7 cho E). Còn tại cổng A thì RA0-RA3 đang dùng cho đầu vào 4 phím, RA6, RA7 dùng cho CLK. Trong mạch 8051, để dùng ngắt bàn phím em thấy họ dùng con 148 và lấy đầu ra báo ngắt để đưa vào chân ngắt. Ở đây có làm tương tự được không anh? |
|||
![]() |
![]() |
![]() |
#2 | ||
Trưởng lão PIC bang
|
Trích:
Về chuyển điều khiển dựa vào giá trị tại d4, sau đây là một ví dụ Code:
movf d4, w ;Đặt d4 vào W sublw 0x01 ;So sánh với 0x01 skpz ;Nếu bằng thì bỏ lệnh kế tiếp goto sosanh2 incf d4 ;Đây là khối lệnh sẽ được thực thi nếu W = d4 = 0x01 movlw '1' goto xong sosanh2 movf d4, w ;Đặt d4 vào W sublw 0x02 ;So sánh với 0x02 skpz ;Nếu bằng thì bỏ lệnh kế tiếp goto xong decf d4 ;Đây là khối lệnh sẽ được thực thi nếu W = d4 = 0x02 movlw '2' xong 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 |
||
![]() |
![]() |
![]() |
#3 |
Đệ tử 2 túi
|
Em la lính mới, lâu nay chỉ quen viết code bằng C và Basic, hôm nay mới xêm căn bản của MPAsm. Từ thread Hoc pic trong 1 ngay, em copy doan code sau
[QUOTE] TITLE "Mach test LED_1" PROCESSOR P16F628A INCLUDE <P16F628A.inc> __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC ORG 0x0000 GOTO MAIN ORG 0x0005 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 [\QUOTE] nhung den khi dich thi MPasm lai báo: Error[132] temp.ASM 2 : Unknown processor (P16F628A) Message[301] P16F628A.INC 35 : MESSAGE: (Processor-header file mismatch. Verify selected processor.) Error[131] temp.ASM 4 : Processor type is undefined Warning[207] ASD.ASM 7 : Found label after column 1. (GOTO) Error[122] temp.ASM 7 : Illegal opcode (MAIN) Message[312] temp.ASM 13 : Page or Bank selection not needed for this device. No code generated. Warning[207] temp.ASM 14 : Found label after column 1. (CLRF) Error[122] temp.ASM 14 : Illegal opcode (TRISB) Message[312] temp.ASM 16 : Page or Bank selection not needed for this device. No code generated. Warning[207] temp.ASM 17 : Found label after column 1. (BSF) Error[122] temp.ASM 17 : Illegal opcode (PORTB) Warning[207] temp.ASM 19 : Found label after column 1. (GOTO) Error[108] temp.ASM 19 : Illegal character ($) Error[131] temp.ASM 23 : Processor type is undefined Mong các tiền bối giúp đỡ Cám ơn |
![]() |
![]() |
![]() |
#4 |
Trưởng lão PIC bang
|
Bộ xử lý được chọn trong MPLAB khác với PIC16F628A mà bạn đang định dùng. Bạn vào mênu Configure của MPLAB, chọn lệnh Select Device ..., sau đó chọn PIC16F628A trong danh sách thả xuống Device, sau đó nhấn nút OK.
Biên dịch lại xem còn có thông báo lỗi nào không. Các warning là để nhắc nhở, đôi khi bạn viết tập tin nguồn không đúng khuôn dạng đã định trước (nhãn nằm sau cột 1, các directive hay lệnh mnemonic nằm ở cột 1, ...) 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 |
![]() |
![]() |
![]() |
#5 |
Đệ tử 2 túi
|
Cám ơn rất nhiều
Mình đã gỡ rối được rồi Thân |
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 23
: |
Sao chưa thấy anh falleaf viết tiếp nhỉ?
Qua bài học pic trong một ngày, cùng với sự giúp đỡ của anh Nam, em đã làm được những việc sau: hiển thị led chạy vòng ở PortB, hiển thị LCD (cũng ở PortB), nhận phím bấm từ PortA và thay đổi hiển thị tương ứng trên LCD.
Chỉ còn chưa tìm ra nguyên nhân tại sao khi hiển thị lên LCD, các ký tự hiển thị lần lượt và cách nhau một lúc chứ không tạo ra được cảm giác hiện đồng thời, dù rằng trong chương trình hiển thị có delay sau khi đưa ký tự nhưng là delay tối thiểu (nhỏ nữa thì cứ hai ký tự nó lại hiện một). Bác Namqn có thể giải thích hộ em không (Data LCD của em là 4 bit, và các chân Port B dùng chung cho cả LCD và các LED hiển thị). Cũng coi như tạm ổn phần vào ra, bàn phím và hiển thị, bây giờ đang muốn giao tiếp với máy tính nhưng chưa thấy chủ đề nào của anh falleaf cả. Rất mong anh viết tiếp nhé. Nếu có thể anh cho luôn mạch giao tiếp giữa PIC và cổng COM luôn. thay đổi nội dung bởi: chuchinh, 01-08-2006 lúc 05:07 PM. |
![]() |
![]() |
![]() |
#7 | |
Trưởng lão PIC bang
|
Trích:
Về phần giao tiếp giữa PIC và cổng nối tiếp, bạn đọc thêm trong luồng về bootloader, và các luồng nói về PIC16F877A. 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 |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Cho mình hỏi cách tạo xung mV hoặc microvon | trungnnd | PIC - Thiết kế và Ứng dụng | 1 | 22-03-2013 02:30 PM |