ელექტრონიკის საფუძვლები და მიკროპროცესორული ტექნოლოგიის პროგრამირება. მიკროპროცესორული ტექნოლოგია. მიკროპროცესორები და მიკროპროცესორული კომპლექტები. მონაცემთა გადაცემის ბრძანებები

მიკროპროცესორული ტექნოლოგიის საფუძვლები

Ლექციის ჩანაწერები

მოსკოვი 2013 წ

მიკროპროცესორების და მიკროპროცესორული სისტემების ორგანიზაცია

K580 სერიის მიკროპროცესორების კომპლექტზე დაფუძნებული მიკროპროცესორული სისტემები

მიკროპროცესორის ნაკრების შემადგენლობა

MPK K580 სერია შეიცავს LSI-ების კომპლექტს დაბალი სიჩქარით მიკროპროცესორული სისტემების შესაქმნელად, რომლებიც მუშაობენ 2,5 MHz-მდე საათის სიხშირეზე. ამ MPC-ის გამოყენებით აგებულია მიკროპროცესორული სისტემები (MPS), რომლებიც წყვეტენ სხვადასხვა ტექნოლოგიური პროცესის მართვის პრობლემებს.

კომპლექტს აქვს შემდეგი მახასიათებლები. იგი ითვალისწინებს ცენტრალური პროცესორის LSI-ს, რომელიც შეიცავს ოპერაციულ და საკონტროლო მოწყობილობებს ერთ ჩიპში, რაც მნიშვნელოვნად ამარტივებს მიკროპროცესორული სისტემის მშენებლობას. გარდა ამისა, პროგრამირების გასაადვილებლად, მიკროპროცესორული მიკროსქემების მართვისას გამოიყენება ბრძანებების ფიქსირებული ნაკრები, რაც იწვევს მიკროპროცესორული სისტემის სიჩქარის შემცირებას. ეს გამოწვეულია იმით, რომ შემოთავაზებული ბრძანებების ნაკრები შეიძლება არ იყოს საკმარისი კონკრეტული პრობლემის გადასაჭრელად.

რიგი მიკროსქემები, რომლებიც MPC-ის ნაწილია, დამზადებულია n-MOS ტექნოლოგიის გამოყენებით, სხვები - TTLSH ტექნოლოგიის გამოყენებით. თუმცა, წარმოების ტექნოლოგიის მიუხედავად, K580 სერიის ჩიპების ყველა შემავალი და გამომავალი სიგნალი შეესაბამება TTL - ტექნოლოგიის ლოგიკური წრედის დონეებს, რაც ამარტივებს კოორდინაციას TTL - ტექნოლოგიის ნებისმიერი სერიის ჩიპებთან.

ყველა MPC მიკროსქემას შეუძლია იმუშაოს ტემპერატურის დიაპაზონში -10° С-დან + 70° С-მდე. +12 ვ, დანარჩენი მიკროსქემები იგივე წყაროა: +5 ვ.

ცხრილი 2.1 გვიჩვენებს K580 სერიის მიკროპროცესორის ნაკრების შემადგენლობას.

ცხრილი 2.1 მიკროპროცესორის ნაკრების შემადგენლობა

ჩიპის აღნიშვნა მიზანი შესრულებადი ფუნქცია
K580VM80A პარალელური პროცესორი ცენტრალური დამუშავების განყოფილება ფიქსირებული ინსტრუქციების ნაკრებით პარალელური 8-ბიტიანი ინფორმაციის დასამუშავებლად
K580VV51A უნივერსალური სინქრონული/ასინქრონული გადამცემი 8-ბიტიანი უნივერსალური სინქრონული/ასინქრონული სერიული საკომუნიკაციო გადამცემი
K580VI53 8 ან 16 ბიტიანი ტაიმერი წარმოქმნის პროგრამული უზრუნველყოფის მიერ კონტროლირებად დროის შეფერხებებს მართული ობიექტების რეალურ დროში სინქრონიზაციისთვის
K580VV55A 8-ბიტიანი პარალელური პორტი პროგრამირებადი შეყვანა-გამომავალი პარალელური ინფორმაცია
K580VT57 8 ან 16 ბიტიანი DMA კონტროლერი მაღალი სიჩქარით ინფორმაციის გაცვლა MPS მეხსიერებასა და პერიფერიულ მოწყობილობებს შორის
K580VN59 შეფერხების კონტროლერი ემსახურება რვამდე შეწყვეტის მოთხოვნას გარე მოწყობილობებიდან
K580BB79 8-ბიტიანი კლავიატურა და ეკრანის ინტერფეისი I/O კონტროლერი კლავიატურისა და ეკრანისთვის
K580VG75 8 ან 16-ბიტიანი CRT ​​ინტერფეისი კონტროლერი MPS მეხსიერებიდან ინფორმაციის ჩვენებისთვის კათოდური სხივის მილის ეკრანზე
K580VK91A არხის ინტერფეისი მიკროპროცესორის საინფორმაციო-საზომი სისტემასთან დამაკავშირებელი მოწყობილობა
K580VA93 არხის გადამცემი გადამცემი მიკროპროცესორი - საჯარო არხი
K580GF24 საათის გენერატორი წარმოქმნის საათის იმპულსების ორ თანმიმდევრობას, რომლებიც აუცილებელია ცენტრალური გადამამუშავებელი განყოფილების მუშაობისთვის
K580VK28 K580VK38 სისტემის კონტროლერი და ავტობუსის მძღოლი წარმოქმნის საკონტროლო სიგნალებს MPS-ში შემავალი სხვადასხვა მოწყობილობებისთვის
K580IR82 K580IR83 ბუფერული რეგისტრი 8-ბიტიანი სამ-სახელმწიფო ბუფერული რეგისტრი
K580VA86 K580VA87 ავტობუსის შემქმნელი ორმხრივი 8-ბიტიანი მაღალი ტევადობის სამ-სახელმწიფო ავტობუსის მძღოლი

რეგისტრაცია ბლოკი

K580 მიკროპროცესორი შეიცავს პროგრამულ ხელმისაწვდომ 8-ბიტიან რეგისტრებს ძირითადი მიზანი(RON) და 16-ბიტიანი სპეციალიზებული რეგისტრები: პროგრამის მრიცხველი და სტეკის მაჩვენებლის რეგისტრი. გარდა ამისა, არსებობს რეგისტრები, რომლებიც პირდაპირ მიუწვდომელია პროგრამისთვის: 8-ბიტიანი დროებითი შენახვის რეგისტრები W, Z და 16-ბიტიანი მისამართის რეგისტრი.

ზოგადი დანიშნულების რეგისტრები B, C, D, E, H, L გამოიყენება ოპერანდების, შუალედური და საბოლოო შედეგების შესანახად, აგრეთვე მისამართებისა და ინდექსების არაპირდაპირი და ინდექსური მისამართის შესანახად. ორმაგი სიგრძის სიტყვებით და ორმაგი ბაიტიანი მისამართების ფორმირებისა და გადაცემის ოპერაციების შესასრულებლად შესაძლებელია BC, DE, HL რეგისტრების წყვილის შინაარსით მუშაობა.

დეპუტატის რეგისტრის ბლოკის მახასიათებელია მის შემადგენლობაში ყოფნა ინკრემენტის/შემცირების სქემები(INC/DEC), რომელიც აწარმოებს ზედმეტ კონტენტს პროგრამის მრიცხველი(კომპიუტერი) და სტეკის მაჩვენებლის რეგისტრაცია(SP) 1 ოპერაციის დამატება/გამოკლება ALU ჩართვის გარეშე.

ბრძანების მრიცხველი(16-ბიტიანი რეგისტრი) შექმნილია ბრძანების მისამართის შესანახად; სინჯის აღების შემდეგ შემთხვევითი წვდომის მეხსიერებამიმდინარე ბრძანების, მრიცხველის შიგთავსი იზრდება ერთით და ამით ყალიბდება შემდეგი ბრძანების მისამართი (უპირობო და პირობითი ნახტომების არარსებობის შემთხვევაში).

დასტის მაჩვენებელი(16-ბიტიანი რეგისტრი) გამოიყენება სტეკის მეხსიერების მისამართით. MP K580 იყენებს "ინვერსიულ" დასტას, ე.ი. როდესაც სიტყვა გადადის სტეკზე, სტეკის მაჩვენებლის მნიშვნელობა (დასტის ზედა ნაწილის მისამართი) მცირდება, ხოლო როდესაც სიტყვა ამოდის დასტადან, ის იზრდება.

სტეკის მისამართირება ფართოდ გამოიყენება ქვეპროგრამებში და შეწყვეტის რუტინებში.

ზოგიერთი ოპერანდისა და ოპერაციების შედეგების მოკლევადიანი შენახვისთვის გამოიყენება რეგისტრები. მონაცემთა დროებითი შენახვა W, Z. დროებითი შენახვის რეგისტრების გამოყენება საშუალებას აძლევს MP-ს განახორციელოს, მაგალითად, ისეთი ოპერაცია, როგორიცაა ორი რეგისტრის შინაარსის გაცვლა ინსტრუქციის შესრულების ერთ ციკლში.

რეესტრის ბლოკი მოიცავს რეესტრს მეხსიერების მისამართები(RA), შექმნილია მეხსიერების უჯრედის მისამართის შესანახად, რომელშიც ჩაწერილია მიმდინარე ბრძანება. მისამართების რეესტრი არ არის ხელმისაწვდომი პროგრამისტისთვის. თუმცა, ნებისმიერი წყვილი რეგისტრი (BC, DE, HL) შეიძლება გამოყენებულ იქნას პროგრამაში ინსტრუქციისა და მონაცემთა მისამართების დასაყენებლად.

ბუფერული სქემები

ორმხრივი მონაცემთა ავტობუსური ბუფერი შექმნილია შიდაპროცესორული მონაცემთა ავტობუსის და გარე, სისტემური მონაცემთა ავტობუსის ლოგიკური და ელექტრული გამოყოფისთვის. ბუფერი შედგება ჩამკეტისა და სამმდგომარეობის გამომავალი სქემისგან, ე.ი. სქემები, რომლებიც უზრუნველყოფენ გამომავალ მდგომარეობებს 0, 1 და დატვირთვისგან სრულ გათიშვას (მაღალი წინაღობის მდგომარეობა).

ინფორმაციის შეყვანის რეჟიმში, მონაცემთა შიდა ავტობუსი დაკავშირებულია ბუფერის საკეტთან, რომელიც იტვირთება გარე ავტობუსიდან ბუფერული სქემით ბრძანების კონტროლის ქვეშ.

ინფორმაციის გამომავალი რეჟიმში, ბუფერული წრე გადასცემს ბუფერული ჩამკეტის რეგისტრის შიგთავსს მონაცემთა ავტობუსში, რომლის შეყვანა იტვირთება ერთ-ერთი რეგისტრიდან შიდა ავტობუსის მეშვეობით გამოსასვლელი ინფორმაციით.

დეპუტატში ოპერაციების შესრულების დროს, რომელიც არ არის დაკავშირებული გაცვლის პროცედურებთან გარე მოწყობილობებიბუფერული წრე გათიშულია მონაცემთა ავტობუსიდან.

MP-ში ოპერაციების შესრულებისას, რომლებიც არ არის დაკავშირებული სისტემის გარე მოწყობილობებთან MP-თან მიმართებაში გაცვლის პროცედურებთან, ბუფერული წრე გამორთულია მონაცემთა ავტობუსიდან, ე.ი. გადადის მაღალი წინაღობის მდგომარეობაში (არა ნული, არა ერთი).

მისამართების ავტობუსის ბუფერული წრე არის ცალმხრივი და უზრუნველყოფს ბრძანებისა და მონაცემთა მისამართების, ასევე პერიფერიული მოწყობილობების რაოდენობის გადაცემას MP-დან სისტემაში. მისამართის ბუფერის გამომავალი, ისევე როგორც მონაცემთა ბუფერი, შეიძლება გადავიდეს გათიშულ მდგომარეობაში.

საკონტროლო მოწყობილობა

საკონტროლო ბლოკიმოიცავს:

8-ბიტიანი ბრძანების რეგისტრი (RK) ოპერაციული კოდის მისაღებად და შესანახად;

საკონტროლო და სინქრონიზაციის განყოფილება (CU), რომელიც წარმოქმნის საკონტროლო სიგნალებს MP-ის ყველა შიდა რეგისტრსა და ბლოკზე, ასევე მის გამომავალ საკონტროლო სიგნალებზე;

საკონტროლო მეხსიერება, შესრულებული პროგრამირებადი ლოგიკური მატრიცაზე, რომელშიც ინახება ცალკეული ოპერაციების მიკროპროგრამები. მომხმარებელს არ შეუძლია შეცვალოს საკონტროლო მეხსიერების შინაარსი და, შესაბამისად, ბრძანებების შემადგენლობა.

მონაცემთა გადაცემის ბრძანებები

მონაცემთა გადაცემის ბრძანებები ითვალისწინებს მონაცემთა განთავსების, გაცვლის, ჩატვირთვისა და გადაადგილების ოპერაციებს. ყველა მიკროპროცესორულ ინსტრუქციას შორის ეს ინსტრუქციები ყველაზე ხშირად გამოიყენება. მდგომარეობის ნიშნები არ არის მითითებული ამ ჯგუფის ბრძანებებით. ცხრილი 2.5 აჩვენებს მონაცემთა გადაცემის ბრძანებებს.

ცხრილი 2.5 მონაცემთა გადაცემის ბრძანებები

ბრძანება mnemonic ოპერაციული კოდი ბაიტების რაოდენობა ბრძანებაში მოქმედებები
MOV-R1, R2 01DDDSSS 1 1 (R1) (R2)
MOV R, M 01DDD110 1 2 (R)M(HL)
MOV M, R 01110SSS 1 2 M(HL) (R)
MVI R მონაცემები 00DDD110 2 2 (R) (ბაიტი 2)
MVI M მონაცემები 00110110 2 3 M(HL) (ბაიტი 2)
LXI RP მონაცემები 00RP0001 2 3 (RH) (ბაიტი 3); (RL) (ბაიტი 2).
LDA მისამართი 00111010 3 4 (A) ((ბაიტი 3) (ბაიტი 2))
LHLD მისამართი 00101010 3 5 L ((ბაიტი 3) (ბაიტი2)); H ((ბაიტი3)(ბაიტი2)+1).
LDAXRP 00RP1010 1 2 (ᲕᲐᲠ)
XCHG 11101011 1 1 (H) "(D); (L) "(E)
STA მისამართი 00110010 3 4 ((ბაიტი 3) (ბაიტი 2)) (A)
SHLD მისამართი 00110010 3 5 ((ბაიტი3)(ბაიტი2)) (ლ); ((ბაიტი3)(ბაიტი2)+1) (H)
STAXRP 00RP0010 1 2 M(RP) (A)

გადაცემის ბრძანება რეესტრის მისამართით MOV A, D)გადასცემს D რეგისტრის შიგთავსს აკუმულატორს. ბრძანება პირდაპირი მისამართით MVI D, 4E 16გადასცემს ბრძანების მეორე ბაიტში მოცემულ რიცხვს (მაგალითად, რიცხვი 4E 16) D რეგისტრაციაში, რომლის მისამართი მითითებულია ბრძანების პირველი ბაიტის 5 ... 3 ბიტებში. ბრძანება პირდაპირი მისამართით LDA 0200 16გადასცემს მეხსიერების უჯრედის შიგთავსს, რომლის მისამართი მითითებულია ბრძანების მეორე და მესამე ბაიტში (0200 16) აკუმულატორში. გუნდი LDAX ძვ.წაკუმულატორში იტვირთება RAM უჯრედის შიგთავსი, რომლის მისამართია BC რეგისტრის წყვილის შინაარსი.

გუნდები ლოგიკური ოპერაციები

ამ ბრძანებების ამოცანაა შეასრულოს ლოგიკური ოპერაციები AND, OR, EXCLUSIVE OR, შედარება, shift და invert. ეს ინსტრუქციები ასრულებს ლოგიკურ ოპერაციებს მეხსიერებაში არსებულ მონაცემებზე ან რეგისტრებზე და ფუნქციებზე. ცხრილში 2.7 ჩამოთვლილია ლოგიკური ოპერაციის ბრძანებები.

ცხრილი 2.7 ლოგიკური ბრძანებები

ბრძანება mnemonic ოპერაციული კოდი ბაიტების რაოდენობა ბრძანებაში ბრძანების შესრულების დრო, ციკლები მოქმედებები
ANA რ 10100SSS 1 1 (A) (A)u(R). დაყენებულია დროშები - Z, S, P, AC.
ANA მ 10100110 1 2 (A) (A)ÙM(HL). დაყენებულია დროშები - Z, S, P, AC.
ANI მონაცემები 10101 სსს 2 2 (A) (A)Ù (ბაიტი 2). დაყენებულია დროშები - Z, S, P, AC.
XRA R 10101 სსს 1 1 (A) (A)Å(R). დაყენებულია დროშები - Z, S, P.
XRA M 10101110 1 2 (A) (A)ÅM (HL). დაყენებულია დროშები - Z, S, P.
XRI მონაცემები 11101110 2 2 (A) (A)Å (ბაიტი 2). დაყენებულია დროშები - Z, S, P.
ORA R 10110SS 1 1 (A) (A)Ú(R). დაყენებულია დროშები - Z, S, P.
ORA M 10110110 1 2 (A) (A)ÚM(HL). დაყენებულია დროშები - Z, S, P.
ORI მონაცემები 11110110 2 2 (A) (A)Ú (ბაიტი 2). დაყენებულია დროშები - Z, S, P.
CMP რ 10111 სსს 1 1 (A)-(R). დროშები – Z=1 თუ (A)=(R), C=1 თუ (A)<(R).
CMP მ 10111110 1 2 (A)-M (HL). დროშები – Z=1 თუ (A)=(M), C=1 თუ (A)<(M).
CPI მონაცემები 11111110 2 2 (A) - (ბაიტი 2). დროშები – Z=1 თუ (A)=(ბაიტი2), C=1 თუ (A)<(байт2).
RLC 00000111 1 1 გადაინაცვლეთ მარცხნივ (A) (2A). C დროშა დაყენებულია.
RRC 00001111 1 1 მარჯვნივ გადაწევა. (A) (A/2). C დროშა დაყენებულია.
RAL 00010111 1 1 ციკლური ცვლა მარცხნივ. C დროშა დაყენებულია.
RAR 00011111 1 1 ციკლური ცვლა მარჯვნივ. C დროშა დაყენებულია.
CMA 00101111 1 1
CMC 00111111 1 1
STC 00110111 1 1 (C) 1.

პროგრამირების ხრიკები

MP-ის დასაპროგრამებლად საჭიროა იცოდეთ ბრძანებების შემადგენლობა, გაეცნოთ რეგისტრების დანიშნულებასა და მდებარეობას, ე.ი. იცის მიკროპროცესორის არქიტექტურა.

პროგრამის შედგენის ეტაპები უნდა შესრულდეს შემდეგი თანმიმდევრობით:

1. პრობლემის განმარტება და ანალიზი;

2. ამოხსნის ალგორითმის ბლოკ-სქემის შედგენა ზოგადი ფორმით და მანქანის ალგორითმი;

3. პროგრამის დაწერა ასამბლეის ენაზე;

4. პროგრამის თარგმნა მანქანურ კოდებში;

5. პროგრამის გამართვა (შეცდომების ძიება და აღმოფხვრა);

6. პროგრამის დოკუმენტაცია.

მოდით ჩამოვაყალიბოთ ზოგადი მოთხოვნები ასამბლეის ენაზე დაწერილი პროგრამებისთვის.

ზოგადად, ნებისმიერი ასამბლეის ენის ინსტრუქცია იწერება შემდეგნაირად:

ეტიკეტი: ოპერაციის მონაცემები; კომენტარი

ლეიბლიგამოიყენება მეხსიერების მდებარეობის მისამართის მითითებისთვის, სადაც ინსტრუქცია ინახება. ის შეიძლება იყოს ექვს სიმბოლომდე, არ უნდა შეიცავდეს პუნქტუაციას ან შუალედებს და პირველი სიმბოლო უნდა იყოს ასო. ეტიკეტი ყოველთვის განისაზღვრება ორწერტილით და არის ბრძანების არჩევითი ელემენტი. იგი გამოიყენება მხოლოდ საჭიროების შემთხვევაში.

Ოპერაციაარის ბრძანების აუცილებელი ელემენტი. ეს არის მნემონური ჩანაწერი ორიდან ოთხ ასოზე, რომელიც მიუთითებს შესრულებული მოქმედებების ბუნებაზე, მაგალითად:

HLT - გაჩერების ბრძანების მნემონური აღნიშვნა MP K580.

მონაცემები- ბრძანების ნაწილი, რომელიც შეიძლება შეიცავდეს ერთ ან ორ რვა ბიტიან სიტყვას, ბრძანების ტიპის მიხედვით (მეხსიერების უჯრედის მისამართი, I/O პორტის მისამართი, პირდაპირი მონაცემები).

6.3.3. პროგრამირების სასწავლო ამოცანები

დავიწყოთ პროგრამირების სასწავლო ამოცანები პროგრამის დაწერით, რომელიც კითხულობს ღილაკის მდგომარეობას SB1 და აჩვენებს მას LED-ზე VD2 ისე, რომ ღილაკის დაუჭერელი მდგომარეობა (სიგნალის მაღალი დონე შეყვანისას RA4 ) შეესაბამება LED-ის განათებულ მდგომარეობას და პირიქით.

ჩამონათვალი 12.2. (html, txt)

ჩამონათვალი 12.2. (html, txt)

ძირითადი პროგრამა

LOOP

დარეკვა SB1_VD2; ქვერუტინული გამოძახება SB1_VD2

პროცესის გამეორება

GET_RA; წაიკითხეთ სახელმწიფო რუტინა

პორტი ა

SB1_VD2; LED გამომავალი რუტინა

; VD2 მდგომარეობის ღილაკი SB1 (ბიტი 4

;TEMPA რეგისტრი)

GOTO P0 ;გადადით P0-ზე

;TEMPA,4=0 (ღილაკზე დაჭერა)

GOTO P1 ;გადადით P1-ზე

BCF VD2; გამორთეთ LED

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

ჩამონათვალი 12.2.

მთავარი პროგრამა შეიცავს დახურულ ციკლს LOOP GOTO LOOP , აუცილებელია ღილაკის მდგომარეობის კონტროლის ციკლის პერიოდული გამეორებისთვის და ინდიკატორზე გამოსახვისთვის. გუნდი CLRWDT გამორიცხავს შესაძლო გადატვირთვის ზემოქმედებას დამკვირვებლის ტაიმერის გადინებაზე პროგრამის მუშაობაზე. შემდეგი ორი ბრძანება იძახებს ქვეპროგრამებს GET_RA და SB1_VD2. პირველი (GET_RA ) ჯერ კითხულობს პორტის ამჟამინდელ მდგომარეობას, რომელიც მოთავსებულია სამუშაო რეესტრში. ვინაიდან სამუშაო რეესტრი შეიძლება საჭირო გახდეს სხვა ინსტრუქციების შესრულებისას, მისი მდგომარეობა იწერება რეესტრში TEMPA , გამოიყენება აქ პორტის მდგომარეობის დროებით შესანახად. ამრიგად, ქვეპროგრამიდან დაბრუნების შემდეგ GET_RA ბიტი 4 რეგისტრებში TEMPA შეიცავს ინფორმაციას ღილაკის მდგომარეობის შესახებ SB1 : "1" არ არის დაჭერილი, "0" დაჭერილია.

ქვეპროგრამა SB1_VD2 TEMPA და, მასზე დაყრდნობით, ჩართავს ან გამორთავს LED-ს. PIC16F84 MK ბრძანების სისტემაში არ არის პირობითი გადახტომის ბრძანებები, ამიტომ, კონკრეტული მდგომარეობის გადამოწმების ორგანიზებისთვის, გამოიყენება ბრძანებები, რომლებიც საშუალებას გაძლევთ გამოტოვოთ შემდეგი პროგრამის ბრძანების შესრულება, გარკვეული ბიტის მდგომარეობიდან გამომდინარე. მოცემული რეესტრი ( BTFSS და BTFSC ). კერძოდ, გუნდი BTFSS TEMP,4 გამოტოვებს ბრძანების შესრულებასგადადით P0 თუ TEMP,4 = 1 (ღილაკი არ არის დაჭერილი). ამრიგად, ბრძანება BSF VD2 რომელიც ანათებს LED-ს VD2 . შემდეგ ხდება მდგომარეობის ანალიზი TEMP, 4 = 0 (ღილაკი დაჭერილია) და თუ ასეა, შუქნიშანი ირთვება.

შესაძლებელია მოცემული ალგორითმის უფრო მარტივი განხორციელება, ვინაიდან ღილაკის დაჭერილი მდგომარეობა გამორიცხავს დაუჭერელ მდგომარეობას (და პირიქით), მაგრამ წარმოდგენილი ვერსია უფრო აღწერილობითია.

განვიხილოთ პროგრამის უფრო რთული ვერსია, რომელიც ითვალისწინებს LED- ის ანთებას VD2 მხოლოდ გადართვის გადამრთველის და განლაგების ღილაკების შემდეგი მდგომარეობით: SA1 = 1, SA2 = 1, SB1 = 1 და SB2 = 0.

ჩამონათვალი 12.3. (html, txt)

ჩამონათვალი 12.3. (html, txt)

ძირითადი პროგრამა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

დარეკეთ GET_RA; ქვერუტინული ზარი GET_RA

დარეკეთ GET_RB; ქვერუტინული ზარი GET_RB

დარეკეთ ZAG_1110; ქვერუტინული ზარი ZAG_1110

GOTO LOOP ;გადადით LOOP ლეიბლზე

პროცესის გამეორება

GET_RB; წაიკითხეთ მდგომარეობის რუტინა

;პორტი B

MOVF PORTB,W წაიკითხეთ B პორტის სტატუსი W-ში

MOVWF TEMPB ;გადაიტანეთ W TEMPB-ზე

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

ZAG_1110 ;ანთებს VD2 LED-ს მხოლოდ მაშინ, როცა

გადამრთველის შემდეგი მდგომარეობა და

;ღილაკების განლაგება:

;SA1 = SA2 = SB1 = 1 და SB2 = 0

BTFSS TEMPA,2 ;გამოტოვების ბრძანება თუ

GOTO P0 ;TEMPA,2=1

BTFSS TEMPA,3 ;გამოტოვების ბრძანება თუ

GOTO P0 ;TEMPA,3=1

BTFSS TEMPA,4 ;გამოტოვების ბრძანება თუ

GOTO P0 ;TEMPA,4=1

BTFSC TEMPB,0 ;გამოტოვების ბრძანება თუ

GOTO P0 ;TEMPB,0=0

BSF VD2; მსუბუქი VD2 LED

გადადით P1

BCF VD2; გამორთეთ LED VD2

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

შეიტანეთ GET_RA.ASM

ჩამონათვალი 12.3.

ქვეპროგრამები GET_RA და GET_RB მოთავსებულია რეესტრებში TEMPA და TEMPB ამჟამინდელი პორტის ქვეყნები A და B , შესაბამისად. ქვეპროგრამა ZAG_1110 აანალიზებს რეგისტრის 2,3 და 4 ბიტების მდგომარეობას TEMPA და რეგისტრის ბიტი 0 TEMPB და მოწოდებულია TEMPA,2,3,4 = 1,1,1 და TEMPB,0 = 0 , ანათებს LED-ს VD2 . თუ ამ პირობებიდან ერთი მაინც არ არის დაკმაყოფილებული, LED შუქი ჩაქრება.

დირექტივის გამოყენებაშეიტანეთ GET_PORTA.ASM საშუალებას გაძლევთ მიმდინარე პროგრამაში ჩართოთ უკვე გამართული ქვეპროგრამის მოდულები. ამ ფუნქციით სარგებლობისთვის აუცილებელია გამართული მოდულების შენახვა ცალკე ასამბლერის ფაილებად.

ახლა შევეცადოთ გამოვიყენოთ შვიდსეგმენტიანი ინდიკატორი განლაგების გადართვის გადამრთველების მდგომარეობის გასაკონტროლებლად. პირველ რიგში, ჩვენ დავწერთ პროგრამას, რომელიც გამოჩნდება ინდიკატორზე HL ნებისმიერი ბინარული რიცხვის შვიდსეგმენტიანი გამოსახულება 0b-დან 1111b-მდე თექვსმეტობით გამოსახულებაში.

ჩამონათვალი 12.4. (html, txt)

ჩამონათვალი 12.4. (html, txt)

ძირითადი პროგრამა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

MOVLW 0x0A; გადაიტანეთ მუდმივი 0A W-ზე

GOTO LOOP ;გადადით LOOP ლეიბლზე

პროცესის გამეორება

SEV_SEG ;მომსახურების რუტინა

შვიდსეგმენტიანი მაჩვენებელი

ANDLW 0x0F ;ნიღაბი 4 LSB

;W და ნულოვანი 4 უფროსი

ADDWF PCL,F ;დაამატეთ W PCL-ს და გაგზავნეთ

შედეგი PCL

RETLW 0x80; ქვეპროექტის დაბრუნება 80-დან ვტამდე

RETLW 0xF2; ქვეპროგრამის დაბრუნება F2-დან W-მდე

RETLW 0x48; ქვეპროექტის დაბრუნება 48-დან W-მდე

RETLW 0x60; ქვეპროგრამული დაბრუნება 60-დან W-მდე

RETLW 0x32; ქვეპროგრამის დაბრუნება 32-დან ვტამდე

RETLW 0x25; ქვეპროგრამის დაბრუნება 25-დან ვტამდე

RETLW 0x04; ქვეპროგრამული დაბრუნება 04-დან W-მდე

RETLW 0xF0; ქვეპროგრამის დაბრუნება F0-დან W-მდე

RETLW 0x00; ქვეპროგრამული დაბრუნება 00-დან W-მდე

RETLW 0x20; ქვეპროგრამული დაბრუნება 20-დან ვტ-მდე

RETLW 0x10; ქვეპროგრამის დაბრუნება 10-დან ვტამდე

RETLW 0x06; ქვეპროგრამული დაბრუნება 06-დან W-მდე

RETLW 0x8C; ქვეპროგრამის დაბრუნება 8C-დან W-მდე

RETLW 0x42; ქვეპროგრამის დაბრუნება 42-დან W-მდე

RETLW 0x0C; ქვეპროგრამის დაბრუნება 0C-დან W-მდე

RETLW 0x1C; ქვეპროგრამის დაბრუნება 1C-დან W-მდე

ჩამონათვალი 12.4.

პროგრამა იწყებს მუშაობას მუდმივის გაგზავნით 0x0A სამუშაო რეესტრში. შემდეგ გამოიძახება შვიდსეგმენტიანი ინდიკატორის მომსახურების რუტინა SEV_SEG . ქვეპროგრამის მუშაობა SEV_SEG იწყება 4 ყველაზე ნაკლებად მნიშვნელოვანი ციფრის შენიღბვითდა ნულოვანი 4 უფროსი. ამრიგად, სამუშაო რეესტრიდან გადაცემული ზედა ბიტები გამორიცხულია ანალიზიდან.ნომრები. შემდეგ რეესტრის ნიღბიანი შიგთავსიდაემატა პროგრამის მრიცხველის დაბალი ბაიტის მიმდინარე მდგომარეობას PCL , და შედეგი მოთავსებულია PCL . ამრიგად, პროგრამის მრიცხველის დამატებითი ოფსეტი ხდება იმ მნიშვნელობით, რომელიც გადატანილია სამუშაო რეესტრში. მაგალითად, თუ იყო W=0 , მაშინ პროგრამის მრიცხველის შინაარსი არ შეიცვლება და შემდეგი ბრძანება შესრულდება RETLW 0x80 0x80 = B"1000000" W რეგისტრაცია . თუ, როგორც ზემოთ მოცემულ პროგრამაში, W=0A , შემდეგ შინაარსზე PCL ნომერი დაემატება 0x0A , და იქნება დამატებითი ცვლა 10 საფეხურით. შედეგად, ბრძანება შესრულდება RETLW 0x10 , რაც გამოიწვევს ქვეპროგრამის დაბრუნებას ჩანაწერთან ერთად 0x10 = B"0001000" W რეესტრში.

ქვეპროგრამიდან დაბრუნების შემდეგ ხდება ტრანსფერი W-დან PORTB-მდე და მისი სტატუსის ჩვენება შვიდსეგმენტიან ინდიკატორზე HL . კერძოდ, თუ W = 0, შემდეგ B პორტში 1000000b გამოტანისას გამოჩნდება შვიდი სეგმენტის ჩვენება 0 და W = A-სთვის ის აჩვენებს A-ს .ამგვარად, ნებისმიერი 4-ბიტიანი ორობითი რიცხვის ჩვენება შეიძლება.

ქვეპროგრამაში გამოყენებული პროგრამის მრიცხველის პირდაპირი კონტროლის მეთოდი SEV_SEG , შეიძლება გამოყენებულ იქნას რიცხვების ცხრილის კონვერტაციის განსახორციელებლად. თუმცა, გაითვალისწინეთ, რომ ეს მეთოდი არ გაძლევთ საშუალებას გადაიყვანოთ 256-ზე მეტი მნიშვნელობა ერთ ცხრილში. გარდა ამისა, ცხრილის კონვერტაციის პროგრამა მთლიანად უნდა განთავსდეს 256 ბაიტიან ბლოკში, რათა თავიდან იქნას აცილებული პროგრამის მრიცხველის დაბალი ბაიტი.

ქვეპროგრამის გამოყენება SEV_SEG , ჩვენ ახლა დავწერთ პროგრამას, რომელიც კითხულობს გადამრთველის მდგომარეობებს SA1 და SA2 და აჩვენებს შესაბამის რიცხვს ინდიკატორზე.

ჩამონათვალი 12.5. (html, txt)

ჩამონათვალი 12.5. (html, txt)

ძირითადი პროგრამა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

დარეკეთ GET_RA; ქვერუტინული ზარი GET_RA

RRF TEMPA,F ;გადახვიეთ მარჯვნივ ერთი ბიტით

გადაცემის გზით

RRF TEMPA,W ;გადახვიეთ მარჯვნივ ერთი ცოტათი

გადაცემის გზით

ANDLW 0x03 ;ნიღაბი ორი ყველაზე ნაკლებად მნიშვნელოვანი ბიტისთვის

დარეკეთ SEV_SEG; ქვერუტინული ზარი SEVEN_SEG

MOVWF PORTB ; W გადამისამართება PORTB-ში

GOTO LOOP ;გადადით LOOP ლეიბლზე

პროცესის გამეორება

შეიტანეთ GET_RA.ASM

SEV_SEG.ASM-ის ჩათვლით

ჩამონათვალი 12.5.

ქვეპროგრამა GET_RA დებს რეესტრში TEMPA პორტის ამჟამინდელი მდგომარეობა. ამრიგად, რეესტრის მე-2 და მე-3 ბიტებში TEMPA ინახავს გადამრთველის ამჟამინდელ მდგომარეობას SA1 და SA2 . იმისათვის, რომ გადამრთველების სტატუსის ბიტებმა დაიკავონ რეესტრის 0 და 1 პოზიციები TEMPA ტარების საშუალებით კეთდება ორი ცვლა მარჯვნივ, ხოლო მეორე ცვლის შედეგი მოთავსებულია რეესტრში.. შემდეგ ნიღაბი გამოიყენება სამუშაო რეესტრის ორ ყველაზე ნაკლებად მნიშვნელოვან ბიტზე და გამოიძახება ქვეპროგრამა SEV_SEG . ქვეპროგრამიდან გასვლის შემდეგ შედეგი მიეწოდება პორტსდა ნაჩვენებია ინდიკატორზე.

ახლა განვიხილოთ პროგრამები, რომლებიც მუშაობენ რეალურ დროში, ე.ი. გარკვეული ხანგრძლივობისა და გამეორების სიჩქარის სიგნალების გაცემა ან შემავალი სიგნალების დროის პარამეტრების გათვალისწინება. ასეთი პროგრამების მთავარი ელემენტია დროის დაყოვნების გენერირების ქვეპროგრამა. განვიხილოთ ასეთი ქვეპროგრამის ერთ-ერთი შესაძლო ვარიანტი დაგვიანების ფორმირების პროგრამული მეთოდების გამოყენებით, ე.ი. ჩაშენებული ტაიმერის გამოყენების გარეშე.

ჩამონათვალი 12.6. (html, txt)

ჩამონათვალი 12.6. (html, txt)

ძირითადი პროგრამა

MOVLW 0xL; გადაიტანეთ მუდმივი H"L" W-ზე

CALL DELAY; ქვერუტინული ზარის DELAY

დაყოვნება; ფორმირების ქვეპროგრამა

დროის დაყოვნება

LOOP

RETURN; დაბრუნება ქვეპროგრამიდან

ჩამონათვალი 12.6.

მთავარი პროგრამა უწოდებს ქვეპროგრამასდაყოვნება რაღაც მუდმივთან ერთადსამუშაო რეესტრში, რომელიც განსაზღვრავს ქვეპროგრამის შიდა მარყუჟების რაოდენობას. ქვეპროგრამადაყოვნება იწყებს მუშაობას სამუშაო რეესტრის შიგთავსის მომხმარებლის რეესტრში ჩატვირთვით COUNT1 . ბრძანება DECFSZ COUNT1,F ერთით ამცირებს რეესტრის შიგთავსს COUNT1 და ამოწმებს ნულის ტოლია თუ არა. ნულოვანი მდგომარეობის რეგისტრაცია COUNT1 იწვევს მარყუჟის გასვლას და ქვეპროგრამის დაბრუნებას. თითოეული შიდა ციკლის შესრულება მოითხოვს MK-ის სამ მანქანა ციკლს (1 ციკლი ინსტრუქციის შესასრულებლად DECFSZ არანულოვან შედეგზე და 2 მარყუჟზე თითო ბრძანებაზეᲬᲐᲓᲘ ). ქვეპროგრამის გასასვლელიდაყოვნება დასჭირდება 4 ციკლი (2 ციკლი ბრძანების შესასრულებლად DECFSZ ნულოვანი შედეგით და 2 ციკლითᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ ). თუ ამას დავუმატებთ კიდევ 4 ციკლს, რომელიც საჭიროა მუდმივის სამუშაო რეესტრში ჩასატვირთად, გამოიძახეთ ქვეპროგრამა და ჩატვირთეთ მომხმარებლის რეესტრი. COUNT1 , შემდეგ ქვეპროგრამის სრული შესრულების დროდაყოვნება (დაყოვნება) იქნება

TD = 4 + 3 * (L 1) + 4 = 5 + 3 * ლციკლები

სადაც ლ მუდმივი გადავიდა სამუშაო რეესტრიდან ქვეპროგრამაშიდაყოვნება.

L = H"00" = .0 მაქსიმალური გენერირებული დროის ინტერვალი იქნება 1.55 ms. ეს შედეგი განპირობებულია იმით, რომ DECFSZ ჯერ ამცირებს რეესტრის შიგთავსს ( H"00" 1 = H"FF" ), შემდეგ კი აანალიზებს შედეგს.

მინიმალური გენერირებული დროის ინტერვალი იმავე პირობებში იქნება 5 ციკლი ან 10 μs. ასეთი ინტერვალის მისაღებად აუცილებელია ქვეპროგრამის გამოძახებამდედაყოვნება ჩატვირთეთ ნომერი სამუშაო რეესტრში 0x01.

გენერირებული დროის ინტერვალების ზედა ლიმიტის გაფართოების მიზნით, ასევე ქვეპროგრამასთან მუშაობის მოხერხებულობის გასაუმჯობესებლად, შეგიძლიათ დაამატოთ ციკლი LOOP ერთი ან მეტი დამატებითი ბრძანება, რომელიც ყველაზე ხშირად გამოიყენება როგორც ბრძანება NOP . მაგალითად, განიხილეთ დროის დაყოვნების გენერირების ქვეპროგრამა DELAY_C

ჩამონათვალი 12.7. (html, txt)

ჩამონათვალი 12.7. (html, txt)

DELAY_C ;ფორმირების ქვეპროგრამა

;დროის დაყოვნება (ვარიანტი C)

LOOP

NOP; ცარიელი ბრძანება

GOTO LOOPD ;გაიმეორეთ ციკლი H"L" ჯერ

RETURN; დაბრუნება ქვეპროგრამიდან

ჩამონათვალი 12.7.

ქვეპროგრამის სრული შესრულების დრო DELAY_C მისი მოწოდების ჩათვლით, იქნება

TD = 4 + 4 * (L 1) + 4 = 4 + 4 * Lციკლები.

საათის სიხშირით fosc = 2 MHz და მუდმივი დატვირთვით L = H'F9' = .249 გენერირებული დროის ინტერვალი იქნება ზუსტად 2 ms. მუდმივის ერთით შემცირება ამცირებს გამომუშავებულ დროის ინტერვალს 8 μs-ით. კერძოდ, როცა L=.124 არის შეფერხება 1 ms.

წილადებისა და წამების ერთეულების დიაპაზონში დიდი დროის შეფერხებების ფორმირებისთვის, ეს მიდგომა მოუხერხებელია. ამ შემთხვევაში გამოიყენება წყობილი მარყუჟები, როგორც ეს ნაჩვენებია შემდეგ მაგალითში.

ჩამონათვალი 12.8. (html, txt)

ჩამონათვალი 12.8. (html, txt)

ძირითადი პროგრამა

MOVLW 0xL ;გადაიტანეთ მუდმივი H'L' W-ზე

CALL DELAY_D; ქვერუტინული ზარი DELAY_D

DELAY_D ;ფორმირების ქვეპროგრამა

დიდი ხნის დაგვიანებით (ვარიანტი D)

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

RETURN; დაბრუნება ქვეპროგრამიდან

ჩამონათვალი 12.8.

DELAY_D არის 3*256 + 4

TD = 5 + (3*256 + 4)*L ციკლი.

Fosc = 2 MHz საათის სიხშირით, ციკლის დრო არის tc = 2 μs, ასე რომ, დატვირთვისას L = H'00' = .0 მაქსიმალური გენერირებული დროის ინტერვალი იქნება დაახლოებით 0,4 წმ.

იმის გამო, რომ გენერირებული დროის ინტერვალი საკმარისად დიდია, მცველის ტაიმერის გადატვირთვის ბრძანება შედის გარე ციკლში.

დროის ინტერვალი 0,4 წმ არ არის ძალიან მოსახერხებელი დროის შეფერხებების მისაღებად, რომლებიც წამის ჯერადია, ამიტომ განვიხილოთ ქვეპროგრამის სხვა ვარიანტი დიდი დროის შეფერხებების წარმოქმნისთვის დამატებითი ბრძანებით. NOP შიდა მარყუჟში.

ჩამონათვალი 12.9. (html, txt)

ჩამონათვალი 12.9. (html, txt)

DELAY_E ;ფორმირების ქვეპროგრამა

დიდი ხნის დაგვიანებით (ვარიანტი E)

CLRF COUNT1 ;გადააყენეთ COUNT1 რეესტრის შინაარსი

LOOP

NOP; ცარიელი ბრძანება

GOTO LOOPD; გაიმეორეთ ციკლი 256-ჯერ

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

GOTO LOOPD ;გაიმეორეთ ციკლი H'L' ჯერ

RETURN; დაბრუნება ქვეპროგრამიდან

ჩამონათვალი 12.9.

ქვეპროგრამის შიდა მარყუჟის შესრულების დრო DELAY_E არის 4*256 + 4 MK-ის მანქანური ციკლები, ასე რომ მთლიანი შეფერხება იქნება

TD = 5 + (4 * 256 + 4) * ლ ციკლი.

საათის სიხშირეზე fosc = 2 MHz და დატვირთვისას L = H'F3' = .243 გენერირებული დროის ინტერვალი იქნება დაახლოებით 0,5 წმ, შეცდომით არაუმეტეს 0,2%. თუ მეტი სიზუსტე გჭირდებათ, შეგიძლიათ ჩასვათ ცარიელი ოპერაციების საჭირო რაოდენობა გარე დაყოვნების წარმოქმნის მარყუჟში.

განვიხილოთ შემდგომი რამდენიმე პროგრამა, რომლებიც იყენებენ ქვეპროგრამებს დროის დაყოვნების ფორმირებისთვის. დავიწყოთ იმ პროგრამის დაწერით, რომელიც დინამიკს უკრავს. BA1 ღილაკის დაჭერით SB1 . სპიკერი ჟღერს მხოლოდ იმ შემთხვევაში, თუ გამომავალი RA0 მიეცემა წყვეტილი სიგნალი. იმისთვის, რომ ხმა კარგად ისმოდეს, მისი სიხშირე უნდა იყოს ადამიანის ყურის მაქსიმალურ სმენადობასთან ახლოს. ჩვენ ვირჩევთ ხმის სიხშირეს ტოლი 1 kHz, რომელიც შეესაბამება სიგნალის პულსის გამეორების პერიოდს 1 ms.

ჩამონათვალი 12.10. (html, txt)

ჩამონათვალი 12.10. (html, txt)

ძირითადი პროგრამა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

დარეკეთ GET_RA ;ქვეპროგრამის ზარი GET_PORTA

დარეკეთ SB1_BA1 ;გამოძახების ქვეპროგრამა SB1_BA1

GOTO LOOP ;გადადით LOOP ლეიბლზე

პროცესის გამეორება

SB1_BA1; ხმის მიცემის ქვეპროგრამა

;დინამიკი BA1 ღილაკზე დაჭერისას

SB1

BTFSC TEMPA,4 ;გამოტოვება ბრძანება თუ

;TEMPA,4=0 (ღილაკზე დაჭერა)

GOTO B0 ;გადადით B0-ზე

BSF BA1 ;მიწოდება მაღალი დონის RA0-ს

;H'3E' = .62 ვ

BCF BA1; მიწოდება დაბალია RA0-მდე

MOVLW 0x3E ;წინ მუდმივი

;H'3E' = .62 ვ

CALL DELAY_C; ქვერუტინული ზარი DELAY_C

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

შეიტანეთ GET_RA.ASM

DELAY_C.ASM-ის ჩათვლით

ჩამონათვალი 12.10.

როგორც ადრე, ქვეპროგრამა GET_RA კითხულობს A პორტის მიმდინარე მდგომარეობას, რომელიც შემდეგ გადადის რეესტრში TEMPA. ქვეპროგრამა SB1_BA1 აანალიზებს ბიტი 4 რეგისტრის სტატუსს TEMPA და, შედეგიდან გამომდინარე, ჟღერს სპიკერი BA1 თუ არა. საჭირო ხაზის დაგვიანება RA0 ერთ და ნულ მდგომარეობებში მოცემულია ქვეპროგრამით DELAY_C პარამეტრით L = H'3E' = .62 . ეს შეესაბამება დაყოვნების დროს დაახლოებით 0,5 ms, რაც იწვევს სიგნალის გამეორების საჭირო სიჩქარეს 1 kHz.

განვიხილოთ შემდეგი პროგრამა, რომელიც აქცევს LED-ს ციმციმს. VD2 ღილაკის დაჭერით SB1 . იმისათვის, რომ ციმციმები ნათლად ჩანდეს, ვირჩევთ მათ სიხშირეს 1 ჰც-ის ტოლი.

ჩამონათვალი 12.11. (html, txt)

ჩამონათვალი 12.11. (html, txt)

ძირითადი პროგრამა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

დარეკეთ GET_RA; ქვერუტინული ზარი GET_RA

CALL SB1_VD2M ;ქვერუტინული ზარი

;SB1_VD2M

GOTO LOOP ;გადადით LOOP ლეიბლზე

პროცესის გამეორება

SB1_VD2M ;LED ციმციმის რუტინა

; VD2, როდესაც დააჭირეთ ღილაკს SB1

BTFSC TEMPA,4 ;გამოტოვება ბრძანება თუ

;TEMPA,4=0 (ღილაკზე დაჭერა)

GOTO V0 ;გადადით V0-ზე

BSF VD2; მსუბუქი VD2 LED

;H'F3' = .243 ვ

BCF VD2; გამორთეთ LED

MOVLW 0xF3 ;წინა მუდმივი

;H'F3' = .243 ვ

CALL DELAY_E; ქვერუტინული ზარი DELAY_E

BTFSS TEMPA,4 ;გამოტოვების ბრძანება თუ

;TEMPA,4=1 (ღილაკი არ არის დაჭერილი)

GOTO V1 ;გადადით V1-ზე

BCF VD2; გამორთეთ LED

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

შეიტანეთ GET_RA.ASM

DELAY_E.ASM-ის ჩათვლით

ჩამონათვალი 12.11.

პროგრამა მუშაობს თითქმის ისევე, როგორც წინა. პირველი განსხვავება ისაა, რომ LED იძულებით ჩაქრება, როდესაც ღილაკი არ არის დაჭერილი. მეორე განსხვავება მდგომარეობს დროის ინტერვალის მნიშვნელობაში, რომელიც აქ არის 0,5 წმ და იქმნება ქვეპროგრამით. DELAY_E .

დროის დაგვიანებით გენერირების რუტინები ასევე შეიძლება სასარგებლო იყოს სიგნალის გარე წყაროებთან მუშაობისას, როგორიცაა გადართვის გადამრთველები, ღილაკები, გადამრთველები და ა.შ. ფაქტია, რომ ყველა მექანიკურ ჩამრთველს აქვს ერთი უარყოფითი თვისება, რომელიც ცნობილია როგორც კონტაქტების „ბოუნსი“, რაც გამოწვეულია კონტაქტების მექანიკური ვიბრაციებით, როდესაც ისინი დახურულია და გახსნილია. რხევების ხანგრძლივობა, როგორც წესი, რამდენიმე მილიწამია, რომლის დროსაც იდეალური ვარდნის ნაცვლად იმპულსების აფეთქება შეიძლება მიეწოდება MC-ს შეყვანას.

კონტაქტების „ამობრუნებასთან“ გამკლავების აპარატურის მეთოდები დაფუძნებულია RS ფლიპ-ფლოპების, ერთჯერადი ვიბრატორების ან Schmitt ტრიგერების გამოყენებაზე. MC-ზე დაფუძნებულ მოწყობილობებში, კონტაქტების "გადაბრუნების" ჩახშობა ჩვეულებრივ ხორციელდება პროგრამული მეთოდებით, რომლებიც ეფუძნება პორტის ხაზის მდგომარეობის ხელახლა წაკითხვას გარკვეული დროის შემდეგ.

მაგალითად, განიხილეთ პორტის სტატუსის წაკითხვის რუტინის "გაუგებარი" ვერსიაა.

ჩამონათვალი 12.12. (html, txt)

ჩამონათვალი 12.12. (html, txt)

GET_RAD; წაიკითხეთ მდგომარეობის რუტინა

;პორტი A TEMPA რეესტრში

ხრაშუნის დათრგუნვით

MOVF PORTA,W; წაიკითხეთ პორტის მდგომარეობა A-დან W-მდე

ANDLW 0x1C ;ნიღბის გადაფარვა b'00011100'

;გამოუყენებელ ბიტებამდე W

MOVWF TEMPA ;გადაიტანეთ W TEMPA-ზე

CLRWDT ;დამკვირვებლის ტაიმერის WDT გადატვირთვა

MOVLW 0x0A; წინსვლის მუდმივი

;H'0A' = .10 in W

დარეკვა DELAY_E ; ქვერუტინული ზარი DELAY_E

MOVF PORTA,W; წაიკითხეთ პორტის მდგომარეობა A-დან W-მდე

ANDLW 0x1C ;ნიღაბი W b'00011100'

SUBWF TEMPA,W; გამოვაკლოთ W TEMPA-ს

BTFSS Z ;გამოტოვება ბრძანება თუ შედეგი

; ნულოვანი

GOTO DD ;გადადით ეტიკეტზე DD

ᲓᲐᲑᲠᲣᲜᲔᲑᲘᲡ

DELAY_E.ASM-ის ჩათვლით

ჩამონათვალი 12.12.

ქვეპროგრამის არსი არის პორტის მდგომარეობის ხელახლა წაკითხვაა გარკვეული დროის შემდეგ წინა და შედარება წინა მნიშვნელობასთან. მუდმივი H'0A' = .10 გაიგზავნება რეესტრშიქვეპროგრამის დარეკვამდე DELAY_E , უზრუნველყოფს დროის დაყოვნების მნიშვნელობას დაახლოებით 20 ms - ეს ჩვეულებრივ საკმარისია მექანიკური გადამრთველების გადართვისას გარდამავალი ცვლილებების დასასრულებლად. პორტის გამოუყენებელი ბიტების შენიღბვა ზრდის ქვეპროგრამის საიმედოობას. დაყოვნების ქვეპროგრამის გამოძახებამდე საჭიროა დამკვირვებლის ტაიმერის გადატვირთვა, რათა თავიდან აიცილოთ MK-ის გადატვირთვა პორტის კენჭისყრის ორ პროცედურას შორისა.

ახლა განვიხილოთ პროგრამის მოქმედება, რომელიც იყენებს ადრე შემუშავებულ რუტინებს. დაე, პროგრამის მიზანი იყოს ღილაკზე დაწკაპუნების რაოდენობის დათვლა SB1 შედეგის გამოტანით შვიდსეგმენტიან ინდიკატორზე თექვსმეტობით კოდში.

ჩამონათვალი 12.13. (html, txt)

ჩამონათვალი 12.13. (html, txt)

ძირითადი პროგრამა

CLRF COUNT3 ;გადატვირთეთ დაწკაპუნების რაოდენობა

LOOP

CLRWDT ;დამკვირვებლის ტაიმერის გადატვირთვა

CALL GET_RAD ;GET_RAD ქვეპროგრამული ზარი

BTFSC TEMPA, 4; შეამოწმეთ SB1 დაჭერით

GOTO LOOP; თუ არ არის დაჭერილი, დაბრუნება

;LOOP ეტიკეტზე

INCF COUNT3,F; მრიცხველის ზრდა

MOVF COUNT3,W; შინაარსის გადაცემა

სამუშაო რეესტრის მრიცხველი

დარეკვა SEV_SEG ;გამოძახება ქვეპროგრამა SEV_SEG

MOVWF PORTB ;გადაიტანეთ W PORTB-ზე

ტესტი

CALL GET_RAD; ქვერუტინული ზარი GET_RAD

BTFSS TEMPA,4; შეამოწმეთ SB1 დაჭერით

GOTO TEST; თუ ჯერ კიდევ დაჭერით დაბრუნება

;ტესტის მარკირება

GOTO LOOP ;დაბრუნდით ლეიბლზე LOOP

შეიტანეთ GET_RAD.ASM

SEV_SEG.ASM-ის ჩათვლით

ჩამონათვალი 12.13.

თავში წარმოდგენილი პროგრამები არ მოიცავს იმ შესაძლებლობების მცირე ნაწილსაც კი, რომ თუნდაც ისეთი მარტივი განლაგება, როგორც ნაჩვენებიაბრინჯი. 6.3 . თუმცა, მათი განვითარება, იმედი მაქვს, სასარგებლო იქნება PIC კონტროლერების ახალბედა მომხმარებლებისთვის.

კომუნიკაცია, კომუნიკაცია, რადიო ელექტრონიკა და ციფრული მოწყობილობები

MP მიკროპროცესორი არის გადამამუშავებელი და კონტროლის მოწყობილობა, რომელსაც შეუძლია პროგრამის კონტროლის ქვეშ არსებული ინფორმაციის დამუშავება, გადაწყვეტილებების მიღება, ინფორმაციის შეყვანა და გამომავალი და მიღებული ერთი ან მეტი LSI-ის სახით. გამოიყენება ინფორმაციის დროებითი შესანახად MP-ის მუშაობის პროცესში. ROM-ისგან განსხვავებით, RAM-ში შესაძლებელია ინფორმაციის წაკითხვა და ჩაწერა Cht და Zap სიგნალებზე იმ უჯრედზე, რომლის მისამართიც მდებარეობს SHA-ზე. საკონტროლო ოთახში Vv სიგნალის შეყვანისას ინფორმაცია გადაეცემა გარე მოწყობილობიდან სტეპერ ძრავას, ხოლო სიგნალის O გამომავალზე ...

ლექცია 12

მიკროპროცესორული ტექნოლოგია

1 მიკროპროცესორები და მიკროპროცესორების ნაკრები

1.1 მიკროპროცესორის განმარტება

1970-იანი წლების დასაწყისში, მიკროელექტრონიკაში ტექნოლოგიის მიღწევებმა გამოიწვია ელექტრონიკის ახალი ელემენტარული ბაზის შექმნა - მიკროელექტრონული ფართომასშტაბიანი ინტეგრირებული სქემები (LSI) (მოდული 1 თავი 1.6.3). ინტეგრაციის ხარისხის მიხედვით (აქტიური ელემენტების რაოდენობა: დიოდები და ტრანზისტორები), ინტეგრირებული სქემები (IC) პირობითად იყოფა IC-ებად ინტეგრაციის დაბალი ხარისხით - 100-მდე აქტიური ელემენტი, ინტეგრაციის საშუალო ხარისხი (SIS) - 1000-მდე აქტიური ელემენტი, LSI - 1000-ზე მეტი აქტიური ელემენტი, VLSI - 10000-ზე მეტი ელემენტი. ახალი LSI-ის გამოშვება დიზაინის ავტომატიზაციის ამჟამინდელ დონეზე არის ძალიან რთული და ძვირი პროცესი მისი ლოგიკური სტრუქტურისა და ტოპოლოგიის განვითარებისთვის, ფოტონიღბების და ტექნოლოგიური წინასწარი წარმოების დიდი საწყისი ხარჯების გამო. ეს არის დიდი გუნდის 0,5-1 წლიანი მუშაობა. ამიტომ, LSI-ების წარმოება ეკონომიკურად გამართლებულია, როდესაც ისინი იწარმოება, წელიწადში ათობით ან ასობით ათასი ცალი შეფასებით. თითქმის შეუძლებელია სპეციალიზებული LSI-ის წარმოება თითოეული კონკრეტული აპლიკაციისთვის. ინტეგრაციის მაღალი დონის მქონე მიკროსქემების მასობრივი გამოყენების სფეროების ძიების შედეგად, მათმა დეველოპერებმა შესთავაზეს ერთი უნივერსალური LSI ან LSI-ების გარკვეული ნაკრების შექმნის იდეა, რომლის სპეციალიზაცია არ არის მიღწეული თითოეული კონკრეტული აპლიკაციისთვის. მიკროსქემით, მაგრამ პროგრამული უზრუნველყოფით. ასე გაჩნდა სტანდარტული უნივერსალური ელემენტები - მიკროპროცესორი LSI კომპიუტერის მსგავსი სტრუქტურით.

მიკროპროცესორი (MP)ეს არის გადამამუშავებელი და კონტროლის მოწყობილობა, რომელსაც შეუძლია ინფორმაციის დამუშავება პროგრამის კონტროლის ქვეშ, გადაწყვეტილების მიღება, ინფორმაციის შეყვანა და გამომავალი და მზადდება ერთი ან მეტი LSI-ის სახით.

1.2 MP LSI-ის წარმოების ტექნოლოგია

არსებობს ორი ტიპის LSI წარმოების ტექნოლოგია: ბიპოლარული - დაფუძნებული ბიპოლარული ტრანზისტორების გამოყენებაზე და MOS (ლითონი - ოქსიდი - ნახევარგამტარი) - ტექნოლოგია, რომელიც დაფუძნებულია საველე ეფექტის ტრანზისტორების გამოყენებაზე.

ბიპოლარული ტექნოლოგიის გამოყენებით წარმოებული LSIs განსხვავდება მათი სქემატური განხორციელების მეთოდებით. ძირითადად გამოიყენება ტრანზისტორი-ტრანზისტორი ლოგიკა შოთკის დიოდებით (TTLSh) და ემიტერ-დაწყვილებული ლოგიკით (ECL). TTLSH ლოგიკა იყენებს ბიპოლარულ n-p-n ტრანზისტორებს, რომლებიც დამატებულია Schottky დიოდებით (DSh). DS არის მაკორექტირებელი კონტაქტი Al-nSi ლითონის ნახევარგამტარული ინტერფეისით. მეტალსა და სილიციუმში, იგივე ტიპის უმრავლესობის მატარებლები არიან ელექტრონები და არ არსებობს უმცირესობის მატარებლები. LH-ები იხსნება U=0,1-0,3 ვ-ზე და აქვთ ციცაბო დენი-ძაბვის მახასიათებელი. ისინი დაკავშირებულია npn ტრანზისტორის კოლექტორის შეერთების პარალელურად და ქმნიან Schottky ტრანზისტორს, რომელიც წარმოებულია ერთი ტექნოლოგიური პროცესით. LH-ის გამოყენება მნიშვნელოვნად ზრდის ტრანზისტორის სიჩქარეს, რადგან კოლექტორის შეერთების გაჯერება აღმოფხვრილია და მასში მუხტების შეწოვა არ ხდება.

MOS ტექნოლოგიაში (მოდული 1 თავი 1.5.5) შეიძლება გამოიყოს 3 მიკროსქემის მეთოდი LSI-ის დანერგვისთვის: MOS არხის გამტარობით. p- ან n-ტიპი (p-MOS ან n -MOS) და დამატებითი MOS ტექნოლოგია (CMOS). CMOS ტექნოლოგია იყენებს MOS ტრანზისტორების წყვილს n-ტიპი და პ -სერიით დაკავშირებული ტიპი (ნახ.1-1). შეყვანის ნებისმიერი სიგნალით, ერთი ტრანზისტორი ღიაა, მეორე დახურულია. ამიტომ წრეში გამავალი დენი ძალიან მცირეა. CMOS LSI-ებს აქვთ ენერგიის ყველაზე დაბალი მოხმარება სხვა ტიპებთან შედარებით.

MOS ტექნოლოგიის მიხედვით, პირველი MP LSI (r-MOS) წარმოებულია 1971 წელს. ისინი იყენებენ კონტროლს.რ - არხი, სადაც ძირითადი მუხტის მატარებლები ხვრელებია. ამიტომ, LSI-ის სიჩქარე შედარებით დაბალია. მოგვიანებით გაჩნდა n-MOS და CMOS ტიპის LSI-ები, რომლებიც დღესაც ფართოდ გამოიყენება.

ESL ლოგიკა ეფუძნება დიფერენციალური გამაძლიერებლის გამოყენებას ორ ტრანზისტორზე დაკავშირებულ ემიტერებთან (ნახ. 1-2.). ის უზრუნველყოფს ყველაზე სწრაფ შესრულებას, მაგრამ მოიხმარს ყველაზე მეტ ენერგიას.

ზოგიერთი MP LSI-ის ძირითადი მონაცემები მოცემულია ცხრილში.1

1.3 მიკროპროცესორული სისტემების სტრუქტურა

MPS-ის მთელი მრავალფეროვნება დაფუძნებულია ორი ტიპის MP-ის გამოყენებაზე:

ა) ერთჩიპიანი MP ფიქსირებული სიტყვის სიგრძით და ბრძანებების ფიქსირებული სისტემით (მყარი კონტროლით);

ბ) მრავალჩიპიანი (სექციური) MP ცვლადი სიტყვის სიგრძით და მიკროპროგრამის კონტროლით.

განვიხილოთ მათი სტრუქტურის მახასიათებლები.

1.3.1 MT-ზე დაფუძნებული MPS-ის სტრუქტურა მკაცრი კონტროლით

სურ.1-3

MPS-ის ცალკეული ელემენტების ერთმანეთთან და გარე მოწყობილობებთან დაკავშირება ხორციელდება სამი ავტობუსის გამოყენებით. თითოეული ავტობუსი არის მაგისტრალი, რომელიც შედგება რამდენიმე (8-16) ხაზისგან.

ША - მისამართების ავტობუსი, რომლის მეშვეობითაც ხდება მეხსიერების უჯრედების და გარე მოწყობილობების მისამართების გადაცემა;

SD - მონაცემთა ავტობუსი, რომლის მეშვეობითაც ინფორმაცია შედის MP-ში ან გამოდის მისგან;

SHU - საკონტროლო ავტობუსი, რომლის მეშვეობითაც ხდება საკონტროლო სიგნალების გადაცემა MPS-ის ნორმალური ფუნქციონირების უზრუნველსაყოფად;

MP - ცენტრალური ელემენტი, რომელიც აკონტროლებს ყველა სხვა ელემენტის ფუნქციონირებას; ეხება სისტემის ყველა სხვა ელემენტს, ათავსებს მათ მისამართს SHA-ზე;

G - საათის პულსის გენერატორი, დეპუტატის მუშაობის სინქრონიზაცია;

ROM არის მხოლოდ წაკითხვადი მეხსიერების მოწყობილობა (მოდული 2 თავი 9.1), რომელიც შეიცავს MP-ის მიერ შესრულებულ პროგრამის ბრძანებებს და მუშაობისთვის აუცილებელ მუდმივებს. SHA იღებს მეხსიერების უჯრედის მისამართს, რომელშიც ინახება საჭირო ბრძანება ან მუდმივი და MP-ის სიგნალის Cht (წაკითხვა) მიხედვით SD-ზე ჩნდება ამ უჯრედში შენახული ინფორმაცია;

ოპერატიული მეხსიერება - შემთხვევითი წვდომის მეხსიერება (მოდული 2 თავი 9.2), გამოიყენება ინფორმაციის დროებითი შენახვისთვის MP-ის მუშაობის დროს. ROM-ისგან განსხვავებით, RAM-ში შესაძლებელია ინფორმაციის წაკითხვა და ჩაწერა (Cht და Zap სიგნალების მიხედვით) უჯრედზე, რომლის მისამართი მდებარეობს SHA-ზე. უმარტივეს MPS-ში, ოპერატიული მეხსიერება შეიძლება არ იყოს და მის როლს ასრულებს MP-ის შიდა ზოგადი დანიშნულების რეგისტრები (RON);

IU - ინტერფეისის მოწყობილობა (საკომუნიკაციო მოწყობილობა), რომელიც კოორდინაციას უწევს MPS და გარე მოწყობილობების მუშაობას, მათი სიჩქარისა და სიგნალის დონის განსხვავებების გათვალისწინებით. SHU-ზე Vv სიგნალის (შესვლის) მიხედვით ინფორმაცია გარე მოწყობილობიდან სტეპერ ძრავზე გადადის, ხოლო Vv სიგნალის მიხედვით (გამომავალი) - საპირისპირო მიმართულებით. მონაცემთა ავტობუსი საერთოა MPS-ის ყველა ელემენტისთვის, მაგრამ სისტემის ელემენტები არ უნდა ერეოდნენ ერთმანეთს. ამიტომ, თითოეული მათგანის გამომავალი სტეპერ ძრავას ე.წ. ეს შეიძლება იყოს არა მხოლოდ აქტიურ მდგომარეობებში ("0" ან "1"), რაც აუცილებელია ინფორმაციის გადაცემისთვის, არამედ მესამე მდგომარეობაშიც, რომელშიც ელემენტი პრაქტიკულად გამორთულია საერთო ავტობუსიდან. მესამე მდგომარეობიდან აქტიურზე გადასვლა ხორციელდება დეპუტატის საკონტროლო სიგნალებით. დროის ყოველ მომენტში მხოლოდ ერთი ელემენტია დაკავშირებული საერთო SD-სთან, რომელიც გადასცემს ინფორმაციას და SD-ზე „კონფლიქტი“ გამორიცხულია. რამდენიმე ელემენტს შეუძლია ინფორმაციის მიღება SD-დან, საჭიროების შემთხვევაში, ერთდროულად. MPS-ის ასეთი ორგანიზება საერთო SD-ის დახმარებით იძულებულია და იმის გამო, რომ LSI შემთხვევების გამომავალი რაოდენობა შეზღუდულია და იგივე გამომავალი გამოიყენება რამდენიმე მიზნისთვის.

1.3.2 MPS-ის სტრუქტურა მიკროპროგრამის კონტროლით MP-ზე დაფუძნებული

მყარი კონტროლის მქონე MP აწყობილია CPE-ის ცენტრალური პროცესორის ელემენტის n ცალკეული LSI სექციიდან, რომელთაგან თითოეული ამუშავებს 2 (4, 8, 16) ბიტს მონაცემებს. ეს იწვევს პროცესორს, რომელსაც აქვს 2n (ან 4n, 8n, 16n) ბიტი. CPE ასრულებს უმარტივეს მოქმედებებს - მიკროოპერაციებს საკონტროლო შეყვანებზე შეკვეთების გაგზავნისას - მიკრო-ბრძანებები (MC). 10-15-მდე მიკრო-ოპცია და იგივე რაოდენობის მიკრო-ოპცია საჭიროა MT ბრძანებების მსგავსი ბრძანებების შესასრულებლად მკაცრი კონტროლით. ხელმისაწვდომი მიკრო-ბრძანებებიდან ბრძანებების ორგანიზება მომხმარებლისთვის არის დარჩენილი.

MT-ის მთავარი უპირატესობა მიკროპროგრამის კონტროლით, როდესაც ისინი გამოჩნდნენ, იყო ინფორმაციის დამუშავების მაღალი სიჩქარე, რამაც შესაძლებელი გახადა ძალიან სწრაფი პროცესების კონტროლი და კონტროლი, მაგალითად, ბირთვული რეაქციები. ამჟამად მათი როლი საგრძნობლად შემცირდა, ვინაიდან თანამედროვე მრავალბიტიანი დეპუტატები მკაცრი კონტროლით და მაღალი საათის სიჩქარით შესაძლებელს ხდის ინფორმაციის კიდევ უფრო სწრაფად დამუშავებას.

2 მიკროპროცესორი

2.1 MP K580VM80-ის სტრუქტურა

განხილული LSI არის ერთი ჩიპიანი დეპუტატი, რომელიც დაფუძნებულია n-MOS ტექნოლოგიაზე. შექმნილია გამოთვლითი მოწყობილობების, კონტროლერების, მიკროკომპიუტერების შესაქმნელად. MP სიმძლავრე - 8 ბიტი, საათის სიხშირე 2 MHz, ბრძანების შესრულების დრო 2-9 μs, მიწოდების ძაბვა +12, +5 და -5 V, ენერგიის მოხმარება 0,75 W. ფიგურაში ნაჩვენებია მისი ბლოკ-სქემა.

2.1.1 MT-ის ძირითადი ელემენტები

ინფორმაციის გაცვლა ხდება რვაბიტიანი ბუფერული რეგისტრის მეშვეობით (მოდული 2 თავი 7) გარე და შიდა SD MP.RK - ბრძანების რეესტრთან დაკავშირებული DB. ბრძანების კოდი იწერება მასში და ინახება მისი შესრულების დროს.

SVR - რეგისტრაციის შერჩევის სქემა. შეიცავს: 6 პროგრამულ ხელმისაწვდომ საერთო დანიშნულების რეგისტრს (RON) B, C, D, E, H, L (არსებობს ბრძანებები, რომლებშიც ისინი განიხილება წყვილებში B-B, C; D - D, E; H - H, L. ) 2 პროგრამულად მიუწვდომელი რეგისტრი W და Z, შექმნილია ბრძანების მეორე და მესამე ბაიტის შესანახად (პირველი ბაიტი ყოველთვის ინახება RK-ში);

M მულტიპლექსერი (მოდული 2 თავი 5.2), რომელიც აკავშირებს შიდა სტეპერ ძრავას W, Z რეგისტრებთან;

PS - 16-ბიტიანი პროგრამის მრიცხველი, რომელიც დეპუტატს აძლევს საშუალებას შეასრულოს პროგრამები, რომლებიც შეიცავს 216 = 65536 სიტყვამდე;

აშშ - 16 ბიტიანი სტეკის მაჩვენებელი (თავი 2.1.3);

SID - ზრდა-შემცირების სქემა (1-ის დამატება ან გამოკლება);

BA - 16 ბიტიანი მისამართის ბუფერი;

A - შედეგების რეგისტრი (აკუმულატორი);

ALU - არითმეტიკული ლოგიკური ერთეული, ასრულებს შეკრება - გამოკლების, ზრდა - კლების არითმეტიკული მოქმედებები, შეერთების, დისუნქციის, ინვერსიის და სხვა. იგი დაკავშირებულია ბუფერული რეგისტრების BR1 და BR2 მეშვეობით აკუმულატორთან და მონაცემთა შიდა ავტობუსთან;

RP - ნიშნების რეესტრი, რომელშიც ბრძანების შესრულებისას ჩნდება შედეგის ნიშნები (ნულოვანი შედეგი, დადებითი ან უარყოფითი, ლუწი ან კენტი შედეგი), რომელიც გამოიყენება შემდგომ ბრძანებებში, მაგალითად, პირობითი ნახტომი;

SDK - ათობითი კორექტირების სქემა, რომელიც გამოიყენება ინფორმაციის დამუშავებისას არა ორობით, არამედ ორობით-ათწილად კოდით (მოდული 2 თავი 3.2);

CU - საკონტროლო მოწყობილობა, რომელიც უზრუნველყოფს MP და გარე მოწყობილობების მუშაობის კონტროლს. განვიხილოთ მისი მოქმედება და საკონტროლო ავტობუსის შემადგენლობა.

2.1.2 სამართავი მოწყობილობა

საკონტროლო მოწყობილობა იმართება გარე გენერატორიდან, რომელიც წარმოქმნის პულსების F1 და F2 თანმიმდევრობას. იგი დაკავშირებულია დანარჩენ MF-თან შიდა კონტროლის სიგნალებით SS და სიგნალის ნიშნებით Pi. CU გარე გარემოსთან დაკავშირებულია საკონტროლო ავტობუსით, რომელიც შეიცავს 10 ხაზს (4 სიგნალი მოდის გარედან და 6 სიგნალი გაცემულია დეპუტატის მიერ).

საკონტროლო ავტობუსის შემადგენლობა.

1. საწყისი ინსტალაცია (გადატვირთვა). როდესაც "1" გამოიყენება ამ შეყვანაზე, PS აღდგება 0-ზე და პროგრამის შესრულება თავიდან იწყება.

2. სინქრონიზაცია. სიგნალი "1" ამ გამომავალზე გენერირებულია ყოველი MP ოპერაციული ციკლის დასაწყისში (ყოველი MP წვდომამდე ნებისმიერ გარე ელემენტზე).

3. კითხვა. სიგნალი "1" მიუთითებს იმაზე, რომ დეპუტატი მზად არის მიიღოს ინფორმაცია SD-ზე გარედან. ეს სიგნალი, როგორც წესი, დაკავშირებულია მეხსიერების და შეყვანის მოწყობილობების "წაკითხულ" შეყვანასთან.

4. /ზპ. სიგნალი "0" მიუთითებს, რომ დეპუტატმა ჩადო ინფორმაცია მონაცემთა ავტობუსზე, რომელიც უნდა ჩაიწეროს RAM-ში ან გამომავალი მოწყობილობებისთვის.

5. მზადაა. სიგნალი "1" ამ შეყვანაზე მიუთითებს დეპუტატზე წაკითხვის ან ჩაწერის ციკლის ბოლომდე. იგი იწარმოება გარე მოწყობილობების მიერ მათი სამუშაო ციკლის ბოლოს. თუ სიგნალი "1" არ მიიღება, მაშინ დეპუტატი შედის მოლოდინის მდგომარეობაში, რომლის დროსაც დეპუტატი ინახავს მისამართს SHA-ზე, საკონტროლო სიგნალს "წაკითხვა" ან "ჩაწერა" და ღიად ინახავს ინფორმაციის გადაცემის ჯაჭვებს DB-ით. . ლოდინის მდგომარეობა შენარჩუნებულია "1" - "მზად" მოსვლამდე. იმ შემთხვევაში, როდესაც ყველა გარე ელემენტი მუშაობს MP ან მეტი სიჩქარით, "1" მუდმივად უკავშირდება "მზად" შეყვანას.

6. ლოდინი. "1" სიგნალი ამ გამომავალზე მიუთითებს, რომ დეპუტატი ლოდინის მდგომარეობაშია. ეს სიგნალი ხელს უწყობს გაუმართავი განყოფილების იდენტიფიცირებას, რამაც გამოიწვია დეპუტატის გაჩერება.

7. ზ.პრ. - შეწყვეტის მოთხოვნის შეყვანა (თავი 7.2.7). სიგნალი "1" მოდის გარედან, თუ საჭიროა დეპუტატის მუშაობის შეწყვეტა.

8. რ.პრ. - ჩართეთ შეფერხება. "1" სიგნალი ამ გამომავალზე მიუთითებს, რომ შეფერხებები ჩართულია. შეფერხების ნებართვა და აკრძალვა ხდება სპეციალური ბრძანებებით.

9. დაჭერა. როდესაც სიგნალი "1" მოდის, დეპუტატი წყვეტს მუშაობას, BA და DU გადადის მესამე მდგომარეობაში. ამ შემთხვევაში დეპუტატი გათიშულია SHA-დან და SD-დან.

10. გადაღების დადასტურება. სიგნალი "1" მიუთითებს, რომ დეპუტატი დაჭერის მდგომარეობაშია.

2.1.3 Push-pull - stack

K580VM80 პროცესორით MPS-ში RAM მეხსიერების უჯრედებზე წვდომისას საჭიროა გრძელი სამბაიტი ბრძანებები. პირველი ბაიტი შეიცავს თავად წვდომის ბრძანებას, ხოლო მეორე და მესამე ბაიტი მიუთითებს მეხსიერების უჯრედის მისამართს. ასეთი ბრძანება შესრულებულია შედარებით დიდი ხნის განმავლობაში და მეხსიერების ხშირი წვდომით, MPS-ის მოქმედება მნიშვნელოვნად შენელდება. MPS-ის მუშაობის დასაჩქარებლად გამოიყენება მეხსიერების მაღაზია - სტეკი. ის მუშაობს იმ პრინციპით, რომ ბოლოს დაწერილი რიცხვი ჯერ იკითხება. სტეკზე წვდომის თანმიმდევრობა მკაცრია, მაგრამ თქვენ არ გჭირდებათ მისამართის მითითება და წვდომის დრო მნიშვნელოვნად შემცირდა. დასტა ძალიან მოსახერხებელია შუალედური ინფორმაციის შესანახად შეფერხების შემთხვევაში. მისი მეორე მიზანია პროგრამებთან მუშაობის უზრუნველყოფა. ქვეპროგრამაზე გადასვლისას RON-ის შინაარსი გადადის სტეკში, ქვეპროგრამის შესრულების შემდეგ მას იძახიან დასტადან RON-ში. დასტა შეიძლება იყოს ავტონომიური (ჩაშენებული MP-ში) და გარე (მდებარეობს RAM-ში). K580VM80 MP იყენებს გარე დასტას, ხოლო კრისტალში მოთავსებულია სპეციალური რეგისტრი - სტეკის მაჩვენებელი (აშშ), რომელიც ინახავს პირველი თავისუფალი სტეკის უჯრედის მისამართს. სტეკი ჩვეულებრივ გამოყოფილია RAM მეხსიერების ყველაზე მაღალ ადგილებზე. ჯერ დაყენებულია მისამართი 111 ... 1, წერისას მისამართი მცირდება (A-1), წაკითხვისას მატულობს (A+1). სტეკთან მუშაობისას US-ის შიგთავსი გადაეცემა SA-ს, ძირითად მეხსიერებასთან მუშაობისას - RA-ს შიგთავსი. 2.2

2.2 დეპუტატის ფუნქციონირება, როგორც MPS-ის ნაწილი

2.2.1 ბრძანების შესრულების ალგორითმი

ნებისმიერი ბრძანების შესრულებისას MP-ის სამუშაო ციკლი ყოველთვის იწყება ბრძანების პირველი ბაიტის - ოპერაციული კოდის (KOp) ბრძანების რეესტრში მოტანით (თავი 2.1.1). ამ შემთხვევაში, ბრძანების მისამართი PS-დან BA-ს მეშვეობით მიდის SHA-ზე, CU წარმოქმნის წაკითხვის სიგნალს, KOp გადის DB-დან RC-მდე. DShK აანალიზებს COP-ს და, საჭიროების შემთხვევაში, MP ირჩევს ბრძანების მე-2 და მე-3 ბაიტებს W და Z რეგისტრებში, შესაბამისად. შემდეგი ბრძანების ბაიტის მისამართი იქმნება PS-ში მისი შინაარსის 1-ით გაზრდით LED-ის გამოყენებით. შემდეგ ბრძანება შესრულებულია. დასასრულს, კეთდება ანალიზი შეფერხების მოთხოვნის არსებობის შესახებ (სიგნალი ZPR). თუ ასეთი მოთხოვნა არსებობს, PS-ის მდგომარეობა ინახება და ხდება გადასვლა შეფერხების დამმუშავებლის პროგრამაზე.

2.2.2 MP მუშაობის დროის დიაგრამა

MP-ის მოქმედება ხდება საათის იმპულსების F1 და F2 ორი გადახურვის თანმიმდევრობის მოქმედებით (ნახ. 2-2).

MT აწარმოებს ინფორმაციის ტრანსფორმაციის უმეტესობას F2-ის მიხედვით. დროის ინტერვალს, რომლის დროსაც კეთდება ერთი მიკრო ოპერაცია, ეწოდება მანქანის ციკლი (აღნიშნავს T1, T2 და ა.შ.). მანქანის ციკლი (MC) არის ციკლების თანმიმდევრობა, რომლის დროსაც ხდება ინფორმაციის გაცვლა MP-სა და მის გარე ელემენტს შორის (მითითებულია M1, M2 და ა.შ.). MC შეიცავს 3-5 ციკლს. ბრძანების შესრულებას სჭირდება 1-5 MTs. სურათი 2-3 პირობითად აჩვენებს სამი ბრძანების შესრულების თანმიმდევრობას, რომლებიც შეიცავს სხვადასხვა რაოდენობის MC-ს. M1 ციკლში, ბრძანების პირველი ბაიტი ყოველთვის იტვირთება. დეპუტატების უმეტესობა არის საათის ციფრული სქემები, რომლებიც მოქმედებენ საათის პულსის გენერატორის (GTI) გავლენის ქვეშ. K580VM80 MP ქრონიკულია GTI-ით, რომელიც წარმოქმნის ფ1 და Ф2 დაუფარავი იმპულსების ორ თანმიმდევრობას Ttact = 0,5 - 2 μs პერიოდით.

2.2.3 MP სტატუსის სიტყვა

SD MP არ გამოიყენება T1-ში და T2-ის დასაწყისში ძირითადი ინფორმაციის მისაღებად და გასაცემად. დეპუტატი ითვალისწინებს სქემებს, რომლებიც უზრუნველყოფენ რვა ბიტიანი სტატუსის სიტყვის (SS) გაცემას ამ დროს SD-ზე. ამ 8 მახასიათებლის გამოყენება შესაძლებელია გარე ელემენტების მიერ და, ზოგადად, შესაძლებელს ხდის MPS-ის ორგანიზების გამარტივებას. სტატუსის სიტყვა გაიცემა T2 ციკლის ყოველი ციკლის დასაწყისში F1 პულსის დროს (ნახ. 2-4). SS-ის ნიშნები ახასიათებს მხოლოდ ამ MC-ს. SS გამოყოფილია RS სახელმწიფო რეესტრის გამოყენებით (ნახ. 2-5), რომელშიც ინფორმაცია ჩაწერილია SD-დან t მომენტში, როდესაც ერთდროულად არის F1 და "Sync" პულსები. MP K580VM80 აქვს ათი ტიპის MC და, შესაბამისად, 10 SS, რომლებიც იდენტიფიცირებენ ამ ციკლებს. ცხრილი 2 გვიჩვენებს SS-ს, რომელიც შეესაბამება ყველა ტიპის MC-ს.

სურ.2-4

სურ.2-5

ცხრილი 2 MP K580VM80 სტატუსის სიტყვები

Აქ:

MEMR - მეხსიერებიდან კითხვა;

INP - შეყვანის ბრძანების ნიშანი (წარმოებულია MTs3-ში);

M1 - MTS1-ის ნიშანი (არსებობს Kop-ის შერჩევა, ბრძანების შესრულების დასაწყისი);

OUT - შეყვანის ბრძანების ნიშანი, გენერირებული MTs3-ში. იგი ჰგავს /Zp MP სიგნალს, მაგრამ ჩნდება ოდნავ ადრე და რჩება RS-ში ციკლის ბოლომდე;

HLTA - გაჩერების დადასტურება;

STACK - სტეკთან მუშაობის ნიშანი, წარმოიქმნება სტეკთან მუშაობის ბრძანებების გამოყენებით მეხსიერებაზე წვდომისას, რაც საშუალებას გაძლევთ გქონდეთ 216 ოპერატიული მეხსიერება და 216 დასტა უჯრედები;

/WO - ჩაწერის ან გამომავალი ნიშანი;

INTA - შეფერხების რეჟიმში მუშაობის დაწყების ნიშანი.

მაგალითად, სამ MC-ში გამომავალი ბრძანებაში გაიცემა SS No. 1,2,7. SS-ის გამოყენება საშუალებას გაძლევთ უკეთ მოაწყოთ MPS-ის მართვა. გარე მოწყობილობებთან მუშაობისთვის MP-ს აქვს მხოლოდ 2 საკონტროლო სიგნალი Rt და /Zp, რომლებშიც ROM, RAM და სხვა გარე მოწყობილობები არ განსხვავდება. აქედან გამომდინარე, აუცილებელია ShA-ს ზოგიერთი ციფრის გამოყენება კონკრეტული ობიექტის აღსანიშნავად. SS-ში MEMR სიგნალი საშუალებას გაძლევთ გამოყოთ მეხსიერება სხვა მოწყობილობებისგან, რაც ამარტივებს MPS-ის ცალკეული ნაწილების ურთიერთკავშირის ორგანიზებას.

3 შესანახი მოწყობილობა

შენახვის მოწყობილობა ან მოკლედ მეხსიერება გამოიყენება ციფრული ინფორმაციის შესანახად.

MPS მეხსიერება იყოფა:

პროგრამის მეხსიერება პროგრამების შესანახად და დანერგილი ჩვეულებრივ მხოლოდ წაკითხული მეხსიერების (ROM) სახით;

მონაცემთა მეხსიერება, ან შემთხვევითი წვდომის მეხსიერება (RAM) (მოდული 2 თავი 9);

გარე მეხსიერება დიდი რაოდენობით ინფორმაციის შესანახად, ჩვეულებრივ დანერგილი მაგნიტური დისკის (მყარი დისკის) სახით.

ყველაზე ხშირად, ნახევარგამტარული ROM და RAM გამოიყენება MPS-ში. მათ აქვთ ისეთი უპირატესობები, როგორიცაა მაღალი სიჩქარე, დაბალი ენერგიის მოხმარება, მაღალი საიმედოობა, დაბალი ღირებულება, ელექტრო თავსებადობა სხვა MPS კომპონენტებთან. ნახევარგამტარული ოპერატიული მეხსიერების მთავარი მინუსი არის მისი არასტაბილურობა. ის არ ინახავს ინფორმაციას დენის გამორთვისას. როდესაც ეს მიუღებელია, ოპერატიული მეხსიერება დამყარებულია ბატარეებით ან აკუმულატორებით, მაგრამ ეს ართულებს და ზრდის სისტემის ღირებულებას.

ფუნქციურად, მეხსიერება შედგება იმავე ტიპის უჯრედებისგან (რეგისტრები), რომლებიც შექმნილია ერთი სიტყვის შესანახად. თითოეულ უჯრედს ენიჭება მისამართი, რომელიც წარმოდგენილია ორობითი კოდით.

მეხსიერების IC-ის მოცულობა ჩვეულებრივ გამოიხატება ბიტებში ან ბაიტებში - m, 1024 ბაიტი (ან 1K), 4K ბიტი და ა.შ. მეხსიერების საინფორმაციო ორგანიზაცია (ან ფორმატი) განისაზღვრება m (სიტყვები) x n (სიტყვის სიგრძე) ნამრავლით. მაგალითად, 1024 ბიტიანი სიმძლავრის IC-ს შეიძლება ჰქონდეს ორგანიზაცია 1024x1 (1Kx1), 256x4, 128x8. მეხსიერების სიტყვების სიგრძე (nmem) ჩვეულებრივ არჩეულია MPS ცენტრალური პროცესორის ncp სიტყვის სიგრძის (ტევადობის) ტოლი. თუ ნმემ< nцп, то применяется несколько корпусов ИС. Например, с помощью 2-х ИС памяти 256х4 можно организовать ЗУ с форматом 256х8.

მეხსიერებას შეუძლია შეასრულოს ორი ოპერაცია: ინფორმაციის შეყვანა მისამართებად უჯრედში - ჩანაწერი (Wp); და ინფორმაციის გამომავალი მისამართის მქონე უჯრედიდან - კითხვა ან წაკითხვა (Th). ორივე ოპერაცია ერთობლივად ცნობილია როგორც წვდომა ან, სხვა სიტყვებით რომ ვთქვათ, მეხსიერების წვდომა.

3.1 მუდმივი მეხსიერება

თუ მეხსიერება ასრულებს მხოლოდ წაკითხვის ოპერაციას გაშვებულ სისტემაში, მაშინ მას უწოდებენ მხოლოდ წაკითხვის მეხსიერებას ან ROM. ინფორმაციის ჩაწერა ROM-ში შეიძლება განხორციელდეს სხვადასხვა გზით. ნიღბის მიერ დაპროგრამებული ROM ჩიპები (ROM-PM) იწერება მხოლოდ ერთხელ წარმოების პროცესში სპეციალური ნიღბის (ფოტომასკის) გამოყენებით. შენახული ინფორმაციის შეცვლა შეუძლებელია. ROM-PM-ს აქვს მაღალი საიმედოობა და სიჩქარე, მაღალი შეფუთვის სიმკვრივე, ენერგეტიკული დამოუკიდებლობა. მათი ღირებულება მასობრივ წარმოებაში დაბალია. ისინი გამოიყენება უცვლელი პროგრამებისა და სხვადასხვა მუდმივების შესანახად.

თუ მომხმარებელი წერს მეხსიერებას ერთხელ სპეციალური მოწყობილობის - პროგრამისტის დახმარებით და შემდეგ ის მუშაობს მხოლოდ წასაკითხად, მაშინ ასეთ მეხსიერებას ეწოდება მომხმარებლის პროგრამირებადი ROM (ROM-PP). ისინი გამოიყენება MPS-ის პროტოტიპირებისა და გამართვისას, ასევე მცირე სერიების წარმოებაში.

ასევე გამოიყენება რეპროგრამირებადი ROM-ები (PROM). მომხმარებლის მიერ ინფორმაციის განმეორებით ჩაწერა შესაძლებელია პროგრამისტის დახმარებით, მაგრამ გაშვებულ სისტემაში ისინი ასრულებენ მხოლოდ წაკითხვის ოპერაციას. EEPROM-ში არსებული ინფორმაცია შეიძლება წაიშალოს, შემდეგ კი ახალი ინფორმაცია დაიწეროს მათ. წაშლა ხდება IC-ის სისტემიდან ამოღებით და ხორციელდება ან ელექტრული იმპულსებით 30-50 ვ ამპლიტუდით, ან ულტრაიისფერი გამოსხივების გამოყენებით, PROM უფრო ძვირია ვიდრე ROM-PM და ROM-PP და აქვს უფრო დაბალი შეფუთვა. სიმჭიდროვე.

მოდით უფრო დეტალურად განვიხილოთ პროგრამული უზრუნველყოფის ROM-ის შიდა სტრუქტურა უმარტივესი IC K155RE3-ის მაგალითის გამოყენებით (ნახ. 3-1), რომელსაც აქვს ორგანიზაცია 32x8. 32 სიტყვის მიმართვისთვის არის 5 მისამართის შეყვანა A0...A4 (რადგან 25=32). 8 ბიტიანი შენახული სიტყვა წარმოიქმნება მულტიემიტერის ტრანზისტორით, რომლის თითოეულ ემიტერ წრეში არის 200 ანგსტრომის სისქის ნიქრომისგან დამზადებული დნობადი ჯემპერი. როდესაც მისამართის დეკოდერი ირჩევს გარკვეულ სიტყვას, იხსნება ერთ-ერთი მულტიემიტერი ტრანზისტორი. თუ შესაბამის ბიტის ხაზზე არის ჯუმპერი, დაყენებულია მაღალი ძაბვის დონე და ასევე იხსნება გამომავალი ტრანზისტორი VT2, ხოლო გამომავალი 1-ის პოტენციალი ახლოს არის ნულთან (ლოგიკური "0"). თუ ჯუმპერი დნება, მაშინ შესაბამისი ბიტის ხაზი არსად არის დაკავშირებული ("მცურავი") და ტრანზისტორი VT2 დახურულია (ლოგიკური "1"). ROM PP-ის გამომავალი სქემები ღია კოლექტორია.ნორმალური მუშაობისთვის ისინი უნდა იყოს დაკავშირებული დენის წყაროსთან + Ek რეზისტორების Rn-ის საშუალებით (სურათზე გამოსახულია წერტილოვანი ხაზებით).

დაუპროგრამებელ IC-ში, ყველა მხტუნავი ხელუხლებელია, ტრანზისტორი VT2 ღიაა ყველა სიტყვით, გამომავალი არის ლოგიკური "0" დონეები. გარკვეული ბიტის დასაპროგრამებლად (რომლის მდგომარეობა უნდა შეიცვალოს "0"-დან "1"-მდე), სასურველი მისამართის სიგნალები გამოიყენება A0 ... A4 ხაზებზე და არჩეული მულტის საფუძველზე ჩნდება მაღალი დონე. - ემიტერი ტრანზისტორი. გარე წრე ადგენს ძაბვას დაახლოებით 8 ვ პროგრამირებადი ბიტის გამოსავალზე. ეს ძაბვა საკმარისია ზენერის დიოდის VD1 ჩასართავად 7 ვ ზღურბლით, რომელიც ჩართავს ტრანზისტორი VT1 და პირველი გამომავალი ჯემპერი დასაბუთებულია. შემდეგ მულტი-ემიტერის ტრანზისტორების მიწოდების ძაბვა იზრდება 12 ვ-მდე, შემდეგ კი ჯუმპერის ტერმინალებს შორის გამოიყენება დაახლოებით 5 ვ ძაბვა.მიღებული დენი ათბობს და დნება ჯემპერს.

ამ ტიპის PP-ის ROM-ში, მარცხი ზოგჯერ შესაძლებელია განადგურებული მხტუნავების განმეორებითი მოკლე ჩართვის გამო. უფსკრული ძალიან ვიწროა და ზოგჯერ „ცურავს“. საიმედოობის გასაუმჯობესებლად, დაპროგრამებული ROM-ები ინახება თერმოსტატში 24 საათის განმავლობაში 100 ° C ტემპერატურაზე და ჩაწერილი ინფორმაცია ხელახლა შემოწმდება. თუ მხტუნავების "ცურვა" გამოვლინდა (ზოგიერთი ჩაწერილი "1" გადაიქცა "0"-ად), მაშინ ისინი ხელახლა იწვებიან.

პრაქტიკაში ფართოდ გამოიყენება PROM-ები, რომლებიც იშლება ულტრაიისფერი დასხივებით. ისინი აგებულია MOS ტრანზისტორებზე, რომლებიც განსხვავდება ჩვეულებრივისგან იმით, რომ კარიბჭესა და ნახევარგამტარს (სუბსტრატს) შორის მოთავსებულია კიდევ ერთი "მცურავი" კარიბჭე, რომელიც ყველა მხრიდან მთლიანად იზოლირებულია სილიციუმის ოქსიდით. თუ ინფორმაციის დაწერისას დადებითი ძაბვა დაახლოებით 25 ვ და ხანგრძლივობა რამდენიმე ათეული მილიწამი გამოიყენება ასეთი ტრანზისტორების კარიბჭეებზე, მაშინ მისი გავლენით ელექტრონები, რომლებიც მოძრაობენ მთავარი კარიბჭისკენ, დასახლდებიან მცურავ კარიბჭეზე. წაკითხვისას ჭიშკარზე ედება დადებითი ძაბვა არაუმეტეს 5 ვ, თუ მცურავ ჭიშკარზე ელექტრონები არ არის, მაშინ წყარო-დრენაჟის არხი ხდება გამტარი, რაც შეესაბამება ლოგიკური ერთეულის შენახვას. თუ მცურავ კარიბჭეზე არის ელექტრონები, მაშინ ისინი იცავენ კარიბჭეს თავიანთი მუხტით და წყარო-დრენაჟის უფსკრული რჩება არაგამტარი, რაც შეესაბამება ლოგიკურ "0"-ს შენახვას. ვინაიდან მცურავი კარიბჭე გარშემორტყმულია საიზოლაციო ფენით, ელექტრონები, რომლებიც შედიან მცურავი კარიბჭის არეში, ვერ ტოვებენ მას. რეალურად ხდება ელექტრონების გაჟონვა, რაც იწვევს ინფორმაციის თანდათანობით დაკარგვას. ზოგიერთი ფირმის აზრით, ეს დრო მინიმუმ 10 წელია.

ინფორმაცია ულტრაიისფერი დასხივებით იშლება ერთდროულად რამდენიმე ათეული წუთის განმავლობაში ყველა ელემენტში. ამ შემთხვევაში ელექტრონები აღგზნებულია გამოსხივებით და მიედინება სუბსტრატში. შედეგად, ყველა მცურავი კარიბჭე თავისუფლდება ელექტრონებისაგან, ანუ ლოგიკური "1" იწერება ყველა ელემენტზე.

ეს PROM მოიცავს ფართოდ გამოყენებულ IS K573RF2 (RF4, RF5 და ა.შ.).

3.2 ოპერატიული მეხსიერება

შემთხვევითი წვდომის მეხსიერება ან შემთხვევითი წვდომის მეხსიერება (RAM) (მოდული 2 თავი 9.2) გამოიყენება დამუშავების დროს საჭირო ოპერატიული ინფორმაციის შესანახად. RAM, ROM-ისგან განსხვავებით, საშუალებას იძლევა: შეიყვანოთ ინფორმაცია მისამართებად უჯრედში (ოპერაცია Zp), და გამომავალი (ოპერაცია Th) ). RAM-სა და MP-ს შორის ინფორმაციის გაცვლის სხვადასხვა გზა არსებობს. შემთხვევითი წვდომის შესანახი მოწყობილობები ყველაზე ხშირად გამოიყენება, რაც საშუალებას აძლევს ნებისმიერ მისამართზე წვდომას შემთხვევითი თანმიმდევრობით. განასხვავებენ სტატიკურ და დინამიურ RAM-ს.

სტატიკური ოპერატიული მეხსიერება დანერგილია ფლიპ-ფლოპებზე პირდაპირი კავშირით, რომელსაც ელექტროენერგიის მიწოდებისას შეუძლია ინფორმაციის შენახვა განუსაზღვრელი ვადით დამატებითი საკონტროლო სიგნალების გარეშე.

ოპერატიული მეხსიერების უმეტესობა დაფუძნებულია MOS ტრანზისტორებზე და აქვს ე.წ. მატრიცული ორგანიზაცია. ოპერატიული მეხსიერების 256x1 ფუნქციური დიაგრამა 16x16 ტიპის მატრიცული ორგანიზებით ნაჩვენებია სურათზე (3-2). A0-A3 მისამართის ყველაზე ნაკლებად მნიშვნელოვანი ბიტების გაშიფვრის შემდეგ ჩნდება სიგნალი Xi, რომელიც აკავშირებს მატრიცის i-ე რიგს. მატრიცის სვეტი Yj შეირჩევა A4-A7 მისამართის მაღალი ბიტების დეკოდერის მიერ და მეხსიერების ელემენტი EPij უკავშირდება ინფორმაციის გამომავალ ან შემავალ წრეს SCH//Zp სიგნალის მნიშვნელობიდან გამომდინარე. როდესაც SCH//Zp=1, ინფორმაცია იკითხება მეხსიერებიდან; at Сч//Зп=0 - ჩაწერა მეხსიერებაში. ჩართვის სიგნალი VM (ჩიპის შერჩევა) ააქტიურებს ამ IC-ს. როდესაც VM სიგნალი გამორთულია, მატრიცა იზოლირებულია დეკოდერის და I/O ავტობუსის გამოსასვლელებისგან.

სტატიკური ოპერატიული მეხსიერება შეიძლება აშენდეს სხვადასხვა ტიპის ნახევარგამტარულ მოწყობილობებზე. MOS ტრანზისტორი სტატიკური მეხსიერების IC-ები ამჟამად ყველაზე გავრცელებულია. CMOS მეხსიერების ელემენტი შედგება 5 ტრანზისტორისაგან, რომელთაგან ოთხი (VT1-VT4) ქმნის ფლიპ-ფლოპს. ჩაწერისა და წაკითხვის ტრიგერი კონტროლდება გასაღებით - ტრანზისტორი VT5 (ნახ. 3-3).

3.3 მეხსიერების დაკავშირება მონაცემთა ავტობუსთან

ვინაიდან მონაცემთა ავტობუსი (SD) საერთოა მრავალი მოწყობილობისთვის, „კონფლიქტი“ გარდაუვალია, როდესაც ისინი ერთდროულად მუშაობენ. აუცილებელია, რომ დროის ყოველ მომენტში მხოლოდ ერთი მოწყობილობა იყოს დაკავშირებული SD-ზე - ინფორმაციის წყარო. შესაძლებელია ინფორმაციის რამდენიმე მიმღების დაკავშირება ერთდროულად. მნიშვნელოვანია მხოლოდ, რომ საინფორმაციო სიგნალების წყაროს გამომავალი სიმძლავრე საკმარისი იყოს რამდენიმე მიმღების დასაკავშირებლად. ნებისმიერი მოწყობილობის ოპერაციული შეერთება და გამომავალი გამორთვა ხორციელდება გამომავალი მიკროსქემის გამოყენებით, რომელსაც აქვს 3 შესაძლო მდგომარეობა: 1, 0 და „გამორთული“. ნებისმიერი TTL IC-ის გამომავალი შეიძლება გამარტივდეს, როგორც ორი ტრანზისტორი, რომლებიც დაკავშირებულია სერიაში (იხ. სურ. 3-4).

თუ ტრანზისტორი VT1 ღიაა და VT2 დახურულია, მაშინ გამომავალი არის მაღალი სიგნალის დონე ("1"). თუ პირიქით: VT2 ღიაა, VT1 დახურულია, მაშინ გამომავალი დაბალია (“0”). თუ ორივე ტრანზისტორი დახურულია ერთდროულად, მაშინ IC-ის გამომავალი გამორთულია ელექტრომომარაგებიდან და არ ახდენს გავლენას საერთო ავტობუსთან დაკავშირებული სხვა მოწყობილობების მუშაობაზე.

ნახ.3-4 სამ-სახელმწიფო გამომავალი

4. ინტერფეისის მოწყობილობები

ინტერფეისის მოწყობილობები (ID) გამოიყენება MPS-თან გარე მოწყობილობების დასაკავშირებლად. ისინი, როგორც წესი, დანერგილია როგორც ერთი ან მეტი SIS ან LSI.

PAGE \* MERGEFORMAT 3


ისევე როგორც სხვა ნამუშევრები, რომლებიც შეიძლება დაგაინტერესოთ

45328. რეფერენდუმი - ცნება, სამართლებრივი რეგულირების სახეები 25.75 კბ
რუსეთის ფედერაციის მოქალაქეების ნების პირდაპირი გამოხატვის ფორმა სახელმწიფო და ადგილობრივი მნიშვნელობის უმნიშვნელოვანეს საკითხებზე, რათა მიიღონ გადაწყვეტილებები რუსეთის ფედერაციის მოქალაქეების კენჭისყრით, რომლებსაც აქვთ რეფერენდუმში მონაწილეობის უფლება. რეფერენდუმის სახეები ტერიტორიის მიხედვით: 1 რუსულენოვანი რეფერენდუმი - ტარდება ფედერალური მნიშვნელობის საკითხებზე რუსეთის ფედერაციის პრეზიდენტის გადაწყვეტილებით; 2, რუსეთის ფედერაციის შემადგენელი ერთეულის რეფერენდუმი ტარდება რუსეთის ფედერაციის შესაბამისი შემადგენელი ერთეულის ან რუსეთის ფედერაციის ერთობლივი იურისდიქციისა და რუსეთის ფედერაციის შემადგენელი სუბიექტების იურისდიქციის საკითხებზე, თუ ეს საკითხები არ არის ...
45329. რუსეთის ფედერაციის პრეზიდენტის ფუნქციები 21 კბ
რუსეთის ფედერაციის მთავრობის თავმჯდომარის, რუსეთის ფედერაციის მთავრობის სხვა წევრების სახელმწიფო სათათბიროს თანხმობით დანიშვნა, მისი პოლიტიკის მიმართულება და გადაწყვეტილების მიღება რუსეთის ფედერაციის მთავრობის გადადგომის შესახებ. ფედერაცია; 2 რუსეთის ფედერაციის ცენტრალური ბანკის თავმჯდომარის კანდიდატის სახელმწიფო სათათბიროს წარდგენა; მის წინაშე დადგენილება რუსეთის ფედერაციის ცენტრალური ბანკის თავმჯდომარის თანამდებობიდან გადაყენების შესახებ; რუსეთის ფედერაციის საკონსტიტუციო სასამართლოს მოსამართლეთა თანამდებობაზე დასანიშნად კანდიდატთა ფედერაციის საბჭოს 3 წარდგენა ...
45330. რუსეთის ფედერაციის პრეზიდენტის არჩევისა და თანამდებობიდან გადაყენების პროცედურა 23.1 კბ
რუსეთის ფედერაციის პრეზიდენტის არჩევისა და თანამდებობიდან გადაყენების პროცედურა. რუსეთის ფედერაციის პრეზიდენტს ექვსი წლის ვადით ირჩევენ რუსეთის ფედერაციის მოქალაქეები საყოველთაო, თანაბარი და პირდაპირი ხმის საფუძველზე ფარული კენჭისყრით. რუსეთის ფედერაციის პრეზიდენტად შეიძლება აირჩეს რუსეთის ფედერაციის მოქალაქე, რომელიც არის არანაკლებ 35 წლის და მუდმივად ცხოვრობს რუსეთის ფედერაციაში მინიმუმ 10 წლის განმავლობაში, იგივე პირი არ შეიძლება ეკავოს რუსეთის ფედერაციის პრეზიდენტის პოსტს. ორზე მეტი ვადით ზედიზედ. პრეზიდენტის არჩევის პროცედურა...
45331. 22.83 კბ
ადამიანის უფლებათა კომისრის ინსტიტუტი რუსეთის ფედერაციაში რუსეთის ფედერაციაში, ადამიანის უფლებათა კომისარი რუსეთის ფედერაციაში პასუხისმგებელია მოქალაქეთა უფლებებისა და თავისუფლებების დაცვაზე და მათ დაცვაზე სახელმწიფო ხელისუფლების, ადგილობრივი თვითმმართველობის ორგანოებისა და თანამდებობის პირების მიერ. . თავისი კომპეტენციის ფარგლებში, ადამიანის უფლებათა კომისარი რუსეთის ფედერაციაში: 1 განიხილავს რუსეთის ფედერაციის მოქალაქეების და რუსეთის ფედერაციის ტერიტორიაზე მდებარე უცხო ქვეყნის მოქალაქეებისა და მოქალაქეობის არმქონე პირების საჩივრებს; 2 განიხილავს საჩივრებს ადგილობრივი თვითმმართველობის თანამდებობის პირების სახელმწიფო ორგანოების გადაწყვეტილებებზე ან ქმედებებზე ...
45332. რუსეთის ფედერაციის სახელმწიფო დუმა არის რუსეთის ფედერაციის ფედერალური ასამბლეის პალატა 26.28 კბ
ადგილობრივი თვითმმართველობის უფლებამოსილებები არის ფედერალური კანონმდებლობით, აგრეთვე რუსეთის ფედერაციის შემადგენელი ერთეულების მარეგულირებელი სამართლებრივი აქტებით და ადგილობრივი თვითმმართველობის ორგანოების სამართლებრივი აქტებით გათვალისწინებული უფლებები და მოვალეობები შესაბამისი ტერიტორიების მოსახლეობისთვის არჩეული და არჩეული მიერ. შესაბამის ტერიტორიაზე ადგილობრივი თვითმმართველობის ამოცანებისა და ფუნქციების განხორციელებასთან დაკავშირებული ადგილობრივი თვითმმართველობის სხვა ორგანოები. ადგილობრივი თვითმმართველობის უფლებამოსილებებს ახორციელებს როგორც უშუალოდ სხვა ტერიტორიების საქალაქო და სასოფლო დასახლებების მოსახლეობა ...
45333. ფედერაციის საბჭოს წევრისა და სახელმწიფო სათათბიროს დეპუტატის კონსტიტუციური და სამართლებრივი სტატუსი 25.69 კბ
ფედერაციის საბჭოს წევრისა და სახელმწიფო სათათბიროს დეპუტატის კონსტიტუციური და სამართლებრივი სტატუსი ფედერაციის საბჭოს წევრისა და სახელმწიფო სათათბიროს დეპუტატის კონსტიტუციური და სამართლებრივი სტატუსი განისაზღვრება რუსეთის ფედერაციის კონსტიტუციით, მუხ. ფედერაციის საბჭოს წევრისა და რუსეთის ფედერაციის ფედერალური ასამბლეის სახელმწიფო დუმის დეპუტატის სტატუსის შესახებ. სახელმწიფო სათათბიროს დეპუტატი არის ხალხის არჩეული წარმომადგენელი, რომელიც უფლებამოსილია განახორციელოს სახელმწიფო სათათბიროში საკანონმდებლო და სხვა უფლებამოსილებები, რომლებიც გათვალისწინებულია რუსეთის ფედერაციის კონსტიტუციით და ფედერალური კანონით. უფლებამოსილების ვადა...
45334. რუსეთის ფედერაციის შემადგენელი ერთეულების სახელმწიფო ხელისუფლების საკანონმდებლო (წარმომადგენლობითი) და აღმასრულებელი ორგანოების სისტემა. 20.8 კბ
რუსეთის ფედერაციის შემადგენელი ერთეულების სახელმწიფო ხელისუფლების საკანონმდებლო წარმომადგენლობითი და აღმასრულებელი ორგანოების სისტემას ადგენენ მათ დამოუკიდებლად, რუსეთის ფედერაციის კონსტიტუციური წესრიგის საფუძვლებისა და 06-ის ფედერალური კანონის შესაბამისად. ორგანიზების ზოგადი პრინციპების შესახებ. რუსეთის ფედერაციის შემადგენელი ერთეულების საკანონმდებლო წარმომადგენლობითი და აღმასრულებელი ორგანოები საკანონმდებლო წარმომადგენლობითი და აღმასრულებელი ორგანოების საქმიანობის ფორმირება რუსეთის ფედერაციის შემადგენელი ერთეულების სახელმწიფო ორგანოების მათი ...
45335. საკანონმდებლო პროცესი რუსეთის ფედერაციაში 25.93 კბ
ურბანული დასახლება შეიძლება მოიცავდეს აგრეთვე სასოფლო დასახლებებს, რომლებსაც არ აქვთ სოფლის დასახლების სტატუსი, რომლებშიც ადგილობრივ თვითმმართველობას ახორციელებს მოსახლეობა უშუალოდ ან არჩეული და ადგილობრივი თვითმმართველობის სხვა ორგანოების მეშვეობით. საქალაქო უბანი არის საქალაქო დასახლება, რომელიც არ არის მუნიციპალური რაიონის შემადგენლობაში და რომლის ადგილობრივი თვითმმართველობის ორგანოები ახორციელებენ კანონით დადგენილი დასახლების ადგილობრივი მნიშვნელობისა და მუნიციპალიტეტის ადგილობრივი მნიშვნელობის საკითხების გადაწყვეტის უფლებამოსილებას. ...
45336. ხელოვნური ინტელექტის სისტემების აგების მიდგომები 33 კბ
სტრუქტურული მიდგომა სტრუქტურული მიდგომა გულისხმობს ხელოვნური ინტელექტის აგების მცდელობებს ადამიანის ტვინის სტრუქტურის მოდელირებით. პერცეპტრონების მთავარი მოდელირებული სტრუქტურული ერთეული, როგორც ტვინის სხვა მოდელირების ვარიანტებში, არის ნეირონი. მოგვიანებით გაჩნდა სხვა მოდელები, რომლებსაც ჩვეულებრივ ნერვულ ქსელებს უწოდებენ. ეს მოდელები განსხვავდება ცალკეული ნეირონების სტრუქტურით, მათ შორის კავშირების ტოპოლოგიით და სასწავლო ალგორითმებით.

ამ წიგნის მიზანია ასწავლოს მკითხველს მიკროპროცესორული ტექნოლოგიის საფუძვლები. რადიოინჟინერიაში ცოდნის გარკვეული საწყისი დონე ნავარაუდევია. მე განვსაზღვრავ ამ დონეს, როგორც სპეციალისტს ან მოყვარულს, რომელიც კარგად იცნობს რადიო და პულსის ტექნოლოგიას. ამ წიგნის ფარგლებს სცილდება იმის ახსნა, თუ რა არის რეზისტორები, კონდენსატორები ან ტრანზისტორები. ვარაუდობენ, რომ მკითხველი იცნობს ამ და ანალოგური მოწყობილობების სქემებს, მაგრამ სურს გაიგოს რა არის მიკროპროცესორული მოწყობილობები და ისწავლოს როგორ შექმნას ისინი თავად. წიგნის დასაწყისში ვლინდება სიგნალის ციფრული წარმოდგენის ზოგადი პრინციპები, ვლინდება ისეთი ცნებები, როგორიცაა ლოგიკური ელემენტები, ციფრული სიგნალი და ციფრული ინფორმაციის შენახვისა და დამუშავების პრინციპები. იგი ასევე აღწერს ციფრული ტექნოლოგიის იმ ელემენტების მუშაობის პრინციპს, რომლებიც დაგვჭირდება მომავალში, როდესაც ვისწავლით მიკროპროცესორული სისტემის აგებას. ყველა ამ ელემენტის აღწერა წიგნში მოცემულია მხოლოდ იმდენად, რამდენადაც ეს აუცილებელია მიკროპროცესორული სისტემების აგების ძირითადი პრინციპების სწრაფად გასაგებად. თითოეული ელემენტის მუშაობის უფრო სრულყოფილი გაგებისთვის გირჩევთ მიმართოთ ჩემს საიტს სახელწოდებით "ციფრული მიკროსქემები და მიკროპროცესორები" http://www.mirmk.ru.

როგორც მიკროპროცესორული მოწყობილობის მაგალითი, ეს წიგნი იღებს ავტორის მიერ შემუშავებულ რეალურ დიზაინს - თანამგზავრული თეფშების პოზიციონერს. პოზიციონერი შექმნილია საყოფაცხოვრებო სატელიტური თეფშების მობრუნების კონტროლის ავტომატიზაციისთვის. მას შეუძლია დაიმახსოვროს 99-მდე პოზიცია (მიმართულებები სატელიტისკენ), შემდეგ კი ავტომატურად დააყენოს ანტენა რომელიმე ამ პოზიციაზე. ამისათვის თქვენ უბრალოდ უნდა აირჩიოთ ამ პოზიციის რაოდენობა დისტანციური მართვის გამოყენებით, ან მოწყობილობის წინა პანელზე არსებული ღილაკების გამოყენებით. პოზიციონერის სქემა და პროგრამა შეიმუშავა წიგნის ავტორმა. პროტოტიპი დამზადდა და გამოცდა უცხოური წარმოების სტანდარტული ბრენდირებული მბრუნავი მოწყობილობის (ძრავა, გადაცემათა კოლოფი, ლერწმის შეცვლა) გამოყენებით. კონტროლერი ეფუძნება AT 89C 2051 მიკროკონტროლერს Atmel-ისგან ( www.atmel.comან www.atmel.ru). ამ კუთხით მიკროპროცესორების შესწავლაც განხორციელდება AT 89C 2051 პროცესორის მაგალითით.ამჟამად Atmel გადავიდა უფრო თანამედროვე პროცესორებზე, როგორიცაა AVR. ამასთან, ამ პროცესორზე მიკროპროცესორული მოწყობილობების აგება, ჩემი აზრით, საკმაოდ გამართლებულია, რადგან მისი პარამეტრები შესანიშნავია ამ ამოცანისთვის, ხოლო AT 89C 2051 პროცესორის ფასი მნიშვნელოვნად დაბალია AVR ოჯახის ნებისმიერ პროცესორთან შედარებით. .

წიგნში დეტალურადაა განხილული პოზიციონერის, მისი თითოეული კვანძის სქემატური დიაგრამა. შემდეგ მოცემულია საკონტროლო პროგრამის სტრუქტურა. პროგრამის სრული ტექსტი მოცემულია დანართში (დისკეტი). ბოლო თავები აღწერს პროგრამირების ძირითად ტექნიკას კონკრეტული პროგრამის მოდულების მაგალითის გამოყენებით.

ავტორი იმედოვნებს, რომ ეს წიგნი სასარგებლო იქნება სპეციალისტებისა და რადიომოყვარულების ფართო სპექტრისთვის და მადლობელი იქნება წიგნზე ნებისმიერი კომენტარისა და შენიშვნისთვის. გთხოვთ, გამოაგზავნოთ ყველა კომენტარი მისამართზე ყირიმი, სიმფეროპოლი, ქ. რუსული, 194 ან ელექტრონული ფოსტით: [ელფოსტა დაცულია] ukr.net. აღსანიშნავია, რომ აქ გამოქვეყნებული ტექსტი წიგნის პირველივე მონახაზია. დაწერის დღიდან წიგნი სრულად დაიწერა, გამოიცა 2004 წელს. შემდეგ წიგნმა განიცადა საკმაოდ მნიშვნელოვანი ცვლილებები, გაუძლო ათამდე გადაბეჭდვას. შეგიძლიათ შეუკვეთოთ წიგნის უახლესი გამოცემა ქაღალდის სახით შეღავათიან ფასად ამ ვებ-გვერდის შესაბამის გვერდზე გადასვლით.

საგანმანათლებლო პროგრამა დამწყებთათვის

თავი 1. რა არის მიკროპროცესორი.

რა არის მიკროპროცესორი. და რით განსხვავდება მიკროკონტროლერისგან?

ზოგადად, პროცესორი კომპიუტერის ერთ-ერთი კომპონენტია. მიკროპროცესორის გამოგონებამდე (ანუ პროცესორი ერთ ჩიპზე) არსებობდა მთელი პროცესორის ერთეულები. დიდ კომპიუტერებში. საკითხის გასარკვევად, თქვენ უნდა გესმოდეთ რა არის კომპიუტერი. კომპიუტერი არის მოწყობილობა ინფორმაციის ავტომატური დამუშავებისთვის. უფრო მეტიც, კომპიუტერში არსებული ინფორმაცია წარმოდგენილია რიცხვების სახით. ნებისმიერი კომპიუტერული სისტემა შედგება შემდეგი ძირითადი ნაწილებისგან: პროცესორი, მეხსიერების ერთეული, I/O პორტები. ჩვენი ამოცანა არ არის ძველი ტიპის კომპიუტერების შესწავლა. მომავალში ჩვენ ყურადღებას გავამახვილებთ მიკროპროცესორებსა და მიკროკონტროლერებზე. Ისე:

ü მეხსიერება.ეს არის უჯრედების ნაკრები, რომელთაგან თითოეული ინახავს ერთ რიცხვს. უფრო მეტიც, ეს არ არის მთლად ის რიცხვი, რომელთანაც ჩვენ შეჩვეულები ვართ. ეს არის გამარტივებული კომპიუტერის ნომერი. ჩვეულებრივ, მეხსიერების თითოეულ უჯრედს შეუძლია შეინახოს რიცხვი, რომელიც იღებს მნიშვნელობებს ნულიდან 255-მდე. ამის შესახებ მეტი იქნება განხილული ქვემოთ.

ü I/O პორტები. ეს არის რამდენიმე მიკროსქემა, რომელთა დახმარებით მიკროპროცესორულ სისტემას შეუძლია კომუნიკაცია გარე სამყაროსთან. შეყვანის პორტების საშუალებით კომპიუტერული სისტემა იღებს ინფორმაციას გარედან, ხოლო გამომავალი პორტების მეშვეობით გამოსცემს თავისი მუშაობის შედეგებს და აკონტროლებს გარე მოწყობილობებს. მხოლოდ ამ იგივე I/O პორტების წყალობით, კომპიუტერთან არის დაკავშირებული მოწყობილობები, როგორიცაა კლავიატურა, მაუსი, დისკი, CD-ROM და ა.შ. იმ მკითხველს, ვინც კარგად იცნობს კომპიუტერებს, შეიძლება მოისმინა ტერმინები "პარალელური პორტი" (LPT) და "სერიული პორტი" (COM). ასე რომ, ამ შემთხვევაში ჩვენ ვსაუბრობთ სრულიად განსხვავებულ კონცეფციაზე. ისინი უბრალოდ მსგავსი ტერმინებია. კომპიუტერის პარალელური და, უფრო მეტიც, სერიული პორტები არის მთლიანი, საკმაოდ რთული სქემები, რომლებიც, თავის მხრივ, იმავენაირად კონტროლდება I/O პორტების დახმარებით. ასევე არ არის აუცილებელი ვიფიქროთ, რომ კლავიატურა და მაუსი იყენებს მხოლოდ შეყვანის პორტებს, ხოლო ეკრანი იყენებს გამომავალ პორტს. კომპიუტერული მოწყობილობების უმეტესობის გასაკონტროლებლად გამოიყენება მიკროპროცესორული სისტემის როგორც შეყვანის, ასევე გამომავალი პორტები. შეიძლება გაგიკვირდეთ, რომ გარე მოწყობილობებს ვუწოდებ როგორც მყარ დისკს, ასევე ფლოპი დისკს. იქ, კომპიუტერის შიგნით, კიდევ ბევრი მოწყობილობა იმალება, რომლებიც მიკროპროცესორის გარედან არიან, თუმცა ხშირად ისინი არა მხოლოდ კომპიუტერის შიგნით, არამედ პირდაპირ დედაპლატზე - კომპიუტერის მთავარ დაფაზეა განთავსებული.

ü ᲞᲠᲝᲪᲔᲡᲝᲠᲘ.პროცესორი არის ყველაზე მნიშვნელოვანი ნაწილი, მთელი სისტემის გული. იგი შექმნილია მოქმედებების სხვადასხვა თანმიმდევრობის შესასრულებლად მეხსიერებაში ნომრებით და მონაცემებით I/O პორტებში. და ეს ყველაფერი!

კომპიუტერული სისტემის სამივე ნაწილი ერთმანეთთან არის დაკავშირებული, ე.წ. მონაცემთა ავტობუსები. ეს ავტობუსები ატარებენ ციფრულ სიგნალებს პროცესორიდან მეხსიერების მოდულამდე და I/O პორტებამდე და უკან პროცესორამდე.

ბრინჯი. 1.

რისი გაკეთება შეუძლია პროცესორს ამ ციფრებთან? დიახ, რა შეგიძლიათ გააკეთოთ მათთან. მას შეუძლია წაიკითხოს ისინი მეხსიერების სხვადასხვა მდებარეობიდან, დაამატოთ, გამოკლდეს, შეადაროს, შემდეგ ჩაწეროს ისინი მეხსიერების ერთსა და იმავე ან სხვადასხვა ადგილას. მას ასევე შეუძლია შეასრულოს ლოგიკური (ლოგიკური) ოპერაციები რიცხვებით (დაწვრილებით აღვწერ რა არის ქვემოთ). უფრო მძლავრ პროცესორებს შეუძლიათ რიცხვების გამრავლება და გაყოფაც. ისე, და რამდენიმე სპეცოპერაცია, რომლებსაც აუცილებლად გავაანალიზებთ, როცა მიკროპროცესორის მუშაობას უფრო დეტალურად შევისწავლით.

I/O პორტებით, პროცესორი ასრულებს ბევრად ნაკლებ ოპერაციებს, ვიდრე მეხსიერების უჯრედებთან. ყოველივე ამის შემდეგ, შეყვანის პორტები არის მოწყობილობები, რომლებიც იღებენ ნებისმიერ ელექტრულ სიგნალს გარედან და პროცესორი კითხულობს მათ ყველა იგივე ნომრის სახით. და გამომავალი პორტები არის რამდენიმე მოწყობილობა, რომელსაც პროცესორს შეუძლია მიაწოდოს სხვადასხვა ნომრები. და ეს რიცხვები გადაიქცევა ელექტრულ სიგნალებად, რომლებიც აკონტროლებენ ნებისმიერ გარე მოწყობილობას.

ეს, პრინციპში, არის ყველაფერი, რისი გაკეთებაც პროცესორს შეუძლია. მაგრამ ეს საკმარისია ყველა იმ სასწაულის შესასრულებლად, რისი ხილვაც მიჩვეული ვართ კომპიუტერებიდან. გამოდის, რომ სამყაროში ყველაფერი ციფრებით არის აღწერილი. და ტექსტი, სურათი და ხმები, მათ შორის მუსიკა. მათემატიკოსებმა კარგად იმუშავეს. მათ მოახერხეს ყველა ამ პროცესის მათემატიკური მოდელების შემუშავება. უბრალოდ დათვალეთ უფრო სწრაფად! და თანამედროვე პროცესორებს შეუძლიათ ამის გაკეთება! რა თქმა უნდა, თანამედროვე პროცესორებს გაცილებით დიდი ინსტრუქციის ნაკრები აქვთ. მაგრამ, ძირითადად, ეს არის სპეციალიზებული ჯგუფის ბრძანებები, რომლებიც ანაცვლებენ ნებისმიერ ხშირად გამოყენებულ უფრო მარტივ კომპლექტს. ჩვენი წიგნი პერსონალური კომპიუტერებისთვის თანამედროვე მიკროპროცესორების შესწავლის ამოცანას არ აყენებს. ჩვენი ამოცანაა მცირე სპეციალიზებული მიკროპროცესორული მოწყობილობები. როგორიცაა, მაგალითად, რაიმე სახის სახიფათო ტაიმერი, სარეცხი მანქანის მართვის სისტემა ან სატელიტური თეფშების მართვის განყოფილება. მათ აქვთ საერთო სახელი: მიკროპროცესორული კონტროლერები. სწორედ აქ გავამახვილებთ ყურადღებას.

აბა, რა არის ეს მშვენიერი მოწყობილობა - მიკროპროცესორი. ის კითხულობს, ითვლის, წერს და აკეთებს ბევრ ჭკვიანურ რამეს! როგორ შეუძლია ამ ყველაფერს. როგორც ჩანს, ძალიან ჭკვიანი ჩიპი? სინამდვილეში, მიკროპროცესორი არის მხოლოდ ავტომატი, რომელიც ასრულებს მასში არსებულ ოპერაციებს პროგრამის მიხედვით. პროგრამა არის პროცესორის ბრძანებების თანმიმდევრობა, რომელიც იწერება იმავე მეხსიერებაში, იგივე რიცხვების სახით. თუმცა ზოგჯერ მეხსიერება იყოფა ორ ნაწილად: პროგრამის მეხსიერება და მონაცემთა მეხსიერება. პროცესორს აქვს მარტივი ალგორითმი. ჩართვის შემდეგ ან გადატვირთვის სიგნალის მოსვლისთანავე (გადატვირთვა), პროცესორი იწყებს წაკითხვას მეხსიერების არედან, რომელიც გამოყოფილია პროგრამების შესანახად, თავის მხრივ, რიცხვის მიხედვით. ყოველი ასეთი რიცხვი შიფრავს ბრძანებას. ბრძანება არის ერთ-ერთი მოქმედება, რომლის შესრულებაც მიკროპროცესორს შეუძლია. რიცხვს, რომლითაც არის დაშიფრული ბრძანება, ეწოდება opcode. პროცესორი კითხულობს ოპერაციის კოდს, ასრულებს ამ ოპერაციას. შემდეგ ის კითხულობს შემდეგ კოდს, კვლავ ახორციელებს მას. ასე რომ, ის თანმიმდევრულად კითხულობს ამ კოდებს და ახორციელებს მათ. ეს არის პროგრამის შესრულების პროცესი. და ვინ დაწერა ეს კოდები მეხსიერებაში? პროგრამისტი! პროგრამისტმა პირველად მოიფიქრა პროგრამა. შემდეგ მან ჩაწერა მეხსიერების ჩიპში. ჩიპი ჩავდე მიკროპროცესორულ სისტემაში და ჩავრთე. სისტემა მუშაობდა. აქ არის ჭკვიანი მანქანა თქვენთვის. ვულგარული მანქანა.

მიკროპროცესორული კონტროლერები იყენებენ ეგრეთ წოდებულ მეხსიერებას მხოლოდ წაკითხვისთვის (ROM) პროგრამების შესანახად. ინგლისურად ჟღერს როგორც ROM (მხოლოდ წაკითხვის მეხსიერება). მათ მუდმივი ეწოდებათ, რადგან იქ ინფორმაციის დაწერის შემდეგ ის იქ არ იცვლება. ჩაწერა არის სპეციალური პროცესი, რომელიც ხორციელდება სპეციალური მოწყობილობების - ROM პროგრამისტების დახმარებით. მათში ინფორმაცია ინახება ჩიპის გარკვეული უბნების დაწვით. ერთხელ ვიკითხე და დიდი ხანია ვიყენებ ამ ინფორმაციას. მიკროპროცესორული კონტროლერის პროგრამის შესანახად, ეს უბრალოდ ძალიან შესაფერისია. მიკროპროცესორს შეუძლია წაიკითხოს მხოლოდ ასეთი მეხსიერებიდან. იქ ვერაფერს წერს. თუ იქ ინფორმაციის დაწერას შეეცდება, არაფერი საშინელი არ მოხდება. მეხსიერება დარჩება ის, რაც იყო ჩაწერის მცდელობამდე. გარდა მუდმივი შენახვის მოწყობილობისა, სისტემას აუცილებლად უნდა ჰქონდეს ოპერატიული მეხსიერება, რომელიც დამზადებულია RAM ჩიპებზე. ეს არის შემთხვევითი წვდომის მეხსიერება (RAM). ინგლისურად RAM. პროცესორს შეუძლია დაწეროს ინფორმაცია ამ მეხსიერებაში და შემდეგ წაიკითხოს იგი. არცერთ პროგრამას არ შეუძლია მეხსიერების უჯრედების გარკვეული რაოდენობის გარეშე შეინახოს მრავალი შუალედური შედეგი და დამხმარე მნიშვნელობა. ამ მიზნებისათვის გამოიყენება ოპერატიული მეხსიერება.

რა არის მიკროკონტროლერები? ზოგჯერ ვკითხულობთ "AT 89C 2051 მიკროკონტროლერს". მიკროკონტროლერი შემდგომი ინტეგრაციის ბავშვია, ეს არის მთელი მიკროპროცესორული სისტემა ერთ ჩიპზე! ერთი ჩიპი შეიცავს მიკროპროცესორული სისტემის ყველა კომპონენტს: მეხსიერებას, შეყვანის/გამოსვლის პორტებს და თავად პროცესორს. გარდა ამისა, ხშირად არის გარე (პროცესორთან მიმართებაში) მოწყობილობები (ასეთ მოწყობილობებს ხშირად უწოდებენ "პერიფერიულს"): ტაიმერები, შეფერხების მოწყობილობები, შედარებითები და ა.შ. ამ ჯერ კიდევ გაუგებარი ტერმინების მნიშვნელობას მომდევნო თავებში შეიტყობთ. ზოგადად, არსებობს გარკვეული დაბნეულობა "მიკროპროცესორის" და "მიკროკონტროლერის" ცნებებთან. რასაც მე ახლა მიკროკონტროლერს ვუწოდებ, ზოგჯერ მიკროპროცესორსაც უწოდებენ. იმის გასაგებად, თუ რა არის სასწორზე, მიჰყევით მოწოდებული ინფორმაციის კონტექსტს.

ზემოაღნიშნული განმარტების მიხედვით, მიკროპროცესორული სისტემა არის მიკროპროცესორული ნაკრების ურთიერთმოქმედი LSI-ების ერთობლიობა (ზოგჯერ დამატებულია LSI-ებით სხვა კომპლექტებიდან), რომლებიც აწყობილია ერთ მთლიანობაში, ორგანიზებულ სისტემაში, ანუ გამოთვლითი ან კონტროლის სისტემა მიკროპროცესორთან ერთად. ინფორმაციის დამუშავების განყოფილება. ზოგადი სტრუქტურული სქემა. მიკროპროცესორული სისტემის ტიპიური სტრუქტურა ნაჩვენებია ნახ. 3. მოკლედ დავახასიათოთ მის შემადგენლობაში შემავალი მოდულის კვანძები, გარდა უკვე აღწერილი მიკროპროცესორისა.

საათის პულსის გენერატორი არის მართკუთხა იმპულსების თანმიმდევრობის წყარო, რომლის დახმარებითაც მოვლენები დროულად კონტროლდება. ის ადგენს ბრძანების ციკლს - დროის ინტერვალს, რომელიც საჭიროა მეხსიერებიდან ბრძანების ნიმუშის წასაკითხად და მის შესასრულებლად. ბრძანების ციკლი შედგება ელემენტარული მოქმედებების გარკვეული თანმიმდევრობისგან, რომელსაც ეწოდება მდგომარეობა (ციკლები). ზოგიერთ მიკროპროცესორს არ სჭირდება საათის გარე გენერატორი: ის უშუალოდ შედის მიკროპროცესორის მიკროპროცესორულ წრეში.

ძირითადი სისტემის მეხსიერება (მიკროპროცესორის გარე) შედგება ROM-ისა და RAM-ისგან.

მხოლოდ წაკითხული მეხსიერება (ROM) არის მოწყობილობა, რომელიც ინახავს პროგრამას (და, საჭიროების შემთხვევაში, მუდმივთა კომპლექტს). ROM-ის შიგთავსის წაშლა შეუძლებელია. იგი გამოიყენება როგორც მწარმოებლის მიერ წინასწარ შედგენილი პროგრამის მეხსიერება მისი მომხმარებლების მოთხოვნების შესაბამისად. ასეთ შემთხვევებში, ამბობენ, რომ პროგრამა ჩართულია მეხსიერების მოწყობილობაში. სხვა პროგრამის განსახორციელებლად, თქვენ უნდა გამოიყენოთ სხვა ROM ან მისი ნაწილი. ROM-დან შეგიძლიათ აირჩიოთ მხოლოდ იქ შენახული სიტყვები, მაგრამ არ შეგიძლიათ დაამატოთ ახალი, წაშალოთ და ჩაანაცვლოთ ჩაწერილი სიტყვები სხვებით. ეს ჰგავს დაბეჭდილ ობლიგაციების ანაზღაურების სქემას: თქვენ შეგიძლიათ მხოლოდ წაიკითხოთ ნომრები, მაგრამ არ შეგიძლიათ მათი შეცვლა ან ახლის დამატება.

გარდა ROM-ისა, ასევე გამოიყენება EPROM და EPROM.

პროგრამირებადი მხოლოდ წაკითხული მეხსიერება (PROM) განსხვავდება ROM-ისგან იმით, რომ მომხმარებელს შეუძლია დამოუკიდებლად დაპროგრამდეს ROM (შეიყვანოს პროგრამა მასში) სპეციალური მოწყობილობის - პროგრამისტის გამოყენებით, მაგრამ მხოლოდ ერთხელ (პროგრამის შეყვანის შემდეგ, შინაარსი მეხსიერების შეცვლა აღარ შეიძლება).

გადაპროგრამირებადი მხოლოდ წაკითხვის მეხსიერებას (RPROM), რომელსაც ასევე უწოდებენ წაშლილ ROM-ს, აქვს შემდეგი ფუნქცია: შენახული ინფორმაცია შეიძლება რამდენჯერმე წაიშალოს (ამით ის ნადგურდება). სხვა სიტყვებით რომ ვთქვათ, EPROM შეიძლება გადაპროგრამდეს პროგრამისტის გამოყენებით. ეს ხელს უწყობს აღმოჩენილი შეცდომების გამოსწორებას და საშუალებას გაძლევთ შეცვალოთ მეხსიერების შინაარსი.

შემთხვევითი წვდომის მეხსიერება (RAM), სხვაგვარად ცნობილი როგორც შემთხვევითი წვდომის მეხსიერება (RAM) ან შემთხვევითი წვდომის მეხსიერება (RAM), ემსახურება დასამუშავებელ მონაცემთა მეხსიერებას და გამოთვლების შედეგებს, ზოგიერთ მიკროპროცესორულ სისტემაში ასევე პროგრამებს, რომლებიც ხშირად იცვლება. მისი დამახასიათებელი თვისებაა ის, რომ მეხსიერების რომელიმე უჯრედზე წვდომისთვის საჭირო დრო არ არის დამოკიდებული ამ უჯრედის მისამართზე. ოპერატიული მეხსიერება იძლევა როგორც სიტყვების წერის, ასევე წაკითხვის საშუალებას. ამ შესანახ მოწყობილობასთან დაკავშირებით, მისაღებია ანალოგია დაფასთან, რომელზედაც აწერია რიცხვები ცარცით: მათი წაკითხვა ბევრჯერ შეიძლება განადგურების გარეშე და საჭიროების შემთხვევაში, წაშალეთ ნომერი და დაწეროთ ახალი ვაკანტურ ადგილას. უნდა გვახსოვდეს, რომ RAM-ში შემავალი ინფორმაცია ქრება, იშლება მიწოდების ძაბვის შეწყვეტის შემთხვევაში.

ინტერფეისს ეწოდება ინტერფეისის მოწყობილობა. ეს გამარტივებული განმარტებაა. უფრო მკაცრი ინტერპრეტაციით, ინტერფეისი გაგებულია, როგორც ელექტრული, მექანიკური და პროგრამული ხელსაწყოების ნაკრები, რომელიც საშუალებას გაძლევთ დააკავშიროთ სისტემის მოდულები ერთმანეთთან და პერიფერიულ მოწყობილობებთან. მისი კომპონენტებია კვანძებსა და პროგრამულ უზრუნველყოფას შორის მონაცემთა გაცვლის აპარატურა - პროტოკოლი, რომელიც აღწერს მონაცემთა გაცვლის დროს მოდულების ურთიერთქმედების პროცედურას. მიკროპროცესორული სისტემის ინტერფეისი ეხება მანქანების ინტერფეისებს. მიკროპროცესორულ სისტემაში სპეციალური ინტერფეისის LSI გამოიყენება პერიფერიული მოწყობილობების სისტემასთან დასაკავშირებლად (ნახ. 2-ში ისინი ნაჩვენებია როგორც შემავალი და გამომავალი ინტერფეისის მოდულები). ამ LSI-ებს ახასიათებთ მრავალფეროვნება, რომელიც ხორციელდება მათ მიერ შესრულებული ფუნქციების პროგრამულად შეცვლით.

უფრო მარტივ ამოცანებს წყვეტენ I/O პორტები - სქემები, რომლებიც შექმნილია (დაპროგრამებულია) მონაცემთა გაცვლისთვის კონკრეტულ პერიფერიულ მოწყობილობებთან: მონაცემების მიღება კლავიატურიდან ან წამკითხველიდან, მათი გადატანა ეკრანზე, ტელეტიპი და ა.შ.

პორტი არის საშუალო ინტეგრირებული წრე, რომელიც შეიცავს მისამართებად მრავალრეჟიმიან I/O ბუფერულ რეგისტრს (I/O) სამი მდგომარეობის გამომავალი სქემებით (ქვემოთ განხილულია RAM მიკროსქემის აღწერაში), საკონტროლო ლოგიკა და დამაკავშირებელი კონექტორი. I/O მოწყობილობები. პორტის გადაპროგრამირების შესაძლებლობები შეზღუდულია.

როდესაც მიკროპროცესორულ სისტემაში შემავალი პერიფერიული მოწყობილობები რთულია, ასრულებენ მრავალრიცხოვან და მრავალფეროვან ოპერაციებს, ინტერფეისისთვის გამოიყენება რთული ინტერფეისი, რომელსაც ეწოდება პერიფერიული პროგრამირებადი ადაპტერი. იგი შეიცავს ჩაშენებული პორტებისა და სხვა რეგისტრების კომპლექტს, რათა ხელი შეუწყოს პროგრამირებას და დროებს. რამდენიმე მარტივი I/O მოწყობილობა შეიძლება იყოს დაკავშირებული ერთ პერიფერიულ პროგრამირებად ადაპტერთან. ასეთი ინტერფეისი ითვლება ზოგადი დანიშნულების ინტერფეისად, რადგან ის შეიძლება გაერთიანდეს თითქმის ყველა ხელმისაწვდომ პერიფერიულ მოწყობილობასთან.

ბევრ მიკროპროცესორულ სისტემას და მიკროკომპიუტერს ახასიათებს შეუსაბამობა მიკროპროცესორის შიგნით ინფორმაციის დამუშავების შედარებით მაღალ სიჩქარესა და ინტერფეისის საშუალებით მოდულებს შორის მონაცემთა გაცვლის დაბალ სიჩქარეს შორის.

შეყვანის მოწყობილობა შეაქვს დასამუშავებელ მონაცემებს და ბრძანებებს სისტემაში. გამომავალი მოწყობილობა გარდაქმნის გამომავალ მონაცემებს (ინფორმაციის დამუშავების შედეგს) მომხმარებლის აღქმისთვის ან შესანახად მოსახერხებელ ფორმად. შეყვანის-გამომავალი მოწყობილობები არის ბლოკები, რომლებიც კითხულობენ ინფორმაციას დარტყმული ლენტიდან და მაგნიტური ლენტიდან (ან მათზე ჩაწერით), კასეტა ჩამწერებიდან, ფლოპი დისკებიდან, კლავიატურებიდან, დისპლეებიდან, ანალოგური ციფრული და ციფრული ანალოგური გადამყვანებიდან, პლოტერებიდან, ტელეტიპებიდან და ა.შ. .

შემდეგი, ჩვენი ყურადღების საგანი იქნება სისტემის საბურავები. ავტობუსი არის გადამცემი ხაზების ჯგუფი, რომელიც გამოიყენება კონკრეტული ფუნქციის შესასრულებლად (თითო ხაზი თითოეული გადაცემული ბიტისთვის). მიკროპროცესორული სისტემის სტრუქტურის თავისებურება მდგომარეობს მის შემადგენელ მოდულებს შორის კავშირების ხერხემლის ორგანიზაციაში. იგი ხორციელდება სამი საბურავის გამოყენებით. მათი მეშვეობით ხდება სისტემის მუშაობისთვის საჭირო ყველა ინფორმაცია და სიგნალი. ეს ავტობუსები აკავშირებს მიკროპროცესორს გარე მეხსიერებასთან (RAM, ROM) და შეყვან-გამომავალი ინტერფეისებით, რის შედეგადაც შესაძლებელია მიკროპროცესორსა და სისტემის სხვა მოდულებს შორის მონაცემების გაცვლა, ასევე საკონტროლო სიგნალების გადაცემა.

განვიხილოთ ნახ. 3.

მონაცემთა ავტობუსი. ეს არის ორმხრივი ავტობუსი: მონაცემები შეიძლება გაიგზავნოს მისი მეშვეობით ან მიკროპროცესორში ან მისგან (ნახ. 3, მონაცემთა ავტობუსის ეს მახასიათებელი ხაზგასმულია ისრით ორი წერტილით, რომელთაგან ერთი მიმართულია მიკროპროცესორისკენ, ხოლო მეორე. მისგან შორს). კიდევ ერთხელ უნდა აღინიშნოს, რომ შეუძლებელია მონაცემების ერთდროულად გადაცემა ორივე მიმართულებით. ეს პროცედურები დროში გამოყოფილია დროის მულტიპლექსირების გამოყენების შედეგად.

მისამართის ავტობუსი (ან მისამართების ავტობუსი). მისი მეშვეობით ინფორმაციის გადაცემა ხდება მხოლოდ ერთი მიმართულებით - მიკროპროცესორიდან მეხსიერების ან I/O მოდულებისკენ.

საკონტროლო ავტობუსი. ის ემსახურება სიგნალების გადაცემას, რომლებიც განსაზღვრავენ ყველა სისტემის მოდულის და მიკროპროცესორის შიდა კომპონენტების ურთიერთქმედებას, მუშაობის სინქრონიზაციას. საკონტროლო ავტობუსის ხაზების ერთი ნაწილი გამოიყენება მიკროპროცესორიდან გამომავალი სიგნალების გადასაცემად (ნახ. 3-ზე ეს პირობითად ნაჩვენებია მარჯვნივ მიმართული ისრით), ხოლო მიკროპროცესორზე სიგნალები გადაეცემა ხაზების მეორე ნაწილის გასწვრივ ( 3-ში - ისარი მარჯვნივ მიმართული წერტილით).მარცხნივ).

ავტობუსის სტრუქტურის უპირატესობაა ახალი მოდულების მიკროპროცესორულ სისტემასთან დაკავშირების შესაძლებლობა, მაგალითად, ოპერატიული მეხსიერების და ROM-ის რამდენიმე ბლოკი მეხსიერების საჭირო სიმძლავრის მისაღებად.