Proteus is what in industry is called an electronic design automation (EDA) tool. What this means is that it facilitates design of electronic schematics and PCBs while it also allows the engineers to simulate their circuites.
EDAs are powerful tools and Proteus is no exception. It even allows us to introduce microcontrollers customizable black-boxes (including our beloved AtMega324) and to program them, even to run the code or to debug our program like in any other debugger (put break-points, step, etc.). Furthermore, it allows us to debug our schematic like we did in real-world: using multimeters, logic analyzers, oscilloscopes, etc - and we even attach them to our design as we did in the real world.
All these features make Proteus an ideal candidate for remote labs. Think of this as some form of pre-silicon design and dev (that is, when you cut the time to market by using a simulator to increase the amount of parallelism in a team - you don't have the hardware yet, but you can write your code in the simulator and once the hardware is out you can put the two together).
We'll introduce basic work-flow with ISIS by doing a very simple circuit and writing a very simple program, namely you'll push a button and light a LED, all while these are connected to an AtMega324P.
1. Insert an Atmega324P. Delete it then insert it again.
Use the keyword section in the Pick Devices window to search for a device.
In order to remove an element in Isis right click the element then press delete.
2. Connect a generic LED to a GPIO-capable pin of the controller. Make sure that the schematic will later allow you to light the LED when putting a positive tension on the pin.
3. Connect a push-button to a(nother) GPIO-capable pin of the controller.
1. Allright, time to code! Write a program that lights that led if you push the button. In order for the Makefile to work, name your source demo.c. The Makefile is in the archive at the bottom of this page.
2. Compile your source code to binary (a hex file).
3. Next, integrate it with ISIS.
1. On the bottom left corner of your ISIS window, you have a Play button. Press it to start the simulation.
2. Press the button (click on it while simulating) to light the LED.
3. To see the influence of the resistor on your circuit, insert a virtual DC voltmeter and check the voltage difference at its terminals. Try to do the same for the LED. What are the values, do they agree with what you expect? If yes, why? If not, why?