2014-09-20 3 views
-2

Я написал код UART TX в C. Данные передаются с использованием цикла while (1). Так как контроллер все время занят только передачей данных, я не могу сбросить на чип любой новый шестнадцатеричный файл. Он всегда сообщал об ошибке связи.в 8051 не удалось сбросить шестнадцатеричный файл

#include <reg51.h> 
void inituart(void); 
void Tx_Data(unsigned char); 
void SCI_String_Tx(unsigned char *string); 
void delay_ms(unsigned char milliseconds); 

    void delay_ms(unsigned char ms) 
    { 
     unsigned char t1; 
     unsigned int t2; 

for(t1=0; t1<ms; t1++){ 
    for(t2=0; t2<711; t2++); 
     } 
    } 

void inituart() 
{ 
    TMOD=0X21; 
    SCON=0X50; 
    TH1=0XFD; 
    TR1=1; 

} 


void SCI_String_Tx(unsigned char *string) 
{ 
    while(*string) 
    { 
     Tx_Data(*(string++)); 
    } 
} 

void Tx_Data(unsigned char v) 
{ 
    SBUF=v; 
    while(TI==0); 
    TI=0; 
} 


void main(void) 
{ 
    inituart(); 
     while (1) 
     { 
      delay_ms(1000); 
      SCI_String_Tx("HELLO WORLD!"); //Data to terminal 
      delay_ms(1000); 
      delay_ms(10); 
     } 

} 
+0

Я не помню, что в стандарте 8051 имеется какая-либо встроенная память (хотя прошло какое-то время с тех пор, как я запрограммировал этих зверей). Вы уверены, что не используете более продвинутый вариант, например, что-то из Даллас-Семи? Если да, это изменяет способ очистки памяти. Если нет, вы, вероятно, можете просто заменить rom/prom/eprom/eeprom/etc). – paxdiablo

+2

Непонятно, что вы просите. «Дамп шестнадцатеричного файла» - вы имеете в виду «запрограммировать часть»? Как вы программируете часть? Например, возможно, через JTAG или последовательный загрузчик? И с какими инструментами? Если вы используете последовательный загрузчик, он обычно запускается, когда чип загружается, поэтому выполнение перезапуска после включения загрузки может работать. Это зависит от конкретной части, которую вы используете (8051 определяет только основную архитектуру - Intel больше не делает эти части) и какую цепочку инструментов вы используете. Вероятно, это не вопрос SO, поскольку ваш код не является проблемой. – Clifford

ответ

-1

Вы хотите, чтобы загрузить программу в микросхему MCU?

Там вооружить много способов сделать это, например: ISP, JTAG, UART ...

Вы можете проверить детали из DATASHEET чипа.

+0

Просьба о разъяснении должна быть размещена как комментарий, а не ответ. – Clifford