MSP430 рдкрд░ рд╕рд░рд▓ рдШрдбрд╝реА

Arduino / LaunchPad рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ рд╕рдорд╛рди рдЦрд┐рд▓реМрдирд╛ рдЦрд░реАрджрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЪреБрдирд╛рд╡ MSP430 рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдХреАрдордд рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рд╣реИред
рджрд░реНрджрдирд╛рдХ 5 рджрд┐рдиреЛрдВ рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдХреЗ рдмрд╛рдж, рдЬрд╛рджреВ рдХрд╛ рдбрд┐рдмреНрдмрд╛ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдерд╛ред рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде 10 рдорд┐рдирдЯ рддрдХ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ ... рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдШрдбрд╝реА!



рд╣рд╛рде рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕реАрдореЗрдВрд╕ A65 рдерд╛, рдЬреЛ рдореЗрд░реА рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╛рддрд╛ рдмрди рдЧрдпрд╛ред рд╣рдо рдЗрд╕рд╕реЗ рд╕реНрдХреНрд░реАрди рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред Google рдХреА рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ RadioKot рдлреЛрд░рдо рдереНрд░реЗрдб рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рдкрд┐рдирдЖрдЙрдЯ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИред рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ, рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рдореЗрдореЛрд░реА рд╕реЗ рдХрдЪрд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдХрдИ рджрд░реНрдЬрди рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдХреБрдЫ рдХреЛ 10 рд╕реЗ рдХрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╢реАрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдкрд░ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреЛрди рдкрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдЖрд░рдВрднреАрдХрд░рдг рдкрдврд╝рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред ред рд▓реЗрдХрд┐рди рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ рдХрд┐ рдореЗрд░реА рд╕реНрдХреНрд░реАрди (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, LPH8731-3C, EPSON S1D15G14 рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде) рдХреЗ рд▓рд┐рдП рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рди рдХреЗрд╡рд▓ рдзреНрд╡рд╕реНрдд рд╣реЛ рдЧрдП рдереЗ, рдмрд▓реНрдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдПрдХ рдбреЗрдЯрд╢реАрдЯ рднреА рдорд┐рд▓реА рдереАред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкрд┐рдирдЖрдЙрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

LPH8731-3C рдХреЗ рд▓рд┐рдП рдкрд┐рдирдЖрдЙрдЯ

LPH8731-3C рдХреЗ рд▓рд┐рдП рдкрд┐рдирдЖрдЙрдЯред ( рд░реЗрдбрд┐рдпреЛрдХреЛрдЯ рдордВрдЪ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛)
рдЬрд╣рд╛рдВ:
  • рд╕реАрдПрд╕ - рдЪрд┐рдк рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЬрдм рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЪрд┐рдк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
  • рдкрд░рд┐рдгрд╛рдо - рдирд┐рдпрдВрддреНрд░рдХ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░ред рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдЙрдЪреНрдЪ -> рдирд┐рдореНрди -> рдЙрдЪреНрдЪ (рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдиреНрдпреВрдирддрдо рд╕рдордп 5ms рд╣реИ) рд╕реЗ рд╕рдВрдХреНрд░рдордг рд╣реИред
  • рд░реБрдкрдпреЗ - рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдФрд░ рдпрд╣ рд╕реАрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рд╣реИ)ред рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЙрдЪреНрдЪред
  • рд╕реАрдПрд▓рдХреЗ - рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
  • DAT - рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдПред
  • VDD - рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ + 1.6 рд╡реА рд╕реЗ + 3.6 рд╡реА рддрдХред
  • GND - рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ ?;
  • LED_A - рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХрдиреЗрдХреНрдЯрд░ред рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рддрд┐рд░реЛрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ (рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд▓рдИрдбреА рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЬрд╝реНрдпрд╛рджрд╛ рдЧрд░рдо рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд╢ рдерд╛)ред
  • LED_K GND рдХреЗ рд▓рд┐рдП рд╣реИред

рд╡реИрд╕реЗ, рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ SPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ CLK рдФрд░ DAT рдХреЛ MSP430 SPI рдкрд┐рди рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред


рд╣рдореЗрдВ "рдмреИрд░рд▓ рдСрд░реНрдЧрди" рдорд┐рд▓рддрд╛ рд╣реИ



рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕реНрдХреНрд░реАрди рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реИрдВ - рдХрдорд╛рдВрдб рдпрд╛ рдбреЗрдЯрд╛ред рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рд╣реИред

рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╢реАрдЯ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, RS / CD рдкрд┐рди рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╣рд╛рдБ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рд╡реИрд╕реЗ, рдпрджрд┐ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рджреМрд░рд╛рди CS рд╕реНрдерд┐рддрд┐ рдирд┐рдореНрди -> рдЙрдЪреНрдЪ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рд░реБрдХ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ, CS рдХреЛ рдКрдкрд░ рдЦреАрдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ)ред

рдмреБрд░рд╛рдИ рдХреЛрдб рдХреЗ рдмрд┐рдЯ
рдХреЛрдб CSS (TI рдХреЗ рдХреЛрдб рдХрдореНрдкреЛрдЬрд╝рд░ рд╕реНрдЯреВрдбрд┐рдпреЛ) рдХреЗ рд▓рд┐рдП рд╣реИред
рдпрд╣рд╛рдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯреБрдХрдбрд╝реЗред рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ :)

LPH87313C.h
/**********************************************************/ /* Pins and outputs */ /**********************************************************/ // Chip Select line pin1.0 #define LCD_CS BIT7 #define LCD_CS_DIR P1DIR #define LCD_CS_OUT P1OUT // Hardware Reset pin1.1 #define LCD_RESET BIT6 #define LCD_RESET_DIR P1DIR #define LCD_RESET_OUT P1OUT // Command/Data mode line pin1.4 #define LCD_CD BIT3 #define LCD_CD_DIR P1DIR #define LCD_CD_OUT P1OUT // SPI #define SPI UCA0TXBUF 


LPH87313C.s
 void LCD_SendCmd(unsigned char Cmd) { LCD_CS_OUT |= LCD_CS; // set CS pin to High LCD_CD_OUT &= ~LCD_CD; // set CD pin to Low LCD_CS_OUT &= ~LCD_CS; SPI = Cmd; } void LCD_SendDat(unsigned char Data) { LCD_CD_OUT |= LCD_CD; // set CD pin to High SPI = Data; } 



рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рднреЗрдЬреЗрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ)ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕рднреА рдХрдорд╛рдВрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реНрдХреНрд░реАрди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕реЗ 3 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рд░реАрд╕реЗрдЯ (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реАрд╕реЗрдЯ) рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВред

рдФрд░ рдпрд╣рд╛рдБ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдорд╛рдВрдб рд╣реИрдВ
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдореЗрдореЛрд░реА рдХреЛ рдореЗрдореЛрд░реА рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ (рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ - рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ / рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рд╕реЗ - рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ / рдЖрджрд┐), рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рд╛рде рд╣реА рд╕рд╛рде рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ (256 рд░рдВрдЧ рдпрд╛ 4096)ред

LPH87313C.s
 void LCD_Init() { // Set pins to output direction LCD_CS_DIR |= LCD_CS; LCD_RESET_DIR |= LCD_RESET; LCD_CD_DIR |= LCD_CD; LCD_CS_OUT &= ~LCD_CS; LCD_RESET_OUT &= ~LCD_RESET; LCD_CD_OUT &= ~LCD_CD; __delay_cycles(160000); //wait 100ms (F_CPU 16MHz) LCD_RESET_OUT |= LCD_RESET; __delay_cycles(160000); LCD_SendCmd(0x01); //reset sw __delay_cycles(80000); LCD_SendCmd(0xc6); //initial escape LCD_SendCmd(0xb9); //Refresh set LCD_SendDat(0x00); __delay_cycles(160000); LCD_SendCmd(0xb6); //Display control LCD_SendDat(0x80); // LCD_SendDat(0x04); // LCD_SendDat(0x0a); // LCD_SendDat(0x54); // LCD_SendDat(0x45); // LCD_SendDat(0x52); // LCD_SendDat(0x43); // LCD_SendCmd(0xb3); //Gray scale position set 0 LCD_SendDat(0x02); // LCD_SendDat(0x0a); // LCD_SendDat(0x15); // LCD_SendDat(0x1f); // LCD_SendDat(0x28); // LCD_SendDat(0x30); // LCD_SendDat(0x37); // LCD_SendDat(0x3f); // LCD_SendDat(0x47); // LCD_SendDat(0x4c); // LCD_SendDat(0x54); // LCD_SendDat(0x65); // LCD_SendDat(0x75); // LCD_SendDat(0x80); // LCD_SendDat(0x85); // LCD_SendCmd(0xb5); //Gamma curve LCD_SendDat(0x01); // LCD_SendCmd(0xbd); //Common driver output select LCD_SendDat(0x00); // LCD_SendCmd(0xbe); //Power control LCD_SendDat(0x54); //0x58 before LCD_SendCmd(0x11); //sleep out __delay_cycles(800000); LCD_SendCmd(0xba); //Voltage control LCD_SendDat(0x2f); // LCD_SendDat(0x03); // LCD_SendCmd(0x25); //Write contrast LCD_SendDat(0x60); // LCD_SendCmd(0xb7); //Temperature gradient LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendDat(0x00); // LCD_SendCmd(0x03); //Booster voltage ON __delay_cycles(800000); LCD_SendCmd(0x36); //Memory access control LCD_SendDat(0x48); // LCD_SendCmd(0x2d); //Color set LCD_SendDat(0x00); // LCD_SendDat(0x03); // LCD_SendDat(0x05); // LCD_SendDat(0x07); // LCD_SendDat(0x09); // LCD_SendDat(0x0b); // LCD_SendDat(0x0d); // LCD_SendDat(0x0f); // LCD_SendDat(0x00); // LCD_SendDat(0x03); // LCD_SendDat(0x05); // LCD_SendDat(0x07); // LCD_SendDat(0x09); // LCD_SendDat(0x0b); // LCD_SendDat(0x0d); // LCD_SendDat(0x0f); // LCD_SendDat(0x00); // LCD_SendDat(0x05); // LCD_SendDat(0x0b); // LCD_SendDat(0x0f); // LCD_SendCmd(0x3a); //interface pixel format LCD_SendDat(0x03); // 0x02 for 8-bit 0x03 for 12bit __delay_cycles(1600000); LCD_SendCmd(0x29); //Display ON } 



рд╣рдорд╛рд░рд╛ рдкрддрд╛ рдШрд░ рдпрд╛ рдЧрд▓реА рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░рд╛ рдкрддрд╛ рд╣реИ ...



рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдкрд░, рд╣рдо рдпрд╛ рддреЛ рдХрдЪрд░рд╛ рдпрд╛ рдПрдХ рд╕рдлреЗрдж / рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рджреЗрдЦреЗрдВрдЧреЗред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдЖрдВрддрд░рд┐рдХ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдкрд░, рд╡рд╣ рд╕рдм рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╡рд╣ "рдпрд╛рдж" рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ (рдпрд╛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ) рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореЗрдореЛрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ (рдпрд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдкрдбреЗрдЯ рдЖрд╡реГрддреНрддрд┐ 85 рд╣рд░реНрдЯреНрдЬ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдирдП рдорд╛рди рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЙрд╕ рдкрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдирдпрд╛ рдорд╛рди рд▓рд┐рдЦрдирд╛ рд╣реИред рдпрджрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХрд╛ рдкрддрд╛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рдорд╛рди рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рд░реЗрдВрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд (x0, y0) рдФрд░ рдЕрдВрдд (x101, y80) рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреНрд░рдорд╢рдГ рдХреНрд╖реЗрддреНрд░ [x, y] [x + 1, y + 1] рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдм рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ (рдФрд░ рдХреИрд╕реЗ (рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 40x40px рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ 1600 рдорд╛рди рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ), рдЬрд┐рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдпрджрд┐ рдЖрдк рдорд╛рди рднреЗрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЕрджреНрдпрддрди рдЕрдЧрд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ) рд╕реЗ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред

рдХреНрд╖реЗрддреНрд░ рдХрдорд╛рдВрдбреНрд╕
 LCD_SendCmd(0x2A); //   X (x0 - , x1 - ) LCD_SendDat(x0); LCD_SendDat(x1); LCD_SendCmd(0x2B); //   Y (y0 - , y1 - ) LCD_SendDat(y0+1); //   Y   1,   0 LCD_SendDat(y1+1); LCD_SendCmd(0x2C); //            



рдЖрдкрдХреЛ рдкрддреНрд░! рдЪреАрдиреА рдореЗрдВ рд╕рдЪ ...



рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреИрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдХреИрд╕реЗ рдЪреБрдиреЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд░рдВрдЧ рдХреИрд╕реЗ рднреЗрдЬреВрдВ? рдкреНрд░рджрд░реНрд╢рди 2 рд░рдВрдЧ рдкрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

8-рдмрд┐рдЯ рд░рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП 8 рдмрд┐рдЯреНрд╕ рднреЗрдЬреЗрдВ (рдЕрд░реНрдерд╛рддреН, R2R1R0G2G1G1G0B1B0, рдЬрд╣рд╛рдВ R2R1R0 рд▓рд╛рд▓ рд░рдВрдЧ рдХреЗ 3 рдмрд┐рдЯреНрд╕ рд╣реИрдВ, рд▓рд╛рд▓ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП 3 рдмрд┐рдЯреНрд╕, рдФрд░ рдиреАрд▓реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП 2 рдмрд┐рдЯреНрд╕)ред
рд▓реЗрдХрд┐рди 12-рдмрд┐рдЯ рд░рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╢реЗрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4 рдмрд┐рдЯреНрд╕ рд╣реИрдВред рдореИрдВ рдПрдХ рдбреЗрдЯрд╢реАрдЯ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рджреВрдВрдЧрд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд░рдВрдЧ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдврд╝ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ 2 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рджреВрд╕рд░реЗ рдмрд╛рдЗрдЯ рдореЗрдВ рдбреА 3-рдбреА 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ 2 рдкрд┐рдХреНрд╕реЗрд▓ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмрд╕ 3 рдмрд╛рдЗрдЯ рднреЗрдЬреЗрдВ (рдЬрд╣рд╛рдВ рджреВрд╕рд░реА рдмрд╛рдЗрдЯ рдХреА рдбреА 3-рдбреА 0 рдХреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреА, рдФрд░ рддреАрд╕рд░реЗ рдмрд╛рдЗрдЯ рдХрд╛ рдбреА 7-рдбреА 0 рджреВрд╕рд░реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рд╣реЛрдЧреА)ред

рдлрд┐рд░ рд╕реЗ рдХреЛрдб рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛
рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдХреЗ рднрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
 void LCD_Flush(unsigned char R, unsigned char G, unsigned char B) { volatile int i = 4040; volatile char B0, B1, B2; B0 = ((R << 4) & 0xF0) + (G & 0x0F); B1 = ((B << 4) & 0xF0) + (R & 0x0F); B2 = ((G << 4) & 0xF0) + (B & 0x0F); LCD_SendCmd(0x2A); LCD_SendDat(0); LCD_SendDat(100); LCD_SendCmd(0x2B); LCD_SendDat(1); LCD_SendDat(80); LCD_SendCmd(0x2C); while (i--) { LCD_CD_OUT |= LCD_CD; SPI = B0; SPI = B1; SPI = B2; } } 



рдФрд░ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдШрдбрд╝реА рдХрд╣рд╛рдБ рд╣реИ?



рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдШрдбрд╝реА рдмрдирд╛рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реЗрдЧрдореЗрдВрдЯ рд╕рдВрдХреЗрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ (рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдФрд░ рдХреНрд╖реИрддрд┐рдЬ) рдЦреАрдВрдЪрдирд╛ рд╣реИред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдордПрд╕ рд╕реЗ рдорд╣рд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдкреЗрдВрдЯ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рдХреЗ рд╕рд╛рде рдорджрдж рдХреА;)ред

рдореБрдЭреЗ рдпрд╣реА рдорд┐рд▓рд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб 12x4px рдЖрдХрд╛рд░ рдХрд╛ рд╣реИ (рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╡рд╛рд▓реЗ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, 4x12px рд╣реИрдВ)ред

рдФрд░ рдЕрдм рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдХреА рдкрд╕рдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХ 12x4 рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдПрдХ рдЦрдВрдб рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЦрдВрдб рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреЛрдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд░рдВрдЧ рд╕реЗ рднрд░рд╛ рд╣реИред рддреЛ рдПрдХ рдЦрдВрдб рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рд╣рдо рдореЗрдореЛрд░реА рдХреЛ рдПрдХ рдЦрд╛рд▓реА рд░рдВрдЧ рдХреЗ рд╕рд╛рде рднрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░рдВрдЧ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ), рдКрдкрд░реА рджрд╛рдПрдВ рдФрд░ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдкрд┐рдХреНрд╕реЗрд▓ рднреА рднрд░реЗрдВред рдЗрд╕реА рддрд░рд╣ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдПред рдФрд░ рдбреЙрдЯреНрд╕ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ, рдореИрдВрдиреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдмрддрд╛рдпрд╛ :)ред

рдПрдХ рдЕрдирдЧрдврд╝ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрд╢реНрд▓реАрд▓ рд╢рдмреНрджреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рдЦрдВрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рд░реЛрд╣ред рдЧреНрд░реАрдирдмрд╛рдЗрдЯ "рдЪрдордХрджрд╛рд░" рд░рдВрдЧ рд╕реНрдерд┐рд░ (рд╕рдХреНрд░рд┐рдп рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП) рд╣реИ, рдЧреНрд░реАрдирдбреАрдо рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЦрдВрдб рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рд╕реНрдерд┐рд░ рд╣реИред рдмреАрдЬреА 0, рдмреАрдЬреА 1, рдмреАрдЬреА 2 - рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рд╕реНрдХреЗрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реНрдерд┐рд░рд╛рдВрдХред
рдФрд░ рдпрджрд┐ рдЖрдк рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВ __delay_cycles - рдпрд╣ рдПрдХ рдЕрдХрдердиреАрдп рдЬрд╛рджреВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрд╕рдкреАрдЖрдИ рдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдШрдбрд╝реА рдЪрдХреНрд░ рдореЗрдВ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреЗ рджрдо рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ)ред
 void drawHorizontal(char type, unsigned char x, unsigned char y) { volatile unsigned char i = 22, B2, B1, B0; if (type) { B0 = greenBright; B1 = 0; B2 = (greenBright << 4) & 0xF0; } else { B0 = greenDim; B1 = 0; B2 = (greenDim << 4) & 0xF0; } LCD_SendCmd(0x2A); LCD_SendDat(x); LCD_SendDat(x+11); LCD_SendCmd(0x2B); LCD_SendDat(y+1); LCD_SendDat(y+4); LCD_SendCmd(0x2C); __delay_cycles(4); LCD_CD_OUT |= LCD_CD; SPI = BG0; SPI = (BG1 << 4) & 0xF0; __delay_cycles(2); SPI = B2; while(i--) { if (i == 17) { SPI = B0; __delay_cycles(2); SPI = (BG0 >> 4) & 0x0F; __delay_cycles(2); SPI = (BG0 << 4) & 0xF0 + (BG1 << 4) & 0x0F; continue; } if (i == 4) { SPI = BG0; SPI = (BG1 << 4) & 0xF0; __delay_cycles(2); SPI = B2; continue; } SPI = B0; SPI = B1; SPI = B2; } SPI = B0; __delay_cycles(2); SPI = (BG0 >> 4) & 0x0F; __delay_cycles(2); SPI = (BG0 << 4) & 0xF0 + (BG1 << 4) & 0x0F; } 



рдЕрдм рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕рд╣реА рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реЗрдЧрдореЗрдВрдЯ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ рддрдп рдХрд┐рдпрд╛ - рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрдХреЛрдВ (0 рд╕реЗ 9 рддрдХ) рдХреЗ рд▓рд┐рдП рдЦрдВрдб рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИред рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдВрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ 1/0 рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдЦрдВрдбреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЦрдВрдб рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ 0 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдЗрд╕реЗ "рдирд┐рд╖реНрдХреНрд░рд┐рдп" рдмрдирд╛рдПрдВ)ред рдФрд░ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рд╕рд░рд▓ рд╕рд░рдгреА
 /******************************************************************************************** * Array for Clock * ____ * _|__1_|_ * |6| |2| * |_|____|_| * _|__7_|_ * |5| |3| * |_|____|_| * |__4_| * ********************************************************************************************/ static const char HH[10][7] = { {1,1,1,1,1,1,0}, // 0 {0,1,1,0,0,0,0}, // 1 {1,1,0,1,1,0,1}, // 2 {1,1,1,1,0,0,1}, // 3 {0,1,1,0,0,1,1}, // 4 {1,0,1,1,0,1,1}, // 5 {1,0,1,1,1,1,1}, // 6 {1,1,1,0,0,0,0}, // 7 {1,1,1,1,1,1,1}, // 8 {1,1,1,1,0,1,1} // 9 }; 

рдХреНрд▓реЙрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛрдб
 void drawClock(char hh, char mm, char dots) { volatile char h0, h1, m0, m1; h0 = hh / 10; h1 = hh - (h0 * 10); m0 = mm / 10; m1 = mm - (m0 * 10); drawHorizontal(HH[h0][0], 9, 25); drawHorizontal(HH[h1][0], 31, 25); drawHorizontal(HH[m0][0], 58, 25); drawHorizontal(HH[m1][0], 80, 25); drawVertical(HH[h0][5], 6, 29); drawVertical(HH[h0][1], 20, 29); drawVertical(HH[h1][5], 28, 29); drawVertical(HH[h1][1], 42, 29); drawVertical(HH[m0][5], 55, 29); drawVertical(HH[m0][1], 69, 29); drawVertical(HH[m1][5], 77, 29); drawVertical(HH[m1][1], 91, 29); drawHorizontal(HH[h0][6], 9, 38); drawHorizontal(HH[h1][6], 31, 38); drawHorizontal(HH[m0][6], 58, 38); drawHorizontal(HH[m1][6], 80, 38); drawVertical(HH[h0][4], 6, 42); drawVertical(HH[h0][2], 20, 42); drawVertical(HH[h1][4], 28, 42); drawVertical(HH[h1][2], 42, 42); drawVertical(HH[m0][4], 55, 42); drawVertical(HH[m0][2], 69, 42); drawVertical(HH[m1][4], 77, 42); drawVertical(HH[m1][2], 91, 42); drawHorizontal(HH[h0][3], 9, 51); drawHorizontal(HH[h1][3], 31, 51); drawHorizontal(HH[m0][3], 58, 51); drawHorizontal(HH[m1][3], 80, 51); drawDots(dots); } 



рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ :) рдФрд░ рдПрдХ рд▓рдШреБ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ "рдбреЙрдЯреНрд╕" рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВред




рдкреБрдирд╢реНрдЪ
рд╢рд╛рдпрдж рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрддрдиреА, рд╡реНрдпрд╛рдХрд░рдг рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрд╕реЗ рд╡рд┐рдирдореНрд░ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореБрдЭреЗ рдкреАрдПрдо рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ, рдФрд░ рдЯрд┐рдкреНрдкрдгреА рди рд▓рд┐рдЦреЗрдВред
рд▓реЗрдЦ рдШрдбрд╝рд┐рдпреЛрдВ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреВрд░реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ :) рд╢реБрд░реВ рдореЗрдВ, рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдЧреИрдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рди, рдмрд╛рд╣рд░реА рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдФрд░ рдмрд╛рд╣рд░реА рдШрдбрд╝реА-рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЧрд▓рдд рдШрдбрд╝реА рдЦрд░реАрджреА, рд╕рдм рдХреБрдЫ рдЙрда рдЧрдпрд╛ :) рдПрдХ рдФрд░ рдХрд╛рд░рдг - рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдХ рдирд╣реАрдВ рдЦрд░реАрдж рд╕рдХрддрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреАрдиреА рдиреЛрдХреНрд▓рд╛ рдПрди 95 8 рдЬреАрдмреА рд╕реЗред рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрд╣рд╛рдВ рдЦрд░реАрджрдирд╛ рд╣реИ?
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб - рд╕рдВрдкрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ :) рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рд╣реИрдВ (рдкреНрд░рд┐рдВрдЯ рдкрд╛рда) - рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рднреА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдпрд╣рд╛рдВ рдШрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рдЧрддрд╛ рд╣реИ ), рдФрд░ рднреА рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдкрд░ рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ)ред рдореИрдВ рд╕реАрдореЗрдВрд╕ CX75 рд╕реЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рднреА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдПрд╕рдПрд╕рдбреА -1286 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдбреЗрдЯрд╛рд╢реАрдЯ рднреА рд╣реИ), рдореИрдВрдиреЗ рдЦреБрдж рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЧрд▓рддреА рд╕реЗ рдЗрд╕реЗ рдЬрд▓рд╛ рджрд┐рдпрд╛ред

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


All Articles