English 中文(简体)
PIC question..~ [closed]
原标题:

We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.

Closed 4 years ago.

I am currently undertaking software engineering program in one of the local universities at my country. And i am interesting in software and hardware. So i decided to learn it by myself. One of my seniors told me to start with PIC 16 or 18 first. Anyone of here has any links for the related website? And where can i get a device to program PIC other than ebay? thx in advance.

问题回答

The PICkit 3 is a relatively inexpensive programmer/in-circuit debugger that connects to your computer via USB:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538340

For a real gentle introduction you can try the PICAXE from http://en.wikipedia.org/wiki/PICAXE all the components are available from http://www.rev-ed.co.uk/picaxe/

If you want to dive in to real pic land then you can get hold of a dev board from http://www.mikroe.com/eng/home/index/ or something similar from elsewhere.

As for documentation and tutorials then google is your friend.

Oh, in case you get tempted, it seems the cool kids are using the Arduino (not pic) from http://www.arduino.cc/

If you re new to PIC programming you have a few choices:

PIC16 vs PIC18

PIC18 devices are more advanced and you can often program in PIC Assembly without having to worry about BANK calls so much. If you re programming simple things, PIC18 will have less housekeeping.

Assembly vs C I prefer PIC ASM, but Microchip provides a free C compiler with MPLAB. The C you use to program PICs in is somewhat simpler than the C you use to compile the Linux kernel... it s basically a wrapper around ASM and lets you do nice loops and "if" statements that assembly lacks.

MPLAB vs MPLABX MPLAB is the original IDE for developing PIC code. Installs on Windows only and is relatively easy to use, but shows its age a little.

MPLABX will run on more OS s. I have not used it much, but it feels a little more complex. Its very different to MPLAB.

Digikey and Microchip Direct are great sources for PIC stuff. The PIC ICD3 is a good device programmer. See if your school has a discount with Microchip Direct, any certified Microchip developer gets around 50% off on dev tools.

As separate advice, figure out how I2C, USARTs, PWM work... these are all core modules in PICs that let you do all the fun stuff with the outside world. Once you ve flashed a few LEDs you ll want to start to interface with other chips etc.

A PIC is not an Arduino, don t expect it to upload to Twitter in 5 minutes of coding, The smaller PICs are better at low level low power type applications.

Microchip provide several starter kits. So look at that and I suggest maybe start with a 8pin PIC or like your senior stated 16 or 18 pin. The difference isn t huge and its fairly easy to move between different PICs. Some will have ADCs, larger memory or even dual memory for programs so you can program it with two different programs and choose at runtime which program to run.

Microchip is the manufacturer for all PICs. PICs purchsed from Microchip need to be programmed in C. However, If you decide to go for PICAXE PICs, they need to be programmed in BASIC. PICAXE which is a product by Revolution Education adds a bootstrap program to Microchip PICs to make it easier to program and are aimed at hobbyists who don t really need any low level control (although possible).

Like others have said, there are other embedded devices you can play with, namely AVR, Arduino, ARM. AVR is very nice piece of kit. Look at the NGW100 starter kit. It has a powerful processor with lots of I/Os and even ports for LCDs, microphones, and cameras. The development for this is in C and AVR provides multiplatform dev tools. It even has Ethernet ports LAN & WAN which are fairly easy to use. The kit comes with its own IP stack so no complex programming needed to use network features.

Good luck!

Try UBW which is a PIC board developed at a university for development on Microchip PIC18 without need for a programmer. It plugs into USB. http://www.schmalzhaus.com/UBW/

I disagree with the comment related to AVR. Microchip is more successful in industry and has better tools than AVR. As far as "easy" goes, they are both equivalent in terms of difficulty, both provide Assembly and C, except that the GNU toolchain for AVR is more complex than Microchip (because it requires use of Unix, command line, etc; whereas Microchip uses a very solid and basic integrated development GUI which also provides full offline simulation). Typically beginners quickly learn that the Arduino dev boards are more of a handicap than a way to develop low cost microcontroller products.





相关问题
Parsing Twitter feeds in C

I m trying to figure out how to get the most recent latitude and longitude of a Twitter user (from the new Geo API data, ie the <geo:point> tag, you can see how they look like on my twitter user ...

Interfacing 45DB161 data flash with 89LP4052 controller

I am trying to interface the data flash with 89lp 4052 controller. Crysal used 11.0592 mhz. This controller has built in spi bus. I tried all combinations of CPHA AND CPOL. Tried mode 0 as well as ...

Circular buffer pointer irregularities

This is a follow up on this question: Display previously received UART values. After implementing a circular buffer on the microcontroller, it seems that there is a problem with the pointers. Sent ...

Steps to read data from ARM microcontroller port

I am having trouble reading serial data from ARM LPC2378 microcontroller. Will I have to use UART or any GPIO port can be used?? is ayone having c code for it??

Display previously received UART values

This should be easy to answer to anyone familiar with C. I want to display the previous values of a variable (receive register of a UART (RS-232) on a microcontroller) on an LCD. This is my current ...

clear code for counting from 0 to 255 using 8-bit datatype

I was wondering if there is a clean way of counting from 0 to 255 using an 8 bit datatype, something like: for(uint8_t i(0);i<=255;++i) { .... } This obviously will not work but it makes it ...

热门标签