ST7920 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ

рд╣реИрд▓реЛ, рдореИрдВ ATtiny2313 рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ST7920 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ


рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп: $ 15
рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЖрдХрд╛рд░: 93.0 (рд▓рдВрдмрд╛рдИ) ├Ч 70.0 (рдЪреМрдбрд╝рд╛рдИ) ├Ч 13.50 (рдКрдВрдЪрд╛рдИ) рдорд┐рдореА
рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрдХрд╛рд░: 70x38 рдорд┐рдореАред

рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ 2 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рд╣реИрдВ:

рдЯреЗрдХреНрд╕реНрдЯ рдореЛрдб рдореЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ 4 рд▓рд╛рдЗрди рдФрд░ 16 рдЕрдХреНрд╖рд░ рдкреНрд░рддрд┐ рд▓рд╛рдЗрди рд╣реЛрддреЗ рд╣реИрдВ
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЛрдб рдореЗрдВ, рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди: 128x64 рдкрд┐рдХреНрд╕реЗрд▓ред

3 рдХрдиреЗрдХреНрд╢рди рдореЛрдб:
  1. 8-рдмрд┐рдЯ рдмрд╕ рдХрдиреЗрдХреНрд╢рди
  2. 4 рдмрд┐рдЯ рдмрд╕ рдХрдиреЗрдХреНрд╢рди
  3. SPI рдХрдиреЗрдХреНрд╢рди (3 рдмрд┐рдЯ рдмрд╕)


2 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рд╣реИрдВ:


рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛:

рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
  1. ST7920 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
  2. 10 kOhm рдкрд░ 2 рдЗрдВрдЯрд░рд▓реАрдирд┐рдпрд░ рдкреНрд░рддрд┐рд░реЛрдзрдХред
  3. 8 рдмрд┐рдЯ рдореЛрдб рдХреЗ рд▓рд┐рдП, 4.7 k╬й рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ (рдпрд╛ рдЕрдзрд┐рдХ)
  4. ATtiny2313 рдирд┐рдпрдВрддреНрд░рдХ
  5. 5 рд╡реА рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ред


рддрд╛рд░реЛрдВ рдХрд╛ рдЖрд░реЗрдЦ


8-рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрд╕ рдХрдиреЗрдХреНрд╢рди


рд╕рдВрдкрд░реНрдХреЛрдВ pinout:
рдЬреАрдПрдирдбреА - рдкреГрдереНрд╡реА
рд╡реАрд╕реАрд╕реА - + 5 рд╡реА
V0 - рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ
RS - рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдореЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (1 рдбреЗрдЯрд╛ рд╣реИ, 0 рдПрдХ рдХрдорд╛рдВрдб рд╣реИ)
рдЖрд░рдбрдмреНрд▓реНрдпреВ - рд▓рд┐рдЦреЗрдВ рдпрд╛ рдкрдврд╝реЗрдВ (1 - рдкрдврд╝реЗрдВ, 0 - рд▓рд┐рдЦреЗрдВ)
рдИ - рд╕реНрдЯреНрд░реЛрдм
D0-D7 - рдбреЗрдЯрд╛ рдмрд╕
PSB - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (1 - 8/4 рдмрд┐рдЯ рдмрд╕, 0 - SPI)
рдмреАрдПрд▓рдП - рдмреИрдХрд▓рд╛рдЗрдЯ рдПрдиреЛрдб (+)
BLK - рдмреИрдХрд▓рд╛рдЗрдЯ рдХреИрдереЛрдб (-)

рдЖрд░реЗрдЦ рдореЗрдВ, DB0-DB7 рдФрд░ PB0-PB7 рдмрдВрдж рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдПрдХ 8 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдмрд╕ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдиреЗрдХреНрд╢рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
DB0 - PB0
DB1 - PB1
DB2 - PB2
DB3 - PB3
DB4 - PB4
DB5 - PB5
DB6 - PB6
DB7 - PB7

рдПрд╕рдкреАрдЖрдИ рдХрдиреЗрдХреНрд╢рди


рд╕рдВрдкрд░реНрдХреЛрдВ pinout:
рдЬреАрдПрдирдбреА - рдкреГрдереНрд╡реА
рд╡реАрд╕реАрд╕реА - + 5 рд╡реА
V0 - рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ
RS - (CS) рдбреЗрдЯрд╛ рдЕрдВрддрд░рдг рдХрд╛ рдкреНрд░рд╛рд░рдВрдн / рдЕрдВрдд (1 - рдкреНрд░рд╛рд░рдВрдн, 0 - рдЕрдВрдд)
рдЖрд░рдбрдмреНрд▓реНрдпреВ - (рдПрд╕рдЖрдИрдбреА) рдбреЗрдЯрд╛ рдмрд╕
рдИ - (рдПрд╕рд╕реАрдПрд▓рдХреЗ) рд╕реНрдЯреНрд░реЛрдм
PSB - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (1 - 8/4 рдмрд┐рдЯ рдмрд╕, 0 - SPI)
рдмреАрдПрд▓рдП - рдмреИрдХрд▓рд╛рдЗрдЯ рдПрдиреЛрдб (+)
BLK - рдмреИрдХрд▓рд╛рдЗрдЯ рдХреИрдереЛрдб (-)

рдЯреНрд░рд┐рдорд░ рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ

RP1 - рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓
RP2 - рдбрд┐рдорд░

рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╡рд┐рд╡рд░рдг


8 рдмрд┐рдЯ рдореЛрдб

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдХрдорд╛рдВрдб рдФрд░ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдирд╛, рдХрд░реНрд╕рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рдХрд░реНрд╕рд░ рдХреЛ рд╣рд┐рд▓рд╛рдирд╛ рдЖрджрд┐ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛, рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдкрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ 8 рдмрд┐рдЯ рдореЛрдб рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрдкрдиреЗ рдХрд░реНрд╕рд░ рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕рдХреНрд╖рдо рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд░реНрд╕рд░ рджреЗрдЦреЗрдВрдЧреЗред

8 рдмрд┐рдЯ рдореЛрдб рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд╛рдЗрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрдЪреНрдЪ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░рдПрд╕ рд╕реНрддрд░ред
рдЖрд░рдПрд╕ = 0 рдХрдорд╛рди
рд░реБрдкрдпреЗ = 1 рдбреЗрдЯрд╛

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд╛рдЗрдЯ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдЖрдЗрдП рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:

.equ PCom = PORTD ;      RS, RW, E .equ PW = PORTB ;   .equ RS = 2 ;   PCom    RS .equ E = 0 ;   PCom    E .equ RW = 1 ;   PCom    RW .def Data = R18 ;        


рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВ рд╕рдорд╛рд░реЛрд╣:
 ;     Data     LCD12864_CommandOut: ;   . cbi PCom, E ;    E cbi PCom, RS ;    RS cbi PCom, RW ;    RW LCD8_MACRO_DELAY 1, 1 ;  1 . sbi PCom, E ;    E out PW, Data ;       LCD8_MACRO_DELAY 1, 1 ;  1 . cbi PCom, E ;    E LCD8_MACRO_DELAY 1, 50 ;  50 . Ret 


рдбреЗрдЯрд╛ рд╕рдмрдорд┐рд╢рди рдлрдВрдХреНрд╢рди:
 ;     Data     LCD12864_DataOut: ;   . sbi PCom, E ;    E cbi PCom, RS ;    RS cbi PCom, RW ;    RW LCD8_MACRO_DELAY 1, 1 ;  1 . sbi PCom, E ;    E out PW, Data ;       LCD8_MACRO_DELAY 1, 1 ;  1 . cbi PCom, E ;    E LCD8_MACRO_DELAY 1, 50 ;  50 . Ret 


LCD8_MACRO_DELAY рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдХреЛрдб рд╣реИ

 ;       .MACRO LCD8_MACRO_DELAY ; 1   , 2 ,     ldi Temp, @0 ldi Temp1, @1 rcall LCD12864_Delay .ENDM ;      4 . ;  2 : ;R16 тАУ   ;R17 тАУ    R16 . LCD12864_Delay: push R16 ;    . ES0: dec R16 ;- . cpi R16, 0 ;? brne ES0 ; -  . pop R16 ;?  . dec R17 ;  " " . cpi R17, 0 ;  = 0? brne LCD12864_Delay ret 


рдЕрдм рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрдорд╛рдВрдбреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, 8 рдмрд┐рдЯ рдореЛрдб:
рд╕рдорд╛рд░реЛрд╣ рд╕реЗрдЯ рдЖрджреЗрд╢: 0 0 1 рдбреАрдПрд▓ 0 рдЖрд░рдИ 0 0
рдбреАрдПрд▓:
  • рдпрджрд┐ 1 рдкрд░ рд╕реЗрдЯ рд╣реИ рддреЛ 8 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
  • рдпрджрд┐ 0 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ 4 рдмрд┐рдЯ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗрдЯ рд╣реИред


рдЙрддреНрддрд░:
  • рдпрджрд┐ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрдирдд рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдпрджрд┐ 0 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмреБрдирд┐рдпрд╛рджреА рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдЧрд▓рд╛ рдХрдорд╛рдВрдб рдбрд┐рд╕рдкреНрд▓реЗ рд╕реНрдЯреЗрдЯрд╕ рд╣реИ: 0 0 0 0 1 DCB
рдбреА:
  • рдпрджрд┐ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдЪрд╛рд▓реВ рд╣реИред
  • рдпрджрд┐ 0 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдмрдВрдж рд╣реИред

рдХреЗ рд╕рд╛рде:
  • рдпрджрд┐ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХрд░реНрд╕рд░ рдЪрд╛рд▓реВ рд╣реИ
  • рдпрджрд┐ 0 рдкрд░ рд╕реЗрдЯ рд╣реИ рддреЛ рдХрд░реНрд╕рд░ рдмрдВрдж рд╣реИ

рдмреА:
  • рдпрджрд┐ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд░реНрд╕рд░ рдлреНрд▓реИрд╢ рд╣реЛрдЧрд╛
  • рдпрджрд┐ 0 рдкрд░ рд╕реЗрдЯ рд╣реИ рддреЛ рдХрд░реНрд╕рд░ рдмреНрд▓рд┐рдВрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╕рд░рд▓ рд╕реНрдкрд╖реНрдЯ рд╕реНрдХреНрд░реАрди рд╕рдлрд╛рдИ рд╣реИ: 0 0 0 0 0 0 0 0 1


рдФрд░ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб ENTRY MODE SET рд╣реИ - рдХрд░реНрд╕рд░ рдХреА рдЧрддрд┐ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП: 0 0 0 0 0 0 0 1 I I / DS
  • рдпрджрд┐ I / D = 1 рд╣реИ рддреЛ рдХрд░реНрд╕рд░ рджрд╛рдИрдВ рдУрд░ рдЪрд▓рддрд╛ рд╣реИ
  • рдпрджрд┐ I / D = 0 рд╣реИ, рддреЛ рдХрд░реНрд╕рд░ рдмрд╛рдИрдВ рдУрд░ рдЪрд▓рддрд╛ рд╣реИ


рдЗрди рдЪрд╛рд░ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЖрд░рдВрднреАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
 LCD12864_Init: ; . LCD8_MACRO_DELAY 1, 50 ;   50 . Ldi Data, 0b00110000 rcall LCD12864_CommandOut ;    8  . LCD8_MACRO_DELAY 1, 120 ;   120 . Ldi Data, 0b00001111 rcall LCD12864_CommandOut ;    ,  ,   LCD8_MACRO_DELAY 1, 50 ;   50 . Ldi Data, 0b00110000 rcall LCD12864_CommandOut ;    8  . LCD8_MACRO_DELAY 1, 120 ;   120 . Ldi Data, 0b00000001 rcall LCD12864_CommandOut ;     LCD8_MACRO_DELAY 1, 20 ;   20 . Ldi Data, 0b00000110 rcall LCD12864_CommandOut ;      LCD8_MACRO_DELAY 1, 50 ;   50 . ret 


рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрд╕рдкреАрдЖрдИ рдореЛрдб

рдЕрдм SPI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб / рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдЗрд╕ рдореЛрдб рдореЗрдВ, 2 рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


рдПрд╕рдкреАрдЖрдИ рдореЛрдб рдореЗрдВ, 24 рдмрд┐рдЯреНрд╕ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдХрдорд╛рдВрдб рдпрд╛ 1 рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ
рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рдпрд╣ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рд╕рдВрдЪрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реНрдЯреНрд░реЛрдм рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣реИ:


SPI рдореЛрдб рдореЗрдВ рдХрдорд╛рдВрдб / рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
 .equ PCom = PORTD ;      SID  SCLK .equ SID = 1 ; RW   .equ SCLK = 0; E  .equ CS = 2; RS /   .def Data = R18 ;        

рдФрд░ рдЕрдм рд╕рдорд╛рд░реЛрд╣ рд╣реА:
 /*************************************         LCD12864_CommandOut -   LCD12864_DataOut -          Data **************************************/ LCD12864_CommandOut: ldi r20, 0 rjmp command LCD12864_DataOut: ldi r20, 1 command: LCD8_MACRO_DELAY 1, 1 sbi PCom, CS ;    sbi PCom, SID ;  SID  1 ;  4  rcall strob ; 1 rcall strob ; 1 rcall strob ; 1 rcall strob ; 1 rcall strob ; 1 ;  rw   cbi PCom, SID ; rw = 0 rcall strob ; ,      . cbi PCom, SID ; rs = 0 cpi r20, 0 breq command1 sbi PCom, SID ; rs = 1 command1: rcall strob ;  0 cbi PCom, SID ; 0 rcall strob ;    ldi r20, 8 ;   for_send_data: cpi r20, 0 ;     ? breq stop_send_data ;         cpi r20, 4 ; ,    4     4 . brne no_strob ;       ;  4  cbi PCom, SID rcall strob rcall strob rcall strob rcall strob ;   no_strob: dec r20 ;    rol Data ;      1  brcs send_bit_1 ;     1,   C  ,       1 ;      ,  0 cbi PCom, SID ;  0  rcall strob rjmp for_send_data ;  1 send_bit_1: sbi PCom, SID ;  1  rcall strob rjmp for_send_data stop_send_data: ;   ,  4  cbi PCom, SID rcall strob rcall strob rcall strob rcall strob cbi PCom, SID cbi PCom, CS ;    ret 


рд╕реНрдЯреНрд░реЛрдм рд╕рдорд╛рд░реЛрд╣:
 strob: LCD8_MACRO_DELAY 1, 1 ;   1  sbi PCom, SCLK ;    SCLK LCD8_MACRO_DELAY 1, 1 ;   1  cbi PCom, SCLK ;    SCLK LCD8_MACRO_DELAY 1, 1 ;   1  ret .endif ;****************************************************** 


рдкрд╛рда рдореЛрдб


рдЕрдм, рдЬрдм рдЖрдкрдиреЗ рд╕реАрдЦ рд▓рд┐рдпрд╛ рдХрд┐ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдХреНрд╖рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╖рд░ A рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ:
  ldi Data, 'A' rcall LCD12864_DataOut 

рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЖрдкрдХреЛ A рдЕрдХреНрд╖рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЕрдм рдЯреЗрдХреНрд╕реНрдЯ рдореЛрдб рдореЗрдВ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:
рд╕реНрдХреНрд░реАрди рдХреЛ 8 рдХреЙрд▓рдо рдФрд░ 4 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдореЗрдВ рдЖрдк 2 рд╕рд╛рдзрд╛рд░рдг рдЕрдХреНрд╖рд░ рдпрд╛ 1 рд╡рд░реНрдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкрддрд╛ рд╕реНрдерд╛рди 0 рд╕реЗ 31 рддрдХ рд╣реИред
01234567
1617181920212223
89101112131415
2425262728293031

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ 0 рд╕реЗ 7 рддрдХ рдХреЗ рдкрддреЗ рд╣реИрдВ
рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ 16 рд╕реЗ 23 рддрдХ рд╣реИ
рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ 8 рд╕реЗ 15 рддрдХ
рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк рдкрддреЗ 0 рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 16 рдЕрдХреНрд╖рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣реЛрдВрдЧреЗ,
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк 17 рдЕрдХреНрд╖рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрд┐рдо рдЪрд░рд┐рддреНрд░ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рддреАрд╕рд░реЗ рдкрд░ рд╣реЛрдЧрд╛!

рдХрд░реНрд╕рд░ рдкрддрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рд╣реИ: 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0
рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрд░реНрд╕рд░ рдХреЛ 0 рд╕реЗ 31 рддрдХ AC0-AC6 рдкрддреЗ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред


рдЧреНрд░рд╛рдлрд┐рдХ рдореЛрдб


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЬреЛ рд▓реЛрдЧ рдЧреНрд░рд╛рдлрд┐рдХ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓реЗрдЦ рд╣реИ: ST7920 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдПрд▓рд╕реАрдбреА 12864ред рд╕рдорд╛рдирд╛рдВрддрд░ рдореЛрдб (8 рдмрд┐рдЯ)

ST7920 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ

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


All Articles