11.01.2023, 21:09
|
#1
|
Прохожий
Регистрация: 11.01.2023
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Подключение дисплея к контроллеру
Нужно подключить контроллер к дисплею. В интернете из того, что я нашел нет никакой информации как именно этот дисплей и контроллер ( EW12A03GLY, ATMEGA128 ) подключаются друг к другу
|
|
|
|
11.01.2023, 22:45
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,741
Сказал спасибо: 5,541
Сказали Спасибо 25,235 раз(а) в 5,667 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
В даташите указано, что внутри индикатора стоит контроллер AX6120. Вот согласно даташита и надо с ним работать
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Eddy71 за это сообщение:
|
|
|
11.01.2023, 22:47
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,996
Сказал спасибо: 3,015
Сказали Спасибо 3,190 раз(а) в 2,164 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
Сообщение от Eddy71
|
... контроллер AX6120. Вот согласно даташита и надо с ним работать
|
Т.е. искать не по модели дисплея, а по модели его контроллера.
__________________
Экзорцист 40-го уровня.
|
|
|
|
12.01.2023, 01:38
|
#4
|
Прописка
Регистрация: 17.03.2015
Сообщений: 294
Сказал спасибо: 0
Сказали Спасибо 219 раз(а) в 125 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
Сообщение от privetyaarseniy
|
Нужно подключить контроллер к дисплею.
|
Дисплеем EW12A03 управляет контроллер SED1520.
В Proteus'е даже пример есть с исходниками (см. pic1):
‹Диск›:\ Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\SAMPLES\VSM for AVR\AVR and SED1520\EW12A03GLY.pdsprj
|
|
|
Сказали "Спасибо" ProtAS-13
|
|
|
12.01.2023, 19:00
|
#5
|
Прохожий
Регистрация: 11.01.2023
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
Сейчас по крайней мере протеус перестал выдавать ошибки при запуске. Теперь мне нужно понять как на дисплей вывести что-то. Я сгенерировал код в кодвижн и вписал туда пару строк, чтобы дисплей отобразил надпись, но почему-то он её не отображает. https://imgur.com/I4aqFp2.jpg
Код:
|
/************************************************** *****
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 12.01.2023
Author :
Company :
Comments:
Chip type : ATmega128
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 1024
************************************************** *****/
#include ‹mega128.h›
// Graphic Display functions
#include ‹glcd.h›
// Font used for displaying text
// on the graphic display
#include ‹font5x7.h›
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Variable used to store graphic display
// controller initialization data
GLCDINIT_t glcd_init_data;
// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0‹‹DDA7) | (0‹‹DDA6) | (0‹‹DDA5) | (0‹‹DDA4) | (0‹‹DDA3) | (0‹‹DDA2) | (0‹‹DDA1) | (0‹‹DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0‹‹PORTA7) | (0‹‹PORTA6) | (0‹‹PORTA5) | (0‹‹PORTA4) | (0‹‹PORTA3) | (0‹‹PORTA2) | (0‹‹PORTA1) | (0‹‹PORTA0);
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0‹‹DDB7) | (0‹‹DDB6) | (0‹‹DDB5) | (0‹‹DDB4) | (0‹‹DDB3) | (0‹‹DDB2) | (0‹‹DDB1) | (0‹‹DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0‹‹PORTB7) | (0‹‹PORTB6) | (0‹‹PORTB5) | (0‹‹PORTB4) | (0‹‹PORTB3) | (0‹‹PORTB2) | (0‹‹PORTB1) | (0‹‹PORTB0);
// Port C initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0‹‹DDC7) | (0‹‹DDC6) | (0‹‹DDC5) | (0‹‹DDC4) | (0‹‹DDC3) | (0‹‹DDC2) | (0‹‹DDC1) | (0‹‹DDC0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0‹‹PORTC7) | (0‹‹PORTC6) | (0‹‹PORTC5) | (0‹‹PORTC4) | (0‹‹PORTC3) | (0‹‹PORTC2) | (0‹‹PORTC1) | (0‹‹PORTC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0‹‹DDD7) | (0‹‹DDD6) | (0‹‹DDD5) | (0‹‹DDD4) | (0‹‹DDD3) | (0‹‹DDD2) | (0‹‹DDD1) | (0‹‹DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0‹‹PORTD7) | (0‹‹PORTD6) | (0‹‹PORTD5) | (0‹‹PORTD4) | (0‹‹PORTD3) | (0‹‹PORTD2) | (0‹‹PORTD1) | (0‹‹PORTD0);
// Port E initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRE=(0‹‹DDE7) | (0‹‹DDE6) | (0‹‹DDE5) | (0‹‹DDE4) | (0‹‹DDE3) | (0‹‹DDE2) | (0‹‹DDE1) | (0‹‹DDE0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTE=(0‹‹PORTE7) | (0‹‹PORTE6) | (0‹‹PORTE5) | (0‹‹PORTE4) | (0‹‹PORTE3) | (0‹‹PORTE2) | (0‹‹PORTE1) | (0‹‹PORTE0);
// Port F initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRF=(0‹‹DDF7) | (0‹‹DDF6) | (0‹‹DDF5) | (0‹‹DDF4) | (0‹‹DDF3) | (0‹‹DDF2) | (0‹‹DDF1) | (0‹‹DDF0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTF=(0‹‹PORTF7) | (0‹‹PORTF6) | (0‹‹PORTF5) | (0‹‹PORTF4) | (0‹‹PORTF3) | (0‹‹PORTF2) | (0‹‹PORTF1) | (0‹‹PORTF0);
// Port G initialization
// Function: Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRG=(0‹‹DDG4) | (0‹‹DDG3) | (0‹‹DDG2) | (0‹‹DDG1) | (0‹‹DDG0);
// State: Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTG=(0‹‹PORTG4) | (0‹‹PORTG3) | (0‹‹PORTG2) | (0‹‹PORTG1) | (0‹‹PORTG0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
ASSR=0‹‹AS0;
TCCR0=(0‹‹WGM00) | (0‹‹COM01) | (0‹‹COM00) | (0‹‹WGM01) | (0‹‹CS02) | (0‹‹CS01) | (0‹‹CS00);
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// OC1C output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR1A=(0‹‹COM1A1) | (0‹‹COM1A0) | (0‹‹COM1B1) | (0‹‹COM1B0) | (0‹‹COM1C1) | (0‹‹COM1C0) | (0‹‹WGM11) | (0‹‹WGM10);
TCCR1B=(0‹‹ICNC1) | (0‹‹ICES1) | (0‹‹WGM13) | (0‹‹WGM12) | (0‹‹CS12) | (0‹‹CS11) | (0‹‹CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
TCCR2=(0‹‹WGM20) | (0‹‹COM21) | (0‹‹COM20) | (0‹‹WGM21) | (0‹‹CS22) | (0‹‹CS21) | (0‹‹CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer/Counter 3 initialization
// Clock source: System Clock
// Clock value: Timer3 Stopped
// Mode: Normal top=0xFFFF
// OC3A output: Disconnected
// OC3B output: Disconnected
// OC3C output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer3 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR3A=(0‹‹COM3A1) | (0‹‹COM3A0) | (0‹‹COM3B1) | (0‹‹COM3B0) | (0‹‹COM3C1) | (0‹‹COM3C0) | (0‹‹WGM31) | (0‹‹WGM30);
TCCR3B=(0‹‹ICNC3) | (0‹‹ICES3) | (0‹‹WGM33) | (0‹‹WGM32) | (0‹‹CS32) | (0‹‹CS31) | (0‹‹CS30);
TCNT3H=0x00;
TCNT3L=0x00;
ICR3H=0x00;
ICR3L=0x00;
OCR3AH=0x00;
OCR3AL=0x00;
OCR3BH=0x00;
OCR3BL=0x00;
OCR3CH=0x00;
OCR3CL=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0‹‹OCIE2) | (0‹‹TOIE2) | (0‹‹TICIE1) | (0‹‹OCIE1A) | (0‹‹OCIE1B) | (0‹‹TOIE1) | (0‹‹OCIE0) | (0‹‹TOIE0);
ETIMSK=(0‹‹TICIE3) | (0‹‹OCIE3A) | (0‹‹OCIE3B) | (0‹‹TOIE3) | (0‹‹OCIE3C) | (0‹‹OCIE1C);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
// INT3: Off
// INT4: Off
// INT5: Off
// INT6: Off
// INT7: Off
EICRA=(0‹‹ISC31) | (0‹‹ISC30) | (0‹‹ISC21) | (0‹‹ISC20) | (0‹‹ISC11) | (0‹‹ISC10) | (0‹‹ISC01) | (0‹‹ISC00);
EICRB=(0‹‹ISC71) | (0‹‹ISC70) | (0‹‹ISC61) | (0‹‹ISC60) | (0‹‹ISC51) | (0‹‹ISC50) | (0‹‹ISC41) | (0‹‹ISC40);
EIMSK=(0‹‹INT7) | (0‹‹INT6) | (0‹‹INT5) | (0‹‹INT4) | (0‹‹INT3) | (0‹‹INT2) | (0‹‹INT1) | (0‹‹INT0);
// USART0 initialization
// USART0 disabled
UCSR0B=(0‹‹RXCIE0) | (0‹‹TXCIE0) | (0‹‹UDRIE0) | (0‹‹RXEN0) | (0‹‹TXEN0) | (0‹‹UCSZ02) | (0‹‹RXB80) | (0‹‹TXB80);
// USART1 initialization
// USART1 disabled
UCSR1B=(0‹‹RXCIE1) | (0‹‹TXCIE1) | (0‹‹UDRIE1) | (0‹‹RXEN1) | (0‹‹TXEN1) | (0‹‹UCSZ12) | (0‹‹RXB81) | (0‹‹TXB81);
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1‹‹ACD) | (0‹‹ACBG) | (0‹‹ACO) | (0‹‹ACI) | (0‹‹ACIE) | (0‹‹ACIC) | (0‹‹ACIS1) | (0‹‹ACIS0);
SFIOR=(0‹‹ACME);
// ADC initialization
// ADC disabled
ADCSRA=(0‹‹ADEN) | (0‹‹ADSC) | (0‹‹ADFR) | (0‹‹ADIF) | (0‹‹ADIE) | (0‹‹ADPS2) | (0‹‹ADPS1) | (0‹‹ADPS0);
// SPI initialization
// SPI disabled
SPCR=(0‹‹SPIE) | (0‹‹SPE) | (0‹‹DORD) | (0‹‹MSTR) | (0‹‹CPOL) | (0‹‹CPHA) | (0‹‹SPR1) | (0‹‹SPR0);
// TWI initialization
// TWI disabled
TWCR=(0‹‹TWEA) | (0‹‹TWSTA) | (0‹‹TWSTO) | (0‹‹TWEN) | (0‹‹TWIE);
// Graphic Display Controller initialization
// The SED1520 connections are specified in the
// Project|Configure|C Compiler|Libraries|Graphic Display menu:
// DB0 - PORTA Bit 0
// DB1 - PORTA Bit 1
// DB2 - PORTA Bit 2
// DB3 - PORTA Bit 3
// DB4 - PORTA Bit 4
// DB5 - PORTA Bit 5
// DB6 - PORTA Bit 6
// DB7 - PORTA Bit 7
// A0 - PORTB Bit 0
// RD /WR - PORTB Bit 1
// E1 - PORTB Bit 2
// E2 - PORTB Bit 3
// /RES - PORTB Bit 4
// Specify the current font for displaying text
glcd_init_data.font=font5x7;
// No function is used for reading
// image data from external memory
glcd_init_data.readxmem=NULL;
// No function is used for writing
// image data to external memory
glcd_init_data.writexmem=NULL;
glcd_init(&glcd_init_data);
glcd_outtextf("Arial 14");
while (1)
{
// Place your code here
}
} |
Последний раз редактировалось realid; 12.01.2023 в 22:09.
|
|
|
|
12.01.2023, 23:31
|
#6
|
Почётный гражданин KAZUS.RU
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,264
Сказал спасибо: 2,113
Сказали Спасибо 1,720 раз(а) в 975 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
Сообщение от privetyaarseniy
|
Код:
|
// Graphic Display Controller initialization
// The SED1520 connections are specified in the
// Project|Configure|C Compiler|Libraries|Graphic Display menu:
// DB0 - PORTA Bit 0
// DB1 - PORTA Bit 1
// DB2 - PORTA Bit 2
// DB3 - PORTA Bit 3
// DB4 - PORTA Bit 4
// DB5 - PORTA Bit 5
// DB6 - PORTA Bit 6
// DB7 - PORTA Bit 7
// A0 - PORTB Bit 0
// RD /WR - PORTB Bit 1
// E1 - PORTB Bit 2
// E2 - PORTB Bit 3
// /RES - PORTB Bit 4 |
|
Комментарий вижу, а сам код где?
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
|
|
|
|
13.01.2023, 02:01
|
#7
|
Прописка
Регистрация: 17.03.2015
Сообщений: 294
Сказал спасибо: 0
Сказали Спасибо 219 раз(а) в 125 сообщении(ях)
|
Re: Подключение дисплея к контроллеру
Сообщение от privetyaarseniy
|
но почему-то он её не отображает
|
Хоть я никогда не пользовался ни CodeVisionAVR, ни библиотекой GLCD, но судя по коду, который Вы привели, сигналы A0, E1 и E2 сконфигурированы на PORTB, а на картинке из проекта - на PORTC.
Кстати, у меня есть подозрение, что библиотека GLCD не будет корректно работать с дисплеями, у которых нет контактов RD/RW и /RES. Хотя могу и ошибаться.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:52.
|
|