View Full Version : mới bắt đầu học pic nên viết chuơng trình bằng C hay ASM
congtri91
18-08-2009, 06:28 PM
chào các anh trên diễn đàn, em là một người thích vdk và quyết định chọn pic để học. cái khó của em là việc lập trình cho nó không biết phải bắt đầu từ ngôn ngữ nào để dễ hiểu ,dễ học nhất (cả asm và c em đều mù tịt). mong các anh từng nghiên cứu qua PIC cho em lời khuyên vễ lựa chọn ngôn ngữ lập trình. cảm ơn các anh
lequocbao
18-08-2009, 09:19 PM
chào các anh trên diễn đàn, em là một người thích vdk và quyết định chọn pic để học. cái khó của em là việc lập trình cho nó không biết phải bắt đầu từ ngôn ngữ nào để dễ hiểu ,dễ học nhất (cả asm và c em đều mù tịt). mong các anh từng nghiên cứu qua PIC cho em lời khuyên vễ lựa chọn ngôn ngữ lập trình. cảm ơn các anh
ra chợ mua ngay 01 cái đĩa winpic800 về(có 5k àh,còn không thì chịu khó lục lọi trên mạng).Trong đó có sẳn thằng CCS nghiên cứu liền đi bạn!
bluexylitol
19-08-2009, 10:13 AM
Mình thì khuyên bạn thế này. Trước hết bạn nên đọc datasheet cho kỹ, rồi thực tập làm 1 vài chương trình đơn giản với ASM: Read/Write Data/Program Memory; Timer...Còn khi viết chuơng trình phức tạp hơn thì bạn nên viết bằng C. tuy nhiên viết bằng ngôn ngữ gì bạn cũng nên tận dụng các công cụ SIM, Debugger để quan sát các thanh ghi, bộ nhớ,...qua đó bạn sẽ hiểu hơn về cấu trúc và cách thức compiler hoạt dộng,...
Chúc bạn thành công!
hopeman
19-08-2009, 11:03 AM
quan trọng là đọc kỹ datasheet và rèn luyện tư duy lập trình giải quyết các bài toán từ đơn giản đến phức tạp thôi, trước khi viết chương trình nên viết giải thuật ra là tốt nhất, còn ngôn ngữ nào thì quan trọng gì đâu, thích dùng cái nào thì viết cái đó.
8051topic
19-08-2009, 09:35 PM
Có lẽ hơi lạc đề một xíu nhưng bạn nên phân biệt giữa VĐK và VXL, xem các tính năng cơ bản của một con VĐK "điển hình" như PIC16F887 xem nó có những tính năng gì, để làm gì ?
Tiếp theo học cách "khởi tạo" các tính năng đó, ứng dụng vào một ví dụ cụ thể mà đơn giản,...
Để làm được những điều này bạn phải đọc datasheet thôi và trong datasheet sẽ chỉ bạn "khởi tạo" các tính năng bằng các thanh ghi, ô nhớ, ... và đó là ASM bạn àh.
ASM hay C không quan trọng lắm khi mà bạn chưa biết tổng quan về VĐK.
Sự tiện lợi thì C hơn, còn để tối ưu chương trình, dung lượng, tốc độ thì ASM hơn nhưng để thấy được cái hay này thì phải bỏ nhiều công ra bạn àh.
Chúc bạn sớm thành công.
congtri91
19-08-2009, 10:11 PM
cảm ơn mọi người đã chỉ bảo cho em, em đax quết định dùng asm để viết cho nó. nhưng mà tự học thì cũng khó thiệt. em vừa đọc loạt tut "pic6f877a từ dễ đến khó",đọc cũng hiểu tý chút ,tập tành ti toe viết thử nhưng mà đụng phải vấn đề mong được mấy anh kíu thêm lần nữa:
1-các lệnh trong mplab ide có phân biệt chữ hoa chữ thường không??
2-em vừa viết xong lúc dịch nó báo lỗi :
Error - Configuration settings have been specified for address 0x00002007 in more than one object module. Found in './bai tap test portb tut 1.o', previously found in './bai tap2 - ham delay.o'
Errors : 1
mới tìm hiểu nên em chịu chết, chả biết thế nào
mong máy anh chỉ giúp em nhanh nhanh một tý, em vô cùng biết ơn, hjjjjj
congtri91
19-08-2009, 10:14 PM
xí quên cái code (cái này em copy lại trong tut thôi)
processor 16f877a ; KHAI BAO CHIP
include <p16f877a.inc> ; KHAI BAO HEADER FILE
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF ;KHAI BAO CONFIG
;-----------------------------------------------------------------------
;KHOI TAO CAC BIEN
;-----------------------------------------------------------------------
count1 EQU 0X20
counta EQU 0X21
countb EQU 0x22
;=====================================
;CHUONG TRINH CHINH
;=====================================
ORG 0X000
GOTO start
start
BCF STATUS, RP1 ;
BSF STATUS, RP0 ; CHON BANK 1
CLRF TRISB ; KHOI TAO PORTB OUTPUT
BCF STATUS, RP0 ; CHON BANK 0
loop
MOVLW 0XFF ;
MOVWF PORTB ; BAT TAT CA CAC LED O PORTB
CALL delay_100ms ; GOI CHUONG TRINH CON delay_100ms
CLRF PORTB ; TAT HET LED PORTB
CALL delay_100ms ; GOI CHUONG TRINH CON delay_100ms
GOTO loop ; THUC HIEN LAI TU DAU
;------------------------------------------------
;chuong trinh con
;------------------------------------------------
delay_100ms ; NHAN BAT DAU CHUONG TRINH CON
MOVLW d'100'
MOVWF count1
d1
MOVLW d'199'
MOVWF counta
MOVLW d'1'
MOVWF countb
delay_0
DECFSZ counta,1
GOTO $+2
DECFSZ countb,1
GOTO delay_0
DECFSZ count1,1
GOTO d1
RETURN ; KET THUC CHUONG TRINH CON
END
manhha2799
19-08-2009, 10:20 PM
Nên học C, dễ hơn nhiều so với Asm, các hàm có sẵn hết. Chỉ cần bỏ công nghiên cứu tí là sẽ làm được hết mọi chuyện. Sau này lên các chương trình nào cũng cần C, như lập trình giao diện dùng C++. Các phần mềm hiện nay đều dùng C lập trình hết. Nếu học C tốt thì sẽ sử dụng được nhiều chương trình, phần mềm.
congtri91
20-08-2009, 08:19 PM
đùng là C dễ hơn asm thiệt, nhìn các hàm delay của css đơn giản hơn so với asm. hic mỗi tội tài liệu css ít quá, em lại chưa lập trình c bao giờ (asm cũng rứa), thời gian để học hai cái cùng lúc thì không có (tại phải dành thời gian ôn thi đh nữa), hic chả biết chọn cái nào đây, oa oa oa, em tẩu hỏa nhập ma rồi
congtri91
20-08-2009, 08:23 PM
thôi, đằng nào cũng rứa, em sẽ làm theo bác bluexylitol, tìm hểu asm để hiểu rõ tý rồi chuyển sang c cho lành, cảm ơn tất cả mọi người đã giúp đỡ em
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.