pic micro assembler tutorials in sinhala part1
මයික්රෝ කන්ට්රෝලයක් යනු කුමක්ද ?
මෙ |
යට දිය හැකි සරළම පිළිතුර නම් තනි චිපයක් මත පිහිට වූ කුඩා පරිඝනකයක්
යන්නයි. එම නිසා මෙයට බොහෝ විට බාහිරින් සැපයිය යුත්තේ ප්රදාන (INPUTS) හා විදුලි බලය (POWER) පමණකි.
මයික්රෝ ප්රොසෙසරයක් යනු කුමක්ද ?
මෙයද චිපයක් මත පිහිට වූ පරිඝනකයකි. නමුත් මෙහි ක්රියා කාරිත්වයට අවශය RAM ,ROM ,PIA ,CLOCK වැනි අනෙකුත් උපකරණ බාහිරින් සවිකල යුතුය. මයික්රෝ කොන්ටෝලයේ මෙම උපකරණ
සියල්ල චිපය තුලම අන්තර් ගත වේ.
ප්රතිසම සහ සංඛ්යාක සංඥා (ANALOG AND DIGITAL SIGNALS)
ඉලෙක්ට්රොනික් විද්යාවේ බෙඳුමක් වශයෙන් කලකට පෙර පැහැදිලි කොටස් දෙකක් දැකගත හැකි විය.
ඒ ප්රතිසම හා සංඛ්යාක වශයෙනි. මෙහි ප්රතිසම කොටස වර්ධක , රේඩියො
සංඥා, වීඩියෝ සංඥා ආදි
කොටස් පිළිබඳ වන අතර සංඛ්යාක ඉලෙක්ට්රොනික් විද්යාව පාලන පරිපථ, දත්ත සැකසුම් ස්විච්කරණය ආදී කොටස් පිළිබඳ වේ. මයික්රෝකන්ට්රෝලරය අයිති
වන්නේ අපි දෙවනුව කථාකල කොටසටයි.
ප්රතිසම සංඥාවක් කාලය සමග විවිධ වෙනස්කම් රාශියක් දන්වන අතර සංඛ්යාක
සංඥාවක් දක්වන්නේ වෙනස් කම් දෙකක් පමණි එනම් වෝල්ටීයතා ඇති බව (+5V) තර්ක එක වශයෙන්ද (LOGIC 1) වෝල්ටීයතාව නැති බව (0V) තර්ක බින්දුව වශයෙන්ද (LOGIC 0) ගෙන මේ ආශ්රිතව විශයක් ගොඩනගා ඇත.
එය නම් සංඛ්යාක ඉලෙක්ට්රොනික් විද්යාවයි (DIGITAL
ELECTRONICS)
සංඛ්යාක ඉලෙක්ට්රොනික් විද්යාවේදී තර්ක එක හා තර්ක
බින්දුව බිටු (BITS) ලෙසින් හඳුන්වයි.
ප්රතිසමසංඥාවක්
ද්වීමය සංඛ්යා හා දහසයේ පාදයේ සංඛ්යා (BINARY AND HEXADECIMAL NUMBERS)
මයික්රොකන්ට්රෝලය තුල භාවිතාවන
සංඥා සියල්ලම එක හා බින්දුව වන බවට එනම් පාදයේ සංඛ්යා වන බවට
දැන් ඔබට අවබෝධ වී ඇතැයි සිතමි. නමුත් අප පාවිච්චි කරන්නේ දහයේ පාදයේ සංඛ්යායි. එම නිසා අපට දහයේ පාදයේ සංඛ්යා
පාදයටත් දෙකේ පාදයේ සංඛ්යා දහයේ පාදයටත්
හැරවීමට උවමනාවේ මෙය සිදුකෙරෙන්නේ කෙසේ
දැයි අපි දැන් බලමු.
දහයේ පාදයේ සංඛ්යා දෙකේ පාදයට හැරවීම
දහයේ පාදයේ සංඛ්යා දෙකේ පාදයට හැරවීම ඉතා සරල ක්රියාවලියකි කිරීමට
ඇත්තේ අවශ්ය සංඛ්යාව අවසන් වන තුරු දෙකෙන් බෙදාගෙන යාමය ඉන් අනතුරුව පහත ආකාරයට
ලිවීමෙන් ඔබට දහයේ පාදයේ සංඛ්යා දෙකේ පාදයට හරවා ගත හැක. උදාහරණ
10 පාදයේ 28 දෙකේ පාදයට හැරවීම
28/2 = 14 ඉතිරි 0 (LSD)
14/2 = 7 ඉතිරි 0
7/2 = 3 ඉතිරි 1
3/2
= 1 ඉතිරි 1
1/2 = 0 ඉතිරි 1 (MSD)
= 111002
දෙකේ පාදයේ සංඛ්යා දහයේ පාදයට හැරවීම
මෙයද සරල ක්රියාවක් වන අතර කිරීමට ඇත්තේ දෙකේ පාදයේ සංඛ්යාවේ බලයෙන්
ගුණකර එහි ඓක්ය ගැනීමයි. උදා:-
10112 = 1 X 23 +0 X 22+1
X 21+1 X 20 =
8+2+1 = 1110
දෙකේ පාදය සංඛ්යා ලියා දැක්වූ විට විශාල නිසා ඒවා ක්රම ලේඛන තුලදී කෙටිකර
ලිවීමට අප විසින් දහසයේ පාදය භාවිතා කරයි. මෙහිදී බින්දුවේ සිට නවය දක්වා ඉලක්කම් හා දහයේ සිට පහළොව දක්වා අකුරු
භාවිතා කරන අතර ඒවා මෙසේ වේ.
0,1,2,3,4,5,6,7,8,9,
A, B, C, D,
දෙකේ පාදයේ සංඛ්යා දහසයේ පාදයට පෙරලීම
මේ සඳහා දෙකේ පාදයේ අවශ්ය සංඛ්යාව සටහන් කොට එය කොටස් දෙකකට බෙදා එක් එක්
කොටසකට එයට අදාල දහසයේ පාදයේ අගය ආදේශ කිරීම පහසුම ක්රමයකි.
උදා:- 101011112
1010 | 1111
= 101011112 = AF16
A
F
මූලික තර්ක ඒකක
මයික්රෝකන්ට්රෝලවලට පිවිසීමට පෙර මූලික තර්ක ගේට ගැන අවබෝධයක් ඇතිකර
ගැනීම වැදගත්ය මූලික තර්ක ගේට තුනක් වේ ඒවා නම්
1.
AND GATE
2.
OR GATE
3.
NOT GATE
AND GATE
මූලික වශයෙන් ප්රදාන දෙකක් සහ එක ප්රතිදානයක් ඇති ගේටයකි. මෙයට එක හා බින්දුව වන තර්ක තත්ව විවිධ සංයෝජන වලින් ලබා දුන් විට ඇතිවන ප්රතිදානය වගු ගත කල විට ඉහත ආකාරයේ වගුවක් ලැබේ මෙහිදී අපට පෙනී යන්නේ ප්රදාන දෙකම තර්ක එක වූ විට පමණක් ප්රතිදානය තර්ක එකවන බවය එම නිසා සහ යන තර්ක තත්වය හෙවත් (AND) යන තර්ක තත්වය මෙයින් නියෝජනය කරයි.
මූලික වශයෙන් ප්රදාන දෙකක් සහ එක ප්රතිදානයක් ඇති ගේටයකි. යටත් පිරිසයින් එක ප්රදානයක්වත් තර්ක එක වූ විට ප්රතිදානය එක වන මෙය හෝ තර්ක තත්වය (LOGIC OR) නියෝජනය කරයි.
සංඛේතය තර්ක ප්රකාශය (BOOLEAN EXPRESSION ) A + B = C
එක් ප්රදානයක් සහ එක් ප්රතිදානයක් පමණක් ඇති මෙය සෑම විටම දෙන ප්රදානයට විරුද්ධ ප්රතිදානයක් ලබා දේ.
මයික්රොකන්ට්රෝලයක් ක්රියා
කරන්නේ සංඛ්යාක ඉලෙක්ට්රොනික් විද්යාව ආශ්රයෙනි. මෙහිදී මයික්රොකන්ට්රෝලරයේ තර්ක මූලයක් (LOGIC ELEMENT) එක බිටුවක් නිරෑපනය කරයි. එය සංඛ්යාක ඉලෙක්ට්රොනික විද්යාවේදී ෆ්ලිප් ෆ්ලොප් (FLIP-FLOP) ලෙසින් හඳුන්වන අතර 16F84A බිටු අටක් සහිත මයික්රොකන්ට්රෝලයක් බැවින් එහි බොහෝ අභ්යන්තර කොටස් සැදී තිබෙන්නේ මෙවැනි මූල අටක් එකතු වූ ඒකක ලෙසිනි. අපි ඒවා රෙජිස්ටර් ( REGISTERS ) ලෙසින් හඳුන්වමු.
ප්රදාන හා ප්රතිදාන (INPUTS AND OUTPUTS)
මයික්රෝ ප්රොසෙසර් හෝ කන්ටෝලයර හෝ ( ට්රාන්සිස්ටර් පවා ) බිහිවීමට පෙර
යුගයේ සිටම මිනිසා පරිඝනක භාවිතා කර තිබිනි. මේවායේ ක්රියාකාරී උපාංගය වූයේ රික්ත
ටියුබයයි (VACUUM
TUBE) මෙය විශාල, බර විදෙන සුළු උපාංගයකි. වර්ෂ එක්දහස් නවසිය හතලිස් අටේදී ඇමරිකාවේ බෙල් විද්යාගාරයේ විද්යාඥයින් තෙපලක් විසින් ට්රාන්සිස්ටරයද වර්ෂ එක්දහස් නවසිය පනස් හයේදී ඇමරිකාවේ ජැක් කිල්බි විසින් මුල්ම
අයි.සී උපකරණයද සොයාගත් පසුව පරිඝනක වල ප්රමාණය දිනෙන් දිනම කුඩා වීම නොවලැක්විය
හැකි කරුණක් විය. මේ නිර්මාණය මිනිසාගේ ඉපැරනි සිහිනයක් වූ තනි චිපයක පරිඝනකයක් (COMPUTER
ON A CHIP) යන සිහිනය සැබෑ කිරීමට උදව් විය.
සැබෑ මයික්රෝ ප්රොසෙසර් සෑදීම ආරම්භ වූයේ වර්ෂ එක්දහස් නවසිය හැට නවයේ ජපානයේ බිසී කොම් ( BUSICOM ) සමාගමේ විද්යඥයින් විසින් තනන ලද යන්ත්රයක් සදහා මයික්රෝ ප්රොසෙසර්
තැනීමට උත්සාහ කිරීමෙන් පසුවයි. මෙය භාර වූයේ ඉන්ටෙල් සමාගමේ මර්සියන් හොෆ්
නැමැත්තාටය. ඔහුගේ අදහස් රුගෙන එය දියුණු කල ෆෙඩ්රිගෝ ෆ්රගින් නැමැත්තා විසින්
ප්රථම වතාවට වර්ෂ එක්දහස් නවසිය හැත්තෑ එකේදී 4004 නමින් මයික්රෝ ප්රොසෙසරයක් වෙළද පොළට ඉදිරිපත්කරන ලදී. මෙම මයික්රෝ ප්රොසෙසරය
බිටු හතරක මයික්රෝ ප්රොසෙසරයක් වූ අතර
තත්පරයකට ගණිත කර්ම හය දහසක් (6000) ක් කිරීමේ හැකියාවකින් යුක්ත විය.
මේ අවදියේම ඇමරිකන් සමාගමක් වන සී ටී සී සමාගම විසින් ඉන්ටෙල් සමාගමෙන් හා ටෙක්සාස් ඉන්ස්ට්රෘමන්ට්ස් සමාගමෙන් කුඩා පරිඝනක ක්රියා කිරීම සඳහා බිට් අටේ මයික්රෝප්රොසෙසර්යක්
නිපදවන ලෙස ඉල්ලීමක් කරන ලදී අවසානයේ සී ටී සී සමාගම මේ අදහස අත් හැර දැමුවත්
දිගටම එම අදහස ඔස්සේ ක්රියාකල අනෙක් සමාගම් දෙක වතාවට වර්ෂ එක්දහස්
නවසිය හැත්තෑ දෙකේදී ලොව ප්රථම බිට් අටේ මයික්රෝප්රොසෙසරය වන 8008 පළමු ලොවට
හදුන්වා දෙන ලදී. මෙය උපදෙස් (INSTRUCTION) හතලිස් පහකින් ද කිලෝ බයිට් දහ සයක (16KB) මතකයකින්ද
සමන්විත වූ අතර තත්පරයකට උපදෙස් ලක්ෂ තුනක් ( 300,000 ) ක්රියාවේ යෙදවීමේ හැකියාවකින් යුක්ත විය.
ඊට වසර දෙකකට පසු ඉන්ටෙල්
සමාගම නිපදවූ 8080 මයික්රෝප්රොසෙසරය
පරිඝනකයක් ක්රියා කිරීමට තරම් බලවත් පලමු මයික්රෝප්රොසෙසරය වන අතර මෙහි ආරම්භ මිල ඇමෙරිකන් ඩොලර් තුන්සිය
හැටක් ($360) විය.මේ වන විට පරිඝනක ක්ෂේත්රයේ සිටින තවත් සමාගම් කීපයක් මේ නිර්මාණයේ
වටිනාකම වැටහෙන්නට විය. මෙයින් ප්රධාන සමාගමක් වූ මොටරෝලා සමාගම 6800 නමින් ඔවුන්ගේ මයික්රෝප්රොසෙසරයක් වෙළද පොළට ඉදිරිපත් කලේය. මෙහි
නිර්මාතෘ වූයේ චක් පෙඩ්ල්ස් නැමැත්තාය. මොවුන් මෙයට 6820 හා 6850 නමින් උපකාරක චිප්
දෙකක්ද ඉදිරිපත් කරන ලදී. මේ අතර චක් පෙඩ්ල්ස් මොටෝරෝලා ( MOTOROLA ) සමාගමෙන් ඉවත්
වී මොස් ටෙක්නොලොජීස් ( MOS TECHNOLOGIES ) නමින් ඔහුගේම සමාගමක් පිහිටුවා ගන්නා ලදී.
වර්ෂ එක්දහස් නවසිය හැත්තෑ පහේදී ඇමරිකාවේ පැවති වෙස්කොන් ප්රදර්ශනයේදී පුදුම
සහගත දෙයක් සිදුවිය. එනම් මොස් ටෙක්නොලොජීස් ( MOS TECHNOLOGIES ) සමාගම ඔවුන් ගේ ප්රථම යික්රෝප්රොසෙසරය
ඩොලර් විසි පහකට 6502 නමින් ඉදිරිපත් කිරීමයි. බොහෝ දෙනා සිතුවේ මෙය
වංචාවක් කියායි .නමුත් ඔවුන්ගේ මයික්රෝප්රොසෙසරය ඉතා හොදින් විකිනෙන්නට විය.
අනෙකුත් සමාගම්ද ඔවුන්ගේ මිල තරඟකාරී ලෙස පහත හෙළන්නට විය.
මේ අතරතුර ෆෙඩ්රිගෝ ෆ්රැගින්ස් ඉන්ටෙල් සමාගමෙන් ඉවත්ව සයලොග් ( ZIALOG ) නමින් ඔහුගේම සමාගමක් පිහිටුවා ගන්නා ලදී. 1976 දී ZIALOG සමාගම නිපදවූ Z80 චිපය දශකයේ බිහිවූ ප්රබල මයික්රෝප්රොසෙසරයක් විය.
වර්ෂ එක්දහස් නවසිය හැත්තෑ හයේදී ඉන්ටෙල් සමාගම නැවත 8085 නමින් ප්රබල මයික්රෝප්රොසෙසරයයක් ඉදිරිපත් කරන ලදී. මෙය උපදෙස් හැත්තෑ පහකින්ද කින් ද කිලෝ
බ්යිට් හැට හතරක මතකයකින්ද සමන්විත
විය.මෙය අද දින දක්වා දිවෙන පරිඝනක මයික්රෝප්රොසෙසර හා මයික්රෝකොන්ට්රොලර් පෙලක
ආරම්භය විය.
PIC 16F84A හැඳින්වීම
මයික්රෝකන්ට්රෝලරය ශ්රී ලංකාවේ මේ තරම් ජනප්රිය වූයේ ෆ්ලෑෂ් මෙමරි සහිත පික් පවුලේ පැමිණීමත් සමඟ යැයි කිවහොත් එය
අතිශයෝක්තියක් නොවේ. මෙම බලවත් බිට් අටක් සහිත මයික්රෝ කන්ට්රෝලරය
පැමිණීමත් ඒ හා පැමිණි බලවත් නමුත් පාවිච්චියට පහසු මෘදුකාංගත් අඩු මිලට තනා ගතහැකි සරල ප්රෝග්රෑමර් සහ ෆ්ලෑෂ් පවුලේ ඇති නැවත නැවත ප්රෝග්රෑම්
කිරීමේ පහසුවත් හේතුවෙන් කෙනෙකුට ඉතා අඩු කාලයකින් හා වියදමකින් තමාගේ නිර්මාණය පික් මයික්රෝ කන්ට්රෝලර
ආශ්රිතව කරගත හැක.
මුල භාගයේ මයික්රෝ චිප් සමාගම
එළිදැක්වූ මුල්ම පික් කන්ට්රෝලර වලින් බලාපොරොත්තු වූයේ යම් යම් යන්ත්ර සූත්රවල පාලන කොටස්
හා පද්ධති ස්වයංක්රීයකරණයයි. පික් (PERIPHERAL INTERFACE CONTROLLER) යන වදනම එයට සාකෂි
සපයයි. නමුත් අද වන විට විශාල පරාසයක පැතිර තිබෙන පික් පවුලේ සාමාජිකයෝ පද්ධති
පාලනයට අමතර DIGITAL SIGNAL PROCESSING , RF CONTROLLING, INTELLIGENT
POWER CONTROLLING, A TO D CONVERSIONG ) වැනි විශාල පරාසයක පැතිර තිබේ. එම නිසා අපගේ
කාර්ය භාරයට වඩාත් උචිත පාලකය අපට පහසුවෙන් තෝරාගත හැක. තවද දෘඩාංගවලට අමතරව මයික්රෝ
චිප් සමාගම හා ඒ හා සමගාමීව තුන් වැනි
පාර්ශවීය සමාගම් ද පික් මයික්රෝ කන්ට්රෝලර සඳහා සංවර්ධන මෘදුකාංග නිපැයීමේ
නියැලී සිටී. මෙම නිසා අපට තේරිමක් සහිතව හොඳම සංවර්ධන මෘදුකාංග ද ඉතා අඩු මිලට
(හෝ නොමිලේම) ලබා ගැනීමේ හැකියාව පවතී.
මයික්රෝ කන්ට්රෝලරයේ ක්රියාකාරීත්වය මතකය (MEMORY) හා ඒ හා ආශ්රිත රෙජිස්ටර් පදනම්
කොට ගෙන සිදුවේ. මයික්රෝ කන්ට්රෝලරයක අභ්යන්තර සැකැස්ම පහත පරිදි වේ.
මයික්රෝ කන්ට්රෝලරයට විදුලිය සැපයූ විට එය තමාට සපයා ඇති ක්රම ලේඛනය
පරීකෂා කොට එයට සපයා ඇති දත්ත වලට අනුකූලව පියවරෙන් පියවර තම කාර්යභාරය ඉටු කරයි.
ප්රදාන (INPUT) පරීක්ෂාව , ක්රම ලේඛනයේ ඇති හෝ බාහිරින් ඇතුල්වන දත්ත යම් යම් තාර්කික තත්ව හා ගණිත
කර්ම වලට භාජනය කිරීම හා එයට අනුකූලව ප්රතිදාන ඇති කිරිම ද මෙම කාර්යභාරයට ඇතුළත්
වේ. මෙම කාර්යභාරය කාර්යක්ෂම ඉටු කිරිම
සඳහා මයික්රෝ කන්ට්රෝලරයේ මෙමරිය ප්රධාන කොටස් දෙකකට කට බෙදා ඇත.
ප්රෝග්රෑම් මෙමරි
ඩේටා මෙමරි
ප්රෝග්රෑම් මෙමරි
(PROGRAM
MEMORY)
මයික්රෝ කන්ට්රෝලරයේ ක්රියාත්මක වන ක්රමලේඛනය (අපි විසින් ප්රෝග්රෑම් කරන) රඳවා ගැනීම සඳහා භාවිතා කරන ස්ථිර ( NON VOLATILE MEMORY) මෙනමින්
හැඳින්වේ. උපකරණයේ මෙය ෆ්ලෑෂ් වර්ගයේ ඊප්රොම් එකක් වන අතර කිලෝබ්යිට් එකක ධාරිතාවකින් සමන්විතය.
ඩේටා මෙමරි (DATA MEMORY)
ඩේටා මෙමරිය ද නැවත කොටස් දෙකකට බෙදා දැක්විය හැක. එනම් එස්.එෆ් ආර් (ස්පෙෂල්ෆන්ෂන්රෙජිස්ටර්ස්)
සහජී.පී.ආර් (ජෙනරල් පර්පස් රෙජිස්ටර්ස්) යනුවෙනි.මෙහි එස්.එෆ්.ආර් යනුවෙන් හඳුන්වන්නේ මයික්රෝකන්ට්රෝල
එකේ රැම් සඳහා භාවිතා කර ඇති මතක ප්රමාණයයි. මෙහි රැම් එක 0C සිට 4F දක්වා පරාසයක පවතී.මෙම මතකය ක්රම ලේඛනය ක්රියාත්මක වන අතරතුර ඇති වන
විචල්යයන් රඳවා තැබීම සඳහා භාවිතා කරන තාවකාලික මතකයකි.
ජී පී ආර් යටතට ගැනෙන්නේ
මයික්රෝ කන්ට්රෝල එකේ ක්රියාකාරීත්වය සඳහා පෙලගස්වා ඇති ( PORTA
,TRISA, TIMER 0) වැනි විවිධ රෙජිස්ටරයන්ය. මේ එක එක ගැන සවිස්තරව මීළඟ පරිච්ඡේදයෙන් දැනගත
හැක.
දත්ත හැසිරවීමේ පහසුව සඳහා මුළු මෙමරියම බෑන්ක් දෙකකට බෙදා තිබේ. ඔබ විවිධ
රෙජිස්ටර වලින් කියවන හා ඒවාට ලියන විට නියමිත බෑන්ක් එක තෝරා ඇති බවට වගබලා ගත
යුතුය.
PIC 16F84A විශේෂාංග
PIC16F84A මයික්රෝ චිප් සමාගම විසින් ඔවුන්ගේ පැරණි PIC16C84
OTP මයික්රෝ කන්ට්රෝලය වෙනුවට ඉදිරිපත් කරන ලද ෆ්ලෑෂ් තාක්ෂණයෙන් යුත්
මයික්රෝ කන්ට්රෝලරයකි. මෙහි පහත විශේෂාංග දැක්වේ.
1- විධාන තිස් පහක් (35) ක් පමණි.
2- බ්රාන්චින්ග් ඉන්ස්ට්රක්ෂන්ස් හැරුණු කොට අනෙක් සියලූම ඉන්ස්ට්රක්ෂන්එක වක්රයකින් ඉටු කරයි.
3- මෙගාහර්ට්ස්
විස්සක් දක්වා ක්රියාකළ හැකි ඝටිකාව (CLOCK)
4 - වචන එක්දහස් විසි හතරක (1KB) ප්රෝග්රෑම්
මෙමරිය
5 - බයිට් හැට අටක රෑම් එක
6 - බිට් දහ හතරක් පළල විධාන වචනය (COMMAND WORD)
7- බිට් අටක් පළල දත්ත වචනය (DATA WORD )
8 - පියවර අටේ දෘඩාංග ස්ටැක් රෙජිස්ටරය (EIGHT LEVEL HARDWARE STACK)
9 - අග්ර දහ තුනක් ප්රදාන / ප්රතිදාන සඳහා වෙන්කොට ඇත.
10- සෑම අග්රයටම මිලි ඇම්පියර් විසි පහක ධාරාවක් දැරිය හැකි නිසා එල් ඊ ඩී සෘජුවම චිප් එකට
සවිකළ හැක.
11- බිට් අටක දෘඩාංග ටයිමර් දෙකක් (TIMER0 සහ WATCH DOG TIMER&
12 - දස දහස් වරක් නැවත ලිවිය
හැකි ප්රෝග්රෑමය මෙමරිය
13 - දස ලක්ෂ වරක් නැවත
ලිවිය හැකි ඊප්රොම් එක
14 - දෝලක වර්ග තුනක් තෝරා ගත හැක.
රෙජිස්ටරය
මයික්රෝ කන්ට්රෝලරයේ ක්රියාකාරීත්වයට සහය
වන මූලික තැනුම් ඒකකය වන මෙය ෆ්ලිප්
ෆ්ලොප් අටක් එකතු වීමෙන් සෑදී ඇත.
ඩබ්ලිව් රෙජිස්ටරය (W REGISTER)
වර්කින්
රෙජිස්ටරය නමින්ද හැඳින්වේ. PIC 16F කාණ්ඩයේ මයික්රෝ කන්ට්රෝල වල රෙජිස්ටර් අතර සෘජුව දත්ත හුවමාරු කල නොහැකි
නිසා දත්ත හුවමාරුව අතරමැදි රෙජිස්ටරය වශයෙන් වර්කින් රෙජිස්ටරය භාවිතා වේ.
ඒ.එල්.යූ
රෙජිස්ටරය (ARITHMETIC AND LOGICAL UNIT)
මයික්රෝ කන්ට්රෝලරය තුල ගණිත කර්ම සිදුකිරිම සඳහා දායක වන්නේ මෙම රෙජිස්ටරයයි. මෙයට එකතු කිරිම, අඩු කිරීම, ඛෙදීම, වැඩි කිරිම යන මූලික ගණිත කර්ම හැරුණු කොට ඇන්ඩ් ,ඕර් , නොට් ( AND ,OR ,NOT ) යනාදී බූලියන් ගණිත කර්ම ද බිට් ශිෆ්ටින්ග් , බිට් රෝටේටින්ග් ආදී බිට් ආශ්රිත ක්රියාකාරකම් ද සිදු කළ හැක.
නමුත් 16F84A වැනි මධ්යම පවුලේ මයික්රෝ කන්ට්රෝලර වල දී
මෙම ගණිත කර්ම බොහොමයක් මෘදුකාංග ආශ්රිතව කෙරෙන නිසා ඒ සඳහා සැලකිය යුතු කාලයක්
ගත වේ. තවද මේ සඳහා සංකීර්ණ මෘදුකාංග උපක්රම හා උගුල් භාවිතා කල යුතුය. නමුත් 18FXXX යන උසස් පවූල් වල මයික්රෝ එක තුල ද්රෘඩාංග ආශ්රිත ගුණක HARDWARE MULTIPLIERS ඇති නිසා ඉතා ඉක්මනින් හා අඩු මෘදුකාංග උදව් වලින් ගණනය කර හැක.
මයික්රෝ කන්ට්රෝලර එකේ ක්රියා කාරී ක්රම ලේඛණය ෆ්ලෑශ් මතකය තුල ඇත්තේ
පේලි වශයෙනි. සෑම පේලිමකටම ඇඩ්රස් එකක් ඇත. මෙම පේලි කැදවීම සඳහා මෙම ඇඩ්රස් එක රඳවාගෙන සිටින රෙජිස්ටරය ප්රෝග්රෑම්
කවුන්ටරය නම් වේ. මෙය ප්රෝග්රෑම් එක ආරම්භයේදී හෝ රී සෙට් එකේදී බින්දුවේ අගය ගනී. ඉන් පසු ගඨීකා ස්පන්දයක් සමග ප්රෝග්රෑම්
කවුන්ටර් එකේ අගය එකකින් වැඩි වේ. ඉන් පසු ක්රියා කාරී වන්නේ මෙම පළමු පේලියේ ඇති වීධානයයි. මෙලෙස ගඨීකා ස්පන්දනයෙන් ස්පන්දයට
ප්රෝග්රෑම් කවුන්ටරය එකේ අගය එකින් එක වැඩිවෙමින් විධාන ක්රියාවේ යොදවයි. මෙම
පිලිවෙල කෝල්, ගෝ ටු ආදී පැන්නුම් විධාන සඳහා
පමනක් වෙනස් වේ.
ස්ටැක් පොයින්ටරය
මයික්රෝ කන්ට්රෝලර් එක ක්රියාකාරී වන අතර කෝල් කරන සබ් රුටීන් වල රිටන් ඇඩ්රස් එක රඳවා ගන්නා රෙජිස්ටරය මෙනමින් හැදින්වේ. 16F84A මයික්රෝ කන්ට්රෝලරය තුල ඇත්තේ අදියර අටක් සහිත ස්ටැක් පොයින්ටරය එකකි.
16F84A තුල ඇති බිට් අටක් සහිත ටයිමර් දෙකෙන් එකක් වන මෙය බාහිර ඝඨිකා
ස්පන්දනයකින් හෝ පද්ධති දෝලකයෙන් ක්රියා කරවිය හැක. මෙම ටයිමරය ද්රෘඩාංග ටයිමර්
එකක් නිසා මෘදුකාංග වලින් ස්වායර්ථව දිවීමට හැකිවීම ද අමතර වාසියකි. එම නිසා ක්රමලේකනය
ක්රියාත්මක වන අතරතුරේම මෙම ටයිමරයද
දිවවිය හැක.
වොච් ඩෝග් ටයිමරය
මෙය පද්ධති ඝඨිකාවෙන් ස්වායාර්ථව දිවෙන බිට් අටේ ටයිමරයකි. මෙයට ඝඨිකා
ස්පන්දය ලබාදීම සදහා මෙය තුල පිහිටවූ ආර්-සී ජාලයක් ඇත.
මෙම ටයිමරය 00000000 පටන් ගෙන 11111111 වී නැවත 00000000 වන විට රී සෙට් එකක් ඇති වේ.
මෙමගින් මයික්රෝ කන්ට්රෝලර එක යම් ඛෙත පේලියක හිර වීමේ අවදානමෙන් මුදවාගත හැක. මෙම ටයිමර් දෙකටම
පොදුවූ ප්රී ස්කේලර් නම් ක්රමලේඛන කල
හැකි ගණිනය මගින් මෙම ටයිමර වල ප්රදාන සංඛ්යාතය ඛෙදීමට ලක් කරයි.මෙම ඛෙදීම දෙකෙන්
, හතරෙන්, අටෙන් ,දහසයෙන් ,තිස්දෙකෙන් ,හැට හතරෙන්,එකසිය විසි අටෙන් සහ දෙසිය පනස්
හයෙන් වන පරිදි සීරුමාරු කර හැක. (මෙය ඔප්ෂන් රෙජිස්ට රයේ PS0,PS1,PS2 යන බිට් මගින් කල හැක )
PS2 |
PS1 |
PS0 |
TMR0 |
WDT |
0 |
0 |
0 |
1:2 |
1:1 |
0 |
0 |
1 |
1:4 |
1:2 |
0 |
1 |
0 |
1:8 |
1:4 |
0 |
1 |
1 |
1:16 |
1:8 |
1 |
0 |
1 |
1:64 |
1:32 |
1 |
1 |
0 |
1:128 |
1:64 |
1 |
1 |
1 |
1:256 |
1:128 |
ඔප්ෂන් රෙජිස්ටරය බිටු හදුන්වා දීම
බිටු අංක හත
- සක්රීය කිරීම මගින් පොර්ට්බී හා සම්භන්ධ දුර්වල ප්රතිරෝධක සක්රීය වේ
- පොර්ට්බී හා සම්භන්ධ දුර්වල ප්රතිරෝධක අක්රීය වේ
බිටු අංක හය පොර්ට් බී, 0 අතුරු බිඳුම සඳහා ස්පන්දධ තුඩුව තෝරා දෙයි
1 - නගින තුඩුව
0 - බසින තුඩුව
1 - බාහිර දෝලකය (පොර්ට් ඒ , 4)
0 - අභන්තර දෝලකය
part two has been published. check it out. all code files are at github https://github.com/mikrohouse/asm-tutorials |
Superb explanation ..thank you
ReplyDeleteyou welcome. stay tuned for more
Delete