Bài giảng Vi xử lý: Phần 1 - Đại học Công nghiệp TP. HCM
lượt xem 25
download
(NB) Phần 1 tập bài giảng Vi xử lý có cấu trúc gồm 4 bài giảng cung cấp cho người học các nội dung: Giới thiệu chung về hệ vi xử lí, giới thiệu chung về vi điều khiển PIC, giới thiệu phần cứng của PIC 16F84 và PIC 16F877A, tập lệnh của PIC 16F877A, vào ra - Hoạt động của bộ định thời, lập trình vi điều khiển PIC 16F84 và PIC 16F877A. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Vi xử lý: Phần 1 - Đại học Công nghiệp TP. HCM
- Trường Đại học Công nghiệp Tp. Hồ Chí Minh Khoa Công nghệ Điện tử Bộ môn Điện tử Công nghiệp Bài giảng Vi xử lý Lưu hành nội bộ
- 2 Mục lục Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi điều khiển PIC Chương 2: Giới thiệu phần cứng của PIC 16F84 và PIC 16F877A Chương 3: Tập lệnh của PIC 16F877A Chương 4: Vào ra. Hoạt động của bộ định thời . Lập trình vi điều khiển PIC 16F84 và PIC 16F877A. Chương 5: Truyền thông nối tiếp USART Chương 6: Ngắt Chương 7: Bộ chuyển đổi tương tự sang số (ADC). Chương 8: Bộ nhớ dữ liệu EEPROM, PWM, SPI/I2C. Chương 9: Thiết kế hệ vi xử lí và hệ phát triển vi điều khiển.
- 3 Bài giảng số 1: Giới thiệu chung về hệ vi xử lí . Giới thiệu chung về vi điều khiển PIC ( Số tiết: 5) I. Ổn định lớp: ……………………. II. Kiểm tra bài cũ: ……………………………………………………………………………………….. ……………………………………………………………………………………….. ……………………………………………………………………………………….. III. Tên bài giảng: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi điều khiển PIC III.1. Mục tiêu: -Giới thiệu hệ đếm. Lịch sử phát triển của các bộ vi xử lí. Cấu trúc và chức năng hoạt động của hệ vi xử lí. Chức năng và các thành phần bên trong của hệ vi xử lí. Giới thiệu vi điều khiển. Các họ vi xử lí thong dụng. -Giới thiệu vi điều khiển PIC: bộ nhớ chương trình, xung đồng hồ vi điều khiển, hệ thống vi điều khiển. Đặc tính của vi điều khiển. Các loại vi điều khiển. Sử dụng vi điều khiển: phần cứng vi điều khiển và lập trình vi điều khiển. III.2. Đồ dung và phương tiện dạy học: -Phấn trắng, khăn, bảng, bút long, micro có dây(hay không dây), máy tính, và đèn chiếu (hay máy chiếu). III.3. Giáo trình và tài liệu tham khảo: Giáo trình Vi xử lí của trường Đại học công nghiệp Tp. HCM. D.W. Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006. Trương Trác, Chip đơn 16C84 và ứng dụng của chúng. Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp. HCM, 2003. Tài liệu về vi điều khiển PIC của bọ môn Điện tử công nghiệp. Website: http://www.microchip.com/ http://www.alldatasheet.com/ Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, Tab Electronics, McGrawHill, 2008(Ebook). Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992. III.4.Nội dung bài giảng: Nội dung chi tiết : xem bài giảng chi tiết. Phương pháp giảng dạy: thuyết trình, nêu vấn đề và đàm thoại trao đổi với sinh viên. Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi điều khiển PIC. 1.1. Hệ nhị phân, hệ thập phân và hệ thập lục phân. Hệ nhị phân dung cơ số 2, dung hai số 0 và 1 để biểu diễn. Thí dụ: 01001010=0x27+1x26+0x25+0x24+1x23+0x22+1x21+0x20=64+8+2=74 Hệ thập phân, cơ số là 10 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 để biểu diễn. Thí dụ: 125=1x102+2x101+5x100=100+20+5. Hệ thập lục phân, cơ số là 16 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Thí dụ: 32H=3x161+2x160=48+2=50.
- 4 Bảng chuyển đổi giữa số nhị phân, thập phân và thập lục phân: Hệ nhị phân (8 chữ số) Hệ thập phân (3 chữ số) Hệ thập lục phân (2 chữ số) 00000000 000 00h 00000001 001 01h 00000010 002 02h 00000011 003 03h 00000100 004 04h 00000101 005 05h 00000110 006 06h 00000111 007 07h 00001000 008 08h 00001001 009 09h 00001010 010 0Ah 00001011 011 0Bh 00001100 012 0Ch 00001101 013 0Dh 00001110 014 0Eh 00001111 015 0Fh 1.2. Lịch sử phát triển của kỹ thuật vi xử lí. 1.2.1.Hoï vi maïch soá vaø coâng ngheä : IC döïa theo soá transistor hoaëc caùc coång thöôøng ñöôïc chia laøm : -SSI : tích hôïp côõ nhoû -MSI: tích hôïp côõ trung bình -LSI: tích hôïp côõ lôùn -VLSI: tích hôïp côõ raát lôùn -ULSI: tích hôïp côõ cöïc lôùn Ví duï : MSI nhö counter, multiplexer,… LSI nhö caùc vi xöû lyù 8 bit : 8085, Z80… VLSI nhö caùc vi xöû lyù 16 bit , 32 bit: 80386 Giôùi thieäu coâng ngheä saûn xuaát chip : Veà coâng ngheä coù caùc coâng ngheä cheá taïo vi maïch sau : MOS : - NMOS ⇒ HMOS - PMOS - CMOS⇒ HCMOS Vôùi H : high-performance TTL, IIL (integrated injection logic) thuoäc Bipolar Trong ñoù coâng ngheä MOS thöôøng ñöôïc öa chuoäng do tích hôïp ñöôïc nhieàu, tieát kieäm naêng löôïng…
- 5 1.2.2. TÖØ MAÙY TÍNH LÔÙN ÑEÁN MAÙY VI TÍNH: a.Maùy tính lôùn : Laø loaïi maùy tính ñöôïc thieát keá ñeå giaûi caùc baøi toaùn lôùn vôùi toác ñoä raát nhanh -Noù laøm vieäc vôùi soá lieäu coù ñoä daøi töø 64 bit hoaëc hôn vaø ñöôïc trang bò boä nhôù raát lôùn, vì vaäy kích thöôùc lôùn. -Chuùng thöôøng ñöôïc duøng ñeå ñieàu khieån caùc heä thoáng thieát bò duøng trong quaân söï hoaëc caùc heä thoáng maùy moùc cuûa chöông trình nghieân cöùu vuõ truï, ñeå xöû lyù thoâng tin trong ngaønh ngaân haøng, vv… Ví duï : IBM 4381, Honeywell DSP8 Loaïi maïnh nhaát trong caùc maùy tính lôùn goïi laø sieâu maùy tính (supercomputer). Ví duï : Y-MP/832 cuûa Gray. b.Maùy tính con : Laø daïng thu nhoû veà kích thöôùc cuõng nhö tính naêng cuûa maùy tính lôùn. - Laøm vieäc vôùi döõ lieäu coù ñoä daøi döõ lieäu 32 bit vôùi toác ñoä chaäm hôn vaø boä nhôù haïn cheá - Maùy tính con thöôøng duøng cho caùc tính toaùn khoa hoïc kyõ thuaät, gia coâng döõ lieäu qui moâ nhoû hay ñeå ñieàu khieån quaù trình coâng ngheä. Ví duï : Vax 6360 cuûa DEC, MV/8000II cuûa Data general c.Maùy vi tính : Maùy vi tính laø maùy thoâng duïng hieän nay. Moät maùy vi tính coù theå laø 1 boä vi ñieàu khieån (micro controller) hoaëc laø moät voû vi maïch (one-chip microcomputer). Ví duï : vi ñieàu khieån 68HC11 cuûa Motorola, MCS-8051 -Coù khaû naêng laøm vieäc vôùi ñoä daøi döõ lieäu laø 4, 8, 16, 32, 64 bit… -CPU cuûa maùy ñeàu ñöôïc cheá taïo baèng coâng ngheä maïch vi ñieän töû vôùi möùc ñoä toå hôïp lôùn VLSI. -Treân thò tröôøng hieän nay coù caùc hoï vi xöû lyù noåi baät nhö : Intel duøng vi xöû lyù 80x86 : 8086 (16 bit) 8088( 8bit) 80286 (16bit) 80386(32 bit) 80486(32 bit) 80586(32 bit) Motorola duøng vi xöû lyù 680x0 Zilog : Z80 (8bit), Z8000 (16 bit) 1.2.3. Lòch söû phaùt trieån cuûa caùc boä vi xöû lyù : a.Theá heä 1 : (1971-1973) -Vi xöû lyù Intel 4004 (4 bit) duøng trong maùy tính xaùch tay. Sau ñoù xuaát hieän 4040 (4 bit) Æ 8008 (8bit) Ñaëc ñieåm : -Ñoä daøi töø thöôøng laø 4 bit. -Coâng ngheä cheá taïo PMOS vôùi ñaëc ñieåm maät ñoä phaàn töû nhoû, toác ñoä thaáp, giaù reû vaø chæ coù khaû naêng ñöa ra doøng taûi nhoû. -Toác ñoä thöïc hieän leänh laø 10-60 micro-sec/leänh vôùi taàn soá ñoàng hoà (xung clock)fclk= 0,1-0,8 Mhz -Taäp leänh ñôn giaûn vaø phaûi caàn 1 soá maïch phuï trôï ñeå taïo neân 1 heä vi xöû lyù hoaøn chænh b.Theá heä 2 : (1974-1977) Z80 cuûa haõng Zilog (8 bit)
- 6 6800 cuûa haõng Motorola (8bit) 6502 cuûa haõng Mos technology (8bit) 8080 vaø 8085 cuûa haõng Intel -Coâng ngheä cheá taïo laø NMOS (maät ñoä tích hôïp lôùn hoaëc CMOS (tieát kieäm ñieän naêng tieâu thuï) -Taàn soá xung clock töø 1-5 Mhz vaø toác ñoä thöïc hieän leänh laø töù 1-8 microsec/leänh c.Theá heä 3 : (1978-1982) Vi xöû lyù Intel 8086, 8088, 80186, 80286, (16 bit), MP 68000/68010 cuûa Motorola (16 bit) Ñaây laø boä vi xöû lyù duøng trong maùy tính IBM PC, PC/XT, PC/AT vaø caùc maùy Macintosh cuûa haõng Apple. -Taàn soá xung clock töø 5-10 Mhz, toác ñoä thöïc hieän leänh laø 0,1-1 microsec/leänh -Coâng ngheä cheá taïo laø HMOS d.Theá heä 4 : (1983-?) -Caùc boä vi xöû lyù ñaïi dieän trong theá heä naøy laø caùc vi xöû kyù 32 bit cuûa Intel 80386, 80486, vaø 32 bit Pentium 80586, MP 32 bit 68020/68030/68040.68060 cuûa Motorola. Ñaêc ñieåm : -Bus ñòa chæ ñeàu laø 32 bit (phaân bieät 4GB boä nhôù) vaø coù khaû naêng laøm vieäc boä nhôù aûo -Aùp duïng cô cheá xöû lyù xen keû lieân tuïc doøng maõ leänh (pipe line), boä nhôù cache(boä nhôù aån), boä nhôù aûo. Caùc boä vi xöû lyù naøy ñeàu coù boä quaûn lyù boä nhôù (MMU) vaø caû boä ñoàng xöû lyù toaùn hoïc. Beân caïnh caùc boä vi xöû lyù ñöôïc duøng ñeå xaây döïng maùy tính vôùi taäp leänh ñaàu ñuû (CISC-complete instruction set computer), ngöôøi ta coøn cheá taïo ra caùc boä vi xöû lyù caûi tieán duøng cho maùy tính vôùi taäp leänh ruùt goïn (RISC- reduced instruction set computer). Xem baûng : caùc boä vi xöû lyù 16/32 bit cuûa Intel, Motorola. e. Maùy tính duøng boä vi xöû lyù Pentium II, PIII, PIV: -Ñoä daøi döõ lieäu 32-64 bit - Toác ñoä 1.8 Ghz-4.0 Ghz Caùc boä vi xöû lyù 16 bit cuûa Intel Caùc boä vi xöû lyù 32 bit cuûa Intel Caùc boä vi xöû lyù 16/32 bit cuûa Motorola Töø thaäp nieân 1990 trôû laïi ñaây 1990 Microsoft WIndows 3.0 ra ñôøi Motorola 68040 ñöôïc trieån khai. 1991 Apple vaø IBM hôïp taùc ñeå khaûo saùt RISC 1992 Microsoft WIndows 3.1 ñaõ trôû thaønh chuaån cho caùc PC. 1993 Intel Pentium (80586) ra ñôøi, coâng ngheä MMX ñöôïc cung caáp sau. 1995 Microsoft Indows 95 1995 Intel Pentium pro (P6) 1997 Intel Pentium II 1998 Intel Pentium II Xeon 1999 Intel Pentium III 2001Intel Pentium IV
- 7 1.3. Cấu trúc và hoạt động của hệ vi xử lí. 1.3.1. Sô ñoà khoái SÔ ÑOÀ KHOÁI MOÄT HEÄ VI XÖÛ LYÙ CÔ BAÛN Address bus Data bus T Thieátbò vaøo CPU Boä nhôù Vaøo ra I/O Thieát bò ra Control bus Hình 1.1 :Sô ñoà khoái cuûa heä vi xöû lyù 1.3.2. Nguyeân lyù hoaït ñoäng: -CPU (central processing unit) ñôn vò xöû lyù trung taâm. MP (mocroprocessor) : Ñaây laø boä naõo cuûa maùy tính, ñieàu khieån toaøn boä hoaït ñoäng cuûa heä. MP seõ laáy leänh, phaân tích vaø thi haønh leänh. -Boä nhôù : (memory) laø nôi löu tröõ döõ lieäu vaø chöông trình caàn cho quaù trình thöïc hieän leänh. Boä nhôù trong : rom, ram. Boä nhôù ngoaøi : baêng töø, ñóa töø -Vaøo ra (input/output) : laø maïch giao tieáp giöõa CPU vôùi thieát bò vaøo (baøn phím, chuoät), thieát bò ra(maøn hình, maùy in) -Ba boä phaän naøy ñöôïc lieân laïc vôùi nhau thoâng qua bus heä thoáng (system bus). Bus heä thoáng goàm coù : +Bus ñòa chæ : (address bus) cho pheùp xaùc ñònh ñòa chæ cuûa oâ nhôù hoaëc ngoaïi vi caàn truy xuaát (ñoïc /ghi). Bus ñòa chæ coù theå laø 16, 20, 24 bit… +Bus döõ lieäu (data bus) : cho pheùp trao ñoåi thoâng tin giöõa Cpu vaø boä nhôù hay ngoaïi vi. Bus döõ lieäu coù theå laø 8, 16, 32 bit… +Bus ñieàu khieån (control bus) :laø caùc ñöôøng tín hieäu do CPU ñöa ra ñeå ñieàu khieån boä nhôù hay ngoaïi vi hoaëc laø tín hieäu ñöa vaøo CPU. Ví duï : RD (read-ñoïc ), WR (write-ghi) , INTR (interrupt-ngaét) Bus ñòa chæ chæ coù 1 chieàu töø CPU ñöa ra, bus döõ lieäu coù tính chaát 2 chieàu (vaøo/ra), bus ñieàu khieån chæ coù 1 chieàu vaøo, 1 chieàu ra. 1.4. Chức năng của các thành phần trong hệ vi xử lí. 1.4.1. Bộ xử lí CPU. 1.4.1.1.Nhieäm vuï cuûa CPU : -Ñieàu haønh hoaït ñoäng cuûa heä thoáng theo yù ñònh cuûa ngöôøi söû duïng. –Thi haønh chöông trình theo voøng kín goïi laø chu kì laáy leänh.
- 8 Thi haønh Laáy leänh leänh Chu kyø leänh Hình 1.2: Nhieäm vuï cuûa CPU 1.4.1.2.Caáu truùc CPU : Caùc thaønh phaàn chính cuûa CPU goàm coù : . Caùc thaønh phaàn löu tröõ: caùc thanh ghi, caùc côø. . Caùc thaønh phaàn thöïc thi (xöû lyù) : ALU thöïc hieän caùc tính toaùn soá hoïc , logic, dòch/xoay (caùc) bit. .Caùc thaønh phaàn chuyeån [tín hieäu]: bus . Caùc thaønh phaàn ñieàu khieån : Ñôn vò ñieàu khieån. CPU IR PC Boä ñieàu khieån CU Ñôn vò soá hoïc logic ALU Caùc thanh ghi Hình 1.3 Caáu truùc beân trong cuûa CPU CPU (central processing unit) : ñôn vò xöû lyù trung taâm ALU (arithmetic logic unit) : ñôn vò soá hoïc logic Register : thanh ghi CU : control unit, ñôn vò ñieàu khieån +ALU : thöïc hieän caùc pheùp tính soá hoïc vaø logic bao goàm +, -, *, /, taêng , giaûm, and, or, not, xor, dòch , quay, vv… ALU coù hai ngoõ vaøo vaø 1 ngoõ ra. Hai ngoõ vaøo laáy döõ lieäu töø bus noäi caàn thieát ñeå thöïc hieän pheùp toaùn vaø 1 ngoõ ra traû keát quaû thöïc hieän pheùp toaùn veà bus noäi. Ñeå traùnh döõ lieäu choàng nhau ôû bus noäi, ôø hai ngoõ vaøo cuûa ALU coù hai thanh ghi taïm, coù chöùc naêng caøi döõ lieäu tröôùc khi ALU thöïc hieän pheùp toaùn.
- 9 IN 1 IN 2 ALU OUT Hình 1.4 : ALU +Thanh ghi : laø caùc oâ nhôù coù teân toác ñoä raát cao naèm beân trong CPU. Soá thanh ghi beân trong CPU laø raát ít. Moät soá thanh ghi ñaõ ñöôïc ñònh saün chöùc naêng, moät soá thanh ghi khaùc laø thanh ghi ña duïng. -Thanh ghi PC -Thanh ghi tích luõy A -Thanh ghi côø F -Thanh ghi leänh IR -Thanh ghi ñòa chæ boä nhôù MAR -Thanh ghi ña duïng -Thanh ghi con troû stack SP +Boä ñieàu khieån : - Ñieàu khieån söï hoaït ñoäng cuûa caùc khoái khaùc trong CPU ñoàng boä vôùi nhau. - Xuaát caùc tín hieäu ñieàu khieån ñoïc ghi boä nhôù vaø beân ngoaøi theo 1 trình töï nhaát ñònh ñeå ñaûm baûo cho vieäc ñoïc ghi boä nhôù ñöôïc thöïc hieän ñuùng 1.4.1.3. Thöïc hieän leänh : a.Laáy leänh töø boä nhôù vaøo thanh ghi leänh IR (instruction register) b.Thay ñoåi thanh ghi PC (program counter: boä ñeám chöông trình) ñeå chuyeån ñeán leänh keá tieáp (thanh ghi PC luoân giöõ ñòa chæ cuûa leänh keá tieáp) c.Xaùc ñònh kieåu leänh vöøa laáy ra d.Xaùc ñònh kieåu döõ lieäu maø leänh yeâu caàu vaø xaùc ñònh vò trí döõ lieäu trong boä nhôù. e.Neáu leänh caàn döõ lieäu trong boä nhôù, naïp noù vaøo thanh ghi cuûa CPU f.Thöïc hieän leänh g.Löu keát quaû ôû nôi thích hôïp h.Trôû veà böôùc 1 ñeå thöïc hieän leänh keá 1.4.1.4.Daïng leänh : Caùc vuøng trong leänh : -Vuøng maõ leänh : cho bieát taùc vuï naøo seõ ñöôïc thöïc hieän. - Vuøng ñòa chæ : chæ ñòa chæ boä nhôù hoaëc thanh ghi cuûa CPU - Vuøng caùch ñònh ñòa chæ : chæ caùch xaùc ñònh toaùn haïng hoaëc ñòa chæ thaät. 1.4.1.5. Caùc caùch ñònh ñòa chæ : -Caùch ñònh ñòa chæ hieåu ngaàm. - Caùch ñònh ñòa chæ töùc thôøi.
- 10 - Caùch ñònh ñòa chæ thanh ghi. - Caùch ñònh ñòa chæ giaùn tieáp qua thanh ghi. - Caùch ñònh ñòa chæ tröïc tieáp. - Caùch ñònh ñòa chæ giaùn tieáp. - Caùch ñònh ñòa chæ töông ñoái. 1.4.2. Bộ nhớ Ñòa chæ 0 3A oâ nhôù 1 0F 2 5 n-1 Hình 1.5: Boä nhôù a.Bit : 0/1 bieåu dieãn hai traïng thaùi , laø ñôn vò cô baûn cuûa boä nhôù. b.Ñònh vò boä nhôù : (memory addressing) Boä nhôù seû ñöôïc ñaùnh soá baét ñaàu töø 0 cho tôùi n-1, vôùi n laø soá oâ nhôù trong boä nhôù. Taát caû caùc oâ nhôù ñeàu coù soá löôïng bit nhö nhau, neáu 1 oâ nhôù coù k bit thì noù coù theå coù töø 1Æ 2k toå hôïp bit khaùc nhau Ví duï : vôùi boä nhôù 96 bit ta coù 3 kieåu toå chöùc boä nhôù nhö sau : 12x8 bit, 8x12 bit, 6x16 bit Thöôøng 1 oâ nhôù coù 8 bit=1byte. Neáu boä nhôù coù m ñöôøng ñòa chæ thì seõ coù 2m byte (oâ nhôù) Ví duï : boä nhôù coù 10 bit ñòa chæ Æ dung löôïng boä nhôù laø 210 byte=1KB boä nhôù coù 11 bit ñòa chæ Æ dung löôïng boä nhôù laø 211 byte=2KB boä nhôù coù 12 bit ñòa chæ Æ dung löôïng boä nhôù laø 212 byte=4KB Ví duï : EPROM 2716 2732 2764 2KB 4KB 8KB SRAM 6116 6264 2KB 8KB c. Boä nhôù chính : ROM (read only memory): boä nhôù chæ ñoïc RAM(random access memory) : boä nhôù ñoïc ghi ñöôïc Boä nhôù ngoaøi : baêng töø, ñóa töø (ñóa meàm, ñóa cöùng) *Chöùc naêng boä nhôù : -Coù nhieäm vuï löu tröõ thoâng tin goàm coù : +Chöông trình :- khôûi ñoäng -giao tieáp cô baûn BIOS -heä ñieàu haønh (heä thoáng)
- 11 -öùng duïng +Ñeäm döõ lieäu : duøng ñeå chöùa döõ lieäu vaøo vaø laáy döõ lieäu ra *ROM : -Chöùa döõ lieäu luùc cheá taïo -Chöùa döõ lieäu cheát : -caùc chöông trình khôûi ñoäng -thoâng soá heä thoáng -giao tieáp bios *Ram : thoâng tin trong Ram coù theå thay ñoåi ñöôïc -Ñoïc thì thoâng tin cuõ vaãn coøn -Ghi thì thoâng tin môùi seõ ñeø leân -Khi maát ñieän thì seõ maát thoâng tin *ROM goàm coù caùc loaïi nhö sau : -EPROM : (erasable programmable ROM) : rom laäp trình vaø xoùa ñöôïc . Laäp trình baèng caùch ñöa xung ñieän aùp cao vaøo chaân Vpp, xoùa baèng tia cöïc tím -PROM (programmable ROM) rom laäp trình ñöôïc -EEPROM (electrical erasableprogrammable rom) rom laäp trình vaø xoùa baèng ñieän. Ví duï : eeprom 2832 -MROM (maskable ROM)rom maët naï *RAM coù caùc loaïi sau : SRAM (static ram ) ram tónh DRAM (dynamic ram ) ram ñoäng 1.4.3. Các thiết bị ngoại vi. 1.4.3.1 Phaân loaïi ngoaïi vi : Caùc thieát bò I/O coù teân goïi khaùc nhau laø caùc thieát bò ngoaïi vi (peripheral devices). Baûng sau cho thaáy moät soá thieát bò ngoaïi vi tieâu bieåu theo nhoùm nhaäp (I) vaø xuaát (O). -Thieát bò löu tröõ ngoaøi: ñóa töø (FDD, HDD), USB, CD-ROM, DVD. -Thieát bò giao tieáp vôùi cong ngöôøi: Maøn hình, maùy in. -Thieát bò ñieàu khieån: caûm bieán vaø truyeàn ñoäng. 1.4.3.2 Giao tieáp I/O: Ví duï : giao tieáp I/O laäp trình ñöôïc 8255, 8250 CPU I/O Thieát bò ngoaïi vi Vaøo Ra Coång (port) + Baøn phím +Maøn hình + Chuoät + Maùy in Hình 1.6 Ví duï : coång maùy in (LPT1) coù ñòa chæ 378h
- 12 Coång COM1(RS232) coù ñòa chæ 3F8h - Thieát bò ngoaïi vi goàm coù : maøn hình, baøn phím, chuoät, maùy in, maùy queùt, maùy veõ, CD Rom,vv… - Moãi thieát bò ngoaïi vi coù 1 IO rieâng naèm trong phaàn xuaát nhaäp IO - Moãi IO coù ñòa chæ coång rieâng - IO khoâng phaûi laø choã chöùa döõ lieäu, maø chæ laø coång ñeå döõ lieäu qua laïi - Xuaát nhaäp tuøy theo thieát bò ngoaïi vi 1.4.4. Hệ thống bus. Bus Caùc heä thoáng con cuûa MCU vaø CPU lieân laïc vôùi nhau thoâng qua “bus” (tuyeán), bus laø taäp hôïp caùc ñöôøng tín hieäu maø qua ñoù coù theå truyeàn ñi thoâng tin veà ñòa chæ, döõ lieäu vaø ñieàu khieån. Thoâng thöôøng bus coù ñoä roäng laø 8 hay 16 bit( hoaëc lôùn hôn nöõa tuyø theo CPU hoaëc thieát bò I/O). Heä thoáng bus goàm bus ñòa chæ, bus döõ lieäu vaø bus ñieàu khieån. Caøi ñaët bus chung : -Bus doàn keânh - Caùc boä ñeäm bus 3 traïng thaùi - Chu kì ñoïc bus. - Chu kì ghi bus 1.5. Các họ vi xử lí thong dụng: Intel 80x86. Motorola 680x0. MCS-51. 68HC11, 68HC12. Zilog Z80. Microchip PIC 16F84, PIC 16F877A. 1.6. Vi điều khiển. 1.6.1. Caùc giôùi haïn cuûa vi xöû lyù -Caàn boä nhôù ngoaøi ñeå thöïc thi chöông trình. -Khoâng theå giao tieáp tröïc tieáp vôùi caùc thieát bò I/O. 1.6.2.Vi xöû lyù vaø vi ñieàu khieån: So saùnh vi xöû lyù (MPU) vaø vi ñieàu khieån (MCU) MPU: -Ñöôïc thieát keá ñeå thöïc hieän chöùc naêng CPU trong heä maùy vi tính. - Taäp leänh ñöôïc saép xeáp ñeå cho pheùp maõ vaø moät löôïng lôùn döõ lieäu ñöôïc chuyeån ñi giöõa vi xöû lyù vôùi boä nhôù vaø thanh ghi ngoaøi. - Caùc taùc vuï taùc ñoäng vôùi nhoùm bít khoâng nhoû hôn 4 bit. MCU : -Ñöôïc thieát keá ñeå laøm vieäc vôùi maïch ngoaøi toái thieåu. -Taäp leänh ñôn giaûn (khoaûng 255 leänh). -Caùc taùc vuï coù theå taùc ñoäng leân töøng bít. MCU laø maùy tính vôùi taát caû trong moät chip :
- 13 MCU = CPU + Boä nhôù + Giao tieáp I/O Sô ñoà khoái cuûa moät MCU Microcontroller Memory Register I/O port ALU Timing Interrupt Counter & chip control Hình 1.7 : Sô ñoà khoái moät MCU So vôùi MPU thì MCU coù theâm moät soá maïch laøm cho MCU hoaït ñoäng nhö moät thieát bò duy nhaát. MCU laøm vieäc vôùi caùc döõ lieäu ñöôïc ñöa vaøo qua caùc coång nhaäp noái tieáp hoaëc song song ñöôïc ñieàu khieån bôûi phaàn meàm ñöôïc caát trong boä nhôù chöông trình. Caùc MCU tieâu bieåu : . 8051 (intel vaø caùc haõng khaùc) : laø MCU theá heä thöù hai cuûa Intel. . 68HC11 (Motorola vaø Toshiba) : coù kieán truùc boä nhôù chung trong ñoù caùc leänh , döõ lieäu , I/O vaø caùc maïch ñònh thì taát caû chia xeû cuøng vuøng nhôù. .PIC (Microchip) : Hoï MCU RISC ñaàu tieân ( 35 leänh).
- 14 1.7.Giới thiệu chung về vi điều khiển PIC. 1.7.1. Mục đích của sách Mục đích của sách là dạy bạn làm sao để xây dựng mạch điều khiển sử dụng thiết bị như là nút nhấn, bàn phím, cảm biến, led đơn, loa, led 7 đoạn,… Điều này được thực hiện bằng các thí dụ. Chương trình được viết bằng hợp ngữ. Chúng ta cần mạch nạp (loại JDM qua cổng COM, hay loại qua cổng USB) để viết các lệnh vào chip. Phần mềm biên dịch MPASM hay MPLAB chuyển văn bản mã nguồn thành mã máy. 1.7.2. Bộ nhớ chương trình Bên trong vi điều khiển chương trình mà chúng ta viết được lưu trong vùng nhớ EPROM (Electrically Programmable Read Only Memory), bộ nhớ này không bay hơi và có nhớ khi nguồn bị tắt. Các lệnh mà chúng ta lập trình vào vi điều khiển làm việc bằng các di chuyển và vận hành dữ liệu trong ô nhớ được biết như là ô nhớ (file) và thanh ghi (register). Bộ nhớ này gọi RAM (Random Access Memory). Thí dụ trong điều khiển nhiệt độ phòng, chúng ta đo nhiệt độ phòng bằng cách bằng vi điều khiển thông qua thanh ghi điều khiển tương tự sang số (ADCON0). Sự đo lường thì được so sánh với dữ liệu của chúng ta lưu trong một ô nhớ người dùng (user file). Thanh ghi trạng thái sẽ chỉ báo nếu nhiệt độ là lớn hơn hay nhỏ hơn giá trị yêu cầu và thanh ghi cổng (port) sẽ bật/tắt lò nhiệt tương ứng. Bản đồ bộ nhớ của 16F877A được cho ở chuơng sau. Vi điều khiển PIC là 8 bit, nghĩa là ô nhớ người dung và thanh ghi là 8 bit nhị phân như hình 2.1. Bit 7 6 5 4 3 2 1 bit 0 1 0 1 1 0 0 1 0 Hình 1.7.1: Dạng thanh ghi và ô nhớ người dung. Trong đó LSB là bit có trọng số thấp nhất (bit 0), MSB là bit có trọng số cao nhất (bit 7). 1.7.3. Xung đồng hồ vi điều khiển Để chạy từng bước qua các lệnh, vi điều khiển cần xung clock để đồng bộ việc di chuyển dữ liệu vòng quanh mạch điện tử. Điều này được cung cấp bởi hai tụ điện và thạch anh hay bởi mạch dao động bên trong. Trong 16F84 có 4 lựa chọn dao động: . Mạch RC dao động mà cung cấp giải pháp giá thành thấp. . Dao động LP, nghĩa là thạch anh 32 KHz, mà tối thiểu hóa tiêu thụ năng lượng. . XT: cho cấu hình thạch anh chuẩn. . HS là tùy chọn dao động tốc độ cao. Các tần số thạch anh thông dụng là: 32 Khz, 1 Mhz, 4 Mhz, 10 Mhz và 20 Mhz. PIC 16F877A còn có them 4 lựa chọn sau (tổng cộng là 8): . EXTRC: điện trở/tụ điện ngoài. . EXTRC điện trở tụ điện ngoài với CLKOUT. . INTRC điện trở/tụ điện 4 Mhz nội. . INTRC điện trở tụ điện nội 4 Mhz với CLKOUT. 1.7.4. Hệ thống vi điều khiển
- 15 Sơ đồ khối hệ thống vi điều khiển được cho ở hình 1.7.2. Ngõ Điều Ngõ vào khiển ra Hình 1.7.2: Hệ vi điều khiển cơ bản. . Thành phần ngõ vào gồm có thiết bị số như là công tắc, nút nhấn, bàn phím,.. và cảm biến như là điện trở phụ thuộc ánh sang, thermixtor, cảm biến gas, cảm biến áp suất,… . Đơn vị điều khiển hiển nhiên là vi điều khiển, vi điều khiển sẽ giám sát ngõ vào và như là kết quả chương trình sẽ bật (turn on) ngõ ra hay tắt (turn off) ngõ ra. Vi điều khiển lưu chương trình trong bộ nhớ và thực thi lệnh dưới sự điều khiển của mạch đồng hồ (clock). . Thiết bị ngõ ra được làm từ led đơn, loa, động cơ, hiển thị số, led 7 đoạn, lò nhiệt, quạt,… Chọn lựa hiển nhiên nhiều nhất cho vi điều khiển là có bao nhiêu ngõ vào số, ngõ vào analog, và ngõ ra mà hệ thống yêu cầu. Điều này chỉ ra số chân tối thiểu vào ra (I/O) mà vi điều khiển phải có. Nếu ngõ vào analog được sử dụng thì vi điều khiển phải có bộ chuyển đổi tương tự -số (A/D). Xem xét kế tiếp là kích cỡ bộ nhớ chương trình là gì. Điều này không là vấn đề lớn khi bắt đầu . Các chương trình trong sách phù hợp không gian bộ nhớ chương trình 1 KByte (16f84) tới 8 KByte (16f877a). Tần số xung clock xác định tốc độ tại đó lệnh được thực thi. Điều này là quan trọng nếu bất kì tính toán dài là được xem xét. Tần số xung clock càng cao thì vi điều khiển hoàn thành hiệm vụ càng nhanh và chuyển sang nhiệm vụ khác. Một xem xét nữa là số ngắt và số mạch timer (định thì) được yêu cầu, bộ nhớ dữ liệu EEPROM yêu cầu là bao nhiêu. Các hoạt động phức tạp hơn sẽ được xem xét sau. Trong sách này, chương trình yêu cầu ngõ vào analog được hiện thực trên PIC 16F84 hay PIC16F 877A. 1.7.5. Các loại vi điều khiển Danh sách các loại vi điều khiển PIC thì được phát triển hang ngày. Chúng bao gồm các thiết bị cho tất cả các ứng dụng. Thí dụ: 18F8722 có 64K bộ nhớ EPROM, 3938 byte RAM (ô nhớ người dung), 1024 byte EEPROM, 16 kênh A/D 10 bit, điện áp tham chiếu, 72 ngõ vào và ra (I/O), 3 timer 16 bit và 2 timer 8 bit. Về cơ bản có 2 loại vi điều khiển: thiết bị Flash và thiết bị lập trình một lần (one time programmable devices -OTP). Thiết bị Flash có thể lập trình lại trong mạch nạp trong khi đó thiết bị lập trình một lần không thể lập trình lại. Tất cả thiết bị OTP tuy nhiên có sự phân loại đóng khung (windowed) mà cho phép chúng bị xóa dưới ánh sang tia cực tím trong khoảng 15 phút để mà chúng có thể lập trình lại. Thiết bị OTP dung cấu hình dao động RC, LP, XT hay HS. Trong sách này chúng ta dung thiết bị Flash là PIC 16F84 hay PIC 16F877A. 1.7.6. Đặc tính của vi điều khiển Bạn chỉ ra một thiết bị với mã nhận dạng sản phẩm: . Số sản phẩm. . Nếu nó là loại đóng khung, OTP hay thiết bị Flash. Loại đóng khung được chỉ ra bởi JW. Thiết bị OTP được chỉ ra bởi tần số dao động và thiết bị Flash được chỉ ra bởi chữ F như là 16F84.
- 16 . Tần số dao động, thường là 04 cho các thiết bị làm việc lên tới 4 Mhz, 10 cho thiết bị làm việc lên tới 10 Mhz, hay 20 cho thiết bị lên tới 20 Mhz. Thiết bị 20 Mhz thì đắt tiền hơn thiết bị 4Mhz. . Tầm nhiệt độ, cho ứng dụng tổng quát 0 oCÆ70 oC là được chỉ ra. Hệ thống nhận dạng sản phẩm cho vi điều khiển PIC được minh họa ở hình 1.7.3. Part No. –XX X /XX Đóng gói L= PLCC P=PDIP (đóng gói Plastic chuẩn) So=SOIC small outline IC PQ=MQFP JW=Windowed device (CERDIP) Tầm nhiệt độ - =0oCÆ 70 oC I = -40 oCÆ+85 oC E = -40 oCÆ+125 oC Phạm vi tần số: 04= 4Mhz 10 = 10 Mhz 20 = 20 Mhz Thiết bị, thí dụ 16C711 Hình 1.7.3. Hệ thống nhận dạng sản phẩm. 1.7.7. Sử dụng vi điều khiển Để sử dụng vi điều khiển trong mạch, có hai lĩnh vực về cơ bản chúng ta cần hiểu 1. Cách kết nối vi điều khiển với phần cứng. 2. Cách viết chương trình và nạp mã vào vi điều khiển 1.7.1. Phần cứng vi điều khiển: Phần cứng mà vi điều khiển cần để hoạt động thì được minh họa ở hình 1.7.4. Thạch anh và tụ điện được nối với chân 15 và 16 của 16F84 để tạo ra xung clock mà được yêu cầu để vi điều khiển đi qua chương trình và cung cấp xung định thì.
- 17 16F84 +5V 14 V+ 68 pF 4 16 MCLR 32 Khz 68pF 15 0V 5 Hình 1.7.4: Mạch vi điều khiển +5V C3 0.1 uF U1 C1 16 V+ OSC2/CLKOUT 17 Y1 RA0 18 68 pF RA1 1 32 Khz RA2 2 4 RA3 3 15 MCLR RA4/TOCKI OSC1/CLKIN 6 C2 RB0/INT 7 RB1 8 RB2 9 RB3 10 68 pF GND RB4 11 RB5 12 RB6 13 RB7 PIC16F84 Mạch vi điều khiển PIC 16F84
- 18 Mạch vi điều khiển PIC 16F877A Nguồn cung cấp cho vi điều khiển: Nguồn cung cấp cho vi điều khiển trong khoảng từ 2v tới 6v. Điều này có thể được cung cấp dễ dàng từ chân 6v như hình 1.7.5. V+ + - 16F84 0v Hình 1.7.5: Nguồn cung cấp cho vi điều khiển. Diode trong mạch tạo ra áp 0,7v trên nó nên làm giảm điện áp cung cấp còn 5,3v. Nó cung cấp bảo vệ cho vi điều khiển nếu nguồn được nối sai tình cờ. Trong trường hợp này diode sẽ phân cực ngược và không có dòng chảy qua. 7805, mạch ổn áp:
- 19 Kết nối nguồn cung cấp thong dụng nhất cho vi điều khiển là dung IC ổn áp 7805 có 3 chân. Kết nối được minh họa ở hình 1.7.6. 7805 +5V Vin Vout 0v Hình 1.7.6: Mạch ổn áp 7805 Điện áp vào Vin cho 7805 là từ 7v đến 30v. Công suất tiêu tán trong 7805: Sự cẩn trọng phải được xem xét khi sử dụng điện áp Vin cao đưa vào 7805. Thí dụ nếu Vin=24v, ngõ ra 7805 là +5v, thế thì 7805 có 24v-5v=19v rơi trên nó. Nếu nó cung cấp dòng 0,5A cho mạch thì công suất tiêu tán (volt x ampe) là: 19v x 0,5A=9,5 watt. Bộ ổn áp sẽ rất nóng. Do đó ta phải có miếng tản nhiệt (bằng nhôm). Kết nối nút nhấn với vi điều khiển: Cách thong dụng nhất về một nút nhấn tới vi điều khiển là thong qua điện trở kéo lên tới +5V như minh họa ở hình 1.7.7. +5V Vi điều khiển 0v Hình 1.7.7: Kết nối nút nhấn với vi điều khiển. Khi nút nhấn là hở, logic 1 được nối với vi điều khiển. Khi nhấn nút, logic 0 được nối với vi điều khiển. Một số vi điều khiển như là 16F84, 16F818, và 16F877a có điện trở kéo lên bên trong nối với một số chân I/O. Port B trong thiết bị trên. Hình 1.7.8 minh họa nút nhấn được nối dung kéo lên bên trong. Vi điều khiển 0V Hình 1.7.8: Kết nối nút nhấn sử dụng điện trở kéo lên bên trong. Kết nối ngõ ra với vi điều khiển:
- 20 Vi điều khiển có khả năng cung cấp xấp xỉ 20-25 mA tới chân ngõ ra. Như vậy tải như là led đơn, hay rờle nhỏ có thể được lái trực tiếp. Tải lớn hơn yêu cầu giao tiếp thong qua transistor đối với dc, hay triac đối với ac. Thiết bị cách ly quang (opto-coupled device) là giao tiếp cách li giữa vi điều khiển và tải. Kết nối led đơn với vi điều khiển được minh họa ở hình 1.7.9. Vi điều khiển 680 Ohm 0V Hình 1.7.9: Kết nối 1 led với vi điều khiển. Logic 1: led sang Logic 0: led tắt. 470 Ohmx4 16F877a RB0 RB1 RB2 RB3 0V Hình 1.7.10: Kết nối 4 led với PIC 16F877A 1.7.2.Lập trình vi điều khiển: Để vi điều khiển thực hiện một số hành động điều khiển, bạn cần giao tiếp (truyền thong) với nó và yêu cầu vi điều khiển những lệnh phải làm gì. Khi giao tiếp với người khác, chúng ta dung ngôn ngữ nói, khi giao tiếp với vi điều khiển chúng ta sử dụng ngôn ngữ lập trình (hợp ngữ). Hợp ngữ cho PIC sử dụng 35 lệnh trong tập lệnh. Thêm vài lệnh được dung trong vi điều khiển lớn. Để giao tiếp với vi điều khiển chúng ta cần biết 35 lệnh này là gì và cách sử dụng chúng. Không phải tất cả 35 lệnh được dung trong sách này. Thực tế bạn có thể viết chương trình có ý nghĩa chỉ dung 5 hay 6 lệnh. IV. Tổng kết bài: -Tóm tắt các ý chính trong bài. -Chuẩn bị bài mới. V. Câu hỏi và bài tập về nhà: Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về PIC. 1.Các hệ đếm dung trong máy tính. Mã BCD là gì? Mã ASCII là gì? 2.So sánh máy vi tính với các thế hệ máy trước đây.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Vi xử lý và Lập trình hợp ngữ
54 p | 388 | 100
-
Giáo trình vi xử lý và cấu trúc máy tính part 2
19 p | 266 | 92
-
Giáo trình vi xử lý và cấu trúc máy tính part 3
19 p | 214 | 84
-
Giáo trình vi xử lý và cấu trúc máy tính part 4
19 p | 227 | 82
-
Giáo trình vi xử lý và cấu trúc máy tính part 5
19 p | 177 | 66
-
Giáo trình vi xử lý và cấu trúc máy tính part 6
19 p | 160 | 64
-
Giáo trình vi xử lý và cấu trúc máy tính part 7
19 p | 177 | 63
-
Giáo trình vi xử lý và cấu trúc máy tính part 8
19 p | 144 | 62
-
Bài giảng vi xử lý 8086/8088
48 p | 380 | 43
-
Bài giảng môn Phần cứng máy tính: Bài 4 - Vi xử lý, đơn vị xử lý trung tâm
59 p | 168 | 34
-
Bài giảng Vi xử lý – Vi điều khiển
222 p | 165 | 26
-
Bài giảng Vi xử lý - Chương 9: Ứng dụng
17 p | 136 | 19
-
Bài giảng Vi xử lí: Chương 1 - Hồ Trung Mỹ
48 p | 42 | 14
-
Bài giảng Vi xử lý: Phần 2 - Đại học Công nghiệp TP. HCM
99 p | 101 | 12
-
Bài giảng Vi xử lý: Chương 3.1 - Bùi Minh Thành
101 p | 119 | 11
-
Bài giảng Vi xử lý: Chương 5 - Bùi Minh Thành (tt)
84 p | 132 | 11
-
Bài giảng Vi xử lý- Chương 5: Bộ định thi
25 p | 82 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn