Développer une application sur le Microcontrôleur PIC16F887 qui permet de communiquer avec le port série d'un PC.
Lorsque l'utilisateur appui sur un nombre (0,1,2,3,4,5,6,7,8,9) du clavier, l'information est transmise vers le
microcontrôleur et allume un nombre de LED qui correspond.
expl:
1- L'utilisateur appui sur 0 => aucune LED n'est allumée
2- L'utilisateur appui sur 1 => une LED sur le PORTB est allumée
3- L'utilisateur appui sur 4 => quatres LED sur le PORTB sont allumées
4- L'utilisateur appui sur 9 => huit LED sur PORTB sont allumés et une LED du PORTC
Le travail devra être fonctionnel en simulation sur ISIS.
Utiliser le terminal virtuel de ISIS pour simuler l'ordinateur distant connecté au port série.
aide moi svp
je t'appez cette code:
/*
* Project name:
LED_Blinking (Simple 'Hello World' project)
* Copyright:
(c) Mikroelektronika, 2009.
* Revision History:
20080930:
- initial release;
- 20090720 - modified by Slavisa Zlatanovic;
* Description:
This is a simple 'Hello World' project. It turns on/off LEDs connected to
PORTA, PORTB, PORTC and PORTD.
* Test configuration:
MCU: PIC16F887
http://ww1.microchip.com/downloads/e...Doc/41291F.pdf
Dev.Board: EasyPIC6 - ac:LEDs
http://www.mikroe.com/eng/products/v...opment-system/
Oscillator: HS, 08.0000 MHz
Ext. Modules: -
SW: mikroC PRO for PIC
http://www.mikroe.com/eng/products/v...c-pro-for-pic/
* NOTES:
- Turn ON the PORT LEDs at SW9.
*/
void main() {
ANSEL = 0; // Configure AN pins as digital
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
TRISA = 0x00; // set direction to be output
TRISB = 0x00; // set direction to be output
TRISC = 0x00; // set direction to be output
TRISD = 0x00; // set direction to be output
do {
PORTA = 0xFF; // Turn OFF LEDs on PORTA
PORTB = 0x00; // Turn OFF LEDs on PORTB
PORTC = 0x00; // Turn OFF LEDs on PORTC
PORTD = 0x00; // Turn OFF LEDs on PORTD
Delay_ms(1000); // 1 second delay
PORTA = 0xFF; // Turn ON LEDs on PORTA
PORTB = 0xFF; // Turn ON LEDs on PORTB
PORTC = 0xFF; // Turn ON LEDs on PORTC
PORTD = 0xFF; // Turn ON LEDs on PORTD
Delay_ms(1000); // 1 second delay
} while(1); // Endless loop
if(PORTA==0X31)
{PORTB=0X01;
Delay_ms(1000);
}else
if(PORTA==0X32)
{PORTB=0X11;
Delay_ms(1000);
}else
if(PORTA==0X33)
{PORTB=0X13;
Delay_ms(1000);
}else
if(PORTA==0X34)
{PORTB=0X33;
Delay_ms(1000);
}else
if(PORTA==0X35)
{PORTB=0X37;
Delay_ms(1000);
}else
if(PORTA==0X36)
{PORTB=0X77;
Delay_ms(1000);
}else
if(PORTA==0X37)
{PORTB=0X3F;
Delay_ms(1000);
}else
if(PORTA==0X38)
{PORTB=0XFF;
Delay_ms(1000);
}else
if(PORTA==0X39)
{PORTB=0XFF;
PORTC=0X01;
Delay_ms(1000);
}
}
-----