рд╣рдо рдХреЛрдбрд╛рдВрддрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП LCD HD44780 рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ, рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╖рдп рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ MK-51 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░, рдПрдХ HD44780 рдбрд┐рд╕реНрдкреНрд▓реЗ, рдПрдХ рдХреАрдмреЛрд░реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕реНрдЯреИрдВрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрд╣ рд╕рдм рд╡реНрдпрд╡рд╕рд╛рдп рдЕрд╕реЗрдВрдмрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ COM рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд рд╣реИред рдЙрд╕ рд╕рдордп, рдореИрдВ рдПрд╡реАрдЖрд░ рдкрд░рд┐рд╡рд╛рд░ (рдЕрд░реНрдерд╛рддреН рдПрдЯрдореЗрдЧрд╛ 8) рдХреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрд╕реЗрдВрдмрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдПрдХ рд▓рдВрдмреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдбрд░ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдб рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 0802, рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

рдкрд╣рд▓реА рдмрд╛рдд рдПрдХ рдЙрдкрдХрд░рдг рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдерд╛ рдЬрд┐рд╕ рдкрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ "рдЦрд┐рд▓реМрдирд╛" рд╕реЗ рдПрдХ рд░реВрдорд╛рд▓ рдерд╛, рдЗрд╕ рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдкрд╛рдк рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдордХреЗ рд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рджреЛрдиреЛрдВ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред рдиреАрдЪреЗ рдореВрд▓ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб:



рдлрд┐рд░ рд╣рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдерд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдЕрдкреНрд░рдпреБрдХреНрдд рдЖрдЙрдЯрдкреБрдЯ (рдкреАрдбреА 0, рдкреАрдбреА 1) рднреА рд╣реИрдВред рд╕рдм рдХреБрдЫ JTAG (X1) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛:

рдореИрдВрдиреЗ 4-рдмрд┐рдЯ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╕рд░реНрдХрд┐рдЯ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ (рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ 15 рдФрд░ 16 рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реИрдВ), рдореИрдВрдиреЗ рдПрд▓рдИрдбреА рд╕рдВрдХреЗрддрдХ рдХреЛ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА (рдбреА 1, рдЖрд░ 2)ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реЗрд▓ рд╕реЗ рдмреИрдЯрд░реА рд╕реЗ рдкреВрд░реЗ рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛ред

рдирддреАрдЬрддрди, рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓рд╛:






LUT (рд▓реЗрдЬрд░-рдЖрдпрд░рди рд╡рд┐рдзрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдмреЛрд░реНрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ AVRstudio рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛
рдХреЛрдб

.include <m8def.inc> #define RS 2 //RS=PD2 #define E 3 //E=PD3 .def temp = r16 rjmp reset .org 40 reset: ldi r16, HIGH(RAMEND) ;  out SPH,r16 ldi r16,LOW(RAMEND) out SPL,r16 ldi r16,0xfc ;  PD2-PD7   out ddrd,r16 ldi r16,0x00 out portd,r16 rcall LCD_init sbi portb,6 ;  rcall LCD_dat rjmp loop LCD_init: ldi temp,0x30 ;  rcall LCD_com1 ;   ldi temp,0x30 rcall LCD_com1 ldi temp,0x30 rcall LCD_com1 ldi temp,0x20 ;4   rcall LCD_com1 ldi temp,0x20 rcall LCD_com ldi temp,0x0c rcall LCD_com ldi temp,0x06 rcall LCD_com ldi temp,0x01 rcall LCD_com ret LCD_dat: ldi ZL, LOW(DB << 1) ldi ZH, HIGH(DB << 1) ldi r21,8 ;    m1: lpm temp, Z+ rcall LCD_com dec r21 cpi r21,0 brne m1 ret LCD_com: ldi r24,(0<<RS)|(1<<E) sbic portb,6 ldi r24,(1<<RS)|(1<<E) out portD,r24 mov r23,temp andi temp,0b11110000 ;   or temp,r24 ;  E  RS out portD,temp ldi r24,(0<<RS)|(0<<E) out portD,r24 ; rcall func_delay ldi r24,(0<<RS)|(1<<E) sbic portb,6 ldi r24,(1<<RS)|(1<<E) out portD,r24 andi r23,0b00001111 ;   swap r23 mov temp,r23 or temp,r24 ;  E  RS out portD,temp ; ldi r24,(0<<RS)|(0<<E) out portD,r24 rcall func_delay ret LCD_com1: ldi r24,(0<<RS)|(1<<E) out portD,r24 or temp,r24 out portD,temp ldi r24,(0<<RS)|(0<<E) out portD,r24 rcall func_delay ret loop: rjmp loop func_delay: ; ldi r17,0x20 ldi r18,0x00 func_delay_subb: subi r18,1 sbci r17,0 brcc func_delay_subb ret DB: .db 0xA8,0x70,0x65,0xB3,0x65,0xE0,0x3A,0x29 ;  


рдореИрдВрдиреЗ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕реЗ рдкреНрд░рд╕реНрдерд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдореБрдЭреЗ LCD_com1 рдФрд░ LCD_com рд╕рдмрд░реВрдЯреАрдиреНрд╕ рдореЗрдВ рдПрдХ рдбрд┐рд╡реАрдЬрди рдмрдирд╛рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рдмрд░реВрдЯреАрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдорд╛рдВрдб рдФрд░ рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛрдб рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
  cbi portb,6 ;    ,   ldi temp,0xc2 rcall LCD_com sbi portb,6 ;  rcall LCD_dat 

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, 2-рд▓рд╛рдЗрди рдореЛрдб рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд░рд┐рддреНрд░ рдХреЛрдб рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдХреЛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП


рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрд╣ рдХреМрд╢рд▓ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдПрдХ рдерд░реНрдорд╛рдореАрдЯрд░, рд░реЗрдмреЛрд╕ рдпрд╛ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб:
dl.dropbox.com/u/77527472/LCDasm.zip
рдЗрд╕рдореЗрдВ рдПрдХ рд░реАрд╕реЗрдЯ рдмрдЯрди рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрдм рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреА рд╕рд╛рдордЧреНрд░реА рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдбреЗрдЯрд╢реАрдЯ
dl.dropbox.com/u/77527472/wh1602-datasheet.pdf
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдбреЗрдЯрд╢реАрдЯ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рднреА рд╣реИ
dl.dropbox.com/u/77527472/ATmega8 (L) .pdf

ps: рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рднреА рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдм рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛

Source: https://habr.com/ru/post/In166735/


All Articles