Advertisement
anticlown

LM044L - output test

Oct 6th, 2023 (edited)
1,112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.28 KB | None | 0 0
  1. #include <mega32.h> // Подключение заголовочных файлов
  2. #include <alcd.h> // в которых содержатся
  3. #include <stdio.h> // прототипы функций
  4. #include <delay.h>
  5. #include <sdcard.h>
  6.  
  7. #define F_CPU 2000000 // Рабочая частота микроконтроллерa
  8. #define BAUD 9600L // Скорость обмена данными
  9. #define UBRRL_value (F_CPU/(BAUD*16))-1 // Согласно заданной скорости
  10.  
  11. // подсчитываем значение для регистра UBRR
  12.  
  13. void init_USART() { // Функция инициализации USART
  14.     UBRRL = UBRRL_value; // Младшие 8 бит UBRRL_value
  15.     UBRRH = UBRRL_value >> 8; // Старшие 8 бит UBRRL_value
  16.     UCSRB = (1<<TXEN); // Бит разрешения передачи
  17.     UCSRC = (1<< UCSZ0)|(1<< UCSZ1);
  18. } // Устанавливаем формат 8 бит данных
  19.  
  20. void send_UART(char value) {
  21.     while(!( UCSRA & (1 << UDRE))); // Ожидаем когда очистится буфер передачи
  22.     UDR = value;
  23. } // Помещаем данные в буфер, начинаем передачу
  24.  
  25. interrupt [TIM1_COMPA] void timer1_compa_isr(void)
  26. {
  27.     disk_timerproc();
  28. } // Вызов функции синхронизации
  29.  
  30. void main(void) // Основная функция программы
  31. {
  32.     unsigned char Buff[512];
  33.     unsigned char Buff3[512];
  34.  
  35.     int i;
  36.  
  37.     // Инициализация портов микроконтроллера
  38.     // Port A
  39.     DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
  40.     PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
  41.  
  42.     // Port B
  43.     DDRB=(1<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
  44.     PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
  45.  
  46.     // Port C
  47.     DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
  48.     PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
  49.  
  50.     // Port D
  51.     DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
  52.     PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
  53.  
  54.     // Инициализация таймера
  55.     TCCR1A=0x00;
  56.     TCCR1B=0x0D;
  57.     TCNT1H=0x00;
  58.     TCNT1L=0x00;
  59.     OCR1AH=0x00;
  60.     OCR1AL=0x4E;
  61.     TIMSK=0x10;
  62.  
  63.     lcd_init(20); // Инициализация дисплея
  64.     #asm("sei")  
  65.    
  66.     // Проверка подключения карты памяти
  67.     if((disk_initialize(0))==0) // Если карта подключена
  68.     {
  69.         lcd_puts("Card connected!"); // Вывод на экран дисплея сообщения ОК
  70.     }
  71.     else
  72.     {
  73.         lcd_puts("No card found! Please restart");  // Вывод сообщения об отсутствии подключения карты
  74.     }
  75.  
  76.     init_USART(); // Инициализация USART
  77.     disk_read (0, Buff, 0, 1); // Чтение с карты памяти текстового блока
  78.                                 // и его запись в переменную Buff
  79.     delay_ms(500); // Пауза длительностью 500 мс
  80.     lcd_gotoxy(0,1); // Установка курсора в первую позицию второй строки дисплея
  81.     for (i=0;i<33;i++)
  82.     {
  83.         send_UART(Buff[i]); // Вывод считанной с карты памяти информации на экран терминала
  84.         lcd_putchar(Buff[i]); // Вывод считанной с карты памяти информации на экран дисплея
  85.     }
  86.     delay_ms(500);
  87.     disk_read (0, Buff3, 0, 1); // Чтение информации с карты памяти
  88.                                         // и её запись в переменную Buff3
  89. } // Вывод считанной с карты памяти информации
  90. // на экран терминала
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement