??? 08/01/10 03:14 Read: times |
#177553 - Basic program |
I always used PIC microcontrollers, but now I need to do a project using the 89C2051. I made a small program to test, but it is not working. Not even is set a pin. I used the free version of uVision. Can you tell me what's wrong with this code?
#include <variaveis.c> void trata_serial(void) { if(buff_rx[0] == S) { if(buff_rx[1] == M) { if(buff_rx[2] == 0) { if(buff_rx[3] == 1) { buff_tx[0] = S; buff_tx[1] = M; buff_tx[2] = (char)pulsos>>8; buff_tx[3] = (char)pulsos; byte_tx = 3; send_mb(); byte_rx = 0; } } } } } void com_initialize (unsigned int baudrate) { com_baudrate (baudrate); EA = 0; SM0 = 0; SM1 = 1; SM2 = 0; REN = 1; TI = 0; RI = 0; ES = 1; PS = 0; EA = 1; } void com_baudrate (unsigned int baudrate) { EA = 0; TI = 0; TR1 = 0; ET1 = 0; PCON |= 0x80; TMOD &= ~0xF0; TMOD |= 0x20; TH1 = (unsigned char) (256 - (XTAL / (16L * 12L * baudrate))); TR1 = 1; EA = 1; } static void recebe_serial(void) interrupt 4 { if (RI != 0) { RI = 0; buff_rx[byte_rx]=SBUF; byte_rx++; if(byte_rx == 4) { Frecebido = 1; } timeout_mb = 0; } } void send_mb() { unsigned char No_byte_tx = byte_tx; for(byte_tx=0;No_byte_tx>=0;No_byte_tx--)//envia bytes pela serial { SBUF = buff_tx[byte_tx++]; } } void int_initialize(void) { EA = 0; IT0 = 1; EA = 1; } void int0_flow(void) interrupt 0 { pulsos++; } void timer_initialize (void) //1,8ms { EA = 0; TR0 = 0; ET0 = 1; TMOD &= ~0xF; TMOD |= 0x01; TH0 = 0xFA; TL0 = 0x24; TR1 = 1; EA = 1; } void timer_flow(void) interrupt 1 { timeout_mb++; if(timeout_mb == 50) { unsigned char No_byte_rx = byte_rx; for(byte_rx=0;No_byte_rx!=0;No_byte_rx--) { buff_rx[byte_rx] = 0; } timeout_mb = 0; } count++; if(count > 1000) { count = 0; if(P1_6) { P1_6 = 0; } else { P1_6 = 1; } } } void main (void) { com_initialize (19200); timer_initialize(); int_initialize(); P1_5 = 1; while (1) { if(Frecebido) { trata_serial(); } } } |
Topic | Author | Date |
Basic program | 01/01/70 00:00 | |
Start simple | 01/01/70 00:00 | |
they are | 01/01/70 00:00 | |
Check Keil site | 01/01/70 00:00 | |
Daniel hit thre nail on the head | 01/01/70 00:00 | |
Thank you | 01/01/70 00:00 | |
LJMP / 0x800 Not A Problem | 01/01/70 00:00 | |
Missing link - Assembler | 01/01/70 00:00 | |
Completing the sentence....![]() | 01/01/70 00:00 | |
I used the free (sic) version of uVision | 01/01/70 00:00 |