рд╕рд╛рдЗрд░рд╕ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреА I-V рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдорд╛рдкрдирд╛

рдЪрд░рдг 1: рд╕реНрд░реЛрдд рд╕рд╛рдордЧреНрд░реА


рдШрд░ рдХреЗ рд╕реНрд░реЛрдд рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдереЗ:
1. рд╕рд░реВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ "CY8C29466 - 24PXI" рдФрд░ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб "PSoCEVAL1 Rev."
рдЫрд╡рд┐рдЫрд╡рд┐
2. PSoC MiniProg рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП USB-miniUSB рддрд╛рд░
рдЫрд╡рд┐рдЫрд╡рд┐
3. рдорд▓реНрдЯреАрдореАрдЯрд░ рдФрд░ рдПрд▓рд╕реАрдбреА рдбрд┐рд╕реНрдкреНрд▓реЗ (рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА)
рдЫрд╡рд┐рдЫрд╡рд┐

рдЪрд░рдг 2: рд╡рд╛рдпрд░рд┐рдВрдЧ рдЖрд░реЗрдЦ


рдкрд╣рд▓рд╛ рдХрджрдо рд╕рдорд╛рд╡реЗрд╢ рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдХрд╛рд░реНрдп рдХреНрд╖реЗрддреНрд░ рдкреНрд░рднрд╛рд╡ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреА рд╡рд░реНрддрдорд╛рди-рд╡реЛрд▓реНрдЯреЗрдЬ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдорд╛рдкрдирд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╡реЛрд▓реНрдЯреЗрдЬ рдЙрдЬрд╝ (рдЧреЗрдЯ рдкрд░) рдкрд░ (рд╡рд░реНрддрдорд╛рди рдирд╛рд▓реА-рд╕реНрд░реЛрдд) рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдПрдирд╛рд▓реЙрдЧ-рдЯреВ-рдбрд┐рдЬрд┐рдЯрд▓ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдЖрдорддреМрд░ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдорд╛рдк рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдЬреНрдЮрд╛рдд рд╡реЛрд▓реНрдЯреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрдХрд┐рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рдереАред рдФрд░ рдереЛрдбрд╝реА рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖрдИред
рдЫрд╡рд┐ рдЬрд╣рд╛рдВ:
Vdd - рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдмреЛрд░реНрдб рдХреА рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ
рдЖрд░ 1 - рдХрд╛рд░реНрдпрднрд╛рд░
Q1 - рдХреНрд╖реЗрддреНрд░ рдкреНрд░рднрд╛рд╡ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░
рдбреАрдПрд╕реА рдФрд░ рдПрдбреАрд╕реА рдХреНрд░рдорд╢рдГ рдбрд┐рдЬрд┐рдЯрд▓-рд╕реЗ-рдПрдирд╛рд▓реЙрдЧ рдФрд░ рдПрдирд╛рд▓реЙрдЧ-рдЯреВ-рдбрд┐рдЬрд┐рдЯрд▓ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╣реИрдВред

рдЪрд░рдг 3: рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдЪрдпрди


рдирд┐рдпрдорд╛рд╡рд▓реА рдореЗрдВ рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдмреЛрд░реНрдб рдХрд╛ рд╡реЛрд▓реНрдЯреЗрдЬ Vdd = 5V рд╣реИ, рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓-рд╕реЗ-рдПрдирд╛рд▓реЙрдЧ рдХрдирд╡рд░реНрдЯрд░ рдХреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд░реЗрдВрдЬ рд▓рдЧрднрдЧ 0 рд╕реЗ 5V рддрдХ рд╣реИред рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ (Q1) рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рд░реЛрдз (R1) рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреБрдирд╛рд╡ KP103M рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ рдФрд░ 50 рдУрдо рдХрд╛ рдкреНрд░рддрд┐рд░реЛрдз рд╣реБрдЖред

рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ KP103M рдХреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

тАв рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╕рдВрд░рдЪрдирд╛: рдкреАрдПрди рдЬрдВрдХреНрд╢рди рдФрд░ рдкреА-рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде;
тАв рд░реБрдкрдпреЗ рдЕрдзрд┐рдХрддрдо - рд╡рд┐рдШрдЯрд┐рдд рдЬрд▓-рд╕реНрд░реЛрдд рд╢рдХреНрддрд┐: 120 mW;
тАв рдЙрдЬреА рдУрдЯреА - рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХрдЯ-рдСрдл рд╡реЛрд▓реНрдЯреЗрдЬ - рдЧреЗрдЯ рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рдмреАрдЪ рд╡реЛрд▓реНрдЯреЗрдЬ: 2.8 ... 7 рд╡реА;
тАв рдпреВрдПрд╕рдЖрдИ рдЕрдзрд┐рдХрддрдо - рдЕрдзрд┐рдХрддрдо рдирд╛рд▓реА-рд╕реНрд░реЛрдд рд╡реЛрд▓реНрдЯреЗрдЬ: 10 рд╡реА;
тАв рдЖрдИрдпреВрдбреА рднреАрдЦ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд╛рд▓реА рд╡рд░реНрддрдорд╛рди: 3 ... 12 рдПрдордП;
тАв рдПрд╕ - рдврд▓рд╛рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: 1.3 рд╕реЗ рдЕрдзрд┐рдХ ... 4.4 рдПрдордП / рд╡реА;
тАв рд╕реА 11 рдЖрдИ - рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдЗрдирдкреБрдЯ рдХреИрдкреЗрд╕рд┐рдЯреЗрдВрд╕ - рдЧреЗрдЯ рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рдмреАрдЪ рд╕рдорд╛рдИ: 20 рдкреАрдПрдл;
тАв 12 - рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддреА рдзрд╛рд░рд╛ рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЖрдо рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрд╖рдорддрд╛: 8 рдкреАрдПрдл;
тАв Ksh - рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╢реЛрд░ рдХрд╛ рдЖрдВрдХрдбрд╝рд╛: 1 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ 3 dB рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред

рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЖрдзреЗ рджрд┐рди рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдорд╛рди рдЦрд░реАрджреЗ рдЧрдПред
1. рдлреАрд▓реНрдб рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ KP103M рдФрд░ 50 рдУрдо рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рд░реЛрдз
рдЫрд╡рд┐рдЫрд╡рд┐
2. RS 232 рдХреЗрдмрд▓, рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА (рдореИрдВ RS232-USB рдЦрд░реАрджрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреАрдордд рдиреЗ рдПрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдИ, рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрдо-рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рднреА рдбрд░ рдЧрдпрд╛)
рдЫрд╡рд┐

рдЪрд░рдг 4: рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ред


0. рдкрд░рд┐рдЪрдп

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

рдЫрд╡рд┐
рдЫрд╡рд┐
рдореБрдЦреНрдп рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреИрдм рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╕рд╛рдзрди рдкреИрдирд▓ рднреА рд╣реИред рдЬрд┐рд╕рдореЗрдВ, рдЪрд┐рдк рдХреА рдореБрдЦреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ: рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдЖрд╡реГрддреНрддрд┐, рдкрд╛рд╡рд░ рдореЛрдб, рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЖрд╡реГрддреНрддрд┐ рдбрд┐рд╡рд╛рдЗрдбрд░, рдХреБрдЫ рдбрд┐рдЬрд┐рдЯрд▓ рдФрд░ рдПрдирд╛рд▓реЙрдЧ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рд░реЗрдб рдиреЗ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬреЛ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдмрджрд▓ рджрд┐рдП рдЧрдП рдереЗред Ref Mux рдПрдХ рдЪрд┐рдк рдХреЗ рдПрдирд╛рд▓реЙрдЧ рдмреНрд▓реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рд░реЗрдВрдЬ рд╣реИред VC, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдХреНрд▓реЙрдХ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд╡рд╛рдЗрдбрд░ рд╣реИрдВ, рдЗрдиреНрд╣реЗрдВ рдбрд┐рдЬрд┐рдЯрд▓ рдмреНрд▓реЙрдХ рдФрд░ ADC / DAC рдпреВрдирд┐рдЯреНрд╕ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

1. рдбреИрдХ

рдкрд╣рд▓рд╛ рдХрджрдо рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде 8 рдмрд┐рдЯ рдбрд┐рдЬрд┐рдЯрд▓-рд╕реЗ-рдПрдирд╛рд▓реЙрдЧ рдХрдирд╡рд░реНрдЯрд░ рд╣реИ) рдкрд░ рдбреАрдПрд╕реА 8 рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ 8-рдмрд┐рдЯ рдбрд┐рдЬрд┐рдЯрд▓-рд╕реЗ-рдПрдирд╛рд▓реЙрдЧ рдХрдирд╡рд░реНрдЯрд░ред 8-рдмрд┐рдЯ рдмрд┐рдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдЗрдХрд╛рдИ (Vmax-Vmin) / 256 рд╣реЛрдЧреА, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 5V / 256ред рдорд╛рдк рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХрддрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред DAC рдЖрдЙрдЯрдкреБрдЯ рдПрдирд╛рд▓реЙрдЧрдСрдЯрд╕_0 рдмрд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдерд╛ред рдФрд░ рдмрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдореБрдХреНрдд рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдореЗрд░рд╛ рдбреАрдПрд╕реА рдкреЛрд░реНрдЯ_0_3 рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдЕрдлрд╕реЛрд╕, рдпрд╣ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╢рдмреНрдж рд▓реЗ рд▓реЛ, рдпрд╣ рд╡рд╣рд╛рдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЫрд╡рд┐
рдЗрд╕рдХреЗ рдмрд╛рдж, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ DAC'pa рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реА рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
#include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules void main(void) { DAC8_1_Start(DAC8_1_HIGHPOWER); M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts while(1) { DAC8_1_WriteBlind(255);//  0  255    8       0   5 } } 

  рд╣рдо рдЪрд░рдг 2 рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреЛрд░реНрдб рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред 

рдЫрд╡рд┐
рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ред рдлрд╝рдВрдХреНрд╢рди DAC8_1_WriteBlind () рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдбреАрдмрдЧ рдХрд░реЗрдВ; рдпрджрд┐ рд╕рдВрдХреЗрддрдХ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВ рдФрд░ рдбреАрдПрд╕реА рдЗрдХрд╛рдИ рд╕реЗ рдирд┐рдкрдЯреЗрдВред

2. рдПрдбреАрд╕реА

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ DAC'om рдЪреАрдЬреЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдИрдВред рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ 3 рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдкрд╣рд▓рд╛ рдкреАрдЬреАрдП (рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдЧреЗрди рдПрдореНрдкрд▓реАрдлрд╛рдпрд░) рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдСрдкрд░реЗрд╢рдирд▓ рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рд╣реИред рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╣реИ (рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рд▓рд╛рдн 1 рдкрд░ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реЗ рдЕрдзрд┐рдХ рд╡реЛрд▓реНрдЯреЗрдЬ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ) рд▓реЗрдХрд┐рди рдЗрдирдкреБрдЯ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рддрд╛рдХрд┐ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреА рдкрд░рд┐рдорд╛рдг рдорд╛рдк рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗрдВред рдПрдХ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░, рдЬреЛ рдЬрдореАрди рдореЗрдВ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ port_0_1 рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдореЙрдбреНрдпреВрд▓ DAC рд╣реА рдерд╛, ADCINC12 рддрддреНрд╡ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдоред рдмрд┐рдЯ рдХреНрд╖рдорддрд╛, рдЬреЛ 12 рдмрд┐рдЯ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд▓рд┐рдП 4096 рдорд╛рддреНрд░рд╛ рдХрд╛ рдард╣рд░рд╛рд╡ рдЪрд░рдг рд╣реИред рдбреАрдПрд╕реА рдХрд╛ рдПрдХ рдЗрдирдкреБрдЯ рдкреАрдЬреАрдП рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛, рджреВрд╕рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬрдореАрди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдЪреАрдЬреЛрдВ (DAC'ka рд╕рд╣рд┐рдд) рдХреЛ рдПрдХ рдШрдбрд╝реА рдЬрдирд░реЗрдЯрд░, рдпрд╛ рдмрд▓реНрдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдШрдбрд╝реА рдбрд┐рд╡рд╛рдЗрдбрд░ рдкрд░ рдмреИрдардирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдирд╛рд▓реЙрдЧ рдмреНрд▓реЙрдХ SysClock / 8 (24MHz / 8) рдХреЗ рдмрд░рд╛рдмрд░ VC1 рдХреНрд▓реЙрдХ рдбрд┐рд╡рд╛рдЗрдбрд░ рдкрд░ рд▓рдЧрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реИрдВред
рдЫрд╡рд┐
рдЕрдВрддрд┐рдо рдореЙрдбреНрдпреВрд▓, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИ, рдПрд▓рд╕реАрдбреА рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЬреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдФрд░ рд╣рдореЗрдВ ADC рдФрд░ PGA рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрд╛рд╣рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрдХрд┐рдЯ рдкрд░ рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - рдПрд▓рд╕реАрдбреАрдкреЛрд░реНрдЯ, рд╣рдореЗрдВ рдкреЛрд░реНрдЯ 2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдкрд░ рд╣реИред
рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рд╣реИ, рддреЛ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗ рджреВрдВрдЧрд╛
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐
рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
 #include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules void main(void) { DAC8_1_Start(DAC8_1_HIGHPOWER); PGA_1_Start(PGA_1_HIGHPOWER); ADCINC12_1_Start(ADCINC12_1_HIGHPOWER); ADCINC12_1_GetSamples(0); //   -  LCD_Start(); LCD_Position(1,0); //   M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts while(1) { DAC8_1_WriteBlind(255);//  0  255    8       0   5 result = ADCINC12_1_iGetData() + 2048; ADCINC12_1_ClearFlag(); LCD_Position(1,0); LCD_PrHexInt(result); } } 

рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, 0 рд╕реЗ 0x0FFF рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдЫрд╡рд┐

3. UART

UART рдПрдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред RS232 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдзред рд╕рд░реНрдХрд┐рдЯ рдкрд░ UART рдмреНрд▓реЙрдХ рдбрд╛рд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред UART рдореЙрдбреНрдпреВрд▓ рджреЛ рдбрд┐рдЬрд┐рдЯрд▓ рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ, рдПрдХ RX рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ TX рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдПред рдЗрди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рд╡рд╣рди рдбреЗрдЯрд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдЫ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдереЗред рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Port_2_7, рдкреЛрд░реНрдЯ_1_6ред UART рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ VC3 = SysClock / 156 рдШрдбрд╝реА рдкрд░ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ 19200 рдХреА рдереЛрдбрд╝реА рджрд░ рдХреЗ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред UART_1_PutSHexInt () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рдХреЛ рдЪрдХреНрд░ рдХреЛ рдЕрдирдВрдд рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдерд╛ рдЬрдмрдХрд┐ (i <255)ред рдпрд╣ рдбреАрдПрд╕реА рдХреЛ рджрд┐рдП рдЧрдП рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдФрд░ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рд╡реЛрд▓реНрдЯреЗрдЬ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдХреЛрдб рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг
 //---------------------------------------------------------------------------- // C main line //---------------------------------------------------------------------------- #include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules int result; int i; void main(void) { DAC8_1_Start(DAC8_1_HIGHPOWER); PGA_1_Start(PGA_1_HIGHPOWER); ADCINC12_1_Start(ADCINC12_1_HIGHPOWER); ADCINC12_1_GetSamples(0); LCD_Start(); LCD_Position(1,0); UART_1_Start(UART_PARITY_NONE); M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts while(i<255) { DAC8_1_WriteBlind(i); if(ADCINC12_1_fIsDataAvailable() != 0) { result = ADCINC12_1_iGetData() + 2048; ADCINC12_1_ClearFlag(); LCD_Position(1,0); LCD_PrHexInt(result); UART_1_PutSHexInt(result); /* Print result to UART */ i++; } } } 


рдЪрд░рдг 5: COM рдкреЛрд░реНрдЯ рдХреЛ рд╡рд╛рдпрд░рдЯреИрдк рдХрд░реЗрдВ


рдЫрд╡рд┐
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ, рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрддрд╛ рд╣реИ? рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЙрдо-рдкреЛрд░реНрдЯ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬрд╝ 7 рдХреЗ рд▓рд┐рдП -> рдореЗрд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ -> рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдиреЗрдЬрд░ -> рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╣рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдЪрд┐рддреНрд░ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреЙрдо-рдкреЛрд░реНрдЯ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЕрдХреНрд╖рдо рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ BIOS рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдЦреЗрддреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ
рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдмрд┐рдЯ - 19200
рдбреЗрдЯрд╛ рдмрд┐рдЯреНрд╕ - 8
рд╕рдорддрд╛ - рдХреЛрдИ рдирд╣реАрдВ
рд╕реНрдЯреЙрдк рдмрд┐рдЯреНрд╕ - 1
рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг - рдХреЛрдИ рдирд╣реАрдВ

рдЫрд╡рд┐

рд╣рд╛рдЗрдкрд░рдЯрд░реНрдорд┐рдирд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рд╢рд╛рдпрдж рдХреБрдЫ рдорд╛рдирдХ рднреА рд╣реИред рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдкреЛрд░реНрдЯ COM1 рдЪреБрдиреЗрдВред
рдФрд░ рд╣рдо рдкрд╛рдЧрд▓ рдмрд╛рдЗрдЯ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЫрд╡рд┐
рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЪрд░рдг 6: рд╕реА # рдЧреНрд░рд╛рд╣рдХ


рд╣рдо рдХрд┐рд╕реА рднреА VisualStudio C # рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рд╡рд╣рд╛рдВ рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВред рдПрдХ рдХреЙрдо рджреВрд╕рд░реЗ рд╕реА рдПрдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛)ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝реЗрдВ (рд╕рдВрджрд░реНрдн рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ ... -> рдПрдХреНрд╕рдЯреЗрдВрд╢рди -> Microsoft.Office.Interop.Excel)ред рд╣реЗрдХреНрд╕ рд╕реЗ рдЗрдВрдЯ рдФрд░ рдЗрдВрдЯ рд╕реЗ рд╡рд░реНрддрдорд╛рди рддрдХ рд╕рднреА рд░реВрдкрд╛рдВрддрд░рдг, рд╣рдо Program.cs рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
Program.cs
  class Program { public static List<double> ConvInToAmp(List<int> input) { List<double> converted = new List<double>(); double stap = 0.00116822; double Vdd = 4.8; double R = 50; for (int i = 0; i < 255; i++) { converted.Add(input[i] * stap); converted[i] = Vdd - converted[i]; converted[i] = converted[i] / R; //Console.WriteLine(converted[i]); } return converted; } public static List<double> CreateVolt() { List<double> volts = new List<double>(); double stap = 0.0188235294117647; for (int i = 0; i < 255; i++) { volts.Add(i*stap); } return volts; } static void Main(string[] args) { Com port = new Com(); port.Strart(); while (!port.Full()) ; port.Stop(); Console.WriteLine("Data transmission complite"); List<int> input = port.GetData(); List<double> converted = ConvInToAmp(input); Console.WriteLine("Conversin complite"); Excel exel = new Excel(CreateVolt(), converted); Console.Read(); } } 

Com.cs
  class Com { private List<int> values = new List<int>(); private SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One); private void received(object sender, SerialDataReceivedEventArgs e) { string buf; buf = port.ReadExisting(); while (!String.IsNullOrEmpty(buf)) { string str = buf.Substring(0, 4); int v = Convert.ToInt32(str, 16); buf = buf.Remove(0, 4); Console.WriteLine(v); values.Add(v); } } public void Strart() { Console.WriteLine("Incoming data:"); port.DataReceived += new SerialDataReceivedEventHandler(received); port.Open(); } public void Stop() { port.Close(); } public bool Full() { if (values.Count == 255) return true; else return false; } public List<int> GetData() { return values; } }<source lang="cs"> 

Excel.cs
  class Excel { private List<double> xScale; private List<double> yScale; private Application exApp = new Application(); private Sheets sheets; private Worksheet worksheet; private Range range; public Excel(List<double> x,List<double> y) { xScale = x; yScale = y; exApp.Visible = true; exApp.SheetsInNewWorkbook = 1; exApp.Workbooks.Add(Type.Missing); sheets = exApp.Worksheets; worksheet = (Worksheet)sheets.get_Item(1); for (int i = 1; i < 255; i++) { range = worksheet.get_Range("A" + Convert.ToString(i), "A" + Convert.ToString(i)); range.Value = xScale[i]; range = worksheet.get_Range("B" + Convert.ToString(i), "B" + Convert.ToString(i)); range.Value = yScale[i]; } ChartObjects chartObjs = (ChartObjects)worksheet.ChartObjects(); ChartObject chartObj = chartObjs.Add(150, 20, 700,500); Chart xlChart = chartObj.Chart; xlChart.ChartType = XlChartType.xlXYScatterLinesNoMarkers; //PlotArea. Range xValues = worksheet.Range["A1", "A254"]; Range values = worksheet.Range["B1", "B254"]; SeriesCollection seriesCollection = xlChart.SeriesCollection(); Series series1 = seriesCollection.NewSeries(); series1.MarkerSize = 3; series1.XValues = xValues; series1.Values = values; } } } 


рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдФрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦреЗрдЧрд╛ рдХрд┐ рд╡рд╣ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐

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


All Articles