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

рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп: $ 15
рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЖрдХрд╛рд░: 93.0 (рд▓рдВрдмрд╛рдИ) ├Ч 70.0 (рдЪреМрдбрд╝рд╛рдИ) ├Ч 13.50 (рдКрдВрдЪрд╛рдИ) рдорд┐рдореА
рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрдХрд╛рд░: 70x38 рдорд┐рдореАред
рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ 2 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рд╣реИрдВ:
- рдЧреНрд░рд╛рдлрд┐рдХ
- рдЯреЗрдХреНрд╕реНрдЯ
рдЯреЗрдХреНрд╕реНрдЯ рдореЛрдб рдореЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ 4 рд▓рд╛рдЗрди рдФрд░ 16 рдЕрдХреНрд╖рд░ рдкреНрд░рддрд┐ рд▓рд╛рдЗрди рд╣реЛрддреЗ рд╣реИрдВ
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЛрдб рдореЗрдВ, рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди: 128x64 рдкрд┐рдХреНрд╕реЗрд▓ред
3 рдХрдиреЗрдХреНрд╢рди рдореЛрдб:
- 8-рдмрд┐рдЯ рдмрд╕ рдХрдиреЗрдХреНрд╢рди
- 4 рдмрд┐рдЯ рдмрд╕ рдХрдиреЗрдХреНрд╢рди
- SPI рдХрдиреЗрдХреНрд╢рди (3 рдмрд┐рдЯ рдмрд╕)
2 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рд╣реИрдВ:
- рд╕рд╛рдорд╛рдиреНрдп: рдЦрдкрдд 450 ╬╝A, 5 V
- рдиреАрдВрдж: 30 ╬╝A, 5 V
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛:
- рдЯреЗрдХреНрд╕реНрдЯ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВ
- 8 рдмрд┐рдЯ рдмрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
- рдПрд╕рдкреАрдЖрдИ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- ST7920 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- 10 kOhm рдкрд░ 2 рдЗрдВрдЯрд░рд▓реАрдирд┐рдпрд░ рдкреНрд░рддрд┐рд░реЛрдзрдХред
- 8 рдмрд┐рдЯ рдореЛрдб рдХреЗ рд▓рд┐рдП, 4.7 k╬й рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ (рдпрд╛ рдЕрдзрд┐рдХ)
- ATtiny2313 рдирд┐рдпрдВрддреНрд░рдХ
- 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 рдмрд┐рдЯ рдореЛрдб рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- 50 ╬╝ рджреЗрд░реАред
- рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдорд╛рдВрдб рдХреЛ 8 рдмрд┐рдЯ рдореЛрдб рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред
- рд╡рд┐рд▓рдВрдм 120 ╬╝sред
- рд╣рдо рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬрддреЗ рд╣реИрдВ (рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд░реНрд╕рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдВ)
- 50 ╬╝ рджреЗрд░реАред
- 8 рдмрд┐рдЯ рдореЛрдб рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬреЗрдВ
- рд╡рд┐рд▓рдВрдм 120 ╬╝sред
- рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рднреЗрдЬрддреЗ рд╣реИрдВ
- 20 ╬╝ рджреЗрд░реАред
- ENTRY MODE рд╕реЗрдЯ рдХрд░реЗрдВ (рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд░реЗрдХреНрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдХрд░реНрд╕рд░ рдХреЛ рдХрд┐рд╕ рддрд░рдл рд▓реЗ рдЬрд╛рдирд╛ рд╣реИ, рд╣рдореЗрдВ рдХреНрд░рдорд╢рдГ рджрд╛рдИрдВ рдУрд░ рдХреА рдЬрд░реВрд░рдд рд╣реИ)
рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрдкрдиреЗ рдХрд░реНрд╕рд░ рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕рдХреНрд╖рдо рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд░реНрд╕рд░ рджреЗрдЦреЗрдВрдЧреЗред
8 рдмрд┐рдЯ рдореЛрдб рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдирд┐рдореНрди рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рдЖрд░рдПрд╕ рдХрдо рд╕реЗрдЯ рдХрд░реЗрдВ
- рд╣рдордиреЗ рдЖрд░рдбрдмреНрд▓реНрдпреВ рдХрд╛ рдирд┐рдореНрди рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
- 1 ╬╝ рджреЗрд░реАред
- рдЙрдЪреНрдЪ рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рд╣рдо рдбреЗрдЯрд╛ рдкреЛрд░реНрдЯ рдкрд░ рдХрдорд╛рдВрдб рдмрд╛рдЗрдЯреНрд╕ рднреЗрдЬрддреЗ рд╣реИрдВ
- 1 ╬╝ рджреЗрд░реАред
- рдирд┐рдореНрди рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рджреЗрд░реА рд╕реЗ 50 Delред
рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд╛рдЗрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрдЪреНрдЪ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрд░рдПрд╕ рд╕реНрддрд░ред
рдЖрд░рдПрд╕ = 0 рдХрдорд╛рди
рд░реБрдкрдпреЗ = 1 рдбреЗрдЯрд╛
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд╛рдЗрдЯ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдирд┐рдореНрди рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЛ RS рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
- рд╣рдордиреЗ рдЖрд░рдбрдмреНрд▓реНрдпреВ рдХрд╛ рдирд┐рдореНрди рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
- 1 ╬╝ рджреЗрд░реАред
- рдЙрдЪреНрдЪ рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рд╣рдо рдбреЗрдЯрд╛ рдкреЛрд░реНрдЯ рдкрд░ рдХрдорд╛рдВрдб рдмрд╛рдЗрдЯреНрд╕ рднреЗрдЬрддреЗ рд╣реИрдВ
- 1 ╬╝ рджреЗрд░реАред
- рдирд┐рдореНрди рд╕реНрддрд░ рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рджреЗрд░реА рд╕реЗ 50 Delред
рдЖрдЗрдП рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
.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 рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- SID рдПрдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕рдВрдкрд░реНрдХ рд╣реИ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдпрд╣ RW рд╣реИ
- SCLK рд╕реНрдЯреНрд░реЛрдм рд▓рд╛рдЗрди рд╣реИ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдпрд╣ E рд╣реИ
- CS рдбреЗрдЯрд╛ рдЕрдВрддрд░рдг рдХреА рд╢реБрд░реБрдЖрдд / рдЕрдВрдд рд╣реИ, рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдпрд╣ RS рд╣реИ
рдПрд╕рдкреАрдЖрдИ рдореЛрдб рдореЗрдВ, 24 рдмрд┐рдЯреНрд╕ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдХрдорд╛рдВрдб рдпрд╛ 1 рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ
рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдПрдХ рдЙрдЪреНрдЪ рд╕реАрдПрд╕ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рд╣рдо рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 4 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо 1 рдмрд┐рдЯ рдЖрд░рдбрдмреНрд▓реНрдпреВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдкрдврд╝реЗрдВ рдпрд╛ рд▓рд┐рдЦреЗрдВ
- 1 рдмрд┐рдЯ рдЖрд░рдПрд╕ рднреЗрдЬреЗрдВ - рдХрдорд╛рдВрдб рдпрд╛ рдбреЗрдЯрд╛
- рдкрд╛рд╕ реж
- рд╣рдо рдбреЗрдЯрд╛ рдмрд╛рдЗрдЯ рдХреЗ рдКрдкрд░реА рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ 4 рдмрд┐рдЯреНрд╕ рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо 4 рд╢реВрдиреНрдп рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо рдбреЗрдЯрд╛ рдмрд╛рдЗрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ 4 рдмрд┐рдЯреНрд╕ рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 4 рд╢реВрдиреНрдп рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
- рд╕реАрдПрд╕ рдХреЛ рдХрдо рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рдпрд╣ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рд╕рдВрдЪрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реНрдЯреНрд░реЛрдм рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣реИ:
- 1 ╬╝ рджреЗрд░реАред
- рд╣рдордиреЗ SCLK рдХрд╛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
- 1 ╬╝ рджреЗрд░реАред
- SCLK рдХрдо рд╕реЗрдЯ рдХрд░реЗрдВ
- 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 рддрдХ рд╣реИред
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ 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 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ