Del PIC al AVR
| #21 |
|
torresdelamora
|
segun yo el codigo que pides va mas o menos asi
|
|||||||||||
|
|
||||||||||||
| #22 Re: Del PIC al AVR |
|
macraig
|
Meta escribió: Con el PIC 16F84A quiero hacer el mismo programa en ensamblador para el AVR AT90S1200, dice que estos dos microcontroladores serían los más parecidos. Se q C no te sirve, pero un poco para comparar asm con C, te dejo el mismo codigo en C... ;) lastimosamente el at90s1200 es un dispositivo ya algo antiguo, q no tiene soporte total en C (se puede, pero con algun truquito). Pero sirve en un AT90S2313 q es el siguiente en la lista... /* * Tabla de verdad * * (c) 2008 DAF * * $Id$ */ /* * Tabla de verdad de 3 entradas y 6 salidas. * * Entradas en: PD0, PD1, PD2 * Salidas en: PB0, PB1, PB2, PB3, PB4, PB5 * * PD2 PD1 PD0 | PB5 PB4 PB3 PB2 PB1 PB0 * -----------|--------------------------- * 0 0 0 | 0 0 1 0 1 0 ; (Configuración 0) * 0 0 1 | 0 0 1 0 0 1 ; (Configuración 1) * 0 1 0 | 1 0 0 0 1 1 ; (Configuración 2) * 0 1 1 | 0 0 1 1 1 1 ; (Configuración 3) * 1 0 0 | 1 0 0 0 0 0 ; (Configuración 4) * 1 0 1 | 0 0 0 1 1 1 ; (Configuración 5) * 1 1 0 | 0 1 0 1 1 1 ; (Configuración 6) * 1 1 1 | 1 1 1 1 1 1 ; (Configuración 7) * */ // Nota: Este codigo se escribio para AT90s2313, pero funcionara en cualquier // micro avr soportado por AVRGCC q disponga de los puertos utilizados #include <avr/io.h> // Nombres y definiciones // Tabla de valores. unsigned char tabla[] = { 0x0A , //001010 (configuracion 0 en hexadecimal) 0x09 , //001001 (configuracion 1 en hexadecimal) 0x23 , //010011 (configuracion 2 en hexadecimal) 0x0F , //001111 (configuracion 3 en hexadecimal) 0x20 , //001001 (configuracion 4 en hexadecimal) 0x07 , //001001 (configuracion 5 en hexadecimal) 0x27 , //001001 (configuracion 6 en hexadecimal) 0x3F //001001 (configuracion 7 en hexadecimal) }; //rutina principal int main(void) { int entrada; // donde se coloca el dato leido del puerto d. // Habilita el PB0-PB5 como salidas. // Puede usarse tambien DDRB |= 0x3F; Mas corto pero menos explicito. DDRB |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5); while(1) //lazo sin fin { // lee el dato del puerto d y coloca la salida correspondiente. // PD & 7 se asegura que solamente los bits PD0-PD3 sean tomados en cuenta. entrada = PORTD & 0x07; // coloca la salida correspondiente. PORTB = tabla[entrada]; } return 0; } |
|||||||||||
|
|
||||||||||||
| #23 |
| #24 |
|
Meta
|
Ahora ya no es aprender el má fácil, sino el más utilizado como el C si quiere hacer grander proyectos.
El ASM si quieres hacer cosas pequñas y entender mejor el PIC: |
|||||||||||
|
|
||||||||||||
|
| Otros temas de interés | |
|---|---|
| Como separar señales, si son entrada y salida de datos | |
| Circuito acondicionador de entrada 4-40mA y salida 0-10 V | |
| Entrada/Salida de audio a traves de USB | |
| Conectar salida video de camara a monitor video | |
| Circuito con reles para puerto paralelo con salida de 3.3v | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad

